diff --git a/.all-contributorsrc b/.all-contributorsrc index 0cd6820d705c..c1799ef26828 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -895,6 +895,69 @@ "contributions": [ "code" ] + }, + { + "login": "faucct", + "name": "Nikita Sokolov", + "avatar_url": "https://avatars.githubusercontent.com/u/5202503?v=4", + "profile": "https://github.com/faucct", + "contributions": [ + "code" + ] + }, + { + "login": "sugmanue", + "name": "Manuel Sugawara", + "avatar_url": "https://avatars.githubusercontent.com/u/108146565?v=4", + "profile": "https://github.com/sugmanue", + "contributions": [ + "code" + ] + }, + { + "login": "anirudh9391", + "name": "Anirudh", + "avatar_url": "https://avatars.githubusercontent.com/u/15699250?v=4", + "profile": "https://github.com/anirudh9391", + "contributions": [ + "code" + ] + }, + { + "login": "haydenbaker", + "name": "Hayden Baker", + "avatar_url": "https://avatars.githubusercontent.com/u/26096419?v=4", + "profile": "https://github.com/haydenbaker", + "contributions": [ + "code" + ] + }, + { + "login": "gosar", + "name": "Jaykumar Gosar", + "avatar_url": "https://avatars.githubusercontent.com/u/5666661?v=4", + "profile": "https://github.com/gosar", + "contributions": [ + "code" + ] + }, + { + "login": "graebm", + "name": "Michael Graeb", + "avatar_url": "https://avatars.githubusercontent.com/u/24399397?v=4", + "profile": "https://github.com/graebm", + "contributions": [ + "code" + ] + }, + { + "login": "mgrundie-r7", + "name": "Michael Grundie", + "avatar_url": "https://avatars.githubusercontent.com/u/103498312?v=4", + "profile": "https://github.com/mgrundie-r7", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/.brazil.json b/.brazil.json index 9d9a3f897c06..e554078b10e0 100644 --- a/.brazil.json +++ b/.brazil.json @@ -101,7 +101,8 @@ "test-utils": { "skipImport": true }, "tests-coverage-reporting": { "skipImport": true }, "third-party": { "skipImport": true }, - "third-party-slf4j-api": { "skipImport": true } + "third-party-slf4j-api": { "skipImport": true }, + "crt-unavailable-tests": { "skipImport": true } }, "dependencies": { diff --git a/.changes/2.0.0-preview-1.json b/.changes/2.0.0-preview/2.0.0-preview-1.json similarity index 100% rename from .changes/2.0.0-preview-1.json rename to .changes/2.0.0-preview/2.0.0-preview-1.json diff --git a/.changes/2.0.0-preview-10.json b/.changes/2.0.0-preview/2.0.0-preview-10.json similarity index 100% rename from .changes/2.0.0-preview-10.json rename to .changes/2.0.0-preview/2.0.0-preview-10.json diff --git a/.changes/2.0.0-preview-11.json b/.changes/2.0.0-preview/2.0.0-preview-11.json similarity index 100% rename from .changes/2.0.0-preview-11.json rename to .changes/2.0.0-preview/2.0.0-preview-11.json diff --git a/.changes/2.0.0-preview-12.json b/.changes/2.0.0-preview/2.0.0-preview-12.json similarity index 100% rename from .changes/2.0.0-preview-12.json rename to .changes/2.0.0-preview/2.0.0-preview-12.json diff --git a/.changes/2.0.0-preview-13.json b/.changes/2.0.0-preview/2.0.0-preview-13.json similarity index 100% rename from .changes/2.0.0-preview-13.json rename to .changes/2.0.0-preview/2.0.0-preview-13.json diff --git a/.changes/2.0.0-preview-2.json b/.changes/2.0.0-preview/2.0.0-preview-2.json similarity index 100% rename from .changes/2.0.0-preview-2.json rename to .changes/2.0.0-preview/2.0.0-preview-2.json diff --git a/.changes/2.0.0-preview-4.json b/.changes/2.0.0-preview/2.0.0-preview-4.json similarity index 100% rename from .changes/2.0.0-preview-4.json rename to .changes/2.0.0-preview/2.0.0-preview-4.json diff --git a/.changes/2.0.0-preview-5.json b/.changes/2.0.0-preview/2.0.0-preview-5.json similarity index 100% rename from .changes/2.0.0-preview-5.json rename to .changes/2.0.0-preview/2.0.0-preview-5.json diff --git a/.changes/2.0.0-preview-6.json b/.changes/2.0.0-preview/2.0.0-preview-6.json similarity index 100% rename from .changes/2.0.0-preview-6.json rename to .changes/2.0.0-preview/2.0.0-preview-6.json diff --git a/.changes/2.0.0-preview-7.json b/.changes/2.0.0-preview/2.0.0-preview-7.json similarity index 100% rename from .changes/2.0.0-preview-7.json rename to .changes/2.0.0-preview/2.0.0-preview-7.json diff --git a/.changes/2.0.0-preview-8.json b/.changes/2.0.0-preview/2.0.0-preview-8.json similarity index 100% rename from .changes/2.0.0-preview-8.json rename to .changes/2.0.0-preview/2.0.0-preview-8.json diff --git a/.changes/2.0.0-preview-9.json b/.changes/2.0.0-preview/2.0.0-preview-9.json similarity index 100% rename from .changes/2.0.0-preview-9.json rename to .changes/2.0.0-preview/2.0.0-preview-9.json diff --git a/.changes/2.1.0.json b/.changes/2.1.x/2.1.0.json similarity index 100% rename from .changes/2.1.0.json rename to .changes/2.1.x/2.1.0.json diff --git a/.changes/2.1.1.json b/.changes/2.1.x/2.1.1.json similarity index 100% rename from .changes/2.1.1.json rename to .changes/2.1.x/2.1.1.json diff --git a/.changes/2.1.2.json b/.changes/2.1.x/2.1.2.json similarity index 100% rename from .changes/2.1.2.json rename to .changes/2.1.x/2.1.2.json diff --git a/.changes/2.1.3.json b/.changes/2.1.x/2.1.3.json similarity index 100% rename from .changes/2.1.3.json rename to .changes/2.1.x/2.1.3.json diff --git a/.changes/2.1.4.json b/.changes/2.1.x/2.1.4.json similarity index 100% rename from .changes/2.1.4.json rename to .changes/2.1.x/2.1.4.json diff --git a/.changes/2.10.0.json b/.changes/2.10.x/2.10.0.json similarity index 100% rename from .changes/2.10.0.json rename to .changes/2.10.x/2.10.0.json diff --git a/.changes/2.10.1.json b/.changes/2.10.x/2.10.1.json similarity index 100% rename from .changes/2.10.1.json rename to .changes/2.10.x/2.10.1.json diff --git a/.changes/2.10.10.json b/.changes/2.10.x/2.10.10.json similarity index 100% rename from .changes/2.10.10.json rename to .changes/2.10.x/2.10.10.json diff --git a/.changes/2.10.11.json b/.changes/2.10.x/2.10.11.json similarity index 100% rename from .changes/2.10.11.json rename to .changes/2.10.x/2.10.11.json diff --git a/.changes/2.10.12.json b/.changes/2.10.x/2.10.12.json similarity index 100% rename from .changes/2.10.12.json rename to .changes/2.10.x/2.10.12.json diff --git a/.changes/2.10.13.json b/.changes/2.10.x/2.10.13.json similarity index 100% rename from .changes/2.10.13.json rename to .changes/2.10.x/2.10.13.json diff --git a/.changes/2.10.14.json b/.changes/2.10.x/2.10.14.json similarity index 100% rename from .changes/2.10.14.json rename to .changes/2.10.x/2.10.14.json diff --git a/.changes/2.10.15.json b/.changes/2.10.x/2.10.15.json similarity index 100% rename from .changes/2.10.15.json rename to .changes/2.10.x/2.10.15.json diff --git a/.changes/2.10.16.json b/.changes/2.10.x/2.10.16.json similarity index 100% rename from .changes/2.10.16.json rename to .changes/2.10.x/2.10.16.json diff --git a/.changes/2.10.17.json b/.changes/2.10.x/2.10.17.json similarity index 100% rename from .changes/2.10.17.json rename to .changes/2.10.x/2.10.17.json diff --git a/.changes/2.10.18.json b/.changes/2.10.x/2.10.18.json similarity index 100% rename from .changes/2.10.18.json rename to .changes/2.10.x/2.10.18.json diff --git a/.changes/2.10.19.json b/.changes/2.10.x/2.10.19.json similarity index 100% rename from .changes/2.10.19.json rename to .changes/2.10.x/2.10.19.json diff --git a/.changes/2.10.2.json b/.changes/2.10.x/2.10.2.json similarity index 100% rename from .changes/2.10.2.json rename to .changes/2.10.x/2.10.2.json diff --git a/.changes/2.10.20.json b/.changes/2.10.x/2.10.20.json similarity index 100% rename from .changes/2.10.20.json rename to .changes/2.10.x/2.10.20.json diff --git a/.changes/2.10.21.json b/.changes/2.10.x/2.10.21.json similarity index 100% rename from .changes/2.10.21.json rename to .changes/2.10.x/2.10.21.json diff --git a/.changes/2.10.22.json b/.changes/2.10.x/2.10.22.json similarity index 100% rename from .changes/2.10.22.json rename to .changes/2.10.x/2.10.22.json diff --git a/.changes/2.10.23.json b/.changes/2.10.x/2.10.23.json similarity index 100% rename from .changes/2.10.23.json rename to .changes/2.10.x/2.10.23.json diff --git a/.changes/2.10.24.json b/.changes/2.10.x/2.10.24.json similarity index 100% rename from .changes/2.10.24.json rename to .changes/2.10.x/2.10.24.json diff --git a/.changes/2.10.25.json b/.changes/2.10.x/2.10.25.json similarity index 100% rename from .changes/2.10.25.json rename to .changes/2.10.x/2.10.25.json diff --git a/.changes/2.10.26.json b/.changes/2.10.x/2.10.26.json similarity index 100% rename from .changes/2.10.26.json rename to .changes/2.10.x/2.10.26.json diff --git a/.changes/2.10.27.json b/.changes/2.10.x/2.10.27.json similarity index 100% rename from .changes/2.10.27.json rename to .changes/2.10.x/2.10.27.json diff --git a/.changes/2.10.28.json b/.changes/2.10.x/2.10.28.json similarity index 100% rename from .changes/2.10.28.json rename to .changes/2.10.x/2.10.28.json diff --git a/.changes/2.10.29.json b/.changes/2.10.x/2.10.29.json similarity index 100% rename from .changes/2.10.29.json rename to .changes/2.10.x/2.10.29.json diff --git a/.changes/2.10.3.json b/.changes/2.10.x/2.10.3.json similarity index 100% rename from .changes/2.10.3.json rename to .changes/2.10.x/2.10.3.json diff --git a/.changes/2.10.30.json b/.changes/2.10.x/2.10.30.json similarity index 100% rename from .changes/2.10.30.json rename to .changes/2.10.x/2.10.30.json diff --git a/.changes/2.10.31.json b/.changes/2.10.x/2.10.31.json similarity index 100% rename from .changes/2.10.31.json rename to .changes/2.10.x/2.10.31.json diff --git a/.changes/2.10.32.json b/.changes/2.10.x/2.10.32.json similarity index 100% rename from .changes/2.10.32.json rename to .changes/2.10.x/2.10.32.json diff --git a/.changes/2.10.33.json b/.changes/2.10.x/2.10.33.json similarity index 100% rename from .changes/2.10.33.json rename to .changes/2.10.x/2.10.33.json diff --git a/.changes/2.10.34.json b/.changes/2.10.x/2.10.34.json similarity index 100% rename from .changes/2.10.34.json rename to .changes/2.10.x/2.10.34.json diff --git a/.changes/2.10.35.json b/.changes/2.10.x/2.10.35.json similarity index 100% rename from .changes/2.10.35.json rename to .changes/2.10.x/2.10.35.json diff --git a/.changes/2.10.36.json b/.changes/2.10.x/2.10.36.json similarity index 100% rename from .changes/2.10.36.json rename to .changes/2.10.x/2.10.36.json diff --git a/.changes/2.10.37.json b/.changes/2.10.x/2.10.37.json similarity index 100% rename from .changes/2.10.37.json rename to .changes/2.10.x/2.10.37.json diff --git a/.changes/2.10.38.json b/.changes/2.10.x/2.10.38.json similarity index 100% rename from .changes/2.10.38.json rename to .changes/2.10.x/2.10.38.json diff --git a/.changes/2.10.39.json b/.changes/2.10.x/2.10.39.json similarity index 100% rename from .changes/2.10.39.json rename to .changes/2.10.x/2.10.39.json diff --git a/.changes/2.10.4.json b/.changes/2.10.x/2.10.4.json similarity index 100% rename from .changes/2.10.4.json rename to .changes/2.10.x/2.10.4.json diff --git a/.changes/2.10.40.json b/.changes/2.10.x/2.10.40.json similarity index 100% rename from .changes/2.10.40.json rename to .changes/2.10.x/2.10.40.json diff --git a/.changes/2.10.41.json b/.changes/2.10.x/2.10.41.json similarity index 100% rename from .changes/2.10.41.json rename to .changes/2.10.x/2.10.41.json diff --git a/.changes/2.10.42.json b/.changes/2.10.x/2.10.42.json similarity index 100% rename from .changes/2.10.42.json rename to .changes/2.10.x/2.10.42.json diff --git a/.changes/2.10.43.json b/.changes/2.10.x/2.10.43.json similarity index 100% rename from .changes/2.10.43.json rename to .changes/2.10.x/2.10.43.json diff --git a/.changes/2.10.44.json b/.changes/2.10.x/2.10.44.json similarity index 100% rename from .changes/2.10.44.json rename to .changes/2.10.x/2.10.44.json diff --git a/.changes/2.10.45.json b/.changes/2.10.x/2.10.45.json similarity index 100% rename from .changes/2.10.45.json rename to .changes/2.10.x/2.10.45.json diff --git a/.changes/2.10.46.json b/.changes/2.10.x/2.10.46.json similarity index 100% rename from .changes/2.10.46.json rename to .changes/2.10.x/2.10.46.json diff --git a/.changes/2.10.47.json b/.changes/2.10.x/2.10.47.json similarity index 100% rename from .changes/2.10.47.json rename to .changes/2.10.x/2.10.47.json diff --git a/.changes/2.10.48.json b/.changes/2.10.x/2.10.48.json similarity index 100% rename from .changes/2.10.48.json rename to .changes/2.10.x/2.10.48.json diff --git a/.changes/2.10.49.json b/.changes/2.10.x/2.10.49.json similarity index 100% rename from .changes/2.10.49.json rename to .changes/2.10.x/2.10.49.json diff --git a/.changes/2.10.5.json b/.changes/2.10.x/2.10.5.json similarity index 100% rename from .changes/2.10.5.json rename to .changes/2.10.x/2.10.5.json diff --git a/.changes/2.10.50.json b/.changes/2.10.x/2.10.50.json similarity index 100% rename from .changes/2.10.50.json rename to .changes/2.10.x/2.10.50.json diff --git a/.changes/2.10.51.json b/.changes/2.10.x/2.10.51.json similarity index 100% rename from .changes/2.10.51.json rename to .changes/2.10.x/2.10.51.json diff --git a/.changes/2.10.52.json b/.changes/2.10.x/2.10.52.json similarity index 100% rename from .changes/2.10.52.json rename to .changes/2.10.x/2.10.52.json diff --git a/.changes/2.10.53.json b/.changes/2.10.x/2.10.53.json similarity index 100% rename from .changes/2.10.53.json rename to .changes/2.10.x/2.10.53.json diff --git a/.changes/2.10.54.json b/.changes/2.10.x/2.10.54.json similarity index 100% rename from .changes/2.10.54.json rename to .changes/2.10.x/2.10.54.json diff --git a/.changes/2.10.55.json b/.changes/2.10.x/2.10.55.json similarity index 100% rename from .changes/2.10.55.json rename to .changes/2.10.x/2.10.55.json diff --git a/.changes/2.10.56.json b/.changes/2.10.x/2.10.56.json similarity index 100% rename from .changes/2.10.56.json rename to .changes/2.10.x/2.10.56.json diff --git a/.changes/2.10.57.json b/.changes/2.10.x/2.10.57.json similarity index 100% rename from .changes/2.10.57.json rename to .changes/2.10.x/2.10.57.json diff --git a/.changes/2.10.58.json b/.changes/2.10.x/2.10.58.json similarity index 100% rename from .changes/2.10.58.json rename to .changes/2.10.x/2.10.58.json diff --git a/.changes/2.10.59.json b/.changes/2.10.x/2.10.59.json similarity index 100% rename from .changes/2.10.59.json rename to .changes/2.10.x/2.10.59.json diff --git a/.changes/2.10.6.json b/.changes/2.10.x/2.10.6.json similarity index 100% rename from .changes/2.10.6.json rename to .changes/2.10.x/2.10.6.json diff --git a/.changes/2.10.60.json b/.changes/2.10.x/2.10.60.json similarity index 100% rename from .changes/2.10.60.json rename to .changes/2.10.x/2.10.60.json diff --git a/.changes/2.10.61.json b/.changes/2.10.x/2.10.61.json similarity index 100% rename from .changes/2.10.61.json rename to .changes/2.10.x/2.10.61.json diff --git a/.changes/2.10.62.json b/.changes/2.10.x/2.10.62.json similarity index 100% rename from .changes/2.10.62.json rename to .changes/2.10.x/2.10.62.json diff --git a/.changes/2.10.63.json b/.changes/2.10.x/2.10.63.json similarity index 100% rename from .changes/2.10.63.json rename to .changes/2.10.x/2.10.63.json diff --git a/.changes/2.10.64.json b/.changes/2.10.x/2.10.64.json similarity index 100% rename from .changes/2.10.64.json rename to .changes/2.10.x/2.10.64.json diff --git a/.changes/2.10.65.json b/.changes/2.10.x/2.10.65.json similarity index 100% rename from .changes/2.10.65.json rename to .changes/2.10.x/2.10.65.json diff --git a/.changes/2.10.66.json b/.changes/2.10.x/2.10.66.json similarity index 100% rename from .changes/2.10.66.json rename to .changes/2.10.x/2.10.66.json diff --git a/.changes/2.10.67.json b/.changes/2.10.x/2.10.67.json similarity index 100% rename from .changes/2.10.67.json rename to .changes/2.10.x/2.10.67.json diff --git a/.changes/2.10.68.json b/.changes/2.10.x/2.10.68.json similarity index 100% rename from .changes/2.10.68.json rename to .changes/2.10.x/2.10.68.json diff --git a/.changes/2.10.69.json b/.changes/2.10.x/2.10.69.json similarity index 100% rename from .changes/2.10.69.json rename to .changes/2.10.x/2.10.69.json diff --git a/.changes/2.10.7.json b/.changes/2.10.x/2.10.7.json similarity index 100% rename from .changes/2.10.7.json rename to .changes/2.10.x/2.10.7.json diff --git a/.changes/2.10.70.json b/.changes/2.10.x/2.10.70.json similarity index 100% rename from .changes/2.10.70.json rename to .changes/2.10.x/2.10.70.json diff --git a/.changes/2.10.71.json b/.changes/2.10.x/2.10.71.json similarity index 100% rename from .changes/2.10.71.json rename to .changes/2.10.x/2.10.71.json diff --git a/.changes/2.10.72.json b/.changes/2.10.x/2.10.72.json similarity index 100% rename from .changes/2.10.72.json rename to .changes/2.10.x/2.10.72.json diff --git a/.changes/2.10.73.json b/.changes/2.10.x/2.10.73.json similarity index 100% rename from .changes/2.10.73.json rename to .changes/2.10.x/2.10.73.json diff --git a/.changes/2.10.74.json b/.changes/2.10.x/2.10.74.json similarity index 100% rename from .changes/2.10.74.json rename to .changes/2.10.x/2.10.74.json diff --git a/.changes/2.10.75.json b/.changes/2.10.x/2.10.75.json similarity index 100% rename from .changes/2.10.75.json rename to .changes/2.10.x/2.10.75.json diff --git a/.changes/2.10.76.json b/.changes/2.10.x/2.10.76.json similarity index 100% rename from .changes/2.10.76.json rename to .changes/2.10.x/2.10.76.json diff --git a/.changes/2.10.77.json b/.changes/2.10.x/2.10.77.json similarity index 100% rename from .changes/2.10.77.json rename to .changes/2.10.x/2.10.77.json diff --git a/.changes/2.10.78.json b/.changes/2.10.x/2.10.78.json similarity index 100% rename from .changes/2.10.78.json rename to .changes/2.10.x/2.10.78.json diff --git a/.changes/2.10.79.json b/.changes/2.10.x/2.10.79.json similarity index 100% rename from .changes/2.10.79.json rename to .changes/2.10.x/2.10.79.json diff --git a/.changes/2.10.8.json b/.changes/2.10.x/2.10.8.json similarity index 100% rename from .changes/2.10.8.json rename to .changes/2.10.x/2.10.8.json diff --git a/.changes/2.10.80.json b/.changes/2.10.x/2.10.80.json similarity index 100% rename from .changes/2.10.80.json rename to .changes/2.10.x/2.10.80.json diff --git a/.changes/2.10.81.json b/.changes/2.10.x/2.10.81.json similarity index 100% rename from .changes/2.10.81.json rename to .changes/2.10.x/2.10.81.json diff --git a/.changes/2.10.82.json b/.changes/2.10.x/2.10.82.json similarity index 100% rename from .changes/2.10.82.json rename to .changes/2.10.x/2.10.82.json diff --git a/.changes/2.10.83.json b/.changes/2.10.x/2.10.83.json similarity index 100% rename from .changes/2.10.83.json rename to .changes/2.10.x/2.10.83.json diff --git a/.changes/2.10.84.json b/.changes/2.10.x/2.10.84.json similarity index 100% rename from .changes/2.10.84.json rename to .changes/2.10.x/2.10.84.json diff --git a/.changes/2.10.85.json b/.changes/2.10.x/2.10.85.json similarity index 100% rename from .changes/2.10.85.json rename to .changes/2.10.x/2.10.85.json diff --git a/.changes/2.10.86.json b/.changes/2.10.x/2.10.86.json similarity index 100% rename from .changes/2.10.86.json rename to .changes/2.10.x/2.10.86.json diff --git a/.changes/2.10.87.json b/.changes/2.10.x/2.10.87.json similarity index 100% rename from .changes/2.10.87.json rename to .changes/2.10.x/2.10.87.json diff --git a/.changes/2.10.88.json b/.changes/2.10.x/2.10.88.json similarity index 100% rename from .changes/2.10.88.json rename to .changes/2.10.x/2.10.88.json diff --git a/.changes/2.10.89.json b/.changes/2.10.x/2.10.89.json similarity index 100% rename from .changes/2.10.89.json rename to .changes/2.10.x/2.10.89.json diff --git a/.changes/2.10.9.json b/.changes/2.10.x/2.10.9.json similarity index 100% rename from .changes/2.10.9.json rename to .changes/2.10.x/2.10.9.json diff --git a/.changes/2.10.90.json b/.changes/2.10.x/2.10.90.json similarity index 100% rename from .changes/2.10.90.json rename to .changes/2.10.x/2.10.90.json diff --git a/.changes/2.10.91.json b/.changes/2.10.x/2.10.91.json similarity index 100% rename from .changes/2.10.91.json rename to .changes/2.10.x/2.10.91.json diff --git a/.changes/2.11.0.json b/.changes/2.11.x/2.11.0.json similarity index 100% rename from .changes/2.11.0.json rename to .changes/2.11.x/2.11.0.json diff --git a/.changes/2.11.1.json b/.changes/2.11.x/2.11.1.json similarity index 100% rename from .changes/2.11.1.json rename to .changes/2.11.x/2.11.1.json diff --git a/.changes/2.11.10.json b/.changes/2.11.x/2.11.10.json similarity index 100% rename from .changes/2.11.10.json rename to .changes/2.11.x/2.11.10.json diff --git a/.changes/2.11.11.json b/.changes/2.11.x/2.11.11.json similarity index 100% rename from .changes/2.11.11.json rename to .changes/2.11.x/2.11.11.json diff --git a/.changes/2.11.12.json b/.changes/2.11.x/2.11.12.json similarity index 100% rename from .changes/2.11.12.json rename to .changes/2.11.x/2.11.12.json diff --git a/.changes/2.11.13.json b/.changes/2.11.x/2.11.13.json similarity index 100% rename from .changes/2.11.13.json rename to .changes/2.11.x/2.11.13.json diff --git a/.changes/2.11.14.json b/.changes/2.11.x/2.11.14.json similarity index 100% rename from .changes/2.11.14.json rename to .changes/2.11.x/2.11.14.json diff --git a/.changes/2.11.2.json b/.changes/2.11.x/2.11.2.json similarity index 100% rename from .changes/2.11.2.json rename to .changes/2.11.x/2.11.2.json diff --git a/.changes/2.11.3.json b/.changes/2.11.x/2.11.3.json similarity index 100% rename from .changes/2.11.3.json rename to .changes/2.11.x/2.11.3.json diff --git a/.changes/2.11.4.json b/.changes/2.11.x/2.11.4.json similarity index 100% rename from .changes/2.11.4.json rename to .changes/2.11.x/2.11.4.json diff --git a/.changes/2.11.5.json b/.changes/2.11.x/2.11.5.json similarity index 100% rename from .changes/2.11.5.json rename to .changes/2.11.x/2.11.5.json diff --git a/.changes/2.11.6.json b/.changes/2.11.x/2.11.6.json similarity index 100% rename from .changes/2.11.6.json rename to .changes/2.11.x/2.11.6.json diff --git a/.changes/2.11.7.json b/.changes/2.11.x/2.11.7.json similarity index 100% rename from .changes/2.11.7.json rename to .changes/2.11.x/2.11.7.json diff --git a/.changes/2.11.8.json b/.changes/2.11.x/2.11.8.json similarity index 100% rename from .changes/2.11.8.json rename to .changes/2.11.x/2.11.8.json diff --git a/.changes/2.11.9.json b/.changes/2.11.x/2.11.9.json similarity index 100% rename from .changes/2.11.9.json rename to .changes/2.11.x/2.11.9.json diff --git a/.changes/2.12.0.json b/.changes/2.12.x/2.12.0.json similarity index 100% rename from .changes/2.12.0.json rename to .changes/2.12.x/2.12.0.json diff --git a/.changes/2.13.0.json b/.changes/2.13.x/2.13.0.json similarity index 100% rename from .changes/2.13.0.json rename to .changes/2.13.x/2.13.0.json diff --git a/.changes/2.13.1.json b/.changes/2.13.x/2.13.1.json similarity index 100% rename from .changes/2.13.1.json rename to .changes/2.13.x/2.13.1.json diff --git a/.changes/2.13.10.json b/.changes/2.13.x/2.13.10.json similarity index 100% rename from .changes/2.13.10.json rename to .changes/2.13.x/2.13.10.json diff --git a/.changes/2.13.11.json b/.changes/2.13.x/2.13.11.json similarity index 100% rename from .changes/2.13.11.json rename to .changes/2.13.x/2.13.11.json diff --git a/.changes/2.13.12.json b/.changes/2.13.x/2.13.12.json similarity index 100% rename from .changes/2.13.12.json rename to .changes/2.13.x/2.13.12.json diff --git a/.changes/2.13.13.json b/.changes/2.13.x/2.13.13.json similarity index 100% rename from .changes/2.13.13.json rename to .changes/2.13.x/2.13.13.json diff --git a/.changes/2.13.14.json b/.changes/2.13.x/2.13.14.json similarity index 100% rename from .changes/2.13.14.json rename to .changes/2.13.x/2.13.14.json diff --git a/.changes/2.13.15.json b/.changes/2.13.x/2.13.15.json similarity index 100% rename from .changes/2.13.15.json rename to .changes/2.13.x/2.13.15.json diff --git a/.changes/2.13.16.json b/.changes/2.13.x/2.13.16.json similarity index 100% rename from .changes/2.13.16.json rename to .changes/2.13.x/2.13.16.json diff --git a/.changes/2.13.17.json b/.changes/2.13.x/2.13.17.json similarity index 100% rename from .changes/2.13.17.json rename to .changes/2.13.x/2.13.17.json diff --git a/.changes/2.13.18.json b/.changes/2.13.x/2.13.18.json similarity index 100% rename from .changes/2.13.18.json rename to .changes/2.13.x/2.13.18.json diff --git a/.changes/2.13.19.json b/.changes/2.13.x/2.13.19.json similarity index 100% rename from .changes/2.13.19.json rename to .changes/2.13.x/2.13.19.json diff --git a/.changes/2.13.2.json b/.changes/2.13.x/2.13.2.json similarity index 100% rename from .changes/2.13.2.json rename to .changes/2.13.x/2.13.2.json diff --git a/.changes/2.13.20.json b/.changes/2.13.x/2.13.20.json similarity index 100% rename from .changes/2.13.20.json rename to .changes/2.13.x/2.13.20.json diff --git a/.changes/2.13.21.json b/.changes/2.13.x/2.13.21.json similarity index 100% rename from .changes/2.13.21.json rename to .changes/2.13.x/2.13.21.json diff --git a/.changes/2.13.22.json b/.changes/2.13.x/2.13.22.json similarity index 100% rename from .changes/2.13.22.json rename to .changes/2.13.x/2.13.22.json diff --git a/.changes/2.13.23.json b/.changes/2.13.x/2.13.23.json similarity index 100% rename from .changes/2.13.23.json rename to .changes/2.13.x/2.13.23.json diff --git a/.changes/2.13.24.json b/.changes/2.13.x/2.13.24.json similarity index 100% rename from .changes/2.13.24.json rename to .changes/2.13.x/2.13.24.json diff --git a/.changes/2.13.25.json b/.changes/2.13.x/2.13.25.json similarity index 100% rename from .changes/2.13.25.json rename to .changes/2.13.x/2.13.25.json diff --git a/.changes/2.13.26.json b/.changes/2.13.x/2.13.26.json similarity index 100% rename from .changes/2.13.26.json rename to .changes/2.13.x/2.13.26.json diff --git a/.changes/2.13.27.json b/.changes/2.13.x/2.13.27.json similarity index 100% rename from .changes/2.13.27.json rename to .changes/2.13.x/2.13.27.json diff --git a/.changes/2.13.28.json b/.changes/2.13.x/2.13.28.json similarity index 100% rename from .changes/2.13.28.json rename to .changes/2.13.x/2.13.28.json diff --git a/.changes/2.13.29.json b/.changes/2.13.x/2.13.29.json similarity index 100% rename from .changes/2.13.29.json rename to .changes/2.13.x/2.13.29.json diff --git a/.changes/2.13.3.json b/.changes/2.13.x/2.13.3.json similarity index 100% rename from .changes/2.13.3.json rename to .changes/2.13.x/2.13.3.json diff --git a/.changes/2.13.30.json b/.changes/2.13.x/2.13.30.json similarity index 100% rename from .changes/2.13.30.json rename to .changes/2.13.x/2.13.30.json diff --git a/.changes/2.13.31.json b/.changes/2.13.x/2.13.31.json similarity index 100% rename from .changes/2.13.31.json rename to .changes/2.13.x/2.13.31.json diff --git a/.changes/2.13.32.json b/.changes/2.13.x/2.13.32.json similarity index 100% rename from .changes/2.13.32.json rename to .changes/2.13.x/2.13.32.json diff --git a/.changes/2.13.33.json b/.changes/2.13.x/2.13.33.json similarity index 100% rename from .changes/2.13.33.json rename to .changes/2.13.x/2.13.33.json diff --git a/.changes/2.13.34.json b/.changes/2.13.x/2.13.34.json similarity index 100% rename from .changes/2.13.34.json rename to .changes/2.13.x/2.13.34.json diff --git a/.changes/2.13.35.json b/.changes/2.13.x/2.13.35.json similarity index 100% rename from .changes/2.13.35.json rename to .changes/2.13.x/2.13.35.json diff --git a/.changes/2.13.36.json b/.changes/2.13.x/2.13.36.json similarity index 100% rename from .changes/2.13.36.json rename to .changes/2.13.x/2.13.36.json diff --git a/.changes/2.13.37.json b/.changes/2.13.x/2.13.37.json similarity index 100% rename from .changes/2.13.37.json rename to .changes/2.13.x/2.13.37.json diff --git a/.changes/2.13.38.json b/.changes/2.13.x/2.13.38.json similarity index 100% rename from .changes/2.13.38.json rename to .changes/2.13.x/2.13.38.json diff --git a/.changes/2.13.39.json b/.changes/2.13.x/2.13.39.json similarity index 100% rename from .changes/2.13.39.json rename to .changes/2.13.x/2.13.39.json diff --git a/.changes/2.13.4.json b/.changes/2.13.x/2.13.4.json similarity index 100% rename from .changes/2.13.4.json rename to .changes/2.13.x/2.13.4.json diff --git a/.changes/2.13.40.json b/.changes/2.13.x/2.13.40.json similarity index 100% rename from .changes/2.13.40.json rename to .changes/2.13.x/2.13.40.json diff --git a/.changes/2.13.41.json b/.changes/2.13.x/2.13.41.json similarity index 100% rename from .changes/2.13.41.json rename to .changes/2.13.x/2.13.41.json diff --git a/.changes/2.13.42.json b/.changes/2.13.x/2.13.42.json similarity index 100% rename from .changes/2.13.42.json rename to .changes/2.13.x/2.13.42.json diff --git a/.changes/2.13.43.json b/.changes/2.13.x/2.13.43.json similarity index 100% rename from .changes/2.13.43.json rename to .changes/2.13.x/2.13.43.json diff --git a/.changes/2.13.44.json b/.changes/2.13.x/2.13.44.json similarity index 100% rename from .changes/2.13.44.json rename to .changes/2.13.x/2.13.44.json diff --git a/.changes/2.13.45.json b/.changes/2.13.x/2.13.45.json similarity index 100% rename from .changes/2.13.45.json rename to .changes/2.13.x/2.13.45.json diff --git a/.changes/2.13.46.json b/.changes/2.13.x/2.13.46.json similarity index 100% rename from .changes/2.13.46.json rename to .changes/2.13.x/2.13.46.json diff --git a/.changes/2.13.47.json b/.changes/2.13.x/2.13.47.json similarity index 100% rename from .changes/2.13.47.json rename to .changes/2.13.x/2.13.47.json diff --git a/.changes/2.13.48.json b/.changes/2.13.x/2.13.48.json similarity index 100% rename from .changes/2.13.48.json rename to .changes/2.13.x/2.13.48.json diff --git a/.changes/2.13.49.json b/.changes/2.13.x/2.13.49.json similarity index 100% rename from .changes/2.13.49.json rename to .changes/2.13.x/2.13.49.json diff --git a/.changes/2.13.5.json b/.changes/2.13.x/2.13.5.json similarity index 100% rename from .changes/2.13.5.json rename to .changes/2.13.x/2.13.5.json diff --git a/.changes/2.13.50.json b/.changes/2.13.x/2.13.50.json similarity index 100% rename from .changes/2.13.50.json rename to .changes/2.13.x/2.13.50.json diff --git a/.changes/2.13.51.json b/.changes/2.13.x/2.13.51.json similarity index 100% rename from .changes/2.13.51.json rename to .changes/2.13.x/2.13.51.json diff --git a/.changes/2.13.52.json b/.changes/2.13.x/2.13.52.json similarity index 100% rename from .changes/2.13.52.json rename to .changes/2.13.x/2.13.52.json diff --git a/.changes/2.13.53.json b/.changes/2.13.x/2.13.53.json similarity index 100% rename from .changes/2.13.53.json rename to .changes/2.13.x/2.13.53.json diff --git a/.changes/2.13.54.json b/.changes/2.13.x/2.13.54.json similarity index 100% rename from .changes/2.13.54.json rename to .changes/2.13.x/2.13.54.json diff --git a/.changes/2.13.55.json b/.changes/2.13.x/2.13.55.json similarity index 100% rename from .changes/2.13.55.json rename to .changes/2.13.x/2.13.55.json diff --git a/.changes/2.13.56.json b/.changes/2.13.x/2.13.56.json similarity index 100% rename from .changes/2.13.56.json rename to .changes/2.13.x/2.13.56.json diff --git a/.changes/2.13.57.json b/.changes/2.13.x/2.13.57.json similarity index 100% rename from .changes/2.13.57.json rename to .changes/2.13.x/2.13.57.json diff --git a/.changes/2.13.58.json b/.changes/2.13.x/2.13.58.json similarity index 100% rename from .changes/2.13.58.json rename to .changes/2.13.x/2.13.58.json diff --git a/.changes/2.13.59.json b/.changes/2.13.x/2.13.59.json similarity index 100% rename from .changes/2.13.59.json rename to .changes/2.13.x/2.13.59.json diff --git a/.changes/2.13.6.json b/.changes/2.13.x/2.13.6.json similarity index 100% rename from .changes/2.13.6.json rename to .changes/2.13.x/2.13.6.json diff --git a/.changes/2.13.60.json b/.changes/2.13.x/2.13.60.json similarity index 100% rename from .changes/2.13.60.json rename to .changes/2.13.x/2.13.60.json diff --git a/.changes/2.13.61.json b/.changes/2.13.x/2.13.61.json similarity index 100% rename from .changes/2.13.61.json rename to .changes/2.13.x/2.13.61.json diff --git a/.changes/2.13.62.json b/.changes/2.13.x/2.13.62.json similarity index 100% rename from .changes/2.13.62.json rename to .changes/2.13.x/2.13.62.json diff --git a/.changes/2.13.63.json b/.changes/2.13.x/2.13.63.json similarity index 100% rename from .changes/2.13.63.json rename to .changes/2.13.x/2.13.63.json diff --git a/.changes/2.13.64.json b/.changes/2.13.x/2.13.64.json similarity index 100% rename from .changes/2.13.64.json rename to .changes/2.13.x/2.13.64.json diff --git a/.changes/2.13.65.json b/.changes/2.13.x/2.13.65.json similarity index 100% rename from .changes/2.13.65.json rename to .changes/2.13.x/2.13.65.json diff --git a/.changes/2.13.66.json b/.changes/2.13.x/2.13.66.json similarity index 100% rename from .changes/2.13.66.json rename to .changes/2.13.x/2.13.66.json diff --git a/.changes/2.13.67.json b/.changes/2.13.x/2.13.67.json similarity index 100% rename from .changes/2.13.67.json rename to .changes/2.13.x/2.13.67.json diff --git a/.changes/2.13.68.json b/.changes/2.13.x/2.13.68.json similarity index 100% rename from .changes/2.13.68.json rename to .changes/2.13.x/2.13.68.json diff --git a/.changes/2.13.69.json b/.changes/2.13.x/2.13.69.json similarity index 100% rename from .changes/2.13.69.json rename to .changes/2.13.x/2.13.69.json diff --git a/.changes/2.13.7.json b/.changes/2.13.x/2.13.7.json similarity index 100% rename from .changes/2.13.7.json rename to .changes/2.13.x/2.13.7.json diff --git a/.changes/2.13.70.json b/.changes/2.13.x/2.13.70.json similarity index 100% rename from .changes/2.13.70.json rename to .changes/2.13.x/2.13.70.json diff --git a/.changes/2.13.71.json b/.changes/2.13.x/2.13.71.json similarity index 100% rename from .changes/2.13.71.json rename to .changes/2.13.x/2.13.71.json diff --git a/.changes/2.13.72.json b/.changes/2.13.x/2.13.72.json similarity index 100% rename from .changes/2.13.72.json rename to .changes/2.13.x/2.13.72.json diff --git a/.changes/2.13.73.json b/.changes/2.13.x/2.13.73.json similarity index 100% rename from .changes/2.13.73.json rename to .changes/2.13.x/2.13.73.json diff --git a/.changes/2.13.74.json b/.changes/2.13.x/2.13.74.json similarity index 100% rename from .changes/2.13.74.json rename to .changes/2.13.x/2.13.74.json diff --git a/.changes/2.13.75.json b/.changes/2.13.x/2.13.75.json similarity index 100% rename from .changes/2.13.75.json rename to .changes/2.13.x/2.13.75.json diff --git a/.changes/2.13.76.json b/.changes/2.13.x/2.13.76.json similarity index 100% rename from .changes/2.13.76.json rename to .changes/2.13.x/2.13.76.json diff --git a/.changes/2.13.8.json b/.changes/2.13.x/2.13.8.json similarity index 100% rename from .changes/2.13.8.json rename to .changes/2.13.x/2.13.8.json diff --git a/.changes/2.13.9.json b/.changes/2.13.x/2.13.9.json similarity index 100% rename from .changes/2.13.9.json rename to .changes/2.13.x/2.13.9.json diff --git a/.changes/2.14.0.json b/.changes/2.14.x/2.14.0.json similarity index 100% rename from .changes/2.14.0.json rename to .changes/2.14.x/2.14.0.json diff --git a/.changes/2.14.1.json b/.changes/2.14.x/2.14.1.json similarity index 100% rename from .changes/2.14.1.json rename to .changes/2.14.x/2.14.1.json diff --git a/.changes/2.14.10.json b/.changes/2.14.x/2.14.10.json similarity index 100% rename from .changes/2.14.10.json rename to .changes/2.14.x/2.14.10.json diff --git a/.changes/2.14.11.json b/.changes/2.14.x/2.14.11.json similarity index 100% rename from .changes/2.14.11.json rename to .changes/2.14.x/2.14.11.json diff --git a/.changes/2.14.12.json b/.changes/2.14.x/2.14.12.json similarity index 100% rename from .changes/2.14.12.json rename to .changes/2.14.x/2.14.12.json diff --git a/.changes/2.14.13.json b/.changes/2.14.x/2.14.13.json similarity index 100% rename from .changes/2.14.13.json rename to .changes/2.14.x/2.14.13.json diff --git a/.changes/2.14.14.json b/.changes/2.14.x/2.14.14.json similarity index 100% rename from .changes/2.14.14.json rename to .changes/2.14.x/2.14.14.json diff --git a/.changes/2.14.15.json b/.changes/2.14.x/2.14.15.json similarity index 100% rename from .changes/2.14.15.json rename to .changes/2.14.x/2.14.15.json diff --git a/.changes/2.14.16.json b/.changes/2.14.x/2.14.16.json similarity index 100% rename from .changes/2.14.16.json rename to .changes/2.14.x/2.14.16.json diff --git a/.changes/2.14.17.json b/.changes/2.14.x/2.14.17.json similarity index 100% rename from .changes/2.14.17.json rename to .changes/2.14.x/2.14.17.json diff --git a/.changes/2.14.18.json b/.changes/2.14.x/2.14.18.json similarity index 100% rename from .changes/2.14.18.json rename to .changes/2.14.x/2.14.18.json diff --git a/.changes/2.14.19.json b/.changes/2.14.x/2.14.19.json similarity index 100% rename from .changes/2.14.19.json rename to .changes/2.14.x/2.14.19.json diff --git a/.changes/2.14.2.json b/.changes/2.14.x/2.14.2.json similarity index 100% rename from .changes/2.14.2.json rename to .changes/2.14.x/2.14.2.json diff --git a/.changes/2.14.20.json b/.changes/2.14.x/2.14.20.json similarity index 100% rename from .changes/2.14.20.json rename to .changes/2.14.x/2.14.20.json diff --git a/.changes/2.14.21.json b/.changes/2.14.x/2.14.21.json similarity index 100% rename from .changes/2.14.21.json rename to .changes/2.14.x/2.14.21.json diff --git a/.changes/2.14.22.json b/.changes/2.14.x/2.14.22.json similarity index 100% rename from .changes/2.14.22.json rename to .changes/2.14.x/2.14.22.json diff --git a/.changes/2.14.23.json b/.changes/2.14.x/2.14.23.json similarity index 100% rename from .changes/2.14.23.json rename to .changes/2.14.x/2.14.23.json diff --git a/.changes/2.14.24.json b/.changes/2.14.x/2.14.24.json similarity index 100% rename from .changes/2.14.24.json rename to .changes/2.14.x/2.14.24.json diff --git a/.changes/2.14.25.json b/.changes/2.14.x/2.14.25.json similarity index 100% rename from .changes/2.14.25.json rename to .changes/2.14.x/2.14.25.json diff --git a/.changes/2.14.26.json b/.changes/2.14.x/2.14.26.json similarity index 100% rename from .changes/2.14.26.json rename to .changes/2.14.x/2.14.26.json diff --git a/.changes/2.14.27.json b/.changes/2.14.x/2.14.27.json similarity index 100% rename from .changes/2.14.27.json rename to .changes/2.14.x/2.14.27.json diff --git a/.changes/2.14.28.json b/.changes/2.14.x/2.14.28.json similarity index 100% rename from .changes/2.14.28.json rename to .changes/2.14.x/2.14.28.json diff --git a/.changes/2.14.3.json b/.changes/2.14.x/2.14.3.json similarity index 100% rename from .changes/2.14.3.json rename to .changes/2.14.x/2.14.3.json diff --git a/.changes/2.14.4.json b/.changes/2.14.x/2.14.4.json similarity index 100% rename from .changes/2.14.4.json rename to .changes/2.14.x/2.14.4.json diff --git a/.changes/2.14.5.json b/.changes/2.14.x/2.14.5.json similarity index 100% rename from .changes/2.14.5.json rename to .changes/2.14.x/2.14.5.json diff --git a/.changes/2.14.6.json b/.changes/2.14.x/2.14.6.json similarity index 100% rename from .changes/2.14.6.json rename to .changes/2.14.x/2.14.6.json diff --git a/.changes/2.14.7.json b/.changes/2.14.x/2.14.7.json similarity index 100% rename from .changes/2.14.7.json rename to .changes/2.14.x/2.14.7.json diff --git a/.changes/2.14.8.json b/.changes/2.14.x/2.14.8.json similarity index 100% rename from .changes/2.14.8.json rename to .changes/2.14.x/2.14.8.json diff --git a/.changes/2.14.9.json b/.changes/2.14.x/2.14.9.json similarity index 100% rename from .changes/2.14.9.json rename to .changes/2.14.x/2.14.9.json diff --git a/.changes/2.15.0.json b/.changes/2.15.x/2.15.0.json similarity index 100% rename from .changes/2.15.0.json rename to .changes/2.15.x/2.15.0.json diff --git a/.changes/2.15.1.json b/.changes/2.15.x/2.15.1.json similarity index 100% rename from .changes/2.15.1.json rename to .changes/2.15.x/2.15.1.json diff --git a/.changes/2.15.10.json b/.changes/2.15.x/2.15.10.json similarity index 100% rename from .changes/2.15.10.json rename to .changes/2.15.x/2.15.10.json diff --git a/.changes/2.15.11.json b/.changes/2.15.x/2.15.11.json similarity index 100% rename from .changes/2.15.11.json rename to .changes/2.15.x/2.15.11.json diff --git a/.changes/2.15.12.json b/.changes/2.15.x/2.15.12.json similarity index 100% rename from .changes/2.15.12.json rename to .changes/2.15.x/2.15.12.json diff --git a/.changes/2.15.13.json b/.changes/2.15.x/2.15.13.json similarity index 100% rename from .changes/2.15.13.json rename to .changes/2.15.x/2.15.13.json diff --git a/.changes/2.15.14.json b/.changes/2.15.x/2.15.14.json similarity index 100% rename from .changes/2.15.14.json rename to .changes/2.15.x/2.15.14.json diff --git a/.changes/2.15.15.json b/.changes/2.15.x/2.15.15.json similarity index 100% rename from .changes/2.15.15.json rename to .changes/2.15.x/2.15.15.json diff --git a/.changes/2.15.16.json b/.changes/2.15.x/2.15.16.json similarity index 100% rename from .changes/2.15.16.json rename to .changes/2.15.x/2.15.16.json diff --git a/.changes/2.15.17.json b/.changes/2.15.x/2.15.17.json similarity index 100% rename from .changes/2.15.17.json rename to .changes/2.15.x/2.15.17.json diff --git a/.changes/2.15.18.json b/.changes/2.15.x/2.15.18.json similarity index 100% rename from .changes/2.15.18.json rename to .changes/2.15.x/2.15.18.json diff --git a/.changes/2.15.19.json b/.changes/2.15.x/2.15.19.json similarity index 100% rename from .changes/2.15.19.json rename to .changes/2.15.x/2.15.19.json diff --git a/.changes/2.15.2.json b/.changes/2.15.x/2.15.2.json similarity index 100% rename from .changes/2.15.2.json rename to .changes/2.15.x/2.15.2.json diff --git a/.changes/2.15.20.json b/.changes/2.15.x/2.15.20.json similarity index 100% rename from .changes/2.15.20.json rename to .changes/2.15.x/2.15.20.json diff --git a/.changes/2.15.21.json b/.changes/2.15.x/2.15.21.json similarity index 100% rename from .changes/2.15.21.json rename to .changes/2.15.x/2.15.21.json diff --git a/.changes/2.15.22.json b/.changes/2.15.x/2.15.22.json similarity index 100% rename from .changes/2.15.22.json rename to .changes/2.15.x/2.15.22.json diff --git a/.changes/2.15.23.json b/.changes/2.15.x/2.15.23.json similarity index 100% rename from .changes/2.15.23.json rename to .changes/2.15.x/2.15.23.json diff --git a/.changes/2.15.24.json b/.changes/2.15.x/2.15.24.json similarity index 100% rename from .changes/2.15.24.json rename to .changes/2.15.x/2.15.24.json diff --git a/.changes/2.15.25.json b/.changes/2.15.x/2.15.25.json similarity index 100% rename from .changes/2.15.25.json rename to .changes/2.15.x/2.15.25.json diff --git a/.changes/2.15.26.json b/.changes/2.15.x/2.15.26.json similarity index 100% rename from .changes/2.15.26.json rename to .changes/2.15.x/2.15.26.json diff --git a/.changes/2.15.27.json b/.changes/2.15.x/2.15.27.json similarity index 100% rename from .changes/2.15.27.json rename to .changes/2.15.x/2.15.27.json diff --git a/.changes/2.15.28.json b/.changes/2.15.x/2.15.28.json similarity index 100% rename from .changes/2.15.28.json rename to .changes/2.15.x/2.15.28.json diff --git a/.changes/2.15.29.json b/.changes/2.15.x/2.15.29.json similarity index 100% rename from .changes/2.15.29.json rename to .changes/2.15.x/2.15.29.json diff --git a/.changes/2.15.3.json b/.changes/2.15.x/2.15.3.json similarity index 100% rename from .changes/2.15.3.json rename to .changes/2.15.x/2.15.3.json diff --git a/.changes/2.15.30.json b/.changes/2.15.x/2.15.30.json similarity index 100% rename from .changes/2.15.30.json rename to .changes/2.15.x/2.15.30.json diff --git a/.changes/2.15.31.json b/.changes/2.15.x/2.15.31.json similarity index 100% rename from .changes/2.15.31.json rename to .changes/2.15.x/2.15.31.json diff --git a/.changes/2.15.32.json b/.changes/2.15.x/2.15.32.json similarity index 100% rename from .changes/2.15.32.json rename to .changes/2.15.x/2.15.32.json diff --git a/.changes/2.15.33.json b/.changes/2.15.x/2.15.33.json similarity index 100% rename from .changes/2.15.33.json rename to .changes/2.15.x/2.15.33.json diff --git a/.changes/2.15.34.json b/.changes/2.15.x/2.15.34.json similarity index 100% rename from .changes/2.15.34.json rename to .changes/2.15.x/2.15.34.json diff --git a/.changes/2.15.35.json b/.changes/2.15.x/2.15.35.json similarity index 100% rename from .changes/2.15.35.json rename to .changes/2.15.x/2.15.35.json diff --git a/.changes/2.15.36.json b/.changes/2.15.x/2.15.36.json similarity index 100% rename from .changes/2.15.36.json rename to .changes/2.15.x/2.15.36.json diff --git a/.changes/2.15.37.json b/.changes/2.15.x/2.15.37.json similarity index 100% rename from .changes/2.15.37.json rename to .changes/2.15.x/2.15.37.json diff --git a/.changes/2.15.38.json b/.changes/2.15.x/2.15.38.json similarity index 100% rename from .changes/2.15.38.json rename to .changes/2.15.x/2.15.38.json diff --git a/.changes/2.15.39.json b/.changes/2.15.x/2.15.39.json similarity index 100% rename from .changes/2.15.39.json rename to .changes/2.15.x/2.15.39.json diff --git a/.changes/2.15.4.json b/.changes/2.15.x/2.15.4.json similarity index 100% rename from .changes/2.15.4.json rename to .changes/2.15.x/2.15.4.json diff --git a/.changes/2.15.40.json b/.changes/2.15.x/2.15.40.json similarity index 100% rename from .changes/2.15.40.json rename to .changes/2.15.x/2.15.40.json diff --git a/.changes/2.15.41.json b/.changes/2.15.x/2.15.41.json similarity index 100% rename from .changes/2.15.41.json rename to .changes/2.15.x/2.15.41.json diff --git a/.changes/2.15.42.json b/.changes/2.15.x/2.15.42.json similarity index 100% rename from .changes/2.15.42.json rename to .changes/2.15.x/2.15.42.json diff --git a/.changes/2.15.43.json b/.changes/2.15.x/2.15.43.json similarity index 100% rename from .changes/2.15.43.json rename to .changes/2.15.x/2.15.43.json diff --git a/.changes/2.15.44.json b/.changes/2.15.x/2.15.44.json similarity index 100% rename from .changes/2.15.44.json rename to .changes/2.15.x/2.15.44.json diff --git a/.changes/2.15.45.json b/.changes/2.15.x/2.15.45.json similarity index 100% rename from .changes/2.15.45.json rename to .changes/2.15.x/2.15.45.json diff --git a/.changes/2.15.46.json b/.changes/2.15.x/2.15.46.json similarity index 100% rename from .changes/2.15.46.json rename to .changes/2.15.x/2.15.46.json diff --git a/.changes/2.15.47.json b/.changes/2.15.x/2.15.47.json similarity index 100% rename from .changes/2.15.47.json rename to .changes/2.15.x/2.15.47.json diff --git a/.changes/2.15.48.json b/.changes/2.15.x/2.15.48.json similarity index 100% rename from .changes/2.15.48.json rename to .changes/2.15.x/2.15.48.json diff --git a/.changes/2.15.49.json b/.changes/2.15.x/2.15.49.json similarity index 100% rename from .changes/2.15.49.json rename to .changes/2.15.x/2.15.49.json diff --git a/.changes/2.15.5.json b/.changes/2.15.x/2.15.5.json similarity index 100% rename from .changes/2.15.5.json rename to .changes/2.15.x/2.15.5.json diff --git a/.changes/2.15.50.json b/.changes/2.15.x/2.15.50.json similarity index 100% rename from .changes/2.15.50.json rename to .changes/2.15.x/2.15.50.json diff --git a/.changes/2.15.51.json b/.changes/2.15.x/2.15.51.json similarity index 100% rename from .changes/2.15.51.json rename to .changes/2.15.x/2.15.51.json diff --git a/.changes/2.15.52.json b/.changes/2.15.x/2.15.52.json similarity index 100% rename from .changes/2.15.52.json rename to .changes/2.15.x/2.15.52.json diff --git a/.changes/2.15.53.json b/.changes/2.15.x/2.15.53.json similarity index 100% rename from .changes/2.15.53.json rename to .changes/2.15.x/2.15.53.json diff --git a/.changes/2.15.54.json b/.changes/2.15.x/2.15.54.json similarity index 100% rename from .changes/2.15.54.json rename to .changes/2.15.x/2.15.54.json diff --git a/.changes/2.15.55.json b/.changes/2.15.x/2.15.55.json similarity index 100% rename from .changes/2.15.55.json rename to .changes/2.15.x/2.15.55.json diff --git a/.changes/2.15.56.json b/.changes/2.15.x/2.15.56.json similarity index 100% rename from .changes/2.15.56.json rename to .changes/2.15.x/2.15.56.json diff --git a/.changes/2.15.57.json b/.changes/2.15.x/2.15.57.json similarity index 100% rename from .changes/2.15.57.json rename to .changes/2.15.x/2.15.57.json diff --git a/.changes/2.15.58.json b/.changes/2.15.x/2.15.58.json similarity index 100% rename from .changes/2.15.58.json rename to .changes/2.15.x/2.15.58.json diff --git a/.changes/2.15.59.json b/.changes/2.15.x/2.15.59.json similarity index 100% rename from .changes/2.15.59.json rename to .changes/2.15.x/2.15.59.json diff --git a/.changes/2.15.6.json b/.changes/2.15.x/2.15.6.json similarity index 100% rename from .changes/2.15.6.json rename to .changes/2.15.x/2.15.6.json diff --git a/.changes/2.15.60.json b/.changes/2.15.x/2.15.60.json similarity index 100% rename from .changes/2.15.60.json rename to .changes/2.15.x/2.15.60.json diff --git a/.changes/2.15.61.json b/.changes/2.15.x/2.15.61.json similarity index 100% rename from .changes/2.15.61.json rename to .changes/2.15.x/2.15.61.json diff --git a/.changes/2.15.62.json b/.changes/2.15.x/2.15.62.json similarity index 100% rename from .changes/2.15.62.json rename to .changes/2.15.x/2.15.62.json diff --git a/.changes/2.15.63.json b/.changes/2.15.x/2.15.63.json similarity index 100% rename from .changes/2.15.63.json rename to .changes/2.15.x/2.15.63.json diff --git a/.changes/2.15.64.json b/.changes/2.15.x/2.15.64.json similarity index 100% rename from .changes/2.15.64.json rename to .changes/2.15.x/2.15.64.json diff --git a/.changes/2.15.65.json b/.changes/2.15.x/2.15.65.json similarity index 100% rename from .changes/2.15.65.json rename to .changes/2.15.x/2.15.65.json diff --git a/.changes/2.15.66.json b/.changes/2.15.x/2.15.66.json similarity index 100% rename from .changes/2.15.66.json rename to .changes/2.15.x/2.15.66.json diff --git a/.changes/2.15.67.json b/.changes/2.15.x/2.15.67.json similarity index 100% rename from .changes/2.15.67.json rename to .changes/2.15.x/2.15.67.json diff --git a/.changes/2.15.68.json b/.changes/2.15.x/2.15.68.json similarity index 100% rename from .changes/2.15.68.json rename to .changes/2.15.x/2.15.68.json diff --git a/.changes/2.15.69.json b/.changes/2.15.x/2.15.69.json similarity index 100% rename from .changes/2.15.69.json rename to .changes/2.15.x/2.15.69.json diff --git a/.changes/2.15.7.json b/.changes/2.15.x/2.15.7.json similarity index 100% rename from .changes/2.15.7.json rename to .changes/2.15.x/2.15.7.json diff --git a/.changes/2.15.70.json b/.changes/2.15.x/2.15.70.json similarity index 100% rename from .changes/2.15.70.json rename to .changes/2.15.x/2.15.70.json diff --git a/.changes/2.15.71.json b/.changes/2.15.x/2.15.71.json similarity index 100% rename from .changes/2.15.71.json rename to .changes/2.15.x/2.15.71.json diff --git a/.changes/2.15.72.json b/.changes/2.15.x/2.15.72.json similarity index 100% rename from .changes/2.15.72.json rename to .changes/2.15.x/2.15.72.json diff --git a/.changes/2.15.73.json b/.changes/2.15.x/2.15.73.json similarity index 100% rename from .changes/2.15.73.json rename to .changes/2.15.x/2.15.73.json diff --git a/.changes/2.15.74.json b/.changes/2.15.x/2.15.74.json similarity index 100% rename from .changes/2.15.74.json rename to .changes/2.15.x/2.15.74.json diff --git a/.changes/2.15.75.json b/.changes/2.15.x/2.15.75.json similarity index 100% rename from .changes/2.15.75.json rename to .changes/2.15.x/2.15.75.json diff --git a/.changes/2.15.76.json b/.changes/2.15.x/2.15.76.json similarity index 100% rename from .changes/2.15.76.json rename to .changes/2.15.x/2.15.76.json diff --git a/.changes/2.15.77.json b/.changes/2.15.x/2.15.77.json similarity index 100% rename from .changes/2.15.77.json rename to .changes/2.15.x/2.15.77.json diff --git a/.changes/2.15.78.json b/.changes/2.15.x/2.15.78.json similarity index 100% rename from .changes/2.15.78.json rename to .changes/2.15.x/2.15.78.json diff --git a/.changes/2.15.79.json b/.changes/2.15.x/2.15.79.json similarity index 100% rename from .changes/2.15.79.json rename to .changes/2.15.x/2.15.79.json diff --git a/.changes/2.15.8.json b/.changes/2.15.x/2.15.8.json similarity index 100% rename from .changes/2.15.8.json rename to .changes/2.15.x/2.15.8.json diff --git a/.changes/2.15.80.json b/.changes/2.15.x/2.15.80.json similarity index 100% rename from .changes/2.15.80.json rename to .changes/2.15.x/2.15.80.json diff --git a/.changes/2.15.81.json b/.changes/2.15.x/2.15.81.json similarity index 100% rename from .changes/2.15.81.json rename to .changes/2.15.x/2.15.81.json diff --git a/.changes/2.15.82.json b/.changes/2.15.x/2.15.82.json similarity index 100% rename from .changes/2.15.82.json rename to .changes/2.15.x/2.15.82.json diff --git a/.changes/2.15.9.json b/.changes/2.15.x/2.15.9.json similarity index 100% rename from .changes/2.15.9.json rename to .changes/2.15.x/2.15.9.json diff --git a/.changes/2.16.0.json b/.changes/2.16.x/2.16.0.json similarity index 100% rename from .changes/2.16.0.json rename to .changes/2.16.x/2.16.0.json diff --git a/.changes/2.16.1.json b/.changes/2.16.x/2.16.1.json similarity index 100% rename from .changes/2.16.1.json rename to .changes/2.16.x/2.16.1.json diff --git a/.changes/2.16.10.json b/.changes/2.16.x/2.16.10.json similarity index 100% rename from .changes/2.16.10.json rename to .changes/2.16.x/2.16.10.json diff --git a/.changes/2.16.100.json b/.changes/2.16.x/2.16.100.json similarity index 100% rename from .changes/2.16.100.json rename to .changes/2.16.x/2.16.100.json diff --git a/.changes/2.16.101.json b/.changes/2.16.x/2.16.101.json similarity index 100% rename from .changes/2.16.101.json rename to .changes/2.16.x/2.16.101.json diff --git a/.changes/2.16.102.json b/.changes/2.16.x/2.16.102.json similarity index 100% rename from .changes/2.16.102.json rename to .changes/2.16.x/2.16.102.json diff --git a/.changes/2.16.103.json b/.changes/2.16.x/2.16.103.json similarity index 100% rename from .changes/2.16.103.json rename to .changes/2.16.x/2.16.103.json diff --git a/.changes/2.16.104.json b/.changes/2.16.x/2.16.104.json similarity index 100% rename from .changes/2.16.104.json rename to .changes/2.16.x/2.16.104.json diff --git a/.changes/2.16.11.json b/.changes/2.16.x/2.16.11.json similarity index 100% rename from .changes/2.16.11.json rename to .changes/2.16.x/2.16.11.json diff --git a/.changes/2.16.12.json b/.changes/2.16.x/2.16.12.json similarity index 100% rename from .changes/2.16.12.json rename to .changes/2.16.x/2.16.12.json diff --git a/.changes/2.16.13.json b/.changes/2.16.x/2.16.13.json similarity index 100% rename from .changes/2.16.13.json rename to .changes/2.16.x/2.16.13.json diff --git a/.changes/2.16.14.json b/.changes/2.16.x/2.16.14.json similarity index 100% rename from .changes/2.16.14.json rename to .changes/2.16.x/2.16.14.json diff --git a/.changes/2.16.15.json b/.changes/2.16.x/2.16.15.json similarity index 100% rename from .changes/2.16.15.json rename to .changes/2.16.x/2.16.15.json diff --git a/.changes/2.16.16.json b/.changes/2.16.x/2.16.16.json similarity index 100% rename from .changes/2.16.16.json rename to .changes/2.16.x/2.16.16.json diff --git a/.changes/2.16.17.json b/.changes/2.16.x/2.16.17.json similarity index 100% rename from .changes/2.16.17.json rename to .changes/2.16.x/2.16.17.json diff --git a/.changes/2.16.18.json b/.changes/2.16.x/2.16.18.json similarity index 100% rename from .changes/2.16.18.json rename to .changes/2.16.x/2.16.18.json diff --git a/.changes/2.16.19.json b/.changes/2.16.x/2.16.19.json similarity index 100% rename from .changes/2.16.19.json rename to .changes/2.16.x/2.16.19.json diff --git a/.changes/2.16.2.json b/.changes/2.16.x/2.16.2.json similarity index 100% rename from .changes/2.16.2.json rename to .changes/2.16.x/2.16.2.json diff --git a/.changes/2.16.20.json b/.changes/2.16.x/2.16.20.json similarity index 100% rename from .changes/2.16.20.json rename to .changes/2.16.x/2.16.20.json diff --git a/.changes/2.16.21.json b/.changes/2.16.x/2.16.21.json similarity index 100% rename from .changes/2.16.21.json rename to .changes/2.16.x/2.16.21.json diff --git a/.changes/2.16.22.json b/.changes/2.16.x/2.16.22.json similarity index 100% rename from .changes/2.16.22.json rename to .changes/2.16.x/2.16.22.json diff --git a/.changes/2.16.23.json b/.changes/2.16.x/2.16.23.json similarity index 100% rename from .changes/2.16.23.json rename to .changes/2.16.x/2.16.23.json diff --git a/.changes/2.16.24.json b/.changes/2.16.x/2.16.24.json similarity index 100% rename from .changes/2.16.24.json rename to .changes/2.16.x/2.16.24.json diff --git a/.changes/2.16.25.json b/.changes/2.16.x/2.16.25.json similarity index 100% rename from .changes/2.16.25.json rename to .changes/2.16.x/2.16.25.json diff --git a/.changes/2.16.26.json b/.changes/2.16.x/2.16.26.json similarity index 100% rename from .changes/2.16.26.json rename to .changes/2.16.x/2.16.26.json diff --git a/.changes/2.16.27.json b/.changes/2.16.x/2.16.27.json similarity index 100% rename from .changes/2.16.27.json rename to .changes/2.16.x/2.16.27.json diff --git a/.changes/2.16.28.json b/.changes/2.16.x/2.16.28.json similarity index 100% rename from .changes/2.16.28.json rename to .changes/2.16.x/2.16.28.json diff --git a/.changes/2.16.29.json b/.changes/2.16.x/2.16.29.json similarity index 100% rename from .changes/2.16.29.json rename to .changes/2.16.x/2.16.29.json diff --git a/.changes/2.16.3.json b/.changes/2.16.x/2.16.3.json similarity index 100% rename from .changes/2.16.3.json rename to .changes/2.16.x/2.16.3.json diff --git a/.changes/2.16.30.json b/.changes/2.16.x/2.16.30.json similarity index 100% rename from .changes/2.16.30.json rename to .changes/2.16.x/2.16.30.json diff --git a/.changes/2.16.31.json b/.changes/2.16.x/2.16.31.json similarity index 100% rename from .changes/2.16.31.json rename to .changes/2.16.x/2.16.31.json diff --git a/.changes/2.16.32.json b/.changes/2.16.x/2.16.32.json similarity index 100% rename from .changes/2.16.32.json rename to .changes/2.16.x/2.16.32.json diff --git a/.changes/2.16.33.json b/.changes/2.16.x/2.16.33.json similarity index 100% rename from .changes/2.16.33.json rename to .changes/2.16.x/2.16.33.json diff --git a/.changes/2.16.34.json b/.changes/2.16.x/2.16.34.json similarity index 100% rename from .changes/2.16.34.json rename to .changes/2.16.x/2.16.34.json diff --git a/.changes/2.16.35.json b/.changes/2.16.x/2.16.35.json similarity index 100% rename from .changes/2.16.35.json rename to .changes/2.16.x/2.16.35.json diff --git a/.changes/2.16.36.json b/.changes/2.16.x/2.16.36.json similarity index 100% rename from .changes/2.16.36.json rename to .changes/2.16.x/2.16.36.json diff --git a/.changes/2.16.37.json b/.changes/2.16.x/2.16.37.json similarity index 100% rename from .changes/2.16.37.json rename to .changes/2.16.x/2.16.37.json diff --git a/.changes/2.16.38.json b/.changes/2.16.x/2.16.38.json similarity index 100% rename from .changes/2.16.38.json rename to .changes/2.16.x/2.16.38.json diff --git a/.changes/2.16.39.json b/.changes/2.16.x/2.16.39.json similarity index 100% rename from .changes/2.16.39.json rename to .changes/2.16.x/2.16.39.json diff --git a/.changes/2.16.4.json b/.changes/2.16.x/2.16.4.json similarity index 100% rename from .changes/2.16.4.json rename to .changes/2.16.x/2.16.4.json diff --git a/.changes/2.16.40.json b/.changes/2.16.x/2.16.40.json similarity index 100% rename from .changes/2.16.40.json rename to .changes/2.16.x/2.16.40.json diff --git a/.changes/2.16.41.json b/.changes/2.16.x/2.16.41.json similarity index 100% rename from .changes/2.16.41.json rename to .changes/2.16.x/2.16.41.json diff --git a/.changes/2.16.42.json b/.changes/2.16.x/2.16.42.json similarity index 100% rename from .changes/2.16.42.json rename to .changes/2.16.x/2.16.42.json diff --git a/.changes/2.16.43.json b/.changes/2.16.x/2.16.43.json similarity index 100% rename from .changes/2.16.43.json rename to .changes/2.16.x/2.16.43.json diff --git a/.changes/2.16.44.json b/.changes/2.16.x/2.16.44.json similarity index 100% rename from .changes/2.16.44.json rename to .changes/2.16.x/2.16.44.json diff --git a/.changes/2.16.45.json b/.changes/2.16.x/2.16.45.json similarity index 100% rename from .changes/2.16.45.json rename to .changes/2.16.x/2.16.45.json diff --git a/.changes/2.16.46.json b/.changes/2.16.x/2.16.46.json similarity index 100% rename from .changes/2.16.46.json rename to .changes/2.16.x/2.16.46.json diff --git a/.changes/2.16.47.json b/.changes/2.16.x/2.16.47.json similarity index 100% rename from .changes/2.16.47.json rename to .changes/2.16.x/2.16.47.json diff --git a/.changes/2.16.48.json b/.changes/2.16.x/2.16.48.json similarity index 100% rename from .changes/2.16.48.json rename to .changes/2.16.x/2.16.48.json diff --git a/.changes/2.16.49.json b/.changes/2.16.x/2.16.49.json similarity index 100% rename from .changes/2.16.49.json rename to .changes/2.16.x/2.16.49.json diff --git a/.changes/2.16.5.json b/.changes/2.16.x/2.16.5.json similarity index 100% rename from .changes/2.16.5.json rename to .changes/2.16.x/2.16.5.json diff --git a/.changes/2.16.50.json b/.changes/2.16.x/2.16.50.json similarity index 100% rename from .changes/2.16.50.json rename to .changes/2.16.x/2.16.50.json diff --git a/.changes/2.16.51.json b/.changes/2.16.x/2.16.51.json similarity index 100% rename from .changes/2.16.51.json rename to .changes/2.16.x/2.16.51.json diff --git a/.changes/2.16.52.json b/.changes/2.16.x/2.16.52.json similarity index 100% rename from .changes/2.16.52.json rename to .changes/2.16.x/2.16.52.json diff --git a/.changes/2.16.53.json b/.changes/2.16.x/2.16.53.json similarity index 100% rename from .changes/2.16.53.json rename to .changes/2.16.x/2.16.53.json diff --git a/.changes/2.16.54.json b/.changes/2.16.x/2.16.54.json similarity index 100% rename from .changes/2.16.54.json rename to .changes/2.16.x/2.16.54.json diff --git a/.changes/2.16.55.json b/.changes/2.16.x/2.16.55.json similarity index 100% rename from .changes/2.16.55.json rename to .changes/2.16.x/2.16.55.json diff --git a/.changes/2.16.56.json b/.changes/2.16.x/2.16.56.json similarity index 100% rename from .changes/2.16.56.json rename to .changes/2.16.x/2.16.56.json diff --git a/.changes/2.16.57.json b/.changes/2.16.x/2.16.57.json similarity index 100% rename from .changes/2.16.57.json rename to .changes/2.16.x/2.16.57.json diff --git a/.changes/2.16.58.json b/.changes/2.16.x/2.16.58.json similarity index 100% rename from .changes/2.16.58.json rename to .changes/2.16.x/2.16.58.json diff --git a/.changes/2.16.59.json b/.changes/2.16.x/2.16.59.json similarity index 100% rename from .changes/2.16.59.json rename to .changes/2.16.x/2.16.59.json diff --git a/.changes/2.16.6.json b/.changes/2.16.x/2.16.6.json similarity index 100% rename from .changes/2.16.6.json rename to .changes/2.16.x/2.16.6.json diff --git a/.changes/2.16.60.json b/.changes/2.16.x/2.16.60.json similarity index 100% rename from .changes/2.16.60.json rename to .changes/2.16.x/2.16.60.json diff --git a/.changes/2.16.61.json b/.changes/2.16.x/2.16.61.json similarity index 100% rename from .changes/2.16.61.json rename to .changes/2.16.x/2.16.61.json diff --git a/.changes/2.16.62.json b/.changes/2.16.x/2.16.62.json similarity index 100% rename from .changes/2.16.62.json rename to .changes/2.16.x/2.16.62.json diff --git a/.changes/2.16.63.json b/.changes/2.16.x/2.16.63.json similarity index 100% rename from .changes/2.16.63.json rename to .changes/2.16.x/2.16.63.json diff --git a/.changes/2.16.64.json b/.changes/2.16.x/2.16.64.json similarity index 100% rename from .changes/2.16.64.json rename to .changes/2.16.x/2.16.64.json diff --git a/.changes/2.16.65.json b/.changes/2.16.x/2.16.65.json similarity index 100% rename from .changes/2.16.65.json rename to .changes/2.16.x/2.16.65.json diff --git a/.changes/2.16.66.json b/.changes/2.16.x/2.16.66.json similarity index 100% rename from .changes/2.16.66.json rename to .changes/2.16.x/2.16.66.json diff --git a/.changes/2.16.67.json b/.changes/2.16.x/2.16.67.json similarity index 100% rename from .changes/2.16.67.json rename to .changes/2.16.x/2.16.67.json diff --git a/.changes/2.16.68.json b/.changes/2.16.x/2.16.68.json similarity index 100% rename from .changes/2.16.68.json rename to .changes/2.16.x/2.16.68.json diff --git a/.changes/2.16.69.json b/.changes/2.16.x/2.16.69.json similarity index 100% rename from .changes/2.16.69.json rename to .changes/2.16.x/2.16.69.json diff --git a/.changes/2.16.7.json b/.changes/2.16.x/2.16.7.json similarity index 100% rename from .changes/2.16.7.json rename to .changes/2.16.x/2.16.7.json diff --git a/.changes/2.16.70.json b/.changes/2.16.x/2.16.70.json similarity index 100% rename from .changes/2.16.70.json rename to .changes/2.16.x/2.16.70.json diff --git a/.changes/2.16.71.json b/.changes/2.16.x/2.16.71.json similarity index 100% rename from .changes/2.16.71.json rename to .changes/2.16.x/2.16.71.json diff --git a/.changes/2.16.72.json b/.changes/2.16.x/2.16.72.json similarity index 100% rename from .changes/2.16.72.json rename to .changes/2.16.x/2.16.72.json diff --git a/.changes/2.16.73.json b/.changes/2.16.x/2.16.73.json similarity index 100% rename from .changes/2.16.73.json rename to .changes/2.16.x/2.16.73.json diff --git a/.changes/2.16.74.json b/.changes/2.16.x/2.16.74.json similarity index 100% rename from .changes/2.16.74.json rename to .changes/2.16.x/2.16.74.json diff --git a/.changes/2.16.75.json b/.changes/2.16.x/2.16.75.json similarity index 100% rename from .changes/2.16.75.json rename to .changes/2.16.x/2.16.75.json diff --git a/.changes/2.16.76.json b/.changes/2.16.x/2.16.76.json similarity index 100% rename from .changes/2.16.76.json rename to .changes/2.16.x/2.16.76.json diff --git a/.changes/2.16.77.json b/.changes/2.16.x/2.16.77.json similarity index 100% rename from .changes/2.16.77.json rename to .changes/2.16.x/2.16.77.json diff --git a/.changes/2.16.78.json b/.changes/2.16.x/2.16.78.json similarity index 100% rename from .changes/2.16.78.json rename to .changes/2.16.x/2.16.78.json diff --git a/.changes/2.16.79.json b/.changes/2.16.x/2.16.79.json similarity index 100% rename from .changes/2.16.79.json rename to .changes/2.16.x/2.16.79.json diff --git a/.changes/2.16.8.json b/.changes/2.16.x/2.16.8.json similarity index 100% rename from .changes/2.16.8.json rename to .changes/2.16.x/2.16.8.json diff --git a/.changes/2.16.80.json b/.changes/2.16.x/2.16.80.json similarity index 100% rename from .changes/2.16.80.json rename to .changes/2.16.x/2.16.80.json diff --git a/.changes/2.16.81.json b/.changes/2.16.x/2.16.81.json similarity index 100% rename from .changes/2.16.81.json rename to .changes/2.16.x/2.16.81.json diff --git a/.changes/2.16.82.json b/.changes/2.16.x/2.16.82.json similarity index 100% rename from .changes/2.16.82.json rename to .changes/2.16.x/2.16.82.json diff --git a/.changes/2.16.83.json b/.changes/2.16.x/2.16.83.json similarity index 100% rename from .changes/2.16.83.json rename to .changes/2.16.x/2.16.83.json diff --git a/.changes/2.16.84.json b/.changes/2.16.x/2.16.84.json similarity index 100% rename from .changes/2.16.84.json rename to .changes/2.16.x/2.16.84.json diff --git a/.changes/2.16.85.json b/.changes/2.16.x/2.16.85.json similarity index 100% rename from .changes/2.16.85.json rename to .changes/2.16.x/2.16.85.json diff --git a/.changes/2.16.86.json b/.changes/2.16.x/2.16.86.json similarity index 100% rename from .changes/2.16.86.json rename to .changes/2.16.x/2.16.86.json diff --git a/.changes/2.16.87.json b/.changes/2.16.x/2.16.87.json similarity index 100% rename from .changes/2.16.87.json rename to .changes/2.16.x/2.16.87.json diff --git a/.changes/2.16.88.json b/.changes/2.16.x/2.16.88.json similarity index 100% rename from .changes/2.16.88.json rename to .changes/2.16.x/2.16.88.json diff --git a/.changes/2.16.89.json b/.changes/2.16.x/2.16.89.json similarity index 100% rename from .changes/2.16.89.json rename to .changes/2.16.x/2.16.89.json diff --git a/.changes/2.16.9.json b/.changes/2.16.x/2.16.9.json similarity index 100% rename from .changes/2.16.9.json rename to .changes/2.16.x/2.16.9.json diff --git a/.changes/2.16.90.json b/.changes/2.16.x/2.16.90.json similarity index 100% rename from .changes/2.16.90.json rename to .changes/2.16.x/2.16.90.json diff --git a/.changes/2.16.91.json b/.changes/2.16.x/2.16.91.json similarity index 100% rename from .changes/2.16.91.json rename to .changes/2.16.x/2.16.91.json diff --git a/.changes/2.16.92.json b/.changes/2.16.x/2.16.92.json similarity index 100% rename from .changes/2.16.92.json rename to .changes/2.16.x/2.16.92.json diff --git a/.changes/2.16.93.json b/.changes/2.16.x/2.16.93.json similarity index 100% rename from .changes/2.16.93.json rename to .changes/2.16.x/2.16.93.json diff --git a/.changes/2.16.94.json b/.changes/2.16.x/2.16.94.json similarity index 100% rename from .changes/2.16.94.json rename to .changes/2.16.x/2.16.94.json diff --git a/.changes/2.16.95.json b/.changes/2.16.x/2.16.95.json similarity index 100% rename from .changes/2.16.95.json rename to .changes/2.16.x/2.16.95.json diff --git a/.changes/2.16.96.json b/.changes/2.16.x/2.16.96.json similarity index 100% rename from .changes/2.16.96.json rename to .changes/2.16.x/2.16.96.json diff --git a/.changes/2.16.97.json b/.changes/2.16.x/2.16.97.json similarity index 100% rename from .changes/2.16.97.json rename to .changes/2.16.x/2.16.97.json diff --git a/.changes/2.16.98.json b/.changes/2.16.x/2.16.98.json similarity index 100% rename from .changes/2.16.98.json rename to .changes/2.16.x/2.16.98.json diff --git a/.changes/2.16.99.json b/.changes/2.16.x/2.16.99.json similarity index 100% rename from .changes/2.16.99.json rename to .changes/2.16.x/2.16.99.json diff --git a/.changes/2.17.0.json b/.changes/2.17.x/2.17.0.json similarity index 100% rename from .changes/2.17.0.json rename to .changes/2.17.x/2.17.0.json diff --git a/.changes/2.17.1.json b/.changes/2.17.x/2.17.1.json similarity index 100% rename from .changes/2.17.1.json rename to .changes/2.17.x/2.17.1.json diff --git a/.changes/2.17.10.json b/.changes/2.17.x/2.17.10.json similarity index 100% rename from .changes/2.17.10.json rename to .changes/2.17.x/2.17.10.json diff --git a/.changes/2.17.100.json b/.changes/2.17.x/2.17.100.json similarity index 100% rename from .changes/2.17.100.json rename to .changes/2.17.x/2.17.100.json diff --git a/.changes/2.17.101.json b/.changes/2.17.x/2.17.101.json similarity index 100% rename from .changes/2.17.101.json rename to .changes/2.17.x/2.17.101.json diff --git a/.changes/2.17.102.json b/.changes/2.17.x/2.17.102.json similarity index 100% rename from .changes/2.17.102.json rename to .changes/2.17.x/2.17.102.json diff --git a/.changes/2.17.103.json b/.changes/2.17.x/2.17.103.json similarity index 100% rename from .changes/2.17.103.json rename to .changes/2.17.x/2.17.103.json diff --git a/.changes/2.17.104.json b/.changes/2.17.x/2.17.104.json similarity index 100% rename from .changes/2.17.104.json rename to .changes/2.17.x/2.17.104.json diff --git a/.changes/2.17.105.json b/.changes/2.17.x/2.17.105.json similarity index 100% rename from .changes/2.17.105.json rename to .changes/2.17.x/2.17.105.json diff --git a/.changes/2.17.106.json b/.changes/2.17.x/2.17.106.json similarity index 100% rename from .changes/2.17.106.json rename to .changes/2.17.x/2.17.106.json diff --git a/.changes/2.17.107.json b/.changes/2.17.x/2.17.107.json similarity index 100% rename from .changes/2.17.107.json rename to .changes/2.17.x/2.17.107.json diff --git a/.changes/2.17.108.json b/.changes/2.17.x/2.17.108.json similarity index 100% rename from .changes/2.17.108.json rename to .changes/2.17.x/2.17.108.json diff --git a/.changes/2.17.109.json b/.changes/2.17.x/2.17.109.json similarity index 100% rename from .changes/2.17.109.json rename to .changes/2.17.x/2.17.109.json diff --git a/.changes/2.17.11.json b/.changes/2.17.x/2.17.11.json similarity index 100% rename from .changes/2.17.11.json rename to .changes/2.17.x/2.17.11.json diff --git a/.changes/2.17.110.json b/.changes/2.17.x/2.17.110.json similarity index 100% rename from .changes/2.17.110.json rename to .changes/2.17.x/2.17.110.json diff --git a/.changes/2.17.111.json b/.changes/2.17.x/2.17.111.json similarity index 100% rename from .changes/2.17.111.json rename to .changes/2.17.x/2.17.111.json diff --git a/.changes/2.17.112.json b/.changes/2.17.x/2.17.112.json similarity index 100% rename from .changes/2.17.112.json rename to .changes/2.17.x/2.17.112.json diff --git a/.changes/2.17.113.json b/.changes/2.17.x/2.17.113.json similarity index 100% rename from .changes/2.17.113.json rename to .changes/2.17.x/2.17.113.json diff --git a/.changes/2.17.114.json b/.changes/2.17.x/2.17.114.json similarity index 100% rename from .changes/2.17.114.json rename to .changes/2.17.x/2.17.114.json diff --git a/.changes/2.17.115.json b/.changes/2.17.x/2.17.115.json similarity index 100% rename from .changes/2.17.115.json rename to .changes/2.17.x/2.17.115.json diff --git a/.changes/2.17.116.json b/.changes/2.17.x/2.17.116.json similarity index 100% rename from .changes/2.17.116.json rename to .changes/2.17.x/2.17.116.json diff --git a/.changes/2.17.117.json b/.changes/2.17.x/2.17.117.json similarity index 100% rename from .changes/2.17.117.json rename to .changes/2.17.x/2.17.117.json diff --git a/.changes/2.17.118.json b/.changes/2.17.x/2.17.118.json similarity index 100% rename from .changes/2.17.118.json rename to .changes/2.17.x/2.17.118.json diff --git a/.changes/2.17.119.json b/.changes/2.17.x/2.17.119.json similarity index 100% rename from .changes/2.17.119.json rename to .changes/2.17.x/2.17.119.json diff --git a/.changes/2.17.12.json b/.changes/2.17.x/2.17.12.json similarity index 100% rename from .changes/2.17.12.json rename to .changes/2.17.x/2.17.12.json diff --git a/.changes/2.17.120.json b/.changes/2.17.x/2.17.120.json similarity index 100% rename from .changes/2.17.120.json rename to .changes/2.17.x/2.17.120.json diff --git a/.changes/2.17.121.json b/.changes/2.17.x/2.17.121.json similarity index 100% rename from .changes/2.17.121.json rename to .changes/2.17.x/2.17.121.json diff --git a/.changes/2.17.122.json b/.changes/2.17.x/2.17.122.json similarity index 100% rename from .changes/2.17.122.json rename to .changes/2.17.x/2.17.122.json diff --git a/.changes/2.17.123.json b/.changes/2.17.x/2.17.123.json similarity index 100% rename from .changes/2.17.123.json rename to .changes/2.17.x/2.17.123.json diff --git a/.changes/2.17.124.json b/.changes/2.17.x/2.17.124.json similarity index 100% rename from .changes/2.17.124.json rename to .changes/2.17.x/2.17.124.json diff --git a/.changes/2.17.125.json b/.changes/2.17.x/2.17.125.json similarity index 100% rename from .changes/2.17.125.json rename to .changes/2.17.x/2.17.125.json diff --git a/.changes/2.17.126.json b/.changes/2.17.x/2.17.126.json similarity index 100% rename from .changes/2.17.126.json rename to .changes/2.17.x/2.17.126.json diff --git a/.changes/2.17.127.json b/.changes/2.17.x/2.17.127.json similarity index 100% rename from .changes/2.17.127.json rename to .changes/2.17.x/2.17.127.json diff --git a/.changes/2.17.128.json b/.changes/2.17.x/2.17.128.json similarity index 100% rename from .changes/2.17.128.json rename to .changes/2.17.x/2.17.128.json diff --git a/.changes/2.17.129.json b/.changes/2.17.x/2.17.129.json similarity index 100% rename from .changes/2.17.129.json rename to .changes/2.17.x/2.17.129.json diff --git a/.changes/2.17.13.json b/.changes/2.17.x/2.17.13.json similarity index 100% rename from .changes/2.17.13.json rename to .changes/2.17.x/2.17.13.json diff --git a/.changes/2.17.130.json b/.changes/2.17.x/2.17.130.json similarity index 100% rename from .changes/2.17.130.json rename to .changes/2.17.x/2.17.130.json diff --git a/.changes/2.17.131.json b/.changes/2.17.x/2.17.131.json similarity index 100% rename from .changes/2.17.131.json rename to .changes/2.17.x/2.17.131.json diff --git a/.changes/2.17.132.json b/.changes/2.17.x/2.17.132.json similarity index 100% rename from .changes/2.17.132.json rename to .changes/2.17.x/2.17.132.json diff --git a/.changes/2.17.133.json b/.changes/2.17.x/2.17.133.json similarity index 100% rename from .changes/2.17.133.json rename to .changes/2.17.x/2.17.133.json diff --git a/.changes/2.17.134.json b/.changes/2.17.x/2.17.134.json similarity index 100% rename from .changes/2.17.134.json rename to .changes/2.17.x/2.17.134.json diff --git a/.changes/2.17.135.json b/.changes/2.17.x/2.17.135.json similarity index 100% rename from .changes/2.17.135.json rename to .changes/2.17.x/2.17.135.json diff --git a/.changes/2.17.136.json b/.changes/2.17.x/2.17.136.json similarity index 100% rename from .changes/2.17.136.json rename to .changes/2.17.x/2.17.136.json diff --git a/.changes/2.17.137.json b/.changes/2.17.x/2.17.137.json similarity index 100% rename from .changes/2.17.137.json rename to .changes/2.17.x/2.17.137.json diff --git a/.changes/2.17.138.json b/.changes/2.17.x/2.17.138.json similarity index 100% rename from .changes/2.17.138.json rename to .changes/2.17.x/2.17.138.json diff --git a/.changes/2.17.139.json b/.changes/2.17.x/2.17.139.json similarity index 100% rename from .changes/2.17.139.json rename to .changes/2.17.x/2.17.139.json diff --git a/.changes/2.17.14.json b/.changes/2.17.x/2.17.14.json similarity index 100% rename from .changes/2.17.14.json rename to .changes/2.17.x/2.17.14.json diff --git a/.changes/2.17.140.json b/.changes/2.17.x/2.17.140.json similarity index 100% rename from .changes/2.17.140.json rename to .changes/2.17.x/2.17.140.json diff --git a/.changes/2.17.141.json b/.changes/2.17.x/2.17.141.json similarity index 100% rename from .changes/2.17.141.json rename to .changes/2.17.x/2.17.141.json diff --git a/.changes/2.17.142.json b/.changes/2.17.x/2.17.142.json similarity index 100% rename from .changes/2.17.142.json rename to .changes/2.17.x/2.17.142.json diff --git a/.changes/2.17.143.json b/.changes/2.17.x/2.17.143.json similarity index 100% rename from .changes/2.17.143.json rename to .changes/2.17.x/2.17.143.json diff --git a/.changes/2.17.144.json b/.changes/2.17.x/2.17.144.json similarity index 100% rename from .changes/2.17.144.json rename to .changes/2.17.x/2.17.144.json diff --git a/.changes/2.17.145.json b/.changes/2.17.x/2.17.145.json similarity index 100% rename from .changes/2.17.145.json rename to .changes/2.17.x/2.17.145.json diff --git a/.changes/2.17.146.json b/.changes/2.17.x/2.17.146.json similarity index 100% rename from .changes/2.17.146.json rename to .changes/2.17.x/2.17.146.json diff --git a/.changes/2.17.147.json b/.changes/2.17.x/2.17.147.json similarity index 100% rename from .changes/2.17.147.json rename to .changes/2.17.x/2.17.147.json diff --git a/.changes/2.17.148.json b/.changes/2.17.x/2.17.148.json similarity index 100% rename from .changes/2.17.148.json rename to .changes/2.17.x/2.17.148.json diff --git a/.changes/2.17.149.json b/.changes/2.17.x/2.17.149.json similarity index 100% rename from .changes/2.17.149.json rename to .changes/2.17.x/2.17.149.json diff --git a/.changes/2.17.15.json b/.changes/2.17.x/2.17.15.json similarity index 100% rename from .changes/2.17.15.json rename to .changes/2.17.x/2.17.15.json diff --git a/.changes/2.17.150.json b/.changes/2.17.x/2.17.150.json similarity index 100% rename from .changes/2.17.150.json rename to .changes/2.17.x/2.17.150.json diff --git a/.changes/2.17.151.json b/.changes/2.17.x/2.17.151.json similarity index 100% rename from .changes/2.17.151.json rename to .changes/2.17.x/2.17.151.json diff --git a/.changes/2.17.152.json b/.changes/2.17.x/2.17.152.json similarity index 100% rename from .changes/2.17.152.json rename to .changes/2.17.x/2.17.152.json diff --git a/.changes/2.17.153.json b/.changes/2.17.x/2.17.153.json similarity index 100% rename from .changes/2.17.153.json rename to .changes/2.17.x/2.17.153.json diff --git a/.changes/2.17.154.json b/.changes/2.17.x/2.17.154.json similarity index 100% rename from .changes/2.17.154.json rename to .changes/2.17.x/2.17.154.json diff --git a/.changes/2.17.155.json b/.changes/2.17.x/2.17.155.json similarity index 100% rename from .changes/2.17.155.json rename to .changes/2.17.x/2.17.155.json diff --git a/.changes/2.17.156.json b/.changes/2.17.x/2.17.156.json similarity index 100% rename from .changes/2.17.156.json rename to .changes/2.17.x/2.17.156.json diff --git a/.changes/2.17.157.json b/.changes/2.17.x/2.17.157.json similarity index 100% rename from .changes/2.17.157.json rename to .changes/2.17.x/2.17.157.json diff --git a/.changes/2.17.158.json b/.changes/2.17.x/2.17.158.json similarity index 100% rename from .changes/2.17.158.json rename to .changes/2.17.x/2.17.158.json diff --git a/.changes/2.17.159.json b/.changes/2.17.x/2.17.159.json similarity index 100% rename from .changes/2.17.159.json rename to .changes/2.17.x/2.17.159.json diff --git a/.changes/2.17.16.json b/.changes/2.17.x/2.17.16.json similarity index 100% rename from .changes/2.17.16.json rename to .changes/2.17.x/2.17.16.json diff --git a/.changes/2.17.160.json b/.changes/2.17.x/2.17.160.json similarity index 100% rename from .changes/2.17.160.json rename to .changes/2.17.x/2.17.160.json diff --git a/.changes/2.17.161.json b/.changes/2.17.x/2.17.161.json similarity index 100% rename from .changes/2.17.161.json rename to .changes/2.17.x/2.17.161.json diff --git a/.changes/2.17.162.json b/.changes/2.17.x/2.17.162.json similarity index 100% rename from .changes/2.17.162.json rename to .changes/2.17.x/2.17.162.json diff --git a/.changes/2.17.163.json b/.changes/2.17.x/2.17.163.json similarity index 100% rename from .changes/2.17.163.json rename to .changes/2.17.x/2.17.163.json diff --git a/.changes/2.17.164.json b/.changes/2.17.x/2.17.164.json similarity index 100% rename from .changes/2.17.164.json rename to .changes/2.17.x/2.17.164.json diff --git a/.changes/2.17.165.json b/.changes/2.17.x/2.17.165.json similarity index 100% rename from .changes/2.17.165.json rename to .changes/2.17.x/2.17.165.json diff --git a/.changes/2.17.166.json b/.changes/2.17.x/2.17.166.json similarity index 100% rename from .changes/2.17.166.json rename to .changes/2.17.x/2.17.166.json diff --git a/.changes/2.17.167.json b/.changes/2.17.x/2.17.167.json similarity index 100% rename from .changes/2.17.167.json rename to .changes/2.17.x/2.17.167.json diff --git a/.changes/2.17.168.json b/.changes/2.17.x/2.17.168.json similarity index 100% rename from .changes/2.17.168.json rename to .changes/2.17.x/2.17.168.json diff --git a/.changes/2.17.169.json b/.changes/2.17.x/2.17.169.json similarity index 100% rename from .changes/2.17.169.json rename to .changes/2.17.x/2.17.169.json diff --git a/.changes/2.17.17.json b/.changes/2.17.x/2.17.17.json similarity index 100% rename from .changes/2.17.17.json rename to .changes/2.17.x/2.17.17.json diff --git a/.changes/2.17.170.json b/.changes/2.17.x/2.17.170.json similarity index 100% rename from .changes/2.17.170.json rename to .changes/2.17.x/2.17.170.json diff --git a/.changes/2.17.171.json b/.changes/2.17.x/2.17.171.json similarity index 100% rename from .changes/2.17.171.json rename to .changes/2.17.x/2.17.171.json diff --git a/.changes/2.17.172.json b/.changes/2.17.x/2.17.172.json similarity index 100% rename from .changes/2.17.172.json rename to .changes/2.17.x/2.17.172.json diff --git a/.changes/2.17.173.json b/.changes/2.17.x/2.17.173.json similarity index 100% rename from .changes/2.17.173.json rename to .changes/2.17.x/2.17.173.json diff --git a/.changes/2.17.174.json b/.changes/2.17.x/2.17.174.json similarity index 100% rename from .changes/2.17.174.json rename to .changes/2.17.x/2.17.174.json diff --git a/.changes/2.17.175.json b/.changes/2.17.x/2.17.175.json similarity index 100% rename from .changes/2.17.175.json rename to .changes/2.17.x/2.17.175.json diff --git a/.changes/2.17.176.json b/.changes/2.17.x/2.17.176.json similarity index 100% rename from .changes/2.17.176.json rename to .changes/2.17.x/2.17.176.json diff --git a/.changes/2.17.177.json b/.changes/2.17.x/2.17.177.json similarity index 100% rename from .changes/2.17.177.json rename to .changes/2.17.x/2.17.177.json diff --git a/.changes/2.17.178.json b/.changes/2.17.x/2.17.178.json similarity index 100% rename from .changes/2.17.178.json rename to .changes/2.17.x/2.17.178.json diff --git a/.changes/2.17.179.json b/.changes/2.17.x/2.17.179.json similarity index 100% rename from .changes/2.17.179.json rename to .changes/2.17.x/2.17.179.json diff --git a/.changes/2.17.18.json b/.changes/2.17.x/2.17.18.json similarity index 100% rename from .changes/2.17.18.json rename to .changes/2.17.x/2.17.18.json diff --git a/.changes/2.17.180.json b/.changes/2.17.x/2.17.180.json similarity index 100% rename from .changes/2.17.180.json rename to .changes/2.17.x/2.17.180.json diff --git a/.changes/2.17.181.json b/.changes/2.17.x/2.17.181.json similarity index 100% rename from .changes/2.17.181.json rename to .changes/2.17.x/2.17.181.json diff --git a/.changes/2.17.182.json b/.changes/2.17.x/2.17.182.json similarity index 100% rename from .changes/2.17.182.json rename to .changes/2.17.x/2.17.182.json diff --git a/.changes/2.17.183.json b/.changes/2.17.x/2.17.183.json similarity index 100% rename from .changes/2.17.183.json rename to .changes/2.17.x/2.17.183.json diff --git a/.changes/2.17.184.json b/.changes/2.17.x/2.17.184.json similarity index 100% rename from .changes/2.17.184.json rename to .changes/2.17.x/2.17.184.json diff --git a/.changes/2.17.185.json b/.changes/2.17.x/2.17.185.json similarity index 100% rename from .changes/2.17.185.json rename to .changes/2.17.x/2.17.185.json diff --git a/.changes/2.17.186.json b/.changes/2.17.x/2.17.186.json similarity index 100% rename from .changes/2.17.186.json rename to .changes/2.17.x/2.17.186.json diff --git a/.changes/2.17.187.json b/.changes/2.17.x/2.17.187.json similarity index 100% rename from .changes/2.17.187.json rename to .changes/2.17.x/2.17.187.json diff --git a/.changes/2.17.188.json b/.changes/2.17.x/2.17.188.json similarity index 100% rename from .changes/2.17.188.json rename to .changes/2.17.x/2.17.188.json diff --git a/.changes/2.17.189.json b/.changes/2.17.x/2.17.189.json similarity index 100% rename from .changes/2.17.189.json rename to .changes/2.17.x/2.17.189.json diff --git a/.changes/2.17.19.json b/.changes/2.17.x/2.17.19.json similarity index 100% rename from .changes/2.17.19.json rename to .changes/2.17.x/2.17.19.json diff --git a/.changes/2.17.190.json b/.changes/2.17.x/2.17.190.json similarity index 100% rename from .changes/2.17.190.json rename to .changes/2.17.x/2.17.190.json diff --git a/.changes/2.17.191.json b/.changes/2.17.x/2.17.191.json similarity index 100% rename from .changes/2.17.191.json rename to .changes/2.17.x/2.17.191.json diff --git a/.changes/2.17.192.json b/.changes/2.17.x/2.17.192.json similarity index 100% rename from .changes/2.17.192.json rename to .changes/2.17.x/2.17.192.json diff --git a/.changes/2.17.193.json b/.changes/2.17.x/2.17.193.json similarity index 100% rename from .changes/2.17.193.json rename to .changes/2.17.x/2.17.193.json diff --git a/.changes/2.17.194.json b/.changes/2.17.x/2.17.194.json similarity index 100% rename from .changes/2.17.194.json rename to .changes/2.17.x/2.17.194.json diff --git a/.changes/2.17.195.json b/.changes/2.17.x/2.17.195.json similarity index 100% rename from .changes/2.17.195.json rename to .changes/2.17.x/2.17.195.json diff --git a/.changes/2.17.196.json b/.changes/2.17.x/2.17.196.json similarity index 100% rename from .changes/2.17.196.json rename to .changes/2.17.x/2.17.196.json diff --git a/.changes/2.17.197.json b/.changes/2.17.x/2.17.197.json similarity index 100% rename from .changes/2.17.197.json rename to .changes/2.17.x/2.17.197.json diff --git a/.changes/2.17.198.json b/.changes/2.17.x/2.17.198.json similarity index 100% rename from .changes/2.17.198.json rename to .changes/2.17.x/2.17.198.json diff --git a/.changes/2.17.199.json b/.changes/2.17.x/2.17.199.json similarity index 100% rename from .changes/2.17.199.json rename to .changes/2.17.x/2.17.199.json diff --git a/.changes/2.17.2.json b/.changes/2.17.x/2.17.2.json similarity index 100% rename from .changes/2.17.2.json rename to .changes/2.17.x/2.17.2.json diff --git a/.changes/2.17.20.json b/.changes/2.17.x/2.17.20.json similarity index 100% rename from .changes/2.17.20.json rename to .changes/2.17.x/2.17.20.json diff --git a/.changes/2.17.200.json b/.changes/2.17.x/2.17.200.json similarity index 100% rename from .changes/2.17.200.json rename to .changes/2.17.x/2.17.200.json diff --git a/.changes/2.17.201.json b/.changes/2.17.x/2.17.201.json similarity index 100% rename from .changes/2.17.201.json rename to .changes/2.17.x/2.17.201.json diff --git a/.changes/2.17.202.json b/.changes/2.17.x/2.17.202.json similarity index 100% rename from .changes/2.17.202.json rename to .changes/2.17.x/2.17.202.json diff --git a/.changes/2.17.203.json b/.changes/2.17.x/2.17.203.json similarity index 100% rename from .changes/2.17.203.json rename to .changes/2.17.x/2.17.203.json diff --git a/.changes/2.17.204.json b/.changes/2.17.x/2.17.204.json similarity index 100% rename from .changes/2.17.204.json rename to .changes/2.17.x/2.17.204.json diff --git a/.changes/2.17.205.json b/.changes/2.17.x/2.17.205.json similarity index 100% rename from .changes/2.17.205.json rename to .changes/2.17.x/2.17.205.json diff --git a/.changes/2.17.206.json b/.changes/2.17.x/2.17.206.json similarity index 100% rename from .changes/2.17.206.json rename to .changes/2.17.x/2.17.206.json diff --git a/.changes/2.17.207.json b/.changes/2.17.x/2.17.207.json similarity index 100% rename from .changes/2.17.207.json rename to .changes/2.17.x/2.17.207.json diff --git a/.changes/2.17.208.json b/.changes/2.17.x/2.17.208.json similarity index 100% rename from .changes/2.17.208.json rename to .changes/2.17.x/2.17.208.json diff --git a/.changes/2.17.209.json b/.changes/2.17.x/2.17.209.json similarity index 100% rename from .changes/2.17.209.json rename to .changes/2.17.x/2.17.209.json diff --git a/.changes/2.17.21.json b/.changes/2.17.x/2.17.21.json similarity index 100% rename from .changes/2.17.21.json rename to .changes/2.17.x/2.17.21.json diff --git a/.changes/2.17.210.json b/.changes/2.17.x/2.17.210.json similarity index 100% rename from .changes/2.17.210.json rename to .changes/2.17.x/2.17.210.json diff --git a/.changes/2.17.211.json b/.changes/2.17.x/2.17.211.json similarity index 100% rename from .changes/2.17.211.json rename to .changes/2.17.x/2.17.211.json diff --git a/.changes/2.17.212.json b/.changes/2.17.x/2.17.212.json similarity index 100% rename from .changes/2.17.212.json rename to .changes/2.17.x/2.17.212.json diff --git a/.changes/2.17.213.json b/.changes/2.17.x/2.17.213.json similarity index 100% rename from .changes/2.17.213.json rename to .changes/2.17.x/2.17.213.json diff --git a/.changes/2.17.214.json b/.changes/2.17.x/2.17.214.json similarity index 100% rename from .changes/2.17.214.json rename to .changes/2.17.x/2.17.214.json diff --git a/.changes/2.17.215.json b/.changes/2.17.x/2.17.215.json similarity index 100% rename from .changes/2.17.215.json rename to .changes/2.17.x/2.17.215.json diff --git a/.changes/2.17.216.json b/.changes/2.17.x/2.17.216.json similarity index 100% rename from .changes/2.17.216.json rename to .changes/2.17.x/2.17.216.json diff --git a/.changes/2.17.217.json b/.changes/2.17.x/2.17.217.json similarity index 100% rename from .changes/2.17.217.json rename to .changes/2.17.x/2.17.217.json diff --git a/.changes/2.17.218.json b/.changes/2.17.x/2.17.218.json similarity index 100% rename from .changes/2.17.218.json rename to .changes/2.17.x/2.17.218.json diff --git a/.changes/2.17.219.json b/.changes/2.17.x/2.17.219.json similarity index 100% rename from .changes/2.17.219.json rename to .changes/2.17.x/2.17.219.json diff --git a/.changes/2.17.22.json b/.changes/2.17.x/2.17.22.json similarity index 100% rename from .changes/2.17.22.json rename to .changes/2.17.x/2.17.22.json diff --git a/.changes/2.17.220.json b/.changes/2.17.x/2.17.220.json similarity index 100% rename from .changes/2.17.220.json rename to .changes/2.17.x/2.17.220.json diff --git a/.changes/2.17.221.json b/.changes/2.17.x/2.17.221.json similarity index 100% rename from .changes/2.17.221.json rename to .changes/2.17.x/2.17.221.json diff --git a/.changes/2.17.222.json b/.changes/2.17.x/2.17.222.json similarity index 100% rename from .changes/2.17.222.json rename to .changes/2.17.x/2.17.222.json diff --git a/.changes/2.17.223.json b/.changes/2.17.x/2.17.223.json similarity index 100% rename from .changes/2.17.223.json rename to .changes/2.17.x/2.17.223.json diff --git a/.changes/2.17.224.json b/.changes/2.17.x/2.17.224.json similarity index 100% rename from .changes/2.17.224.json rename to .changes/2.17.x/2.17.224.json diff --git a/.changes/2.17.225.json b/.changes/2.17.x/2.17.225.json similarity index 100% rename from .changes/2.17.225.json rename to .changes/2.17.x/2.17.225.json diff --git a/.changes/2.17.226.json b/.changes/2.17.x/2.17.226.json similarity index 100% rename from .changes/2.17.226.json rename to .changes/2.17.x/2.17.226.json diff --git a/.changes/2.17.227.json b/.changes/2.17.x/2.17.227.json similarity index 100% rename from .changes/2.17.227.json rename to .changes/2.17.x/2.17.227.json diff --git a/.changes/2.17.228.json b/.changes/2.17.x/2.17.228.json similarity index 100% rename from .changes/2.17.228.json rename to .changes/2.17.x/2.17.228.json diff --git a/.changes/2.17.229.json b/.changes/2.17.x/2.17.229.json similarity index 100% rename from .changes/2.17.229.json rename to .changes/2.17.x/2.17.229.json diff --git a/.changes/2.17.23.json b/.changes/2.17.x/2.17.23.json similarity index 100% rename from .changes/2.17.23.json rename to .changes/2.17.x/2.17.23.json diff --git a/.changes/2.17.230.json b/.changes/2.17.x/2.17.230.json similarity index 100% rename from .changes/2.17.230.json rename to .changes/2.17.x/2.17.230.json diff --git a/.changes/2.17.231.json b/.changes/2.17.x/2.17.231.json similarity index 100% rename from .changes/2.17.231.json rename to .changes/2.17.x/2.17.231.json diff --git a/.changes/2.17.232.json b/.changes/2.17.x/2.17.232.json similarity index 100% rename from .changes/2.17.232.json rename to .changes/2.17.x/2.17.232.json diff --git a/.changes/2.17.233.json b/.changes/2.17.x/2.17.233.json similarity index 100% rename from .changes/2.17.233.json rename to .changes/2.17.x/2.17.233.json diff --git a/.changes/2.17.234.json b/.changes/2.17.x/2.17.234.json similarity index 100% rename from .changes/2.17.234.json rename to .changes/2.17.x/2.17.234.json diff --git a/.changes/2.17.235.json b/.changes/2.17.x/2.17.235.json similarity index 100% rename from .changes/2.17.235.json rename to .changes/2.17.x/2.17.235.json diff --git a/.changes/2.17.236.json b/.changes/2.17.x/2.17.236.json similarity index 100% rename from .changes/2.17.236.json rename to .changes/2.17.x/2.17.236.json diff --git a/.changes/2.17.237.json b/.changes/2.17.x/2.17.237.json similarity index 100% rename from .changes/2.17.237.json rename to .changes/2.17.x/2.17.237.json diff --git a/.changes/2.17.238.json b/.changes/2.17.x/2.17.238.json similarity index 100% rename from .changes/2.17.238.json rename to .changes/2.17.x/2.17.238.json diff --git a/.changes/2.17.239.json b/.changes/2.17.x/2.17.239.json similarity index 100% rename from .changes/2.17.239.json rename to .changes/2.17.x/2.17.239.json diff --git a/.changes/2.17.24.json b/.changes/2.17.x/2.17.24.json similarity index 100% rename from .changes/2.17.24.json rename to .changes/2.17.x/2.17.24.json diff --git a/.changes/2.17.240.json b/.changes/2.17.x/2.17.240.json similarity index 100% rename from .changes/2.17.240.json rename to .changes/2.17.x/2.17.240.json diff --git a/.changes/2.17.241.json b/.changes/2.17.x/2.17.241.json similarity index 100% rename from .changes/2.17.241.json rename to .changes/2.17.x/2.17.241.json diff --git a/.changes/2.17.242.json b/.changes/2.17.x/2.17.242.json similarity index 100% rename from .changes/2.17.242.json rename to .changes/2.17.x/2.17.242.json diff --git a/.changes/2.17.243.json b/.changes/2.17.x/2.17.243.json similarity index 100% rename from .changes/2.17.243.json rename to .changes/2.17.x/2.17.243.json diff --git a/.changes/2.17.244.json b/.changes/2.17.x/2.17.244.json similarity index 100% rename from .changes/2.17.244.json rename to .changes/2.17.x/2.17.244.json diff --git a/.changes/2.17.245.json b/.changes/2.17.x/2.17.245.json similarity index 100% rename from .changes/2.17.245.json rename to .changes/2.17.x/2.17.245.json diff --git a/.changes/2.17.246.json b/.changes/2.17.x/2.17.246.json similarity index 100% rename from .changes/2.17.246.json rename to .changes/2.17.x/2.17.246.json diff --git a/.changes/2.17.247.json b/.changes/2.17.x/2.17.247.json similarity index 100% rename from .changes/2.17.247.json rename to .changes/2.17.x/2.17.247.json diff --git a/.changes/2.17.248.json b/.changes/2.17.x/2.17.248.json similarity index 100% rename from .changes/2.17.248.json rename to .changes/2.17.x/2.17.248.json diff --git a/.changes/2.17.249.json b/.changes/2.17.x/2.17.249.json similarity index 100% rename from .changes/2.17.249.json rename to .changes/2.17.x/2.17.249.json diff --git a/.changes/2.17.25.json b/.changes/2.17.x/2.17.25.json similarity index 100% rename from .changes/2.17.25.json rename to .changes/2.17.x/2.17.25.json diff --git a/.changes/2.17.250.json b/.changes/2.17.x/2.17.250.json similarity index 100% rename from .changes/2.17.250.json rename to .changes/2.17.x/2.17.250.json diff --git a/.changes/2.17.251.json b/.changes/2.17.x/2.17.251.json similarity index 100% rename from .changes/2.17.251.json rename to .changes/2.17.x/2.17.251.json diff --git a/.changes/2.17.252.json b/.changes/2.17.x/2.17.252.json similarity index 100% rename from .changes/2.17.252.json rename to .changes/2.17.x/2.17.252.json diff --git a/.changes/2.17.253.json b/.changes/2.17.x/2.17.253.json similarity index 100% rename from .changes/2.17.253.json rename to .changes/2.17.x/2.17.253.json diff --git a/.changes/2.17.254.json b/.changes/2.17.x/2.17.254.json similarity index 100% rename from .changes/2.17.254.json rename to .changes/2.17.x/2.17.254.json diff --git a/.changes/2.17.255.json b/.changes/2.17.x/2.17.255.json similarity index 100% rename from .changes/2.17.255.json rename to .changes/2.17.x/2.17.255.json diff --git a/.changes/2.17.256.json b/.changes/2.17.x/2.17.256.json similarity index 100% rename from .changes/2.17.256.json rename to .changes/2.17.x/2.17.256.json diff --git a/.changes/2.17.257.json b/.changes/2.17.x/2.17.257.json similarity index 100% rename from .changes/2.17.257.json rename to .changes/2.17.x/2.17.257.json diff --git a/.changes/2.17.258.json b/.changes/2.17.x/2.17.258.json similarity index 100% rename from .changes/2.17.258.json rename to .changes/2.17.x/2.17.258.json diff --git a/.changes/2.17.259.json b/.changes/2.17.x/2.17.259.json similarity index 100% rename from .changes/2.17.259.json rename to .changes/2.17.x/2.17.259.json diff --git a/.changes/2.17.26.json b/.changes/2.17.x/2.17.26.json similarity index 100% rename from .changes/2.17.26.json rename to .changes/2.17.x/2.17.26.json diff --git a/.changes/2.17.260.json b/.changes/2.17.x/2.17.260.json similarity index 100% rename from .changes/2.17.260.json rename to .changes/2.17.x/2.17.260.json diff --git a/.changes/2.17.261.json b/.changes/2.17.x/2.17.261.json similarity index 100% rename from .changes/2.17.261.json rename to .changes/2.17.x/2.17.261.json diff --git a/.changes/2.17.262.json b/.changes/2.17.x/2.17.262.json similarity index 100% rename from .changes/2.17.262.json rename to .changes/2.17.x/2.17.262.json diff --git a/.changes/2.17.263.json b/.changes/2.17.x/2.17.263.json similarity index 100% rename from .changes/2.17.263.json rename to .changes/2.17.x/2.17.263.json diff --git a/.changes/2.17.264.json b/.changes/2.17.x/2.17.264.json similarity index 100% rename from .changes/2.17.264.json rename to .changes/2.17.x/2.17.264.json diff --git a/.changes/2.17.265.json b/.changes/2.17.x/2.17.265.json similarity index 100% rename from .changes/2.17.265.json rename to .changes/2.17.x/2.17.265.json diff --git a/.changes/2.17.266.json b/.changes/2.17.x/2.17.266.json similarity index 100% rename from .changes/2.17.266.json rename to .changes/2.17.x/2.17.266.json diff --git a/.changes/2.17.267.json b/.changes/2.17.x/2.17.267.json similarity index 100% rename from .changes/2.17.267.json rename to .changes/2.17.x/2.17.267.json diff --git a/.changes/2.17.268.json b/.changes/2.17.x/2.17.268.json similarity index 100% rename from .changes/2.17.268.json rename to .changes/2.17.x/2.17.268.json diff --git a/.changes/2.17.269.json b/.changes/2.17.x/2.17.269.json similarity index 100% rename from .changes/2.17.269.json rename to .changes/2.17.x/2.17.269.json diff --git a/.changes/2.17.27.json b/.changes/2.17.x/2.17.27.json similarity index 100% rename from .changes/2.17.27.json rename to .changes/2.17.x/2.17.27.json diff --git a/.changes/2.17.270.json b/.changes/2.17.x/2.17.270.json similarity index 100% rename from .changes/2.17.270.json rename to .changes/2.17.x/2.17.270.json diff --git a/.changes/2.17.271.json b/.changes/2.17.x/2.17.271.json similarity index 100% rename from .changes/2.17.271.json rename to .changes/2.17.x/2.17.271.json diff --git a/.changes/2.17.272.json b/.changes/2.17.x/2.17.272.json similarity index 100% rename from .changes/2.17.272.json rename to .changes/2.17.x/2.17.272.json diff --git a/.changes/2.17.273.json b/.changes/2.17.x/2.17.273.json similarity index 100% rename from .changes/2.17.273.json rename to .changes/2.17.x/2.17.273.json diff --git a/.changes/2.17.274.json b/.changes/2.17.x/2.17.274.json similarity index 100% rename from .changes/2.17.274.json rename to .changes/2.17.x/2.17.274.json diff --git a/.changes/2.17.275.json b/.changes/2.17.x/2.17.275.json similarity index 100% rename from .changes/2.17.275.json rename to .changes/2.17.x/2.17.275.json diff --git a/.changes/2.17.276.json b/.changes/2.17.x/2.17.276.json similarity index 100% rename from .changes/2.17.276.json rename to .changes/2.17.x/2.17.276.json diff --git a/.changes/2.17.277.json b/.changes/2.17.x/2.17.277.json similarity index 100% rename from .changes/2.17.277.json rename to .changes/2.17.x/2.17.277.json diff --git a/.changes/2.17.278.json b/.changes/2.17.x/2.17.278.json similarity index 100% rename from .changes/2.17.278.json rename to .changes/2.17.x/2.17.278.json diff --git a/.changes/2.17.279.json b/.changes/2.17.x/2.17.279.json similarity index 100% rename from .changes/2.17.279.json rename to .changes/2.17.x/2.17.279.json diff --git a/.changes/2.17.28.json b/.changes/2.17.x/2.17.28.json similarity index 100% rename from .changes/2.17.28.json rename to .changes/2.17.x/2.17.28.json diff --git a/.changes/2.17.280.json b/.changes/2.17.x/2.17.280.json similarity index 100% rename from .changes/2.17.280.json rename to .changes/2.17.x/2.17.280.json diff --git a/.changes/2.17.281.json b/.changes/2.17.x/2.17.281.json similarity index 100% rename from .changes/2.17.281.json rename to .changes/2.17.x/2.17.281.json diff --git a/.changes/2.17.282.json b/.changes/2.17.x/2.17.282.json similarity index 100% rename from .changes/2.17.282.json rename to .changes/2.17.x/2.17.282.json diff --git a/.changes/2.17.283.json b/.changes/2.17.x/2.17.283.json similarity index 100% rename from .changes/2.17.283.json rename to .changes/2.17.x/2.17.283.json diff --git a/.changes/2.17.284.json b/.changes/2.17.x/2.17.284.json similarity index 100% rename from .changes/2.17.284.json rename to .changes/2.17.x/2.17.284.json diff --git a/.changes/2.17.285.json b/.changes/2.17.x/2.17.285.json similarity index 100% rename from .changes/2.17.285.json rename to .changes/2.17.x/2.17.285.json diff --git a/.changes/2.17.286.json b/.changes/2.17.x/2.17.286.json similarity index 100% rename from .changes/2.17.286.json rename to .changes/2.17.x/2.17.286.json diff --git a/.changes/2.17.287.json b/.changes/2.17.x/2.17.287.json similarity index 100% rename from .changes/2.17.287.json rename to .changes/2.17.x/2.17.287.json diff --git a/.changes/2.17.288.json b/.changes/2.17.x/2.17.288.json similarity index 100% rename from .changes/2.17.288.json rename to .changes/2.17.x/2.17.288.json diff --git a/.changes/2.17.289.json b/.changes/2.17.x/2.17.289.json similarity index 100% rename from .changes/2.17.289.json rename to .changes/2.17.x/2.17.289.json diff --git a/.changes/2.17.29.json b/.changes/2.17.x/2.17.29.json similarity index 100% rename from .changes/2.17.29.json rename to .changes/2.17.x/2.17.29.json diff --git a/.changes/2.17.290.json b/.changes/2.17.x/2.17.290.json similarity index 100% rename from .changes/2.17.290.json rename to .changes/2.17.x/2.17.290.json diff --git a/.changes/2.17.291.json b/.changes/2.17.x/2.17.291.json similarity index 100% rename from .changes/2.17.291.json rename to .changes/2.17.x/2.17.291.json diff --git a/.changes/2.17.292.json b/.changes/2.17.x/2.17.292.json similarity index 100% rename from .changes/2.17.292.json rename to .changes/2.17.x/2.17.292.json diff --git a/.changes/2.17.293.json b/.changes/2.17.x/2.17.293.json similarity index 100% rename from .changes/2.17.293.json rename to .changes/2.17.x/2.17.293.json diff --git a/.changes/2.17.294.json b/.changes/2.17.x/2.17.294.json similarity index 100% rename from .changes/2.17.294.json rename to .changes/2.17.x/2.17.294.json diff --git a/.changes/2.17.295.json b/.changes/2.17.x/2.17.295.json similarity index 100% rename from .changes/2.17.295.json rename to .changes/2.17.x/2.17.295.json diff --git a/.changes/2.17.3.json b/.changes/2.17.x/2.17.3.json similarity index 100% rename from .changes/2.17.3.json rename to .changes/2.17.x/2.17.3.json diff --git a/.changes/2.17.30.json b/.changes/2.17.x/2.17.30.json similarity index 100% rename from .changes/2.17.30.json rename to .changes/2.17.x/2.17.30.json diff --git a/.changes/2.17.31.json b/.changes/2.17.x/2.17.31.json similarity index 100% rename from .changes/2.17.31.json rename to .changes/2.17.x/2.17.31.json diff --git a/.changes/2.17.32.json b/.changes/2.17.x/2.17.32.json similarity index 100% rename from .changes/2.17.32.json rename to .changes/2.17.x/2.17.32.json diff --git a/.changes/2.17.33.json b/.changes/2.17.x/2.17.33.json similarity index 100% rename from .changes/2.17.33.json rename to .changes/2.17.x/2.17.33.json diff --git a/.changes/2.17.34.json b/.changes/2.17.x/2.17.34.json similarity index 100% rename from .changes/2.17.34.json rename to .changes/2.17.x/2.17.34.json diff --git a/.changes/2.17.35.json b/.changes/2.17.x/2.17.35.json similarity index 100% rename from .changes/2.17.35.json rename to .changes/2.17.x/2.17.35.json diff --git a/.changes/2.17.36.json b/.changes/2.17.x/2.17.36.json similarity index 100% rename from .changes/2.17.36.json rename to .changes/2.17.x/2.17.36.json diff --git a/.changes/2.17.37.json b/.changes/2.17.x/2.17.37.json similarity index 100% rename from .changes/2.17.37.json rename to .changes/2.17.x/2.17.37.json diff --git a/.changes/2.17.38.json b/.changes/2.17.x/2.17.38.json similarity index 100% rename from .changes/2.17.38.json rename to .changes/2.17.x/2.17.38.json diff --git a/.changes/2.17.39.json b/.changes/2.17.x/2.17.39.json similarity index 100% rename from .changes/2.17.39.json rename to .changes/2.17.x/2.17.39.json diff --git a/.changes/2.17.4.json b/.changes/2.17.x/2.17.4.json similarity index 100% rename from .changes/2.17.4.json rename to .changes/2.17.x/2.17.4.json diff --git a/.changes/2.17.40.json b/.changes/2.17.x/2.17.40.json similarity index 100% rename from .changes/2.17.40.json rename to .changes/2.17.x/2.17.40.json diff --git a/.changes/2.17.41.json b/.changes/2.17.x/2.17.41.json similarity index 100% rename from .changes/2.17.41.json rename to .changes/2.17.x/2.17.41.json diff --git a/.changes/2.17.42.json b/.changes/2.17.x/2.17.42.json similarity index 100% rename from .changes/2.17.42.json rename to .changes/2.17.x/2.17.42.json diff --git a/.changes/2.17.43.json b/.changes/2.17.x/2.17.43.json similarity index 100% rename from .changes/2.17.43.json rename to .changes/2.17.x/2.17.43.json diff --git a/.changes/2.17.44.json b/.changes/2.17.x/2.17.44.json similarity index 100% rename from .changes/2.17.44.json rename to .changes/2.17.x/2.17.44.json diff --git a/.changes/2.17.45.json b/.changes/2.17.x/2.17.45.json similarity index 100% rename from .changes/2.17.45.json rename to .changes/2.17.x/2.17.45.json diff --git a/.changes/2.17.46.json b/.changes/2.17.x/2.17.46.json similarity index 100% rename from .changes/2.17.46.json rename to .changes/2.17.x/2.17.46.json diff --git a/.changes/2.17.47.json b/.changes/2.17.x/2.17.47.json similarity index 100% rename from .changes/2.17.47.json rename to .changes/2.17.x/2.17.47.json diff --git a/.changes/2.17.48.json b/.changes/2.17.x/2.17.48.json similarity index 100% rename from .changes/2.17.48.json rename to .changes/2.17.x/2.17.48.json diff --git a/.changes/2.17.49.json b/.changes/2.17.x/2.17.49.json similarity index 100% rename from .changes/2.17.49.json rename to .changes/2.17.x/2.17.49.json diff --git a/.changes/2.17.5.json b/.changes/2.17.x/2.17.5.json similarity index 100% rename from .changes/2.17.5.json rename to .changes/2.17.x/2.17.5.json diff --git a/.changes/2.17.50.json b/.changes/2.17.x/2.17.50.json similarity index 100% rename from .changes/2.17.50.json rename to .changes/2.17.x/2.17.50.json diff --git a/.changes/2.17.51.json b/.changes/2.17.x/2.17.51.json similarity index 100% rename from .changes/2.17.51.json rename to .changes/2.17.x/2.17.51.json diff --git a/.changes/2.17.52.json b/.changes/2.17.x/2.17.52.json similarity index 100% rename from .changes/2.17.52.json rename to .changes/2.17.x/2.17.52.json diff --git a/.changes/2.17.53.json b/.changes/2.17.x/2.17.53.json similarity index 100% rename from .changes/2.17.53.json rename to .changes/2.17.x/2.17.53.json diff --git a/.changes/2.17.54.json b/.changes/2.17.x/2.17.54.json similarity index 100% rename from .changes/2.17.54.json rename to .changes/2.17.x/2.17.54.json diff --git a/.changes/2.17.55.json b/.changes/2.17.x/2.17.55.json similarity index 100% rename from .changes/2.17.55.json rename to .changes/2.17.x/2.17.55.json diff --git a/.changes/2.17.56.json b/.changes/2.17.x/2.17.56.json similarity index 100% rename from .changes/2.17.56.json rename to .changes/2.17.x/2.17.56.json diff --git a/.changes/2.17.57.json b/.changes/2.17.x/2.17.57.json similarity index 100% rename from .changes/2.17.57.json rename to .changes/2.17.x/2.17.57.json diff --git a/.changes/2.17.58.json b/.changes/2.17.x/2.17.58.json similarity index 100% rename from .changes/2.17.58.json rename to .changes/2.17.x/2.17.58.json diff --git a/.changes/2.17.59.json b/.changes/2.17.x/2.17.59.json similarity index 100% rename from .changes/2.17.59.json rename to .changes/2.17.x/2.17.59.json diff --git a/.changes/2.17.6.json b/.changes/2.17.x/2.17.6.json similarity index 100% rename from .changes/2.17.6.json rename to .changes/2.17.x/2.17.6.json diff --git a/.changes/2.17.60.json b/.changes/2.17.x/2.17.60.json similarity index 100% rename from .changes/2.17.60.json rename to .changes/2.17.x/2.17.60.json diff --git a/.changes/2.17.61.json b/.changes/2.17.x/2.17.61.json similarity index 100% rename from .changes/2.17.61.json rename to .changes/2.17.x/2.17.61.json diff --git a/.changes/2.17.62.json b/.changes/2.17.x/2.17.62.json similarity index 100% rename from .changes/2.17.62.json rename to .changes/2.17.x/2.17.62.json diff --git a/.changes/2.17.63.json b/.changes/2.17.x/2.17.63.json similarity index 100% rename from .changes/2.17.63.json rename to .changes/2.17.x/2.17.63.json diff --git a/.changes/2.17.64.json b/.changes/2.17.x/2.17.64.json similarity index 100% rename from .changes/2.17.64.json rename to .changes/2.17.x/2.17.64.json diff --git a/.changes/2.17.65.json b/.changes/2.17.x/2.17.65.json similarity index 100% rename from .changes/2.17.65.json rename to .changes/2.17.x/2.17.65.json diff --git a/.changes/2.17.66.json b/.changes/2.17.x/2.17.66.json similarity index 100% rename from .changes/2.17.66.json rename to .changes/2.17.x/2.17.66.json diff --git a/.changes/2.17.67.json b/.changes/2.17.x/2.17.67.json similarity index 100% rename from .changes/2.17.67.json rename to .changes/2.17.x/2.17.67.json diff --git a/.changes/2.17.68.json b/.changes/2.17.x/2.17.68.json similarity index 100% rename from .changes/2.17.68.json rename to .changes/2.17.x/2.17.68.json diff --git a/.changes/2.17.69.json b/.changes/2.17.x/2.17.69.json similarity index 100% rename from .changes/2.17.69.json rename to .changes/2.17.x/2.17.69.json diff --git a/.changes/2.17.7.json b/.changes/2.17.x/2.17.7.json similarity index 100% rename from .changes/2.17.7.json rename to .changes/2.17.x/2.17.7.json diff --git a/.changes/2.17.70.json b/.changes/2.17.x/2.17.70.json similarity index 100% rename from .changes/2.17.70.json rename to .changes/2.17.x/2.17.70.json diff --git a/.changes/2.17.71.json b/.changes/2.17.x/2.17.71.json similarity index 100% rename from .changes/2.17.71.json rename to .changes/2.17.x/2.17.71.json diff --git a/.changes/2.17.72.json b/.changes/2.17.x/2.17.72.json similarity index 100% rename from .changes/2.17.72.json rename to .changes/2.17.x/2.17.72.json diff --git a/.changes/2.17.73.json b/.changes/2.17.x/2.17.73.json similarity index 100% rename from .changes/2.17.73.json rename to .changes/2.17.x/2.17.73.json diff --git a/.changes/2.17.74.json b/.changes/2.17.x/2.17.74.json similarity index 100% rename from .changes/2.17.74.json rename to .changes/2.17.x/2.17.74.json diff --git a/.changes/2.17.75.json b/.changes/2.17.x/2.17.75.json similarity index 100% rename from .changes/2.17.75.json rename to .changes/2.17.x/2.17.75.json diff --git a/.changes/2.17.76.json b/.changes/2.17.x/2.17.76.json similarity index 100% rename from .changes/2.17.76.json rename to .changes/2.17.x/2.17.76.json diff --git a/.changes/2.17.77.json b/.changes/2.17.x/2.17.77.json similarity index 100% rename from .changes/2.17.77.json rename to .changes/2.17.x/2.17.77.json diff --git a/.changes/2.17.78.json b/.changes/2.17.x/2.17.78.json similarity index 100% rename from .changes/2.17.78.json rename to .changes/2.17.x/2.17.78.json diff --git a/.changes/2.17.79.json b/.changes/2.17.x/2.17.79.json similarity index 100% rename from .changes/2.17.79.json rename to .changes/2.17.x/2.17.79.json diff --git a/.changes/2.17.8.json b/.changes/2.17.x/2.17.8.json similarity index 100% rename from .changes/2.17.8.json rename to .changes/2.17.x/2.17.8.json diff --git a/.changes/2.17.80.json b/.changes/2.17.x/2.17.80.json similarity index 100% rename from .changes/2.17.80.json rename to .changes/2.17.x/2.17.80.json diff --git a/.changes/2.17.81.json b/.changes/2.17.x/2.17.81.json similarity index 100% rename from .changes/2.17.81.json rename to .changes/2.17.x/2.17.81.json diff --git a/.changes/2.17.82.json b/.changes/2.17.x/2.17.82.json similarity index 100% rename from .changes/2.17.82.json rename to .changes/2.17.x/2.17.82.json diff --git a/.changes/2.17.83.json b/.changes/2.17.x/2.17.83.json similarity index 100% rename from .changes/2.17.83.json rename to .changes/2.17.x/2.17.83.json diff --git a/.changes/2.17.84.json b/.changes/2.17.x/2.17.84.json similarity index 100% rename from .changes/2.17.84.json rename to .changes/2.17.x/2.17.84.json diff --git a/.changes/2.17.85.json b/.changes/2.17.x/2.17.85.json similarity index 100% rename from .changes/2.17.85.json rename to .changes/2.17.x/2.17.85.json diff --git a/.changes/2.17.86.json b/.changes/2.17.x/2.17.86.json similarity index 100% rename from .changes/2.17.86.json rename to .changes/2.17.x/2.17.86.json diff --git a/.changes/2.17.87.json b/.changes/2.17.x/2.17.87.json similarity index 100% rename from .changes/2.17.87.json rename to .changes/2.17.x/2.17.87.json diff --git a/.changes/2.17.88.json b/.changes/2.17.x/2.17.88.json similarity index 100% rename from .changes/2.17.88.json rename to .changes/2.17.x/2.17.88.json diff --git a/.changes/2.17.89.json b/.changes/2.17.x/2.17.89.json similarity index 100% rename from .changes/2.17.89.json rename to .changes/2.17.x/2.17.89.json diff --git a/.changes/2.17.9.json b/.changes/2.17.x/2.17.9.json similarity index 100% rename from .changes/2.17.9.json rename to .changes/2.17.x/2.17.9.json diff --git a/.changes/2.17.90.json b/.changes/2.17.x/2.17.90.json similarity index 100% rename from .changes/2.17.90.json rename to .changes/2.17.x/2.17.90.json diff --git a/.changes/2.17.91.json b/.changes/2.17.x/2.17.91.json similarity index 100% rename from .changes/2.17.91.json rename to .changes/2.17.x/2.17.91.json diff --git a/.changes/2.17.92.json b/.changes/2.17.x/2.17.92.json similarity index 100% rename from .changes/2.17.92.json rename to .changes/2.17.x/2.17.92.json diff --git a/.changes/2.17.93.json b/.changes/2.17.x/2.17.93.json similarity index 100% rename from .changes/2.17.93.json rename to .changes/2.17.x/2.17.93.json diff --git a/.changes/2.17.94.json b/.changes/2.17.x/2.17.94.json similarity index 100% rename from .changes/2.17.94.json rename to .changes/2.17.x/2.17.94.json diff --git a/.changes/2.17.95.json b/.changes/2.17.x/2.17.95.json similarity index 100% rename from .changes/2.17.95.json rename to .changes/2.17.x/2.17.95.json diff --git a/.changes/2.17.96.json b/.changes/2.17.x/2.17.96.json similarity index 100% rename from .changes/2.17.96.json rename to .changes/2.17.x/2.17.96.json diff --git a/.changes/2.17.97.json b/.changes/2.17.x/2.17.97.json similarity index 100% rename from .changes/2.17.97.json rename to .changes/2.17.x/2.17.97.json diff --git a/.changes/2.17.98.json b/.changes/2.17.x/2.17.98.json similarity index 100% rename from .changes/2.17.98.json rename to .changes/2.17.x/2.17.98.json diff --git a/.changes/2.17.99.json b/.changes/2.17.x/2.17.99.json similarity index 100% rename from .changes/2.17.99.json rename to .changes/2.17.x/2.17.99.json diff --git a/.changes/2.18.0.json b/.changes/2.18.x/2.18.0.json similarity index 100% rename from .changes/2.18.0.json rename to .changes/2.18.x/2.18.0.json diff --git a/.changes/2.18.1.json b/.changes/2.18.x/2.18.1.json similarity index 100% rename from .changes/2.18.1.json rename to .changes/2.18.x/2.18.1.json diff --git a/.changes/2.18.10.json b/.changes/2.18.x/2.18.10.json similarity index 100% rename from .changes/2.18.10.json rename to .changes/2.18.x/2.18.10.json diff --git a/.changes/2.18.11.json b/.changes/2.18.x/2.18.11.json similarity index 100% rename from .changes/2.18.11.json rename to .changes/2.18.x/2.18.11.json diff --git a/.changes/2.18.12.json b/.changes/2.18.x/2.18.12.json similarity index 100% rename from .changes/2.18.12.json rename to .changes/2.18.x/2.18.12.json diff --git a/.changes/2.18.13.json b/.changes/2.18.x/2.18.13.json similarity index 100% rename from .changes/2.18.13.json rename to .changes/2.18.x/2.18.13.json diff --git a/.changes/2.18.14.json b/.changes/2.18.x/2.18.14.json similarity index 100% rename from .changes/2.18.14.json rename to .changes/2.18.x/2.18.14.json diff --git a/.changes/2.18.15.json b/.changes/2.18.x/2.18.15.json similarity index 100% rename from .changes/2.18.15.json rename to .changes/2.18.x/2.18.15.json diff --git a/.changes/2.18.16.json b/.changes/2.18.x/2.18.16.json similarity index 100% rename from .changes/2.18.16.json rename to .changes/2.18.x/2.18.16.json diff --git a/.changes/2.18.17.json b/.changes/2.18.x/2.18.17.json similarity index 100% rename from .changes/2.18.17.json rename to .changes/2.18.x/2.18.17.json diff --git a/.changes/2.18.18.json b/.changes/2.18.x/2.18.18.json similarity index 100% rename from .changes/2.18.18.json rename to .changes/2.18.x/2.18.18.json diff --git a/.changes/2.18.19.json b/.changes/2.18.x/2.18.19.json similarity index 100% rename from .changes/2.18.19.json rename to .changes/2.18.x/2.18.19.json diff --git a/.changes/2.18.2.json b/.changes/2.18.x/2.18.2.json similarity index 100% rename from .changes/2.18.2.json rename to .changes/2.18.x/2.18.2.json diff --git a/.changes/2.18.20.json b/.changes/2.18.x/2.18.20.json similarity index 100% rename from .changes/2.18.20.json rename to .changes/2.18.x/2.18.20.json diff --git a/.changes/2.18.21.json b/.changes/2.18.x/2.18.21.json similarity index 100% rename from .changes/2.18.21.json rename to .changes/2.18.x/2.18.21.json diff --git a/.changes/2.18.22.json b/.changes/2.18.x/2.18.22.json similarity index 100% rename from .changes/2.18.22.json rename to .changes/2.18.x/2.18.22.json diff --git a/.changes/2.18.23.json b/.changes/2.18.x/2.18.23.json similarity index 100% rename from .changes/2.18.23.json rename to .changes/2.18.x/2.18.23.json diff --git a/.changes/2.18.24.json b/.changes/2.18.x/2.18.24.json similarity index 100% rename from .changes/2.18.24.json rename to .changes/2.18.x/2.18.24.json diff --git a/.changes/2.18.25.json b/.changes/2.18.x/2.18.25.json similarity index 100% rename from .changes/2.18.25.json rename to .changes/2.18.x/2.18.25.json diff --git a/.changes/2.18.26.json b/.changes/2.18.x/2.18.26.json similarity index 100% rename from .changes/2.18.26.json rename to .changes/2.18.x/2.18.26.json diff --git a/.changes/2.18.27.json b/.changes/2.18.x/2.18.27.json similarity index 100% rename from .changes/2.18.27.json rename to .changes/2.18.x/2.18.27.json diff --git a/.changes/2.18.28.json b/.changes/2.18.x/2.18.28.json similarity index 100% rename from .changes/2.18.28.json rename to .changes/2.18.x/2.18.28.json diff --git a/.changes/2.18.29.json b/.changes/2.18.x/2.18.29.json similarity index 100% rename from .changes/2.18.29.json rename to .changes/2.18.x/2.18.29.json diff --git a/.changes/2.18.3.json b/.changes/2.18.x/2.18.3.json similarity index 100% rename from .changes/2.18.3.json rename to .changes/2.18.x/2.18.3.json diff --git a/.changes/2.18.30.json b/.changes/2.18.x/2.18.30.json similarity index 100% rename from .changes/2.18.30.json rename to .changes/2.18.x/2.18.30.json diff --git a/.changes/2.18.31.json b/.changes/2.18.x/2.18.31.json similarity index 100% rename from .changes/2.18.31.json rename to .changes/2.18.x/2.18.31.json diff --git a/.changes/2.18.32.json b/.changes/2.18.x/2.18.32.json similarity index 100% rename from .changes/2.18.32.json rename to .changes/2.18.x/2.18.32.json diff --git a/.changes/2.18.33.json b/.changes/2.18.x/2.18.33.json similarity index 100% rename from .changes/2.18.33.json rename to .changes/2.18.x/2.18.33.json diff --git a/.changes/2.18.34.json b/.changes/2.18.x/2.18.34.json similarity index 100% rename from .changes/2.18.34.json rename to .changes/2.18.x/2.18.34.json diff --git a/.changes/2.18.35.json b/.changes/2.18.x/2.18.35.json similarity index 100% rename from .changes/2.18.35.json rename to .changes/2.18.x/2.18.35.json diff --git a/.changes/2.18.36.json b/.changes/2.18.x/2.18.36.json similarity index 100% rename from .changes/2.18.36.json rename to .changes/2.18.x/2.18.36.json diff --git a/.changes/2.18.38.json b/.changes/2.18.x/2.18.38.json similarity index 100% rename from .changes/2.18.38.json rename to .changes/2.18.x/2.18.38.json diff --git a/.changes/2.18.39.json b/.changes/2.18.x/2.18.39.json similarity index 100% rename from .changes/2.18.39.json rename to .changes/2.18.x/2.18.39.json diff --git a/.changes/2.18.4.json b/.changes/2.18.x/2.18.4.json similarity index 100% rename from .changes/2.18.4.json rename to .changes/2.18.x/2.18.4.json diff --git a/.changes/2.18.40.json b/.changes/2.18.x/2.18.40.json similarity index 100% rename from .changes/2.18.40.json rename to .changes/2.18.x/2.18.40.json diff --git a/.changes/2.18.41.json b/.changes/2.18.x/2.18.41.json similarity index 100% rename from .changes/2.18.41.json rename to .changes/2.18.x/2.18.41.json diff --git a/.changes/2.18.5.json b/.changes/2.18.x/2.18.5.json similarity index 100% rename from .changes/2.18.5.json rename to .changes/2.18.x/2.18.5.json diff --git a/.changes/2.18.6.json b/.changes/2.18.x/2.18.6.json similarity index 100% rename from .changes/2.18.6.json rename to .changes/2.18.x/2.18.6.json diff --git a/.changes/2.18.7.json b/.changes/2.18.x/2.18.7.json similarity index 100% rename from .changes/2.18.7.json rename to .changes/2.18.x/2.18.7.json diff --git a/.changes/2.18.8.json b/.changes/2.18.x/2.18.8.json similarity index 100% rename from .changes/2.18.8.json rename to .changes/2.18.x/2.18.8.json diff --git a/.changes/2.18.9.json b/.changes/2.18.x/2.18.9.json similarity index 100% rename from .changes/2.18.9.json rename to .changes/2.18.x/2.18.9.json diff --git a/.changes/2.19.0.json b/.changes/2.19.x/2.19.0.json similarity index 100% rename from .changes/2.19.0.json rename to .changes/2.19.x/2.19.0.json diff --git a/.changes/2.19.1.json b/.changes/2.19.x/2.19.1.json similarity index 100% rename from .changes/2.19.1.json rename to .changes/2.19.x/2.19.1.json diff --git a/.changes/2.19.10.json b/.changes/2.19.x/2.19.10.json similarity index 100% rename from .changes/2.19.10.json rename to .changes/2.19.x/2.19.10.json diff --git a/.changes/2.19.11.json b/.changes/2.19.x/2.19.11.json similarity index 100% rename from .changes/2.19.11.json rename to .changes/2.19.x/2.19.11.json diff --git a/.changes/2.19.12.json b/.changes/2.19.x/2.19.12.json similarity index 100% rename from .changes/2.19.12.json rename to .changes/2.19.x/2.19.12.json diff --git a/.changes/2.19.13.json b/.changes/2.19.x/2.19.13.json similarity index 100% rename from .changes/2.19.13.json rename to .changes/2.19.x/2.19.13.json diff --git a/.changes/2.19.14.json b/.changes/2.19.x/2.19.14.json similarity index 100% rename from .changes/2.19.14.json rename to .changes/2.19.x/2.19.14.json diff --git a/.changes/2.19.15.json b/.changes/2.19.x/2.19.15.json similarity index 100% rename from .changes/2.19.15.json rename to .changes/2.19.x/2.19.15.json diff --git a/.changes/2.19.16.json b/.changes/2.19.x/2.19.16.json similarity index 100% rename from .changes/2.19.16.json rename to .changes/2.19.x/2.19.16.json diff --git a/.changes/2.19.17.json b/.changes/2.19.x/2.19.17.json similarity index 100% rename from .changes/2.19.17.json rename to .changes/2.19.x/2.19.17.json diff --git a/.changes/2.19.18.json b/.changes/2.19.x/2.19.18.json similarity index 100% rename from .changes/2.19.18.json rename to .changes/2.19.x/2.19.18.json diff --git a/.changes/2.19.19.json b/.changes/2.19.x/2.19.19.json similarity index 100% rename from .changes/2.19.19.json rename to .changes/2.19.x/2.19.19.json diff --git a/.changes/2.19.2.json b/.changes/2.19.x/2.19.2.json similarity index 100% rename from .changes/2.19.2.json rename to .changes/2.19.x/2.19.2.json diff --git a/.changes/2.19.20.json b/.changes/2.19.x/2.19.20.json similarity index 100% rename from .changes/2.19.20.json rename to .changes/2.19.x/2.19.20.json diff --git a/.changes/2.19.21.json b/.changes/2.19.x/2.19.21.json similarity index 100% rename from .changes/2.19.21.json rename to .changes/2.19.x/2.19.21.json diff --git a/.changes/2.19.22.json b/.changes/2.19.x/2.19.22.json similarity index 100% rename from .changes/2.19.22.json rename to .changes/2.19.x/2.19.22.json diff --git a/.changes/2.19.23.json b/.changes/2.19.x/2.19.23.json similarity index 100% rename from .changes/2.19.23.json rename to .changes/2.19.x/2.19.23.json diff --git a/.changes/2.19.24.json b/.changes/2.19.x/2.19.24.json similarity index 100% rename from .changes/2.19.24.json rename to .changes/2.19.x/2.19.24.json diff --git a/.changes/2.19.25.json b/.changes/2.19.x/2.19.25.json similarity index 100% rename from .changes/2.19.25.json rename to .changes/2.19.x/2.19.25.json diff --git a/.changes/2.19.26.json b/.changes/2.19.x/2.19.26.json similarity index 100% rename from .changes/2.19.26.json rename to .changes/2.19.x/2.19.26.json diff --git a/.changes/2.19.27.json b/.changes/2.19.x/2.19.27.json similarity index 100% rename from .changes/2.19.27.json rename to .changes/2.19.x/2.19.27.json diff --git a/.changes/2.19.28.json b/.changes/2.19.x/2.19.28.json similarity index 100% rename from .changes/2.19.28.json rename to .changes/2.19.x/2.19.28.json diff --git a/.changes/2.19.29.json b/.changes/2.19.x/2.19.29.json similarity index 100% rename from .changes/2.19.29.json rename to .changes/2.19.x/2.19.29.json diff --git a/.changes/2.19.3.json b/.changes/2.19.x/2.19.3.json similarity index 100% rename from .changes/2.19.3.json rename to .changes/2.19.x/2.19.3.json diff --git a/.changes/2.19.30.json b/.changes/2.19.x/2.19.30.json similarity index 100% rename from .changes/2.19.30.json rename to .changes/2.19.x/2.19.30.json diff --git a/.changes/2.19.31.json b/.changes/2.19.x/2.19.31.json similarity index 100% rename from .changes/2.19.31.json rename to .changes/2.19.x/2.19.31.json diff --git a/.changes/2.19.32.json b/.changes/2.19.x/2.19.32.json similarity index 100% rename from .changes/2.19.32.json rename to .changes/2.19.x/2.19.32.json diff --git a/.changes/2.19.33.json b/.changes/2.19.x/2.19.33.json similarity index 100% rename from .changes/2.19.33.json rename to .changes/2.19.x/2.19.33.json diff --git a/.changes/2.19.4.json b/.changes/2.19.x/2.19.4.json similarity index 100% rename from .changes/2.19.4.json rename to .changes/2.19.x/2.19.4.json diff --git a/.changes/2.19.5.json b/.changes/2.19.x/2.19.5.json similarity index 100% rename from .changes/2.19.5.json rename to .changes/2.19.x/2.19.5.json diff --git a/.changes/2.19.6.json b/.changes/2.19.x/2.19.6.json similarity index 100% rename from .changes/2.19.6.json rename to .changes/2.19.x/2.19.6.json diff --git a/.changes/2.19.7.json b/.changes/2.19.x/2.19.7.json similarity index 100% rename from .changes/2.19.7.json rename to .changes/2.19.x/2.19.7.json diff --git a/.changes/2.19.8.json b/.changes/2.19.x/2.19.8.json similarity index 100% rename from .changes/2.19.8.json rename to .changes/2.19.x/2.19.8.json diff --git a/.changes/2.19.9.json b/.changes/2.19.x/2.19.9.json similarity index 100% rename from .changes/2.19.9.json rename to .changes/2.19.x/2.19.9.json diff --git a/.changes/2.2.0.json b/.changes/2.2.x/2.2.0.json similarity index 100% rename from .changes/2.2.0.json rename to .changes/2.2.x/2.2.0.json diff --git a/.changes/2.20.0.json b/.changes/2.20.x/2.20.0.json similarity index 100% rename from .changes/2.20.0.json rename to .changes/2.20.x/2.20.0.json diff --git a/.changes/2.20.1.json b/.changes/2.20.x/2.20.1.json similarity index 100% rename from .changes/2.20.1.json rename to .changes/2.20.x/2.20.1.json diff --git a/.changes/2.20.10.json b/.changes/2.20.x/2.20.10.json similarity index 100% rename from .changes/2.20.10.json rename to .changes/2.20.x/2.20.10.json diff --git a/.changes/2.20.100.json b/.changes/2.20.x/2.20.100.json similarity index 100% rename from .changes/2.20.100.json rename to .changes/2.20.x/2.20.100.json diff --git a/.changes/2.20.101.json b/.changes/2.20.x/2.20.101.json similarity index 100% rename from .changes/2.20.101.json rename to .changes/2.20.x/2.20.101.json diff --git a/.changes/2.20.102.json b/.changes/2.20.x/2.20.102.json similarity index 100% rename from .changes/2.20.102.json rename to .changes/2.20.x/2.20.102.json diff --git a/.changes/2.20.103.json b/.changes/2.20.x/2.20.103.json similarity index 100% rename from .changes/2.20.103.json rename to .changes/2.20.x/2.20.103.json diff --git a/.changes/2.20.104.json b/.changes/2.20.x/2.20.104.json similarity index 100% rename from .changes/2.20.104.json rename to .changes/2.20.x/2.20.104.json diff --git a/.changes/2.20.105.json b/.changes/2.20.x/2.20.105.json similarity index 100% rename from .changes/2.20.105.json rename to .changes/2.20.x/2.20.105.json diff --git a/.changes/2.20.106.json b/.changes/2.20.x/2.20.106.json similarity index 100% rename from .changes/2.20.106.json rename to .changes/2.20.x/2.20.106.json diff --git a/.changes/2.20.107.json b/.changes/2.20.x/2.20.107.json similarity index 100% rename from .changes/2.20.107.json rename to .changes/2.20.x/2.20.107.json diff --git a/.changes/2.20.108.json b/.changes/2.20.x/2.20.108.json similarity index 100% rename from .changes/2.20.108.json rename to .changes/2.20.x/2.20.108.json diff --git a/.changes/2.20.109.json b/.changes/2.20.x/2.20.109.json similarity index 100% rename from .changes/2.20.109.json rename to .changes/2.20.x/2.20.109.json diff --git a/.changes/2.20.11.json b/.changes/2.20.x/2.20.11.json similarity index 100% rename from .changes/2.20.11.json rename to .changes/2.20.x/2.20.11.json diff --git a/.changes/2.20.110.json b/.changes/2.20.x/2.20.110.json similarity index 100% rename from .changes/2.20.110.json rename to .changes/2.20.x/2.20.110.json diff --git a/.changes/2.20.111.json b/.changes/2.20.x/2.20.111.json similarity index 100% rename from .changes/2.20.111.json rename to .changes/2.20.x/2.20.111.json diff --git a/.changes/2.20.112.json b/.changes/2.20.x/2.20.112.json similarity index 100% rename from .changes/2.20.112.json rename to .changes/2.20.x/2.20.112.json diff --git a/.changes/2.20.113.json b/.changes/2.20.x/2.20.113.json similarity index 100% rename from .changes/2.20.113.json rename to .changes/2.20.x/2.20.113.json diff --git a/.changes/2.20.114.json b/.changes/2.20.x/2.20.114.json similarity index 100% rename from .changes/2.20.114.json rename to .changes/2.20.x/2.20.114.json diff --git a/.changes/2.20.115.json b/.changes/2.20.x/2.20.115.json similarity index 100% rename from .changes/2.20.115.json rename to .changes/2.20.x/2.20.115.json diff --git a/.changes/2.20.116.json b/.changes/2.20.x/2.20.116.json similarity index 100% rename from .changes/2.20.116.json rename to .changes/2.20.x/2.20.116.json diff --git a/.changes/2.20.117.json b/.changes/2.20.x/2.20.117.json similarity index 100% rename from .changes/2.20.117.json rename to .changes/2.20.x/2.20.117.json diff --git a/.changes/2.20.118.json b/.changes/2.20.x/2.20.118.json similarity index 100% rename from .changes/2.20.118.json rename to .changes/2.20.x/2.20.118.json diff --git a/.changes/2.20.119.json b/.changes/2.20.x/2.20.119.json similarity index 100% rename from .changes/2.20.119.json rename to .changes/2.20.x/2.20.119.json diff --git a/.changes/2.20.12.json b/.changes/2.20.x/2.20.12.json similarity index 100% rename from .changes/2.20.12.json rename to .changes/2.20.x/2.20.12.json diff --git a/.changes/2.20.120.json b/.changes/2.20.x/2.20.120.json similarity index 100% rename from .changes/2.20.120.json rename to .changes/2.20.x/2.20.120.json diff --git a/.changes/2.20.121.json b/.changes/2.20.x/2.20.121.json similarity index 100% rename from .changes/2.20.121.json rename to .changes/2.20.x/2.20.121.json diff --git a/.changes/2.20.122.json b/.changes/2.20.x/2.20.122.json similarity index 100% rename from .changes/2.20.122.json rename to .changes/2.20.x/2.20.122.json diff --git a/.changes/2.20.123.json b/.changes/2.20.x/2.20.123.json similarity index 100% rename from .changes/2.20.123.json rename to .changes/2.20.x/2.20.123.json diff --git a/.changes/2.20.124.json b/.changes/2.20.x/2.20.124.json similarity index 100% rename from .changes/2.20.124.json rename to .changes/2.20.x/2.20.124.json diff --git a/.changes/2.20.125.json b/.changes/2.20.x/2.20.125.json similarity index 100% rename from .changes/2.20.125.json rename to .changes/2.20.x/2.20.125.json diff --git a/.changes/2.20.126.json b/.changes/2.20.x/2.20.126.json similarity index 100% rename from .changes/2.20.126.json rename to .changes/2.20.x/2.20.126.json diff --git a/.changes/2.20.127.json b/.changes/2.20.x/2.20.127.json similarity index 100% rename from .changes/2.20.127.json rename to .changes/2.20.x/2.20.127.json diff --git a/.changes/2.20.128.json b/.changes/2.20.x/2.20.128.json similarity index 100% rename from .changes/2.20.128.json rename to .changes/2.20.x/2.20.128.json diff --git a/.changes/2.20.129.json b/.changes/2.20.x/2.20.129.json similarity index 100% rename from .changes/2.20.129.json rename to .changes/2.20.x/2.20.129.json diff --git a/.changes/2.20.13.json b/.changes/2.20.x/2.20.13.json similarity index 100% rename from .changes/2.20.13.json rename to .changes/2.20.x/2.20.13.json diff --git a/.changes/2.20.130.json b/.changes/2.20.x/2.20.130.json similarity index 100% rename from .changes/2.20.130.json rename to .changes/2.20.x/2.20.130.json diff --git a/.changes/2.20.131.json b/.changes/2.20.x/2.20.131.json similarity index 100% rename from .changes/2.20.131.json rename to .changes/2.20.x/2.20.131.json diff --git a/.changes/2.20.132.json b/.changes/2.20.x/2.20.132.json similarity index 100% rename from .changes/2.20.132.json rename to .changes/2.20.x/2.20.132.json diff --git a/.changes/2.20.133.json b/.changes/2.20.x/2.20.133.json similarity index 100% rename from .changes/2.20.133.json rename to .changes/2.20.x/2.20.133.json diff --git a/.changes/2.20.134.json b/.changes/2.20.x/2.20.134.json similarity index 100% rename from .changes/2.20.134.json rename to .changes/2.20.x/2.20.134.json diff --git a/.changes/2.20.135.json b/.changes/2.20.x/2.20.135.json similarity index 100% rename from .changes/2.20.135.json rename to .changes/2.20.x/2.20.135.json diff --git a/.changes/2.20.136.json b/.changes/2.20.x/2.20.136.json similarity index 100% rename from .changes/2.20.136.json rename to .changes/2.20.x/2.20.136.json diff --git a/.changes/2.20.137.json b/.changes/2.20.x/2.20.137.json similarity index 100% rename from .changes/2.20.137.json rename to .changes/2.20.x/2.20.137.json diff --git a/.changes/2.20.138.json b/.changes/2.20.x/2.20.138.json similarity index 100% rename from .changes/2.20.138.json rename to .changes/2.20.x/2.20.138.json diff --git a/.changes/2.20.139.json b/.changes/2.20.x/2.20.139.json similarity index 100% rename from .changes/2.20.139.json rename to .changes/2.20.x/2.20.139.json diff --git a/.changes/2.20.14.json b/.changes/2.20.x/2.20.14.json similarity index 100% rename from .changes/2.20.14.json rename to .changes/2.20.x/2.20.14.json diff --git a/.changes/2.20.140.json b/.changes/2.20.x/2.20.140.json similarity index 100% rename from .changes/2.20.140.json rename to .changes/2.20.x/2.20.140.json diff --git a/.changes/2.20.141.json b/.changes/2.20.x/2.20.141.json similarity index 100% rename from .changes/2.20.141.json rename to .changes/2.20.x/2.20.141.json diff --git a/.changes/2.20.142.json b/.changes/2.20.x/2.20.142.json similarity index 100% rename from .changes/2.20.142.json rename to .changes/2.20.x/2.20.142.json diff --git a/.changes/2.20.143.json b/.changes/2.20.x/2.20.143.json similarity index 100% rename from .changes/2.20.143.json rename to .changes/2.20.x/2.20.143.json diff --git a/.changes/2.20.144.json b/.changes/2.20.x/2.20.144.json similarity index 100% rename from .changes/2.20.144.json rename to .changes/2.20.x/2.20.144.json diff --git a/.changes/2.20.145.json b/.changes/2.20.x/2.20.145.json similarity index 100% rename from .changes/2.20.145.json rename to .changes/2.20.x/2.20.145.json diff --git a/.changes/2.20.146.json b/.changes/2.20.x/2.20.146.json similarity index 100% rename from .changes/2.20.146.json rename to .changes/2.20.x/2.20.146.json diff --git a/.changes/2.20.147.json b/.changes/2.20.x/2.20.147.json similarity index 100% rename from .changes/2.20.147.json rename to .changes/2.20.x/2.20.147.json diff --git a/.changes/2.20.148.json b/.changes/2.20.x/2.20.148.json similarity index 100% rename from .changes/2.20.148.json rename to .changes/2.20.x/2.20.148.json diff --git a/.changes/2.20.149.json b/.changes/2.20.x/2.20.149.json similarity index 100% rename from .changes/2.20.149.json rename to .changes/2.20.x/2.20.149.json diff --git a/.changes/2.20.15.json b/.changes/2.20.x/2.20.15.json similarity index 100% rename from .changes/2.20.15.json rename to .changes/2.20.x/2.20.15.json diff --git a/.changes/2.20.150.json b/.changes/2.20.x/2.20.150.json similarity index 100% rename from .changes/2.20.150.json rename to .changes/2.20.x/2.20.150.json diff --git a/.changes/2.20.151.json b/.changes/2.20.x/2.20.151.json similarity index 100% rename from .changes/2.20.151.json rename to .changes/2.20.x/2.20.151.json diff --git a/.changes/2.20.152.json b/.changes/2.20.x/2.20.152.json similarity index 100% rename from .changes/2.20.152.json rename to .changes/2.20.x/2.20.152.json diff --git a/.changes/2.20.153.json b/.changes/2.20.x/2.20.153.json similarity index 100% rename from .changes/2.20.153.json rename to .changes/2.20.x/2.20.153.json diff --git a/.changes/2.20.154.json b/.changes/2.20.x/2.20.154.json similarity index 100% rename from .changes/2.20.154.json rename to .changes/2.20.x/2.20.154.json diff --git a/.changes/2.20.155.json b/.changes/2.20.x/2.20.155.json similarity index 100% rename from .changes/2.20.155.json rename to .changes/2.20.x/2.20.155.json diff --git a/.changes/2.20.156.json b/.changes/2.20.x/2.20.156.json similarity index 100% rename from .changes/2.20.156.json rename to .changes/2.20.x/2.20.156.json diff --git a/.changes/2.20.157.json b/.changes/2.20.x/2.20.157.json similarity index 100% rename from .changes/2.20.157.json rename to .changes/2.20.x/2.20.157.json diff --git a/.changes/2.20.158.json b/.changes/2.20.x/2.20.158.json similarity index 100% rename from .changes/2.20.158.json rename to .changes/2.20.x/2.20.158.json diff --git a/.changes/2.20.159.json b/.changes/2.20.x/2.20.159.json similarity index 100% rename from .changes/2.20.159.json rename to .changes/2.20.x/2.20.159.json diff --git a/.changes/2.20.16.json b/.changes/2.20.x/2.20.16.json similarity index 100% rename from .changes/2.20.16.json rename to .changes/2.20.x/2.20.16.json diff --git a/.changes/2.20.160.json b/.changes/2.20.x/2.20.160.json similarity index 100% rename from .changes/2.20.160.json rename to .changes/2.20.x/2.20.160.json diff --git a/.changes/2.20.161.json b/.changes/2.20.x/2.20.161.json similarity index 100% rename from .changes/2.20.161.json rename to .changes/2.20.x/2.20.161.json diff --git a/.changes/2.20.162.json b/.changes/2.20.x/2.20.162.json similarity index 100% rename from .changes/2.20.162.json rename to .changes/2.20.x/2.20.162.json diff --git a/.changes/2.20.17.json b/.changes/2.20.x/2.20.17.json similarity index 100% rename from .changes/2.20.17.json rename to .changes/2.20.x/2.20.17.json diff --git a/.changes/2.20.18.json b/.changes/2.20.x/2.20.18.json similarity index 100% rename from .changes/2.20.18.json rename to .changes/2.20.x/2.20.18.json diff --git a/.changes/2.20.19.json b/.changes/2.20.x/2.20.19.json similarity index 100% rename from .changes/2.20.19.json rename to .changes/2.20.x/2.20.19.json diff --git a/.changes/2.20.2.json b/.changes/2.20.x/2.20.2.json similarity index 100% rename from .changes/2.20.2.json rename to .changes/2.20.x/2.20.2.json diff --git a/.changes/2.20.20.json b/.changes/2.20.x/2.20.20.json similarity index 100% rename from .changes/2.20.20.json rename to .changes/2.20.x/2.20.20.json diff --git a/.changes/2.20.21.json b/.changes/2.20.x/2.20.21.json similarity index 100% rename from .changes/2.20.21.json rename to .changes/2.20.x/2.20.21.json diff --git a/.changes/2.20.22.json b/.changes/2.20.x/2.20.22.json similarity index 100% rename from .changes/2.20.22.json rename to .changes/2.20.x/2.20.22.json diff --git a/.changes/2.20.23.json b/.changes/2.20.x/2.20.23.json similarity index 100% rename from .changes/2.20.23.json rename to .changes/2.20.x/2.20.23.json diff --git a/.changes/2.20.24.json b/.changes/2.20.x/2.20.24.json similarity index 100% rename from .changes/2.20.24.json rename to .changes/2.20.x/2.20.24.json diff --git a/.changes/2.20.25.json b/.changes/2.20.x/2.20.25.json similarity index 100% rename from .changes/2.20.25.json rename to .changes/2.20.x/2.20.25.json diff --git a/.changes/2.20.26.json b/.changes/2.20.x/2.20.26.json similarity index 100% rename from .changes/2.20.26.json rename to .changes/2.20.x/2.20.26.json diff --git a/.changes/2.20.27.json b/.changes/2.20.x/2.20.27.json similarity index 100% rename from .changes/2.20.27.json rename to .changes/2.20.x/2.20.27.json diff --git a/.changes/2.20.28.json b/.changes/2.20.x/2.20.28.json similarity index 100% rename from .changes/2.20.28.json rename to .changes/2.20.x/2.20.28.json diff --git a/.changes/2.20.29.json b/.changes/2.20.x/2.20.29.json similarity index 100% rename from .changes/2.20.29.json rename to .changes/2.20.x/2.20.29.json diff --git a/.changes/2.20.3.json b/.changes/2.20.x/2.20.3.json similarity index 100% rename from .changes/2.20.3.json rename to .changes/2.20.x/2.20.3.json diff --git a/.changes/2.20.30.json b/.changes/2.20.x/2.20.30.json similarity index 100% rename from .changes/2.20.30.json rename to .changes/2.20.x/2.20.30.json diff --git a/.changes/2.20.31.json b/.changes/2.20.x/2.20.31.json similarity index 100% rename from .changes/2.20.31.json rename to .changes/2.20.x/2.20.31.json diff --git a/.changes/2.20.32.json b/.changes/2.20.x/2.20.32.json similarity index 100% rename from .changes/2.20.32.json rename to .changes/2.20.x/2.20.32.json diff --git a/.changes/2.20.33.json b/.changes/2.20.x/2.20.33.json similarity index 100% rename from .changes/2.20.33.json rename to .changes/2.20.x/2.20.33.json diff --git a/.changes/2.20.34.json b/.changes/2.20.x/2.20.34.json similarity index 100% rename from .changes/2.20.34.json rename to .changes/2.20.x/2.20.34.json diff --git a/.changes/2.20.35.json b/.changes/2.20.x/2.20.35.json similarity index 100% rename from .changes/2.20.35.json rename to .changes/2.20.x/2.20.35.json diff --git a/.changes/2.20.36.json b/.changes/2.20.x/2.20.36.json similarity index 100% rename from .changes/2.20.36.json rename to .changes/2.20.x/2.20.36.json diff --git a/.changes/2.20.37.json b/.changes/2.20.x/2.20.37.json similarity index 100% rename from .changes/2.20.37.json rename to .changes/2.20.x/2.20.37.json diff --git a/.changes/2.20.38.json b/.changes/2.20.x/2.20.38.json similarity index 100% rename from .changes/2.20.38.json rename to .changes/2.20.x/2.20.38.json diff --git a/.changes/2.20.39.json b/.changes/2.20.x/2.20.39.json similarity index 100% rename from .changes/2.20.39.json rename to .changes/2.20.x/2.20.39.json diff --git a/.changes/2.20.4.json b/.changes/2.20.x/2.20.4.json similarity index 100% rename from .changes/2.20.4.json rename to .changes/2.20.x/2.20.4.json diff --git a/.changes/2.20.40.json b/.changes/2.20.x/2.20.40.json similarity index 100% rename from .changes/2.20.40.json rename to .changes/2.20.x/2.20.40.json diff --git a/.changes/2.20.41.json b/.changes/2.20.x/2.20.41.json similarity index 100% rename from .changes/2.20.41.json rename to .changes/2.20.x/2.20.41.json diff --git a/.changes/2.20.42.json b/.changes/2.20.x/2.20.42.json similarity index 100% rename from .changes/2.20.42.json rename to .changes/2.20.x/2.20.42.json diff --git a/.changes/2.20.43.json b/.changes/2.20.x/2.20.43.json similarity index 100% rename from .changes/2.20.43.json rename to .changes/2.20.x/2.20.43.json diff --git a/.changes/2.20.44.json b/.changes/2.20.x/2.20.44.json similarity index 100% rename from .changes/2.20.44.json rename to .changes/2.20.x/2.20.44.json diff --git a/.changes/2.20.45.json b/.changes/2.20.x/2.20.45.json similarity index 100% rename from .changes/2.20.45.json rename to .changes/2.20.x/2.20.45.json diff --git a/.changes/2.20.46.json b/.changes/2.20.x/2.20.46.json similarity index 100% rename from .changes/2.20.46.json rename to .changes/2.20.x/2.20.46.json diff --git a/.changes/2.20.47.json b/.changes/2.20.x/2.20.47.json similarity index 100% rename from .changes/2.20.47.json rename to .changes/2.20.x/2.20.47.json diff --git a/.changes/2.20.48.json b/.changes/2.20.x/2.20.48.json similarity index 100% rename from .changes/2.20.48.json rename to .changes/2.20.x/2.20.48.json diff --git a/.changes/2.20.49.json b/.changes/2.20.x/2.20.49.json similarity index 100% rename from .changes/2.20.49.json rename to .changes/2.20.x/2.20.49.json diff --git a/.changes/2.20.5.json b/.changes/2.20.x/2.20.5.json similarity index 100% rename from .changes/2.20.5.json rename to .changes/2.20.x/2.20.5.json diff --git a/.changes/2.20.50.json b/.changes/2.20.x/2.20.50.json similarity index 100% rename from .changes/2.20.50.json rename to .changes/2.20.x/2.20.50.json diff --git a/.changes/2.20.51.json b/.changes/2.20.x/2.20.51.json similarity index 100% rename from .changes/2.20.51.json rename to .changes/2.20.x/2.20.51.json diff --git a/.changes/2.20.52.json b/.changes/2.20.x/2.20.52.json similarity index 100% rename from .changes/2.20.52.json rename to .changes/2.20.x/2.20.52.json diff --git a/.changes/2.20.53.json b/.changes/2.20.x/2.20.53.json similarity index 100% rename from .changes/2.20.53.json rename to .changes/2.20.x/2.20.53.json diff --git a/.changes/2.20.54.json b/.changes/2.20.x/2.20.54.json similarity index 100% rename from .changes/2.20.54.json rename to .changes/2.20.x/2.20.54.json diff --git a/.changes/2.20.55.json b/.changes/2.20.x/2.20.55.json similarity index 100% rename from .changes/2.20.55.json rename to .changes/2.20.x/2.20.55.json diff --git a/.changes/2.20.56.json b/.changes/2.20.x/2.20.56.json similarity index 100% rename from .changes/2.20.56.json rename to .changes/2.20.x/2.20.56.json diff --git a/.changes/2.20.57.json b/.changes/2.20.x/2.20.57.json similarity index 100% rename from .changes/2.20.57.json rename to .changes/2.20.x/2.20.57.json diff --git a/.changes/2.20.58.json b/.changes/2.20.x/2.20.58.json similarity index 100% rename from .changes/2.20.58.json rename to .changes/2.20.x/2.20.58.json diff --git a/.changes/2.20.59.json b/.changes/2.20.x/2.20.59.json similarity index 100% rename from .changes/2.20.59.json rename to .changes/2.20.x/2.20.59.json diff --git a/.changes/2.20.6.json b/.changes/2.20.x/2.20.6.json similarity index 100% rename from .changes/2.20.6.json rename to .changes/2.20.x/2.20.6.json diff --git a/.changes/2.20.60.json b/.changes/2.20.x/2.20.60.json similarity index 100% rename from .changes/2.20.60.json rename to .changes/2.20.x/2.20.60.json diff --git a/.changes/2.20.61.json b/.changes/2.20.x/2.20.61.json similarity index 100% rename from .changes/2.20.61.json rename to .changes/2.20.x/2.20.61.json diff --git a/.changes/2.20.62.json b/.changes/2.20.x/2.20.62.json similarity index 100% rename from .changes/2.20.62.json rename to .changes/2.20.x/2.20.62.json diff --git a/.changes/2.20.63.json b/.changes/2.20.x/2.20.63.json similarity index 100% rename from .changes/2.20.63.json rename to .changes/2.20.x/2.20.63.json diff --git a/.changes/2.20.64.json b/.changes/2.20.x/2.20.64.json similarity index 100% rename from .changes/2.20.64.json rename to .changes/2.20.x/2.20.64.json diff --git a/.changes/2.20.65.json b/.changes/2.20.x/2.20.65.json similarity index 100% rename from .changes/2.20.65.json rename to .changes/2.20.x/2.20.65.json diff --git a/.changes/2.20.66.json b/.changes/2.20.x/2.20.66.json similarity index 100% rename from .changes/2.20.66.json rename to .changes/2.20.x/2.20.66.json diff --git a/.changes/2.20.67.json b/.changes/2.20.x/2.20.67.json similarity index 100% rename from .changes/2.20.67.json rename to .changes/2.20.x/2.20.67.json diff --git a/.changes/2.20.68.json b/.changes/2.20.x/2.20.68.json similarity index 100% rename from .changes/2.20.68.json rename to .changes/2.20.x/2.20.68.json diff --git a/.changes/2.20.69.json b/.changes/2.20.x/2.20.69.json similarity index 100% rename from .changes/2.20.69.json rename to .changes/2.20.x/2.20.69.json diff --git a/.changes/2.20.7.json b/.changes/2.20.x/2.20.7.json similarity index 100% rename from .changes/2.20.7.json rename to .changes/2.20.x/2.20.7.json diff --git a/.changes/2.20.70.json b/.changes/2.20.x/2.20.70.json similarity index 100% rename from .changes/2.20.70.json rename to .changes/2.20.x/2.20.70.json diff --git a/.changes/2.20.71.json b/.changes/2.20.x/2.20.71.json similarity index 100% rename from .changes/2.20.71.json rename to .changes/2.20.x/2.20.71.json diff --git a/.changes/2.20.72.json b/.changes/2.20.x/2.20.72.json similarity index 100% rename from .changes/2.20.72.json rename to .changes/2.20.x/2.20.72.json diff --git a/.changes/2.20.73.json b/.changes/2.20.x/2.20.73.json similarity index 100% rename from .changes/2.20.73.json rename to .changes/2.20.x/2.20.73.json diff --git a/.changes/2.20.74.json b/.changes/2.20.x/2.20.74.json similarity index 100% rename from .changes/2.20.74.json rename to .changes/2.20.x/2.20.74.json diff --git a/.changes/2.20.75.json b/.changes/2.20.x/2.20.75.json similarity index 100% rename from .changes/2.20.75.json rename to .changes/2.20.x/2.20.75.json diff --git a/.changes/2.20.76.json b/.changes/2.20.x/2.20.76.json similarity index 100% rename from .changes/2.20.76.json rename to .changes/2.20.x/2.20.76.json diff --git a/.changes/2.20.77.json b/.changes/2.20.x/2.20.77.json similarity index 100% rename from .changes/2.20.77.json rename to .changes/2.20.x/2.20.77.json diff --git a/.changes/2.20.78.json b/.changes/2.20.x/2.20.78.json similarity index 100% rename from .changes/2.20.78.json rename to .changes/2.20.x/2.20.78.json diff --git a/.changes/2.20.79.json b/.changes/2.20.x/2.20.79.json similarity index 100% rename from .changes/2.20.79.json rename to .changes/2.20.x/2.20.79.json diff --git a/.changes/2.20.8.json b/.changes/2.20.x/2.20.8.json similarity index 100% rename from .changes/2.20.8.json rename to .changes/2.20.x/2.20.8.json diff --git a/.changes/2.20.80.json b/.changes/2.20.x/2.20.80.json similarity index 100% rename from .changes/2.20.80.json rename to .changes/2.20.x/2.20.80.json diff --git a/.changes/2.20.81.json b/.changes/2.20.x/2.20.81.json similarity index 100% rename from .changes/2.20.81.json rename to .changes/2.20.x/2.20.81.json diff --git a/.changes/2.20.82.json b/.changes/2.20.x/2.20.82.json similarity index 100% rename from .changes/2.20.82.json rename to .changes/2.20.x/2.20.82.json diff --git a/.changes/2.20.83.json b/.changes/2.20.x/2.20.83.json similarity index 100% rename from .changes/2.20.83.json rename to .changes/2.20.x/2.20.83.json diff --git a/.changes/2.20.84.json b/.changes/2.20.x/2.20.84.json similarity index 100% rename from .changes/2.20.84.json rename to .changes/2.20.x/2.20.84.json diff --git a/.changes/2.20.85.json b/.changes/2.20.x/2.20.85.json similarity index 100% rename from .changes/2.20.85.json rename to .changes/2.20.x/2.20.85.json diff --git a/.changes/2.20.86.json b/.changes/2.20.x/2.20.86.json similarity index 100% rename from .changes/2.20.86.json rename to .changes/2.20.x/2.20.86.json diff --git a/.changes/2.20.87.json b/.changes/2.20.x/2.20.87.json similarity index 100% rename from .changes/2.20.87.json rename to .changes/2.20.x/2.20.87.json diff --git a/.changes/2.20.88.json b/.changes/2.20.x/2.20.88.json similarity index 100% rename from .changes/2.20.88.json rename to .changes/2.20.x/2.20.88.json diff --git a/.changes/2.20.89.json b/.changes/2.20.x/2.20.89.json similarity index 100% rename from .changes/2.20.89.json rename to .changes/2.20.x/2.20.89.json diff --git a/.changes/2.20.9.json b/.changes/2.20.x/2.20.9.json similarity index 100% rename from .changes/2.20.9.json rename to .changes/2.20.x/2.20.9.json diff --git a/.changes/2.20.90.json b/.changes/2.20.x/2.20.90.json similarity index 100% rename from .changes/2.20.90.json rename to .changes/2.20.x/2.20.90.json diff --git a/.changes/2.20.91.json b/.changes/2.20.x/2.20.91.json similarity index 100% rename from .changes/2.20.91.json rename to .changes/2.20.x/2.20.91.json diff --git a/.changes/2.20.92.json b/.changes/2.20.x/2.20.92.json similarity index 100% rename from .changes/2.20.92.json rename to .changes/2.20.x/2.20.92.json diff --git a/.changes/2.20.93.json b/.changes/2.20.x/2.20.93.json similarity index 100% rename from .changes/2.20.93.json rename to .changes/2.20.x/2.20.93.json diff --git a/.changes/2.20.94.json b/.changes/2.20.x/2.20.94.json similarity index 100% rename from .changes/2.20.94.json rename to .changes/2.20.x/2.20.94.json diff --git a/.changes/2.20.95.json b/.changes/2.20.x/2.20.95.json similarity index 100% rename from .changes/2.20.95.json rename to .changes/2.20.x/2.20.95.json diff --git a/.changes/2.20.96.json b/.changes/2.20.x/2.20.96.json similarity index 100% rename from .changes/2.20.96.json rename to .changes/2.20.x/2.20.96.json diff --git a/.changes/2.20.97.json b/.changes/2.20.x/2.20.97.json similarity index 100% rename from .changes/2.20.97.json rename to .changes/2.20.x/2.20.97.json diff --git a/.changes/2.20.98.json b/.changes/2.20.x/2.20.98.json similarity index 100% rename from .changes/2.20.98.json rename to .changes/2.20.x/2.20.98.json diff --git a/.changes/2.20.99.json b/.changes/2.20.x/2.20.99.json similarity index 100% rename from .changes/2.20.99.json rename to .changes/2.20.x/2.20.99.json diff --git a/.changes/2.21.0.json b/.changes/2.21.x/2.21.0.json similarity index 100% rename from .changes/2.21.0.json rename to .changes/2.21.x/2.21.0.json diff --git a/.changes/2.21.1.json b/.changes/2.21.x/2.21.1.json similarity index 100% rename from .changes/2.21.1.json rename to .changes/2.21.x/2.21.1.json diff --git a/.changes/2.21.10.json b/.changes/2.21.x/2.21.10.json similarity index 100% rename from .changes/2.21.10.json rename to .changes/2.21.x/2.21.10.json diff --git a/.changes/2.21.11.json b/.changes/2.21.x/2.21.11.json similarity index 100% rename from .changes/2.21.11.json rename to .changes/2.21.x/2.21.11.json diff --git a/.changes/2.21.12.json b/.changes/2.21.x/2.21.12.json similarity index 100% rename from .changes/2.21.12.json rename to .changes/2.21.x/2.21.12.json diff --git a/.changes/2.21.13.json b/.changes/2.21.x/2.21.13.json similarity index 100% rename from .changes/2.21.13.json rename to .changes/2.21.x/2.21.13.json diff --git a/.changes/2.21.14.json b/.changes/2.21.x/2.21.14.json similarity index 100% rename from .changes/2.21.14.json rename to .changes/2.21.x/2.21.14.json diff --git a/.changes/2.21.15.json b/.changes/2.21.x/2.21.15.json similarity index 100% rename from .changes/2.21.15.json rename to .changes/2.21.x/2.21.15.json diff --git a/.changes/2.21.16.json b/.changes/2.21.x/2.21.16.json similarity index 100% rename from .changes/2.21.16.json rename to .changes/2.21.x/2.21.16.json diff --git a/.changes/2.21.17.json b/.changes/2.21.x/2.21.17.json similarity index 100% rename from .changes/2.21.17.json rename to .changes/2.21.x/2.21.17.json diff --git a/.changes/2.21.18.json b/.changes/2.21.x/2.21.18.json similarity index 100% rename from .changes/2.21.18.json rename to .changes/2.21.x/2.21.18.json diff --git a/.changes/2.21.19.json b/.changes/2.21.x/2.21.19.json similarity index 100% rename from .changes/2.21.19.json rename to .changes/2.21.x/2.21.19.json diff --git a/.changes/2.21.2.json b/.changes/2.21.x/2.21.2.json similarity index 100% rename from .changes/2.21.2.json rename to .changes/2.21.x/2.21.2.json diff --git a/.changes/2.21.20.json b/.changes/2.21.x/2.21.20.json similarity index 100% rename from .changes/2.21.20.json rename to .changes/2.21.x/2.21.20.json diff --git a/.changes/2.21.21.json b/.changes/2.21.x/2.21.21.json similarity index 100% rename from .changes/2.21.21.json rename to .changes/2.21.x/2.21.21.json diff --git a/.changes/2.21.22.json b/.changes/2.21.x/2.21.22.json similarity index 100% rename from .changes/2.21.22.json rename to .changes/2.21.x/2.21.22.json diff --git a/.changes/2.21.23.json b/.changes/2.21.x/2.21.23.json similarity index 100% rename from .changes/2.21.23.json rename to .changes/2.21.x/2.21.23.json diff --git a/.changes/2.21.24.json b/.changes/2.21.x/2.21.24.json similarity index 100% rename from .changes/2.21.24.json rename to .changes/2.21.x/2.21.24.json diff --git a/.changes/2.21.25.json b/.changes/2.21.x/2.21.25.json similarity index 100% rename from .changes/2.21.25.json rename to .changes/2.21.x/2.21.25.json diff --git a/.changes/2.21.26.json b/.changes/2.21.x/2.21.26.json similarity index 100% rename from .changes/2.21.26.json rename to .changes/2.21.x/2.21.26.json diff --git a/.changes/2.21.27.json b/.changes/2.21.x/2.21.27.json similarity index 100% rename from .changes/2.21.27.json rename to .changes/2.21.x/2.21.27.json diff --git a/.changes/2.21.28.json b/.changes/2.21.x/2.21.28.json similarity index 100% rename from .changes/2.21.28.json rename to .changes/2.21.x/2.21.28.json diff --git a/.changes/2.21.29.json b/.changes/2.21.x/2.21.29.json similarity index 100% rename from .changes/2.21.29.json rename to .changes/2.21.x/2.21.29.json diff --git a/.changes/2.21.3.json b/.changes/2.21.x/2.21.3.json similarity index 100% rename from .changes/2.21.3.json rename to .changes/2.21.x/2.21.3.json diff --git a/.changes/2.21.30.json b/.changes/2.21.x/2.21.30.json similarity index 100% rename from .changes/2.21.30.json rename to .changes/2.21.x/2.21.30.json diff --git a/.changes/2.21.31.json b/.changes/2.21.x/2.21.31.json similarity index 100% rename from .changes/2.21.31.json rename to .changes/2.21.x/2.21.31.json diff --git a/.changes/2.21.32.json b/.changes/2.21.x/2.21.32.json similarity index 100% rename from .changes/2.21.32.json rename to .changes/2.21.x/2.21.32.json diff --git a/.changes/2.21.33.json b/.changes/2.21.x/2.21.33.json similarity index 100% rename from .changes/2.21.33.json rename to .changes/2.21.x/2.21.33.json diff --git a/.changes/2.21.34.json b/.changes/2.21.x/2.21.34.json similarity index 100% rename from .changes/2.21.34.json rename to .changes/2.21.x/2.21.34.json diff --git a/.changes/2.21.35.json b/.changes/2.21.x/2.21.35.json similarity index 100% rename from .changes/2.21.35.json rename to .changes/2.21.x/2.21.35.json diff --git a/.changes/2.21.36.json b/.changes/2.21.x/2.21.36.json similarity index 100% rename from .changes/2.21.36.json rename to .changes/2.21.x/2.21.36.json diff --git a/.changes/2.21.37.json b/.changes/2.21.x/2.21.37.json similarity index 100% rename from .changes/2.21.37.json rename to .changes/2.21.x/2.21.37.json diff --git a/.changes/2.21.38.json b/.changes/2.21.x/2.21.38.json similarity index 100% rename from .changes/2.21.38.json rename to .changes/2.21.x/2.21.38.json diff --git a/.changes/2.21.39.json b/.changes/2.21.x/2.21.39.json similarity index 100% rename from .changes/2.21.39.json rename to .changes/2.21.x/2.21.39.json diff --git a/.changes/2.21.4.json b/.changes/2.21.x/2.21.4.json similarity index 100% rename from .changes/2.21.4.json rename to .changes/2.21.x/2.21.4.json diff --git a/.changes/2.21.40.json b/.changes/2.21.x/2.21.40.json similarity index 100% rename from .changes/2.21.40.json rename to .changes/2.21.x/2.21.40.json diff --git a/.changes/2.21.41.json b/.changes/2.21.x/2.21.41.json similarity index 100% rename from .changes/2.21.41.json rename to .changes/2.21.x/2.21.41.json diff --git a/.changes/2.21.42.json b/.changes/2.21.x/2.21.42.json similarity index 100% rename from .changes/2.21.42.json rename to .changes/2.21.x/2.21.42.json diff --git a/.changes/2.21.43.json b/.changes/2.21.x/2.21.43.json similarity index 100% rename from .changes/2.21.43.json rename to .changes/2.21.x/2.21.43.json diff --git a/.changes/2.21.44.json b/.changes/2.21.x/2.21.44.json similarity index 100% rename from .changes/2.21.44.json rename to .changes/2.21.x/2.21.44.json diff --git a/.changes/2.21.45.json b/.changes/2.21.x/2.21.45.json similarity index 100% rename from .changes/2.21.45.json rename to .changes/2.21.x/2.21.45.json diff --git a/.changes/2.21.46.json b/.changes/2.21.x/2.21.46.json similarity index 100% rename from .changes/2.21.46.json rename to .changes/2.21.x/2.21.46.json diff --git a/.changes/2.21.5.json b/.changes/2.21.x/2.21.5.json similarity index 100% rename from .changes/2.21.5.json rename to .changes/2.21.x/2.21.5.json diff --git a/.changes/2.21.6.json b/.changes/2.21.x/2.21.6.json similarity index 100% rename from .changes/2.21.6.json rename to .changes/2.21.x/2.21.6.json diff --git a/.changes/2.21.7.json b/.changes/2.21.x/2.21.7.json similarity index 100% rename from .changes/2.21.7.json rename to .changes/2.21.x/2.21.7.json diff --git a/.changes/2.21.8.json b/.changes/2.21.x/2.21.8.json similarity index 100% rename from .changes/2.21.8.json rename to .changes/2.21.x/2.21.8.json diff --git a/.changes/2.21.9.json b/.changes/2.21.x/2.21.9.json similarity index 100% rename from .changes/2.21.9.json rename to .changes/2.21.x/2.21.9.json diff --git a/.changes/2.22.0.json b/.changes/2.22.x/2.22.0.json similarity index 100% rename from .changes/2.22.0.json rename to .changes/2.22.x/2.22.0.json diff --git a/.changes/2.22.1.json b/.changes/2.22.x/2.22.1.json similarity index 100% rename from .changes/2.22.1.json rename to .changes/2.22.x/2.22.1.json diff --git a/.changes/2.22.10.json b/.changes/2.22.x/2.22.10.json similarity index 100% rename from .changes/2.22.10.json rename to .changes/2.22.x/2.22.10.json diff --git a/.changes/2.22.11.json b/.changes/2.22.x/2.22.11.json similarity index 100% rename from .changes/2.22.11.json rename to .changes/2.22.x/2.22.11.json diff --git a/.changes/2.22.12.json b/.changes/2.22.x/2.22.12.json similarity index 100% rename from .changes/2.22.12.json rename to .changes/2.22.x/2.22.12.json diff --git a/.changes/2.22.13.json b/.changes/2.22.x/2.22.13.json similarity index 100% rename from .changes/2.22.13.json rename to .changes/2.22.x/2.22.13.json diff --git a/.changes/2.22.2.json b/.changes/2.22.x/2.22.2.json similarity index 100% rename from .changes/2.22.2.json rename to .changes/2.22.x/2.22.2.json diff --git a/.changes/2.22.3.json b/.changes/2.22.x/2.22.3.json similarity index 100% rename from .changes/2.22.3.json rename to .changes/2.22.x/2.22.3.json diff --git a/.changes/2.22.4.json b/.changes/2.22.x/2.22.4.json similarity index 100% rename from .changes/2.22.4.json rename to .changes/2.22.x/2.22.4.json diff --git a/.changes/2.22.5.json b/.changes/2.22.x/2.22.5.json similarity index 100% rename from .changes/2.22.5.json rename to .changes/2.22.x/2.22.5.json diff --git a/.changes/2.22.6.json b/.changes/2.22.x/2.22.6.json similarity index 100% rename from .changes/2.22.6.json rename to .changes/2.22.x/2.22.6.json diff --git a/.changes/2.22.7.json b/.changes/2.22.x/2.22.7.json similarity index 100% rename from .changes/2.22.7.json rename to .changes/2.22.x/2.22.7.json diff --git a/.changes/2.22.8.json b/.changes/2.22.x/2.22.8.json similarity index 100% rename from .changes/2.22.8.json rename to .changes/2.22.x/2.22.8.json diff --git a/.changes/2.22.9.json b/.changes/2.22.x/2.22.9.json similarity index 100% rename from .changes/2.22.9.json rename to .changes/2.22.x/2.22.9.json diff --git a/.changes/2.23.0.json b/.changes/2.23.x/2.23.0.json similarity index 100% rename from .changes/2.23.0.json rename to .changes/2.23.x/2.23.0.json diff --git a/.changes/2.23.1.json b/.changes/2.23.x/2.23.1.json similarity index 100% rename from .changes/2.23.1.json rename to .changes/2.23.x/2.23.1.json diff --git a/.changes/2.23.x/2.23.10.json b/.changes/2.23.x/2.23.10.json new file mode 100644 index 000000000000..275399877c37 --- /dev/null +++ b/.changes/2.23.x/2.23.10.json @@ -0,0 +1,36 @@ +{ + "version": "2.23.10", + "date": "2024-01-24", + "entries": [ + { + "type": "feature", + "category": "AWS Outposts", + "contributor": "", + "description": "DeviceSerialNumber parameter is now optional in StartConnection API" + }, + { + "type": "feature", + "category": "AWS Storage Gateway", + "contributor": "", + "description": "Add DeprecationDate and SoftwareVersion to response of ListGateways." + }, + { + "type": "feature", + "category": "Amazon EC2 Container Service", + "contributor": "", + "description": "Documentation updates for Amazon ECS." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "Introduced a new clientToken request parameter on CreateNetworkAcl and CreateRouteTable APIs. The clientToken parameter allows idempotent operations on the APIs." + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "This release adds support for Aurora Limitless Database." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.11.json b/.changes/2.23.x/2.23.11.json new file mode 100644 index 000000000000..6feccf4f3018 --- /dev/null +++ b/.changes/2.23.x/2.23.11.json @@ -0,0 +1,18 @@ +{ + "version": "2.23.11", + "date": "2024-01-25", + "entries": [ + { + "type": "feature", + "category": "AWS Certificate Manager Private Certificate Authority", + "contributor": "", + "description": "AWS Private CA now supports an option to omit the CDP extension from issued certificates, when CRL revocation is enabled." + }, + { + "type": "feature", + "category": "Amazon Lightsail", + "contributor": "", + "description": "This release adds support for IPv6-only instance plans." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.12.json b/.changes/2.23.x/2.23.12.json new file mode 100644 index 000000000000..bfd14cd9caff --- /dev/null +++ b/.changes/2.23.x/2.23.12.json @@ -0,0 +1,36 @@ +{ + "version": "2.23.12", + "date": "2024-01-26", + "entries": [ + { + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Fixed bug where the ProfileCredentialsProvider would re-read the credentials file with each request by default." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Improved performance of chunk-encoded streaming uploads, like S3's PutObject." + }, + { + "type": "feature", + "category": "Amazon Connect Service", + "contributor": "", + "description": "Update list and string length limits for predefined attributes." + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "Amazon SageMaker Automatic Model Tuning now provides an API to programmatically delete tuning jobs." + }, + { + "type": "feature", + "category": "Inspector2", + "contributor": "", + "description": "This release adds ECR container image scanning based on their lastRecordedPullTime." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.13.json b/.changes/2.23.x/2.23.13.json new file mode 100644 index 000000000000..8d54dd73b598 --- /dev/null +++ b/.changes/2.23.x/2.23.13.json @@ -0,0 +1,54 @@ +{ + "version": "2.23.13", + "date": "2024-01-29", + "entries": [ + { + "type": "bugfix", + "category": "Amazon Simple Storage Service", + "contributor": "", + "description": "S3 client configured with crossRegionEnabled(true) will now use us-east-1 regional endpoint instead of the global endpoint. See [#4720](https://github.com/aws/aws-sdk-java-v2/issues/4720)." + }, + { + "type": "feature", + "category": "Amazon Comprehend", + "contributor": "", + "description": "Comprehend PII analysis now supports Spanish input documents." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "EC2 Fleet customers who use attribute based instance-type selection can now intuitively define their Spot instances price protection limit as a percentage of the lowest priced On-Demand instance type." + }, + { + "type": "feature", + "category": "Amazon Import/Export Snowball", + "contributor": "", + "description": "Modified description of createaddress to include direction to add path when providing a JSON file." + }, + { + "type": "feature", + "category": "AmazonMWAA", + "contributor": "", + "description": "This release adds MAINTENANCE environment status for Amazon MWAA environments." + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "Introduced support for the InsufficientDBInstanceCapacityFault error in the RDS RestoreDBClusterFromSnapshot and RestoreDBClusterToPointInTime API methods. This provides enhanced error handling, ensuring a more robust experience." + }, + { + "type": "feature", + "category": "Auto Scaling", + "contributor": "", + "description": "EC2 Auto Scaling customers who use attribute based instance-type selection can now intuitively define their Spot instances price protection limit as a percentage of the lowest priced On-Demand instance type." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.14.json b/.changes/2.23.x/2.23.14.json new file mode 100644 index 000000000000..b47f5e067ec8 --- /dev/null +++ b/.changes/2.23.x/2.23.14.json @@ -0,0 +1,24 @@ +{ + "version": "2.23.14", + "date": "2024-01-30", + "entries": [ + { + "type": "feature", + "category": "Amazon DataZone", + "contributor": "", + "description": "Add new skipDeletionCheck to DeleteDomain. Add new skipDeletionCheck to DeleteProject which also automatically deletes dependent objects" + }, + { + "type": "feature", + "category": "Amazon Route 53", + "contributor": "", + "description": "Update the SDKs for text changes in the APIs." + }, + { + "type": "feature", + "category": "Amazon S3", + "contributor": "", + "description": "Reduce memory usage when request-level plugins aren't used." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.15.json b/.changes/2.23.x/2.23.15.json new file mode 100644 index 000000000000..82b690010410 --- /dev/null +++ b/.changes/2.23.x/2.23.15.json @@ -0,0 +1,42 @@ +{ + "version": "2.23.15", + "date": "2024-01-31", + "entries": [ + { + "type": "feature", + "category": "AWS CloudFormation", + "contributor": "", + "description": "CloudFormation IaC generator allows you to scan existing resources in your account and select resources to generate a template for a new or existing CloudFormation stack." + }, + { + "type": "feature", + "category": "AWS Glue", + "contributor": "", + "description": "Update page size limits for GetJobRuns and GetTriggers APIs." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Reduce how many times input data is copied when writing to chunked encoded operations, like S3's PutObject." + }, + { + "type": "feature", + "category": "Amazon Simple Systems Manager (SSM)", + "contributor": "", + "description": "This release adds an optional Duration parameter to StateManager Associations. This allows customers to specify how long an apply-only-on-cron association execution should run. Once the specified Duration is out all the ongoing cancellable commands or automations are cancelled." + }, + { + "type": "feature", + "category": "Elastic Load Balancing", + "contributor": "", + "description": "This release enables unhealthy target draining intervals for Network Load Balancers." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.16.json b/.changes/2.23.x/2.23.16.json new file mode 100644 index 000000000000..3ecf6a199421 --- /dev/null +++ b/.changes/2.23.x/2.23.16.json @@ -0,0 +1,48 @@ +{ + "version": "2.23.16", + "date": "2024-02-01", + "entries": [ + { + "type": "feature", + "category": "AWS Elemental MediaConvert", + "contributor": "", + "description": "This release includes support for broadcast-mixed audio description tracks." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Switching a set of services onto the new SRA (Smithy Reference Architecture) identity and auth logic that was released in v2.21.0. For a list of individual services affected, please check the committed files." + }, + { + "type": "feature", + "category": "Amazon Cognito Identity Provider", + "contributor": "", + "description": "Added CreateIdentityProvider and UpdateIdentityProvider details for new SAML IdP features" + }, + { + "type": "feature", + "category": "Amazon Interactive Video Service", + "contributor": "", + "description": "This release introduces a new resource Playback Restriction Policy which can be used to geo-restrict or domain-restrict channel stream playback when associated with a channel. New APIs to support this resource were introduced in the form of Create/Delete/Get/Update/List." + }, + { + "type": "feature", + "category": "Amazon Managed Blockchain Query", + "contributor": "", + "description": "This release adds support for transactions that have not reached finality. It also removes support for the status property from the response of the GetTransaction operation. You can use the confirmationStatus and executionStatus properties to determine the status of the transaction." + }, + { + "type": "feature", + "category": "Amazon Neptune Graph", + "contributor": "", + "description": "Adding new APIs in SDK for Amazon Neptune Analytics. These APIs include operations to execute, cancel, list queries and get the graph summary." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.17.json b/.changes/2.23.x/2.23.17.json new file mode 100644 index 000000000000..1dbeba63d1ca --- /dev/null +++ b/.changes/2.23.x/2.23.17.json @@ -0,0 +1,36 @@ +{ + "version": "2.23.17", + "date": "2024-02-02", + "entries": [ + { + "type": "feature", + "category": "AWS CRT-based S3 Client", + "contributor": "", + "description": "Allow users to configure future completion executor on the AWS CRT-based S3 client via `S3CrtAsyncClientBuilder#futureCompletionExecutor`. See [#4879](https://github.com/aws/aws-sdk-java-v2/issues/4879)" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Adds setting to disable making EC2 Instance Metadata Service (IMDS) calls without a token header when prefetching a token does not work. This feature can be configured through environment variables (AWS_EC2_METADATA_V1_DISABLED), system property (aws.disableEc2MetadataV1) or AWS config file (ec2_metadata_v1_disabled). When you configure this setting to true, no calls without token headers will be made to IMDS." + }, + { + "type": "feature", + "category": "Amazon DynamoDB", + "contributor": "", + "description": "Any number of users can execute up to 50 concurrent restores (any type of restore) in a given account." + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "Amazon SageMaker Canvas adds GenerativeAiSettings support for CanvasAppSettings." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.18.json b/.changes/2.23.x/2.23.18.json new file mode 100644 index 000000000000..a1ebc6bf59f4 --- /dev/null +++ b/.changes/2.23.x/2.23.18.json @@ -0,0 +1,18 @@ +{ + "version": "2.23.18", + "date": "2024-02-05", + "entries": [ + { + "type": "feature", + "category": "AWS Glue", + "contributor": "", + "description": "Introduce Catalog Encryption Role within Glue Data Catalog Settings. Introduce SASL/PLAIN as an authentication method for Glue Kafka connections" + }, + { + "type": "feature", + "category": "Amazon WorkSpaces", + "contributor": "", + "description": "Added definitions of various WorkSpace states" + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.19.json b/.changes/2.23.x/2.23.19.json new file mode 100644 index 000000000000..f2dc9e342a49 --- /dev/null +++ b/.changes/2.23.x/2.23.19.json @@ -0,0 +1,42 @@ +{ + "version": "2.23.19", + "date": "2024-02-06", + "entries": [ + { + "type": "feature", + "category": "AWS AppSync", + "contributor": "", + "description": "Support for environment variables in AppSync GraphQL APIs" + }, + { + "type": "feature", + "category": "AWS WAFV2", + "contributor": "", + "description": "You can now delete an API key that you've created for use with your CAPTCHA JavaScript integration API." + }, + { + "type": "feature", + "category": "Amazon CloudWatch Logs", + "contributor": "", + "description": "This release adds a new field, logGroupArn, to the response of the logs:DescribeLogGroups action." + }, + { + "type": "feature", + "category": "Amazon EC2 Container Service", + "contributor": "", + "description": "This release is a documentation only update to address customer issues." + }, + { + "type": "feature", + "category": "Amazon Elasticsearch Service", + "contributor": "", + "description": "This release adds clear visibility to the customers on the changes that they make on the domain." + }, + { + "type": "feature", + "category": "Amazon OpenSearch Service", + "contributor": "", + "description": "This release adds clear visibility to the customers on the changes that they make on the domain." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.2.json b/.changes/2.23.x/2.23.2.json similarity index 100% rename from .changes/2.23.2.json rename to .changes/2.23.x/2.23.2.json diff --git a/.changes/2.23.x/2.23.20.json b/.changes/2.23.x/2.23.20.json new file mode 100644 index 000000000000..27973be63027 --- /dev/null +++ b/.changes/2.23.x/2.23.20.json @@ -0,0 +1,54 @@ +{ + "version": "2.23.20", + "date": "2024-02-07", + "entries": [ + { + "type": "bugfix", + "category": "AWS CRT Sync HTTP Client", + "contributor": "", + "description": "Fixed an issue where `CancellationException` was thrown incorrectly from AWS CRT Sync HTTP client when execution time exceeded the total configured API call attempt timeout or API call timeout. Now it throws `ApiCallAttemptTimeoutException`/`ApiCallTimeoutException` accordingly. See [#4820](https://github.com/aws/aws-sdk-java-v2/issues/4820)" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Bump `aws-crt` version to `0.29.9`" + }, + { + "type": "feature", + "category": "AWS DataSync", + "contributor": "", + "description": "AWS DataSync now supports manifests for specifying files or objects to transfer." + }, + { + "type": "feature", + "category": "Amazon CloudFront KeyValueStore", + "contributor": "", + "description": "Switching CloudFront KeyValueStore onto the new SRA (Smithy Reference Architecture) identity and auth logic that was released in v2.21.0." + }, + { + "type": "feature", + "category": "Amazon Lex Model Building V2", + "contributor": "", + "description": "This release introduces a new bot replication feature as part of Lex Global Resiliency offering. This feature leverages a new set of APIs that allow customers to create bot replicas and replicate changes to bots across regions." + }, + { + "type": "feature", + "category": "Amazon Redshift", + "contributor": "", + "description": "LisRecommendations API to fetch Amazon Redshift Advisor recommendations." + }, + { + "type": "feature", + "category": "AWS CRT-based S3 Client", + "contributor": "", + "description": "Exposes a setting to set the memory limit when making asynchronous calls with the CRT-based S3 client" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.21.json b/.changes/2.23.x/2.23.21.json new file mode 100644 index 000000000000..9dfcec53758d --- /dev/null +++ b/.changes/2.23.x/2.23.21.json @@ -0,0 +1,24 @@ +{ + "version": "2.23.21", + "date": "2024-02-08", + "entries": [ + { + "type": "feature", + "category": "AWS CodePipeline", + "contributor": "", + "description": "Add ability to execute pipelines with new parallel & queued execution modes and add support for triggers with filtering on branches and file paths." + }, + { + "type": "feature", + "category": "Amazon QuickSight", + "contributor": "", + "description": "General Interactions for Visuals; Waterfall Chart Color Configuration; Documentation Update" + }, + { + "type": "feature", + "category": "Amazon WorkSpaces", + "contributor": "", + "description": "This release introduces User-Decoupling feature. This feature allows Workspaces Core customers to provision workspaces without providing users. CreateWorkspaces and DescribeWorkspaces APIs will now take a new optional parameter \"WorkspaceName\"." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.3.json b/.changes/2.23.x/2.23.3.json similarity index 100% rename from .changes/2.23.3.json rename to .changes/2.23.x/2.23.3.json diff --git a/.changes/2.23.4.json b/.changes/2.23.x/2.23.4.json similarity index 100% rename from .changes/2.23.4.json rename to .changes/2.23.x/2.23.4.json diff --git a/.changes/2.23.5.json b/.changes/2.23.x/2.23.5.json similarity index 100% rename from .changes/2.23.5.json rename to .changes/2.23.x/2.23.5.json diff --git a/.changes/2.23.6.json b/.changes/2.23.x/2.23.6.json similarity index 100% rename from .changes/2.23.6.json rename to .changes/2.23.x/2.23.6.json diff --git a/.changes/2.23.7.json b/.changes/2.23.x/2.23.7.json similarity index 100% rename from .changes/2.23.7.json rename to .changes/2.23.x/2.23.7.json diff --git a/.changes/2.23.x/2.23.8.json b/.changes/2.23.x/2.23.8.json new file mode 100644 index 000000000000..6b1e50098a71 --- /dev/null +++ b/.changes/2.23.x/2.23.8.json @@ -0,0 +1,66 @@ +{ + "version": "2.23.8", + "date": "2024-01-22", + "entries": [ + { + "type": "bugfix", + "category": "AWS CRT HTTP Client", + "contributor": "", + "description": "Fixed a thread safety issue that could cause application to crash in the edge case where the SDK attempted to invoke `incrementWindow` after the stream is closed in AWS CRT HTTP Client." + }, + { + "type": "feature", + "category": "AWS AppConfig Data", + "contributor": "", + "description": "Fix FIPS Endpoints in aws-us-gov." + }, + { + "type": "feature", + "category": "AWS Cloud9", + "contributor": "", + "description": "Doc-only update around removing AL1 from list of available AMIs for Cloud9" + }, + { + "type": "feature", + "category": "AWS Organizations", + "contributor": "", + "description": "Doc only update for quota increase change" + }, + { + "type": "feature", + "category": "Amazon CloudFront KeyValueStore", + "contributor": "", + "description": "This release improves upon the DescribeKeyValueStore API by returning two additional fields, Status of the KeyValueStore and the FailureReason in case of failures during creation of KeyValueStore." + }, + { + "type": "feature", + "category": "Amazon Connect Cases", + "contributor": "", + "description": "This release adds the ability to view audit history on a case and introduces a new parameter, performedBy, for CreateCase and UpdateCase API's." + }, + { + "type": "feature", + "category": "Amazon EC2 Container Service", + "contributor": "", + "description": "This release adds support for Transport Layer Security (TLS) and Configurable Timeout to ECS Service Connect. TLS facilitates privacy and data security for inter-service communications, while Configurable Timeout allows customized per-request timeout and idle timeout for Service Connect services." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "Documentation updates for Amazon EC2." + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "Introduced support for the InsufficientDBInstanceCapacityFault error in the RDS CreateDBCluster API method. This provides enhanced error handling, ensuring a more robust experience when creating database clusters with insufficient instance capacity." + }, + { + "type": "feature", + "category": "FinSpace User Environment Management service", + "contributor": "", + "description": "Allow customer to set zip default through command line arguments." + } + ] +} \ No newline at end of file diff --git a/.changes/2.23.x/2.23.9.json b/.changes/2.23.x/2.23.9.json new file mode 100644 index 000000000000..22699a5db363 --- /dev/null +++ b/.changes/2.23.x/2.23.9.json @@ -0,0 +1,12 @@ +{ + "version": "2.23.9", + "date": "2024-01-23", + "entries": [ + { + "type": "feature", + "category": "Inspector2", + "contributor": "", + "description": "This release adds support for CIS scans on EC2 instances." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.0.json b/.changes/2.24.0.json new file mode 100644 index 000000000000..6fe6e6c07f8d --- /dev/null +++ b/.changes/2.24.0.json @@ -0,0 +1,72 @@ +{ + "version": "2.24.0", + "date": "2024-02-09", + "entries": [ + { + "type": "bugfix", + "category": "Amazon S3", + "contributor": "", + "description": "Fix bug where PUT fails when using SSE-C with Checksum when using S3AsyncClient with multipart enabled. Enable CRC32 for putObject when using multipart client if checksum validation is not disabled and checksum is not set by user" + }, + { + "type": "feature", + "category": "AWS Batch", + "contributor": "", + "description": "This feature allows Batch to support configuration of repository credentials for jobs running on ECS" + }, + { + "type": "feature", + "category": "AWS IoT", + "contributor": "", + "description": "This release allows AWS IoT Core users to enable Online Certificate Status Protocol (OCSP) Stapling for TLS X.509 Server Certificates when creating and updating AWS IoT Domain Configurations with Custom Domain." + }, + { + "type": "feature", + "category": "AWS Price List Service", + "contributor": "", + "description": "Add Throttling Exception to all APIs." + }, + { + "type": "feature", + "category": "Amazon EC2 Container Service", + "contributor": "", + "description": "Documentation only update for Amazon ECS." + }, + { + "type": "feature", + "category": "Amazon Prometheus Service", + "contributor": "", + "description": "Overall documentation updates." + }, + { + "type": "feature", + "category": "Braket", + "contributor": "", + "description": "Creating a job will result in DeviceOfflineException when using an offline device, and DeviceRetiredException when using a retired device." + }, + { + "type": "feature", + "category": "Cost Optimization Hub", + "contributor": "", + "description": "Adding includeMemberAccounts field to the response of ListEnrollmentStatuses API." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated internal core logic for signing properties with non-default values to be codegen based instead of set at runtime." + }, + { + "type": "feature", + "category": "Amazon S3", + "contributor": "", + "description": "Overriding signer properties for S3 through the deprecated non-public execution attributes in S3SignerExecutionAttribute no longer works with this release. The recommended approach is to use plugins in order to change these settings." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.1.json b/.changes/2.24.1.json new file mode 100644 index 000000000000..0cbdcd7f967f --- /dev/null +++ b/.changes/2.24.1.json @@ -0,0 +1,30 @@ +{ + "version": "2.24.1", + "date": "2024-02-12", + "entries": [ + { + "type": "feature", + "category": "AWS AppSync", + "contributor": "", + "description": "Adds support for new options on GraphqlAPIs, Resolvers and Data Sources for emitting Amazon CloudWatch metrics for enhanced monitoring of AppSync APIs." + }, + { + "type": "feature", + "category": "Amazon CloudWatch", + "contributor": "", + "description": "This release enables PutMetricData API request payload compression by default." + }, + { + "type": "feature", + "category": "Amazon Neptune Graph", + "contributor": "", + "description": "Adding a new option \"parameters\" for data plane api ExecuteQuery to support running parameterized query via SDK." + }, + { + "type": "feature", + "category": "Amazon Route 53 Domains", + "contributor": "", + "description": "This release adds bill contact support for RegisterDomain, TransferDomain, UpdateDomainContact and GetDomainDetail API." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.10.json b/.changes/2.24.10.json new file mode 100644 index 000000000000..f953f46f350b --- /dev/null +++ b/.changes/2.24.10.json @@ -0,0 +1,42 @@ +{ + "version": "2.24.10", + "date": "2024-02-23", + "entries": [ + { + "type": "feature", + "category": "AWS AppSync", + "contributor": "", + "description": "Documentation only updates for AppSync" + }, + { + "type": "feature", + "category": "S3 Transfer Manager", + "contributor": "", + "description": "Make Transfer Manager work by default with S3AsyncClient when multipart configuration is enabled." + }, + { + "type": "feature", + "category": "Amazon QLDB", + "contributor": "", + "description": "Clarify possible values for KmsKeyArn and EncryptionDescription." + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "Add pattern and length based validations for DBShardGroupIdentifier" + }, + { + "type": "feature", + "category": "CloudWatch RUM", + "contributor": "", + "description": "Doc-only update for new RUM metrics that were added" + }, + { + "type": "feature", + "category": "S3 Transfer Manager", + "contributor": "", + "description": "Enable multipart configuration by default when creating a new S3TranferManager instance using the .create() method" + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.11.json b/.changes/2.24.11.json new file mode 100644 index 000000000000..5e1055b0b076 --- /dev/null +++ b/.changes/2.24.11.json @@ -0,0 +1,30 @@ +{ + "version": "2.24.11", + "date": "2024-02-26", + "entries": [ + { + "type": "feature", + "category": "Amazon API Gateway", + "contributor": "", + "description": "Documentation updates for Amazon API Gateway." + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "This release adds support for gp3 data volumes for Multi-AZ DB Clusters." + }, + { + "type": "feature", + "category": "Elastic Disaster Recovery Service", + "contributor": "", + "description": "Added volume status to DescribeSourceServer replicated volumes." + }, + { + "type": "feature", + "category": "Managed Streaming for Kafka Connect", + "contributor": "", + "description": "Adds support for tagging, with new TagResource, UntagResource and ListTagsForResource APIs to manage tags and updates to existing APIs to allow tag on create. This release also adds support for the new DeleteWorkerConfiguration API." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.12.json b/.changes/2.24.12.json new file mode 100644 index 000000000000..697d0967e2be --- /dev/null +++ b/.changes/2.24.12.json @@ -0,0 +1,24 @@ +{ + "version": "2.24.12", + "date": "2024-02-27", + "entries": [ + { + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "sullis", + "description": "upgrade netty version to 4.1.107.Final" + }, + { + "type": "feature", + "category": "AWS Amplify UI Builder", + "contributor": "", + "description": "We have added the ability to tag resources after they are created" + }, + { + "type": "feature", + "category": "Amazon S3", + "contributor": "", + "description": "Enable TransferListener when uploading with TransferManager with Java-based S3Client with multipart enabled" + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.2.json b/.changes/2.24.2.json new file mode 100644 index 000000000000..8afef3107c35 --- /dev/null +++ b/.changes/2.24.2.json @@ -0,0 +1,54 @@ +{ + "version": "2.24.2", + "date": "2024-02-13", + "entries": [ + { + "type": "bugfix", + "category": "URL Connection Client", + "contributor": "", + "description": "Fix a bug where headers with multiple values don't have all values for that header sent on the wire. This leads to signature mismatch exceptions.\n\nFixes [#4746](https://github.com/aws/aws-sdk-java-v2/issues/4746)." + }, + { + "type": "feature", + "category": "AWS Marketplace Catalog Service", + "contributor": "", + "description": "AWS Marketplace Catalog API now supports setting intent on requests" + }, + { + "type": "feature", + "category": "AWS Resource Explorer", + "contributor": "", + "description": "Resource Explorer now uses newly supported IPv4 'amazonaws.com' endpoints by default." + }, + { + "type": "feature", + "category": "Amazon DynamoDB", + "contributor": "akiesler", + "description": "Add additional logical operator ('and' and 'or') methods to DynamoDB Expression" + }, + { + "type": "feature", + "category": "Amazon Lightsail", + "contributor": "", + "description": "This release adds support to upgrade the major version of a database." + }, + { + "type": "feature", + "category": "Amazon S3", + "contributor": "", + "description": "Automatically trim object metadata keys of whitespace for `PutObject` and `CreateMultipartUpload`." + }, + { + "type": "feature", + "category": "Amazon Security Lake", + "contributor": "", + "description": "Documentation updates for Security Lake" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.3.json b/.changes/2.24.3.json new file mode 100644 index 000000000000..3200357f20cb --- /dev/null +++ b/.changes/2.24.3.json @@ -0,0 +1,48 @@ +{ + "version": "2.24.3", + "date": "2024-02-14", + "entries": [ + { + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Fixed an issue where NPE would be thrown if there was an empty event in the input for an event streaming operation." + }, + { + "type": "bugfix", + "category": "Amazon Simple Storage Service", + "contributor": "", + "description": "Fix for Issue [#4912](https://github.com/aws/aws-sdk-java-v2/issues/4912) where client region with AWS_GLOBAL calls failed for cross region access." + }, + { + "type": "feature", + "category": "AWS Control Tower", + "contributor": "", + "description": "Adds support for new Baseline and EnabledBaseline APIs for automating multi-account governance." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Switching half of the AWS service clients onto the new SRA (Smithy Reference Architecture) identity and auth logic that was released in v2.21.0. For a list of individual services affected, please check the committed files." + }, + { + "type": "feature", + "category": "Amazon Lookout for Equipment", + "contributor": "", + "description": "This feature allows customers to see pointwise model diagnostics results for their models." + }, + { + "type": "feature", + "category": "QBusiness", + "contributor": "", + "description": "This release adds the metadata-boosting feature, which allows customers to easily fine-tune the underlying ranking of retrieved RAG passages in order to optimize Q&A answer relevance. It also adds new feedback reasons for the PutFeedback API." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.4.json b/.changes/2.24.4.json new file mode 100644 index 000000000000..5aa3ce143562 --- /dev/null +++ b/.changes/2.24.4.json @@ -0,0 +1,66 @@ +{ + "version": "2.24.4", + "date": "2024-02-15", + "entries": [ + { + "type": "feature", + "category": "AWS Artifact", + "contributor": "", + "description": "This is the initial SDK release for AWS Artifact. AWS Artifact provides on-demand access to compliance and third-party compliance reports. This release includes access to List and Get reports, along with their metadata. This release also includes access to AWS Artifact notifications settings." + }, + { + "type": "feature", + "category": "AWS CodePipeline", + "contributor": "", + "description": "Add ability to override timeout on action level." + }, + { + "type": "feature", + "category": "AWS Secrets Manager", + "contributor": "", + "description": "Doc only update for Secrets Manager" + }, + { + "type": "feature", + "category": "Amazon Detective", + "contributor": "", + "description": "Doc only updates for content enhancement" + }, + { + "type": "feature", + "category": "Amazon GuardDuty", + "contributor": "", + "description": "Marked fields IpAddressV4, PrivateIpAddress, Email as Sensitive." + }, + { + "type": "feature", + "category": "Amazon HealthLake", + "contributor": "", + "description": "This release adds a new response parameter, JobProgressReport, to the DescribeFHIRImportJob and ListFHIRImportJobs API operation. JobProgressReport provides details on the progress of the import job on the server." + }, + { + "type": "feature", + "category": "Amazon OpenSearch Service", + "contributor": "", + "description": "Adds additional supported instance types." + }, + { + "type": "feature", + "category": "Amazon Polly", + "contributor": "", + "description": "Amazon Polly adds 1 new voice - Burcu (tr-TR)" + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "This release adds a new API UpdateClusterSoftware for SageMaker HyperPod. This API allows users to patch HyperPod clusters with latest platform softwares." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.5.json b/.changes/2.24.5.json new file mode 100644 index 000000000000..dddde424c866 --- /dev/null +++ b/.changes/2.24.5.json @@ -0,0 +1,48 @@ +{ + "version": "2.24.5", + "date": "2024-02-16", + "entries": [ + { + "type": "feature", + "category": "AWS Lambda", + "contributor": "", + "description": "Documentation-only updates for Lambda to clarify a number of existing actions and properties." + }, + { + "type": "feature", + "category": "Amazon Connect Participant Service", + "contributor": "", + "description": "Doc only update to GetTranscript API reference guide to inform users about presence of events in the chat transcript." + }, + { + "type": "feature", + "category": "Amazon EMR", + "contributor": "", + "description": "adds fine grained control over Unhealthy Node Replacement to Amazon ElasticMapReduce" + }, + { + "type": "feature", + "category": "Amazon Kinesis Firehose", + "contributor": "", + "description": "This release adds support for Data Message Extraction for decompressed CloudWatch logs, and to use a custom file extension or time zone for S3 destinations." + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "Doc only update for a valid option in DB parameter group" + }, + { + "type": "feature", + "category": "Amazon Simple Notification Service", + "contributor": "", + "description": "This release marks phone numbers as sensitive inputs." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.6.json b/.changes/2.24.6.json new file mode 100644 index 000000000000..6e695f57af45 --- /dev/null +++ b/.changes/2.24.6.json @@ -0,0 +1,48 @@ +{ + "version": "2.24.6", + "date": "2024-02-19", + "entries": [ + { + "type": "feature", + "category": "AWS Amplify", + "contributor": "", + "description": "This release contains API changes that enable users to configure their Amplify domains with their own custom SSL/TLS certificate." + }, + { + "type": "feature", + "category": "AWS Config", + "contributor": "", + "description": "Documentation updates for the AWS Config CLI" + }, + { + "type": "feature", + "category": "AWS MediaTailor", + "contributor": "", + "description": "MediaTailor: marking #AdBreak.OffsetMillis as required." + }, + { + "type": "feature", + "category": "Amazon Interactive Video Service", + "contributor": "", + "description": "Changed description for latencyMode in Create/UpdateChannel and Channel/ChannelSummary." + }, + { + "type": "feature", + "category": "Amazon Keyspaces", + "contributor": "", + "description": "Documentation updates for Amazon Keyspaces" + }, + { + "type": "feature", + "category": "Amazon S3", + "contributor": "", + "description": "Add support for pause/resume upload for TransferManager with Java-based S3Client that has multipart enabled" + }, + { + "type": "feature", + "category": "chatbot", + "contributor": "", + "description": "This release adds support for AWS Chatbot. You can now monitor, operate, and troubleshoot your AWS resources with interactive ChatOps using the AWS SDK." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.7.json b/.changes/2.24.7.json new file mode 100644 index 000000000000..c039dbcc2fff --- /dev/null +++ b/.changes/2.24.7.json @@ -0,0 +1,24 @@ +{ + "version": "2.24.7", + "date": "2024-02-20", + "entries": [ + { + "type": "feature", + "category": "AWS Lambda", + "contributor": "", + "description": "Add .NET 8 (dotnet8) Runtime support to AWS Lambda." + }, + { + "type": "feature", + "category": "Amazon DynamoDB", + "contributor": "", + "description": "Publishing quick fix for doc only update." + }, + { + "type": "feature", + "category": "Amazon Kinesis Firehose", + "contributor": "", + "description": "This release updates a few Firehose related APIs." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.8.json b/.changes/2.24.8.json new file mode 100644 index 000000000000..b1fbf8334e5d --- /dev/null +++ b/.changes/2.24.8.json @@ -0,0 +1,36 @@ +{ + "version": "2.24.8", + "date": "2024-02-21", + "entries": [ + { + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Add content-length header in Json and Xml Protocol Marshaller for String and Binary explicit Payloads." + }, + { + "type": "feature", + "category": "AWS Elemental MediaLive", + "contributor": "", + "description": "MediaLive now supports the ability to restart pipelines in a running channel." + }, + { + "type": "feature", + "category": "AWS IoT Events", + "contributor": "", + "description": "Increase the maximum length of descriptions for Inputs, Detector Models, and Alarm Models" + }, + { + "type": "feature", + "category": "Amazon Lookout for Equipment", + "contributor": "", + "description": "This release adds a field exposing model quality to read APIs for models. It also adds a model quality field to the API response when creating an inference scheduler." + }, + { + "type": "feature", + "category": "Amazon Simple Systems Manager (SSM)", + "contributor": "", + "description": "This release adds support for sharing Systems Manager parameters with other AWS accounts." + } + ] +} \ No newline at end of file diff --git a/.changes/2.24.9.json b/.changes/2.24.9.json new file mode 100644 index 000000000000..329912dd615e --- /dev/null +++ b/.changes/2.24.9.json @@ -0,0 +1,24 @@ +{ + "version": "2.24.9", + "date": "2024-02-22", + "entries": [ + { + "type": "bugfix", + "category": "AWS CRT-based S3 client", + "contributor": "", + "description": "Fixed memory leak issue when a request was cancelled in the AWS CRT-based S3 client." + }, + { + "type": "feature", + "category": "Amazon CloudWatch Internet Monitor", + "contributor": "", + "description": "This release adds IPv4 prefixes to health events" + }, + { + "type": "feature", + "category": "Amazon Kinesis Video Streams", + "contributor": "", + "description": "Increasing NextToken parameter length restriction for List APIs from 512 to 1024." + } + ] +} \ No newline at end of file diff --git a/.changes/2.3.0.json b/.changes/2.3.x/2.3.0.json similarity index 100% rename from .changes/2.3.0.json rename to .changes/2.3.x/2.3.0.json diff --git a/.changes/2.3.1.json b/.changes/2.3.x/2.3.1.json similarity index 100% rename from .changes/2.3.1.json rename to .changes/2.3.x/2.3.1.json diff --git a/.changes/2.3.2.json b/.changes/2.3.x/2.3.2.json similarity index 100% rename from .changes/2.3.2.json rename to .changes/2.3.x/2.3.2.json diff --git a/.changes/2.3.3.json b/.changes/2.3.x/2.3.3.json similarity index 100% rename from .changes/2.3.3.json rename to .changes/2.3.x/2.3.3.json diff --git a/.changes/2.3.4.json b/.changes/2.3.x/2.3.4.json similarity index 100% rename from .changes/2.3.4.json rename to .changes/2.3.x/2.3.4.json diff --git a/.changes/2.3.5.json b/.changes/2.3.x/2.3.5.json similarity index 100% rename from .changes/2.3.5.json rename to .changes/2.3.x/2.3.5.json diff --git a/.changes/2.3.6.json b/.changes/2.3.x/2.3.6.json similarity index 100% rename from .changes/2.3.6.json rename to .changes/2.3.x/2.3.6.json diff --git a/.changes/2.3.7.json b/.changes/2.3.x/2.3.7.json similarity index 100% rename from .changes/2.3.7.json rename to .changes/2.3.x/2.3.7.json diff --git a/.changes/2.3.8.json b/.changes/2.3.x/2.3.8.json similarity index 100% rename from .changes/2.3.8.json rename to .changes/2.3.x/2.3.8.json diff --git a/.changes/2.3.9.json b/.changes/2.3.x/2.3.9.json similarity index 100% rename from .changes/2.3.9.json rename to .changes/2.3.x/2.3.9.json diff --git a/.changes/2.4.0.json b/.changes/2.4.x/2.4.0.json similarity index 100% rename from .changes/2.4.0.json rename to .changes/2.4.x/2.4.0.json diff --git a/.changes/2.4.1.json b/.changes/2.4.x/2.4.1.json similarity index 100% rename from .changes/2.4.1.json rename to .changes/2.4.x/2.4.1.json diff --git a/.changes/2.4.10.json b/.changes/2.4.x/2.4.10.json similarity index 100% rename from .changes/2.4.10.json rename to .changes/2.4.x/2.4.10.json diff --git a/.changes/2.4.11.json b/.changes/2.4.x/2.4.11.json similarity index 100% rename from .changes/2.4.11.json rename to .changes/2.4.x/2.4.11.json diff --git a/.changes/2.4.12.json b/.changes/2.4.x/2.4.12.json similarity index 100% rename from .changes/2.4.12.json rename to .changes/2.4.x/2.4.12.json diff --git a/.changes/2.4.13.json b/.changes/2.4.x/2.4.13.json similarity index 100% rename from .changes/2.4.13.json rename to .changes/2.4.x/2.4.13.json diff --git a/.changes/2.4.14.json b/.changes/2.4.x/2.4.14.json similarity index 100% rename from .changes/2.4.14.json rename to .changes/2.4.x/2.4.14.json diff --git a/.changes/2.4.15.json b/.changes/2.4.x/2.4.15.json similarity index 100% rename from .changes/2.4.15.json rename to .changes/2.4.x/2.4.15.json diff --git a/.changes/2.4.16.json b/.changes/2.4.x/2.4.16.json similarity index 100% rename from .changes/2.4.16.json rename to .changes/2.4.x/2.4.16.json diff --git a/.changes/2.4.17.json b/.changes/2.4.x/2.4.17.json similarity index 100% rename from .changes/2.4.17.json rename to .changes/2.4.x/2.4.17.json diff --git a/.changes/2.4.2.json b/.changes/2.4.x/2.4.2.json similarity index 100% rename from .changes/2.4.2.json rename to .changes/2.4.x/2.4.2.json diff --git a/.changes/2.4.3.json b/.changes/2.4.x/2.4.3.json similarity index 100% rename from .changes/2.4.3.json rename to .changes/2.4.x/2.4.3.json diff --git a/.changes/2.4.4.json b/.changes/2.4.x/2.4.4.json similarity index 100% rename from .changes/2.4.4.json rename to .changes/2.4.x/2.4.4.json diff --git a/.changes/2.4.5.json b/.changes/2.4.x/2.4.5.json similarity index 100% rename from .changes/2.4.5.json rename to .changes/2.4.x/2.4.5.json diff --git a/.changes/2.4.6.json b/.changes/2.4.x/2.4.6.json similarity index 100% rename from .changes/2.4.6.json rename to .changes/2.4.x/2.4.6.json diff --git a/.changes/2.4.7.json b/.changes/2.4.x/2.4.7.json similarity index 100% rename from .changes/2.4.7.json rename to .changes/2.4.x/2.4.7.json diff --git a/.changes/2.4.8.json b/.changes/2.4.x/2.4.8.json similarity index 100% rename from .changes/2.4.8.json rename to .changes/2.4.x/2.4.8.json diff --git a/.changes/2.4.9.json b/.changes/2.4.x/2.4.9.json similarity index 100% rename from .changes/2.4.9.json rename to .changes/2.4.x/2.4.9.json diff --git a/.changes/2.5.0.json b/.changes/2.5.x/2.5.0.json similarity index 100% rename from .changes/2.5.0.json rename to .changes/2.5.x/2.5.0.json diff --git a/.changes/2.5.1.json b/.changes/2.5.x/2.5.1.json similarity index 100% rename from .changes/2.5.1.json rename to .changes/2.5.x/2.5.1.json diff --git a/.changes/2.5.10.json b/.changes/2.5.x/2.5.10.json similarity index 100% rename from .changes/2.5.10.json rename to .changes/2.5.x/2.5.10.json diff --git a/.changes/2.5.11.json b/.changes/2.5.x/2.5.11.json similarity index 100% rename from .changes/2.5.11.json rename to .changes/2.5.x/2.5.11.json diff --git a/.changes/2.5.12.json b/.changes/2.5.x/2.5.12.json similarity index 100% rename from .changes/2.5.12.json rename to .changes/2.5.x/2.5.12.json diff --git a/.changes/2.5.13.json b/.changes/2.5.x/2.5.13.json similarity index 100% rename from .changes/2.5.13.json rename to .changes/2.5.x/2.5.13.json diff --git a/.changes/2.5.14.json b/.changes/2.5.x/2.5.14.json similarity index 100% rename from .changes/2.5.14.json rename to .changes/2.5.x/2.5.14.json diff --git a/.changes/2.5.15.json b/.changes/2.5.x/2.5.15.json similarity index 100% rename from .changes/2.5.15.json rename to .changes/2.5.x/2.5.15.json diff --git a/.changes/2.5.16.json b/.changes/2.5.x/2.5.16.json similarity index 100% rename from .changes/2.5.16.json rename to .changes/2.5.x/2.5.16.json diff --git a/.changes/2.5.17.json b/.changes/2.5.x/2.5.17.json similarity index 100% rename from .changes/2.5.17.json rename to .changes/2.5.x/2.5.17.json diff --git a/.changes/2.5.18.json b/.changes/2.5.x/2.5.18.json similarity index 100% rename from .changes/2.5.18.json rename to .changes/2.5.x/2.5.18.json diff --git a/.changes/2.5.19.json b/.changes/2.5.x/2.5.19.json similarity index 100% rename from .changes/2.5.19.json rename to .changes/2.5.x/2.5.19.json diff --git a/.changes/2.5.2.json b/.changes/2.5.x/2.5.2.json similarity index 100% rename from .changes/2.5.2.json rename to .changes/2.5.x/2.5.2.json diff --git a/.changes/2.5.20.json b/.changes/2.5.x/2.5.20.json similarity index 100% rename from .changes/2.5.20.json rename to .changes/2.5.x/2.5.20.json diff --git a/.changes/2.5.21.json b/.changes/2.5.x/2.5.21.json similarity index 100% rename from .changes/2.5.21.json rename to .changes/2.5.x/2.5.21.json diff --git a/.changes/2.5.22.json b/.changes/2.5.x/2.5.22.json similarity index 100% rename from .changes/2.5.22.json rename to .changes/2.5.x/2.5.22.json diff --git a/.changes/2.5.23.json b/.changes/2.5.x/2.5.23.json similarity index 100% rename from .changes/2.5.23.json rename to .changes/2.5.x/2.5.23.json diff --git a/.changes/2.5.24.json b/.changes/2.5.x/2.5.24.json similarity index 100% rename from .changes/2.5.24.json rename to .changes/2.5.x/2.5.24.json diff --git a/.changes/2.5.25.json b/.changes/2.5.x/2.5.25.json similarity index 100% rename from .changes/2.5.25.json rename to .changes/2.5.x/2.5.25.json diff --git a/.changes/2.5.26.json b/.changes/2.5.x/2.5.26.json similarity index 100% rename from .changes/2.5.26.json rename to .changes/2.5.x/2.5.26.json diff --git a/.changes/2.5.27.json b/.changes/2.5.x/2.5.27.json similarity index 100% rename from .changes/2.5.27.json rename to .changes/2.5.x/2.5.27.json diff --git a/.changes/2.5.28.json b/.changes/2.5.x/2.5.28.json similarity index 100% rename from .changes/2.5.28.json rename to .changes/2.5.x/2.5.28.json diff --git a/.changes/2.5.29.json b/.changes/2.5.x/2.5.29.json similarity index 100% rename from .changes/2.5.29.json rename to .changes/2.5.x/2.5.29.json diff --git a/.changes/2.5.3.json b/.changes/2.5.x/2.5.3.json similarity index 100% rename from .changes/2.5.3.json rename to .changes/2.5.x/2.5.3.json diff --git a/.changes/2.5.30.json b/.changes/2.5.x/2.5.30.json similarity index 100% rename from .changes/2.5.30.json rename to .changes/2.5.x/2.5.30.json diff --git a/.changes/2.5.31.json b/.changes/2.5.x/2.5.31.json similarity index 100% rename from .changes/2.5.31.json rename to .changes/2.5.x/2.5.31.json diff --git a/.changes/2.5.32.json b/.changes/2.5.x/2.5.32.json similarity index 100% rename from .changes/2.5.32.json rename to .changes/2.5.x/2.5.32.json diff --git a/.changes/2.5.33.json b/.changes/2.5.x/2.5.33.json similarity index 100% rename from .changes/2.5.33.json rename to .changes/2.5.x/2.5.33.json diff --git a/.changes/2.5.34.json b/.changes/2.5.x/2.5.34.json similarity index 100% rename from .changes/2.5.34.json rename to .changes/2.5.x/2.5.34.json diff --git a/.changes/2.5.35.json b/.changes/2.5.x/2.5.35.json similarity index 100% rename from .changes/2.5.35.json rename to .changes/2.5.x/2.5.35.json diff --git a/.changes/2.5.36.json b/.changes/2.5.x/2.5.36.json similarity index 100% rename from .changes/2.5.36.json rename to .changes/2.5.x/2.5.36.json diff --git a/.changes/2.5.37.json b/.changes/2.5.x/2.5.37.json similarity index 100% rename from .changes/2.5.37.json rename to .changes/2.5.x/2.5.37.json diff --git a/.changes/2.5.38.json b/.changes/2.5.x/2.5.38.json similarity index 100% rename from .changes/2.5.38.json rename to .changes/2.5.x/2.5.38.json diff --git a/.changes/2.5.39.json b/.changes/2.5.x/2.5.39.json similarity index 100% rename from .changes/2.5.39.json rename to .changes/2.5.x/2.5.39.json diff --git a/.changes/2.5.4.json b/.changes/2.5.x/2.5.4.json similarity index 100% rename from .changes/2.5.4.json rename to .changes/2.5.x/2.5.4.json diff --git a/.changes/2.5.40.json b/.changes/2.5.x/2.5.40.json similarity index 100% rename from .changes/2.5.40.json rename to .changes/2.5.x/2.5.40.json diff --git a/.changes/2.5.41.json b/.changes/2.5.x/2.5.41.json similarity index 100% rename from .changes/2.5.41.json rename to .changes/2.5.x/2.5.41.json diff --git a/.changes/2.5.42.json b/.changes/2.5.x/2.5.42.json similarity index 100% rename from .changes/2.5.42.json rename to .changes/2.5.x/2.5.42.json diff --git a/.changes/2.5.43.json b/.changes/2.5.x/2.5.43.json similarity index 100% rename from .changes/2.5.43.json rename to .changes/2.5.x/2.5.43.json diff --git a/.changes/2.5.44.json b/.changes/2.5.x/2.5.44.json similarity index 100% rename from .changes/2.5.44.json rename to .changes/2.5.x/2.5.44.json diff --git a/.changes/2.5.45.json b/.changes/2.5.x/2.5.45.json similarity index 100% rename from .changes/2.5.45.json rename to .changes/2.5.x/2.5.45.json diff --git a/.changes/2.5.46.json b/.changes/2.5.x/2.5.46.json similarity index 100% rename from .changes/2.5.46.json rename to .changes/2.5.x/2.5.46.json diff --git a/.changes/2.5.47.json b/.changes/2.5.x/2.5.47.json similarity index 100% rename from .changes/2.5.47.json rename to .changes/2.5.x/2.5.47.json diff --git a/.changes/2.5.48.json b/.changes/2.5.x/2.5.48.json similarity index 100% rename from .changes/2.5.48.json rename to .changes/2.5.x/2.5.48.json diff --git a/.changes/2.5.49.json b/.changes/2.5.x/2.5.49.json similarity index 100% rename from .changes/2.5.49.json rename to .changes/2.5.x/2.5.49.json diff --git a/.changes/2.5.5.json b/.changes/2.5.x/2.5.5.json similarity index 100% rename from .changes/2.5.5.json rename to .changes/2.5.x/2.5.5.json diff --git a/.changes/2.5.50.json b/.changes/2.5.x/2.5.50.json similarity index 100% rename from .changes/2.5.50.json rename to .changes/2.5.x/2.5.50.json diff --git a/.changes/2.5.51.json b/.changes/2.5.x/2.5.51.json similarity index 100% rename from .changes/2.5.51.json rename to .changes/2.5.x/2.5.51.json diff --git a/.changes/2.5.52.json b/.changes/2.5.x/2.5.52.json similarity index 100% rename from .changes/2.5.52.json rename to .changes/2.5.x/2.5.52.json diff --git a/.changes/2.5.53.json b/.changes/2.5.x/2.5.53.json similarity index 100% rename from .changes/2.5.53.json rename to .changes/2.5.x/2.5.53.json diff --git a/.changes/2.5.54.json b/.changes/2.5.x/2.5.54.json similarity index 100% rename from .changes/2.5.54.json rename to .changes/2.5.x/2.5.54.json diff --git a/.changes/2.5.55.json b/.changes/2.5.x/2.5.55.json similarity index 100% rename from .changes/2.5.55.json rename to .changes/2.5.x/2.5.55.json diff --git a/.changes/2.5.56.json b/.changes/2.5.x/2.5.56.json similarity index 100% rename from .changes/2.5.56.json rename to .changes/2.5.x/2.5.56.json diff --git a/.changes/2.5.57.json b/.changes/2.5.x/2.5.57.json similarity index 100% rename from .changes/2.5.57.json rename to .changes/2.5.x/2.5.57.json diff --git a/.changes/2.5.58.json b/.changes/2.5.x/2.5.58.json similarity index 100% rename from .changes/2.5.58.json rename to .changes/2.5.x/2.5.58.json diff --git a/.changes/2.5.59.json b/.changes/2.5.x/2.5.59.json similarity index 100% rename from .changes/2.5.59.json rename to .changes/2.5.x/2.5.59.json diff --git a/.changes/2.5.6.json b/.changes/2.5.x/2.5.6.json similarity index 100% rename from .changes/2.5.6.json rename to .changes/2.5.x/2.5.6.json diff --git a/.changes/2.5.60.json b/.changes/2.5.x/2.5.60.json similarity index 100% rename from .changes/2.5.60.json rename to .changes/2.5.x/2.5.60.json diff --git a/.changes/2.5.61.json b/.changes/2.5.x/2.5.61.json similarity index 100% rename from .changes/2.5.61.json rename to .changes/2.5.x/2.5.61.json diff --git a/.changes/2.5.62.json b/.changes/2.5.x/2.5.62.json similarity index 100% rename from .changes/2.5.62.json rename to .changes/2.5.x/2.5.62.json diff --git a/.changes/2.5.63.json b/.changes/2.5.x/2.5.63.json similarity index 100% rename from .changes/2.5.63.json rename to .changes/2.5.x/2.5.63.json diff --git a/.changes/2.5.64.json b/.changes/2.5.x/2.5.64.json similarity index 100% rename from .changes/2.5.64.json rename to .changes/2.5.x/2.5.64.json diff --git a/.changes/2.5.65.json b/.changes/2.5.x/2.5.65.json similarity index 100% rename from .changes/2.5.65.json rename to .changes/2.5.x/2.5.65.json diff --git a/.changes/2.5.66.json b/.changes/2.5.x/2.5.66.json similarity index 100% rename from .changes/2.5.66.json rename to .changes/2.5.x/2.5.66.json diff --git a/.changes/2.5.67.json b/.changes/2.5.x/2.5.67.json similarity index 100% rename from .changes/2.5.67.json rename to .changes/2.5.x/2.5.67.json diff --git a/.changes/2.5.68.json b/.changes/2.5.x/2.5.68.json similarity index 100% rename from .changes/2.5.68.json rename to .changes/2.5.x/2.5.68.json diff --git a/.changes/2.5.69.json b/.changes/2.5.x/2.5.69.json similarity index 100% rename from .changes/2.5.69.json rename to .changes/2.5.x/2.5.69.json diff --git a/.changes/2.5.7.json b/.changes/2.5.x/2.5.7.json similarity index 100% rename from .changes/2.5.7.json rename to .changes/2.5.x/2.5.7.json diff --git a/.changes/2.5.70.json b/.changes/2.5.x/2.5.70.json similarity index 100% rename from .changes/2.5.70.json rename to .changes/2.5.x/2.5.70.json diff --git a/.changes/2.5.71.json b/.changes/2.5.x/2.5.71.json similarity index 100% rename from .changes/2.5.71.json rename to .changes/2.5.x/2.5.71.json diff --git a/.changes/2.5.8.json b/.changes/2.5.x/2.5.8.json similarity index 100% rename from .changes/2.5.8.json rename to .changes/2.5.x/2.5.8.json diff --git a/.changes/2.5.9.json b/.changes/2.5.x/2.5.9.json similarity index 100% rename from .changes/2.5.9.json rename to .changes/2.5.x/2.5.9.json diff --git a/.changes/2.6.0.json b/.changes/2.6.x/2.6.0.json similarity index 100% rename from .changes/2.6.0.json rename to .changes/2.6.x/2.6.0.json diff --git a/.changes/2.6.1.json b/.changes/2.6.x/2.6.1.json similarity index 100% rename from .changes/2.6.1.json rename to .changes/2.6.x/2.6.1.json diff --git a/.changes/2.6.2.json b/.changes/2.6.x/2.6.2.json similarity index 100% rename from .changes/2.6.2.json rename to .changes/2.6.x/2.6.2.json diff --git a/.changes/2.6.3.json b/.changes/2.6.x/2.6.3.json similarity index 100% rename from .changes/2.6.3.json rename to .changes/2.6.x/2.6.3.json diff --git a/.changes/2.6.4.json b/.changes/2.6.x/2.6.4.json similarity index 100% rename from .changes/2.6.4.json rename to .changes/2.6.x/2.6.4.json diff --git a/.changes/2.6.5.json b/.changes/2.6.x/2.6.5.json similarity index 100% rename from .changes/2.6.5.json rename to .changes/2.6.x/2.6.5.json diff --git a/.changes/2.7.0.json b/.changes/2.7.x/2.7.0.json similarity index 100% rename from .changes/2.7.0.json rename to .changes/2.7.x/2.7.0.json diff --git a/.changes/2.7.1.json b/.changes/2.7.x/2.7.1.json similarity index 100% rename from .changes/2.7.1.json rename to .changes/2.7.x/2.7.1.json diff --git a/.changes/2.7.10.json b/.changes/2.7.x/2.7.10.json similarity index 100% rename from .changes/2.7.10.json rename to .changes/2.7.x/2.7.10.json diff --git a/.changes/2.7.11.json b/.changes/2.7.x/2.7.11.json similarity index 100% rename from .changes/2.7.11.json rename to .changes/2.7.x/2.7.11.json diff --git a/.changes/2.7.12.json b/.changes/2.7.x/2.7.12.json similarity index 100% rename from .changes/2.7.12.json rename to .changes/2.7.x/2.7.12.json diff --git a/.changes/2.7.13.json b/.changes/2.7.x/2.7.13.json similarity index 100% rename from .changes/2.7.13.json rename to .changes/2.7.x/2.7.13.json diff --git a/.changes/2.7.14.json b/.changes/2.7.x/2.7.14.json similarity index 100% rename from .changes/2.7.14.json rename to .changes/2.7.x/2.7.14.json diff --git a/.changes/2.7.15.json b/.changes/2.7.x/2.7.15.json similarity index 100% rename from .changes/2.7.15.json rename to .changes/2.7.x/2.7.15.json diff --git a/.changes/2.7.16.json b/.changes/2.7.x/2.7.16.json similarity index 100% rename from .changes/2.7.16.json rename to .changes/2.7.x/2.7.16.json diff --git a/.changes/2.7.17.json b/.changes/2.7.x/2.7.17.json similarity index 100% rename from .changes/2.7.17.json rename to .changes/2.7.x/2.7.17.json diff --git a/.changes/2.7.18.json b/.changes/2.7.x/2.7.18.json similarity index 100% rename from .changes/2.7.18.json rename to .changes/2.7.x/2.7.18.json diff --git a/.changes/2.7.19.json b/.changes/2.7.x/2.7.19.json similarity index 100% rename from .changes/2.7.19.json rename to .changes/2.7.x/2.7.19.json diff --git a/.changes/2.7.2.json b/.changes/2.7.x/2.7.2.json similarity index 100% rename from .changes/2.7.2.json rename to .changes/2.7.x/2.7.2.json diff --git a/.changes/2.7.20.json b/.changes/2.7.x/2.7.20.json similarity index 100% rename from .changes/2.7.20.json rename to .changes/2.7.x/2.7.20.json diff --git a/.changes/2.7.21.json b/.changes/2.7.x/2.7.21.json similarity index 100% rename from .changes/2.7.21.json rename to .changes/2.7.x/2.7.21.json diff --git a/.changes/2.7.22.json b/.changes/2.7.x/2.7.22.json similarity index 100% rename from .changes/2.7.22.json rename to .changes/2.7.x/2.7.22.json diff --git a/.changes/2.7.23.json b/.changes/2.7.x/2.7.23.json similarity index 100% rename from .changes/2.7.23.json rename to .changes/2.7.x/2.7.23.json diff --git a/.changes/2.7.24.json b/.changes/2.7.x/2.7.24.json similarity index 100% rename from .changes/2.7.24.json rename to .changes/2.7.x/2.7.24.json diff --git a/.changes/2.7.25.json b/.changes/2.7.x/2.7.25.json similarity index 100% rename from .changes/2.7.25.json rename to .changes/2.7.x/2.7.25.json diff --git a/.changes/2.7.26.json b/.changes/2.7.x/2.7.26.json similarity index 100% rename from .changes/2.7.26.json rename to .changes/2.7.x/2.7.26.json diff --git a/.changes/2.7.27.json b/.changes/2.7.x/2.7.27.json similarity index 100% rename from .changes/2.7.27.json rename to .changes/2.7.x/2.7.27.json diff --git a/.changes/2.7.28.json b/.changes/2.7.x/2.7.28.json similarity index 100% rename from .changes/2.7.28.json rename to .changes/2.7.x/2.7.28.json diff --git a/.changes/2.7.29.json b/.changes/2.7.x/2.7.29.json similarity index 100% rename from .changes/2.7.29.json rename to .changes/2.7.x/2.7.29.json diff --git a/.changes/2.7.3.json b/.changes/2.7.x/2.7.3.json similarity index 100% rename from .changes/2.7.3.json rename to .changes/2.7.x/2.7.3.json diff --git a/.changes/2.7.30.json b/.changes/2.7.x/2.7.30.json similarity index 100% rename from .changes/2.7.30.json rename to .changes/2.7.x/2.7.30.json diff --git a/.changes/2.7.31.json b/.changes/2.7.x/2.7.31.json similarity index 100% rename from .changes/2.7.31.json rename to .changes/2.7.x/2.7.31.json diff --git a/.changes/2.7.32.json b/.changes/2.7.x/2.7.32.json similarity index 100% rename from .changes/2.7.32.json rename to .changes/2.7.x/2.7.32.json diff --git a/.changes/2.7.33.json b/.changes/2.7.x/2.7.33.json similarity index 100% rename from .changes/2.7.33.json rename to .changes/2.7.x/2.7.33.json diff --git a/.changes/2.7.34.json b/.changes/2.7.x/2.7.34.json similarity index 100% rename from .changes/2.7.34.json rename to .changes/2.7.x/2.7.34.json diff --git a/.changes/2.7.35.json b/.changes/2.7.x/2.7.35.json similarity index 100% rename from .changes/2.7.35.json rename to .changes/2.7.x/2.7.35.json diff --git a/.changes/2.7.36.json b/.changes/2.7.x/2.7.36.json similarity index 100% rename from .changes/2.7.36.json rename to .changes/2.7.x/2.7.36.json diff --git a/.changes/2.7.4.json b/.changes/2.7.x/2.7.4.json similarity index 100% rename from .changes/2.7.4.json rename to .changes/2.7.x/2.7.4.json diff --git a/.changes/2.7.5.json b/.changes/2.7.x/2.7.5.json similarity index 100% rename from .changes/2.7.5.json rename to .changes/2.7.x/2.7.5.json diff --git a/.changes/2.7.6.json b/.changes/2.7.x/2.7.6.json similarity index 100% rename from .changes/2.7.6.json rename to .changes/2.7.x/2.7.6.json diff --git a/.changes/2.7.7.json b/.changes/2.7.x/2.7.7.json similarity index 100% rename from .changes/2.7.7.json rename to .changes/2.7.x/2.7.7.json diff --git a/.changes/2.7.8.json b/.changes/2.7.x/2.7.8.json similarity index 100% rename from .changes/2.7.8.json rename to .changes/2.7.x/2.7.8.json diff --git a/.changes/2.7.9.json b/.changes/2.7.x/2.7.9.json similarity index 100% rename from .changes/2.7.9.json rename to .changes/2.7.x/2.7.9.json diff --git a/.changes/2.8.0.json b/.changes/2.8.x/2.8.0.json similarity index 100% rename from .changes/2.8.0.json rename to .changes/2.8.x/2.8.0.json diff --git a/.changes/2.8.1.json b/.changes/2.8.x/2.8.1.json similarity index 100% rename from .changes/2.8.1.json rename to .changes/2.8.x/2.8.1.json diff --git a/.changes/2.8.2.json b/.changes/2.8.x/2.8.2.json similarity index 100% rename from .changes/2.8.2.json rename to .changes/2.8.x/2.8.2.json diff --git a/.changes/2.8.3.json b/.changes/2.8.x/2.8.3.json similarity index 100% rename from .changes/2.8.3.json rename to .changes/2.8.x/2.8.3.json diff --git a/.changes/2.8.4.json b/.changes/2.8.x/2.8.4.json similarity index 100% rename from .changes/2.8.4.json rename to .changes/2.8.x/2.8.4.json diff --git a/.changes/2.8.5.json b/.changes/2.8.x/2.8.5.json similarity index 100% rename from .changes/2.8.5.json rename to .changes/2.8.x/2.8.5.json diff --git a/.changes/2.8.6.json b/.changes/2.8.x/2.8.6.json similarity index 100% rename from .changes/2.8.6.json rename to .changes/2.8.x/2.8.6.json diff --git a/.changes/2.8.7.json b/.changes/2.8.x/2.8.7.json similarity index 100% rename from .changes/2.8.7.json rename to .changes/2.8.x/2.8.7.json diff --git a/.changes/2.9.0.json b/.changes/2.9.x/2.9.0.json similarity index 100% rename from .changes/2.9.0.json rename to .changes/2.9.x/2.9.0.json diff --git a/.changes/2.9.1.json b/.changes/2.9.x/2.9.1.json similarity index 100% rename from .changes/2.9.1.json rename to .changes/2.9.x/2.9.1.json diff --git a/.changes/2.9.10.json b/.changes/2.9.x/2.9.10.json similarity index 100% rename from .changes/2.9.10.json rename to .changes/2.9.x/2.9.10.json diff --git a/.changes/2.9.11.json b/.changes/2.9.x/2.9.11.json similarity index 100% rename from .changes/2.9.11.json rename to .changes/2.9.x/2.9.11.json diff --git a/.changes/2.9.12.json b/.changes/2.9.x/2.9.12.json similarity index 100% rename from .changes/2.9.12.json rename to .changes/2.9.x/2.9.12.json diff --git a/.changes/2.9.13.json b/.changes/2.9.x/2.9.13.json similarity index 100% rename from .changes/2.9.13.json rename to .changes/2.9.x/2.9.13.json diff --git a/.changes/2.9.14.json b/.changes/2.9.x/2.9.14.json similarity index 100% rename from .changes/2.9.14.json rename to .changes/2.9.x/2.9.14.json diff --git a/.changes/2.9.15.json b/.changes/2.9.x/2.9.15.json similarity index 100% rename from .changes/2.9.15.json rename to .changes/2.9.x/2.9.15.json diff --git a/.changes/2.9.16.json b/.changes/2.9.x/2.9.16.json similarity index 100% rename from .changes/2.9.16.json rename to .changes/2.9.x/2.9.16.json diff --git a/.changes/2.9.17.json b/.changes/2.9.x/2.9.17.json similarity index 100% rename from .changes/2.9.17.json rename to .changes/2.9.x/2.9.17.json diff --git a/.changes/2.9.18.json b/.changes/2.9.x/2.9.18.json similarity index 100% rename from .changes/2.9.18.json rename to .changes/2.9.x/2.9.18.json diff --git a/.changes/2.9.19.json b/.changes/2.9.x/2.9.19.json similarity index 100% rename from .changes/2.9.19.json rename to .changes/2.9.x/2.9.19.json diff --git a/.changes/2.9.2.json b/.changes/2.9.x/2.9.2.json similarity index 100% rename from .changes/2.9.2.json rename to .changes/2.9.x/2.9.2.json diff --git a/.changes/2.9.20.json b/.changes/2.9.x/2.9.20.json similarity index 100% rename from .changes/2.9.20.json rename to .changes/2.9.x/2.9.20.json diff --git a/.changes/2.9.21.json b/.changes/2.9.x/2.9.21.json similarity index 100% rename from .changes/2.9.21.json rename to .changes/2.9.x/2.9.21.json diff --git a/.changes/2.9.22.json b/.changes/2.9.x/2.9.22.json similarity index 100% rename from .changes/2.9.22.json rename to .changes/2.9.x/2.9.22.json diff --git a/.changes/2.9.23.json b/.changes/2.9.x/2.9.23.json similarity index 100% rename from .changes/2.9.23.json rename to .changes/2.9.x/2.9.23.json diff --git a/.changes/2.9.24.json b/.changes/2.9.x/2.9.24.json similarity index 100% rename from .changes/2.9.24.json rename to .changes/2.9.x/2.9.24.json diff --git a/.changes/2.9.25.json b/.changes/2.9.x/2.9.25.json similarity index 100% rename from .changes/2.9.25.json rename to .changes/2.9.x/2.9.25.json diff --git a/.changes/2.9.26.json b/.changes/2.9.x/2.9.26.json similarity index 100% rename from .changes/2.9.26.json rename to .changes/2.9.x/2.9.26.json diff --git a/.changes/2.9.3.json b/.changes/2.9.x/2.9.3.json similarity index 100% rename from .changes/2.9.3.json rename to .changes/2.9.x/2.9.3.json diff --git a/.changes/2.9.4.json b/.changes/2.9.x/2.9.4.json similarity index 100% rename from .changes/2.9.4.json rename to .changes/2.9.x/2.9.4.json diff --git a/.changes/2.9.5.json b/.changes/2.9.x/2.9.5.json similarity index 100% rename from .changes/2.9.5.json rename to .changes/2.9.x/2.9.5.json diff --git a/.changes/2.9.6.json b/.changes/2.9.x/2.9.6.json similarity index 100% rename from .changes/2.9.6.json rename to .changes/2.9.x/2.9.6.json diff --git a/.changes/2.9.7.json b/.changes/2.9.x/2.9.7.json similarity index 100% rename from .changes/2.9.7.json rename to .changes/2.9.x/2.9.7.json diff --git a/.changes/2.9.8.json b/.changes/2.9.x/2.9.8.json similarity index 100% rename from .changes/2.9.8.json rename to .changes/2.9.x/2.9.8.json diff --git a/.changes/2.9.9.json b/.changes/2.9.x/2.9.9.json similarity index 100% rename from .changes/2.9.9.json rename to .changes/2.9.x/2.9.9.json diff --git a/.changes/next-release/bugfix-AmazonS3-6386be9.json b/.changes/next-release/bugfix-AmazonS3-6386be9.json new file mode 100644 index 000000000000..93af13e80825 --- /dev/null +++ b/.changes/next-release/bugfix-AmazonS3-6386be9.json @@ -0,0 +1,6 @@ +{ + "type": "bugfix", + "category": "Amazon S3", + "contributor": "", + "description": "Fixed an issue in S3 multipart client that could cause `BlockingInputStreamAsyncRequestBody#writeInputStream` to get stuck if any of the multipart request fails. See [#4801](https://github.com/aws/aws-sdk-java-v2/issues/4801)" +} diff --git a/.changes/next-release/feature-AWSSDKforJavav2-1d27320.json b/.changes/next-release/feature-AWSSDKforJavav2-1d27320.json new file mode 100644 index 000000000000..eb9b020eb18d --- /dev/null +++ b/.changes/next-release/feature-AWSSDKforJavav2-1d27320.json @@ -0,0 +1,6 @@ +{ + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Switching remaining AWS service clients onto the new SRA (Smithy Reference Architecture) identity and auth logic that was released in v2.21.0. For a list of individual services affected, please check the committed files." +} diff --git a/.github/workflows/closed-issue-message.yml b/.github/workflows/closed-issue-message.yml index 48a2de62c1de..04815a1cc9ff 100644 --- a/.github/workflows/closed-issue-message.yml +++ b/.github/workflows/closed-issue-message.yml @@ -13,7 +13,5 @@ jobs: # These inputs are both required repo-token: "${{ secrets.GITHUB_TOKEN }}" message: | - ### ⚠️COMMENT VISIBILITY WARNING⚠️ - Comments on closed issues are hard for our team to see. - If you need more assistance, please open a new issue that references this one. - If you wish to keep having a conversation with other community members under this issue feel free to do so. + This issue is now closed. Comments on closed issues are hard for our team to see. + If you need more assistance, please open a new issue that references this one. diff --git a/.github/workflows/codebuild-ci.yml b/.github/workflows/codebuild-ci.yml index fbe36b781a4c..44f75f5f1698 100644 --- a/.github/workflows/codebuild-ci.yml +++ b/.github/workflows/codebuild-ci.yml @@ -1,10 +1,6 @@ name: AWS CodeBuild CI on: pull_request: - paths-ignore: - - '**.md' - - '.all-contributorsrc' - - 'docs/**' push: branches: - master @@ -120,4 +116,17 @@ jobs: env: PR: ${{ github.event.number }} BRANCH: ${{ github.head_ref || 'master'}} - BASE: ${{ github.base_ref }} \ No newline at end of file + BASE: ${{ github.base_ref }} + endpoints-tests: + runs-on: ubuntu-latest + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} + aws-region: us-west-2 + role-duration-seconds: 7200 + - name: Run endpoints test + uses: aws-actions/aws-codebuild-run-build@v1 + with: + project-name: aws-sdk-java-v2-endpoints-test diff --git a/.github/workflows/stale-issue.yml b/.github/workflows/stale-issue.yml index cf1afebdff5f..65dfd924047b 100644 --- a/.github/workflows/stale-issue.yml +++ b/.github/workflows/stale-issue.yml @@ -42,8 +42,8 @@ jobs: closed-for-staleness-label: closed-for-staleness # Issue timing - days-before-stale: 5 - days-before-close: 2 + days-before-stale: 10 + days-before-close: 4 days-before-ancient: 36500 # If you don't want to mark a issue as being ancient based on a diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar index c1dd12f17644..cb28b0e37c7d 100644 Binary files a/.mvn/wrapper/maven-wrapper.jar and b/.mvn/wrapper/maven-wrapper.jar differ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index 281f80760c5a..eacdc9ed17a1 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -5,14 +5,14 @@ # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar diff --git a/CHANGELOG.md b/CHANGELOG.md index 039e88108fc3..f4082bc8c6c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,382 +1,174 @@ -# __2.23.7__ __2024-01-19__ -## __AWS CodeBuild__ + #### 👋 _Looking for changelogs for older versions? You can find them in the [changelogs](./changelogs) directory._ +# __2.24.12__ __2024-02-27__ +## __AWS Amplify UI Builder__ - ### Features - - Release CodeBuild Reserved Capacity feature + - We have added the ability to tag resources after they are created ## __AWS SDK for Java v2__ - - ### Features - - Allowing SDK plugins to read and modify S3's crossRegionEnabled and SQS's checksumValidationEnabled - - Contributed by: [@anirudh9391](https://github.com/anirudh9391) - - Updated endpoint and partition metadata. - -## __Amazon Athena__ - - ### Features - - Introducing new NotebookS3LocationUri parameter to Athena ImportNotebook API. Payload is no longer required and either Payload or NotebookS3LocationUri needs to be provided (not both) for a successful ImportNotebook API call. If both are provided, an InvalidRequestException will be thrown. - -## __Amazon DynamoDB__ - - ### Features - - This release adds support for including ApproximateCreationDateTimePrecision configurations in EnableKinesisStreamingDestination API, adds the same as an optional field in the response of DescribeKinesisStreamingDestination, and adds support for a new UpdateKinesisStreamingDestination API. + - ### Bugfixes + - upgrade netty version to 4.1.107.Final + - Contributed by: [@sullis](https://github.com/sullis) -## __Amazon Q Connect__ +## __Amazon S3__ - ### Features - - Increased Quick Response name max length to 100 + - Enable TransferListener when uploading with TransferManager with Java-based S3Client with multipart enabled ## __Contributors__ Special thanks to the following contributors to this release: -[@anirudh9391](https://github.com/anirudh9391) -# __2.23.6__ __2024-01-18__ -## __AWS B2B Data Interchange__ - - ### Features - - Increasing TestMapping inputFileContent file size limit to 5MB and adding file size limit 250KB for TestParsing input file. This release also includes exposing InternalServerException for Tag APIs. - -## __AWS CRT HTTP Client__ - - ### Bugfixes - - Fixed the issue in the AWS CRT sync HTTP client where the connection was left open after the stream was aborted. - -## __AWS CloudTrail__ - - ### Features - - This release adds a new API ListInsightsMetricData to retrieve metric data from CloudTrail Insights. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - GetMetricDataV2 now supports 3 groupings - -## __Amazon Kinesis Firehose__ +[@sullis](https://github.com/sullis) +# __2.24.11__ __2024-02-26__ +## __Amazon API Gateway__ - ### Features - - Allow support for Snowflake as a Kinesis Data Firehose delivery destination. + - Documentation updates for Amazon API Gateway. -## __Amazon SageMaker Feature Store Runtime__ +## __Amazon Relational Database Service__ - ### Features - - Increase BatchGetRecord limits from 10 items to 100 items + - This release adds support for gp3 data volumes for Multi-AZ DB Clusters. ## __Elastic Disaster Recovery Service__ - ### Features - - Removed invalid and unnecessary default values. - -# __2.23.5__ __2024-01-17__ -## __AWS Backup Storage, Amazon CodeCatalyst, Amazon Cognito Identity, Amazon Cognito Identity Provider, AWS Identity and Access Management (IAM), Amazon Kinesis, AWS Elemental MediaStore Data Plane, Amazon Transcribe Service, Amazon Transcribe Streaming Service__ - - ### Features - - Switching a set of services onto the new SRA (Smithy Reference Architecture) identity and auth logic that was released in v2.21.0. - -## __AWS CRT HTTP Client__ - - ### Bugfixes - - Fixed the issue in the AWS CRT HTTP client where the application could crash if stream.incrementWindow was invoked on a closed stream - -## __AWS DynamoDB Enhanced Client__ - - ### Features - - Added support for `@DynamoDBAutoGeneratedUUID` to facilitate the automatic updating of DynamoDB attributes with random UUID. - -## __Amazon DynamoDB__ - - ### Features - - Updating note for enabling streams for UpdateTable. - -## __Amazon Keyspaces__ - - ### Features - - This release adds support for Multi-Region Replication with provisioned tables, and Keyspaces auto scaling APIs - -# __2.23.4__ __2024-01-16__ -## __AWS IoT__ - - ### Features - - Revert release of LogTargetTypes - -## __AWS IoT FleetWise__ - - ### Features - - Updated APIs: SignalNodeType query parameter has been added to ListSignalCatalogNodesRequest and ListVehiclesResponse has been extended with attributes field. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - Documentation updates for AWS Security Hub - -## __Amazon Macie 2__ - - ### Features - - This release adds support for analyzing Amazon S3 objects that are encrypted using dual-layer server-side encryption with AWS KMS keys (DSSE-KMS). It also adds support for reporting DSSE-KMS details in statistics and metadata about encryption settings for S3 buckets and objects. - -## __Amazon Personalize__ - - ### Features - - Documentation updates for Amazon Personalize. - -## __Amazon Personalize Runtime__ - - ### Features - - Documentation updates for Amazon Personalize - -## __Amazon Rekognition__ - - ### Features - - This release adds ContentType and TaxonomyLevel attributes to DetectModerationLabels and GetMediaAnalysisJob API responses. - -## __Amazon S3__ - - ### Features - - Propagating client apiCallTimeout values to S3Express createSession calls. If existing, this value overrides the default timeout value of 10s when making the nested S3Express session credentials call. - -## __Payment Cryptography Control Plane__ - - ### Features - - Provide an additional option for key exchange using RSA wrap/unwrap in addition to tr-34/tr-31 in ImportKey and ExportKey operations. Added new key usage (type) TR31_M1_ISO_9797_1_MAC_KEY, for use with Generate/VerifyMac dataplane operations with ISO9797 Algorithm 1 MAC calculations. - -# __2.23.3__ __2024-01-13__ -## __Amazon SageMaker Service__ - - ### Features - - This release will have ValidationException thrown if certain invalid app types are provided. The release will also throw ValidationException if more than 10 account ids are provided in VpcOnlyTrustedAccounts. - -# __2.23.2__ __2024-01-12__ -## __AWS S3 Control__ - - ### Features - - S3 On Outposts team adds dualstack endpoints support for S3Control and S3Outposts API calls. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Fix shading of artifacts in the `bundle` by not `org.apache.log4j.*` packages. This allows proper binding of `commons-logging` to Log4J and enables dependencies that use commons logging (e.g. Apache HTTP Client) to properly bind to Log4j. - -## __AWS Supply Chain__ - - ### Features - - This release includes APIs CreateBillOfMaterialsImportJob and GetBillOfMaterialsImportJob. - -## __AWS Transfer Family__ - - ### Features - - AWS Transfer Family now supports static IP addresses for SFTP & AS2 connectors and for async MDNs on AS2 servers. - -## __Amazon Connect Participant Service__ - - ### Features - - Introduce new Supervisor participant role + - Added volume status to DescribeSourceServer replicated volumes. -## __Amazon Connect Service__ +## __Managed Streaming for Kafka Connect__ - ### Features - - Supervisor Barge for Chat is now supported through the MonitorContact API. + - Adds support for tagging, with new TagResource, UntagResource and ListTagsForResource APIs to manage tags and updates to existing APIs to allow tag on create. This release also adds support for the new DeleteWorkerConfiguration API. -## __Amazon Location Service__ +# __2.24.10__ __2024-02-23__ +## __AWS AppSync__ - ### Features - - Location SDK documentation update. Added missing fonts to the MapConfiguration data type. Updated note for the SubMunicipality property in the place data type. + - Documentation only updates for AppSync -## __AmazonMWAA__ +## __Amazon QLDB__ - ### Features - - This Amazon MWAA feature release includes new fields in CreateWebLoginToken response model. The new fields IamIdentity and AirflowIdentity will let you match identifications, as the Airflow identity length is currently hashed to 64 characters. + - Clarify possible values for KmsKeyArn and EncryptionDescription. -# __2.23.1__ __2024-01-11__ -## __AWS IoT__ +## __Amazon Relational Database Service__ - ### Features - - Add ConflictException to Update APIs of AWS IoT Software Package Catalog + - Add pattern and length based validations for DBShardGroupIdentifier -## __AWS IoT FleetWise__ +## __CloudWatch RUM__ - ### Features - - The following dataTypes have been removed: CUSTOMER_DECODED_INTERFACE in NetworkInterfaceType; CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL in SignalDecoderFailureReason; CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL in NetworkInterfaceFailureReason; CUSTOMER_DECODED_SIGNAL in SignalDecoderType + - Doc-only update for new RUM metrics that were added -## __AWS SDK for Java v2__ +## __S3 Transfer Manager__ - ### Features - - Updated endpoint and partition metadata. + - Enable multipart configuration by default when creating a new S3TranferManager instance using the .create() method + - Make Transfer Manager work by default with S3AsyncClient when multipart configuration is enabled. +# __2.24.9__ __2024-02-22__ +## __AWS CRT-based S3 client__ - ### Bugfixes - - Fix IllegalArgumentException in FullJitterBackoffStrategy when base delay and max backoff time are zero. - -## __AWS Secrets Manager__ - - ### Features - - Doc only update for Secrets Manager + - Fixed memory leak issue when a request was cancelled in the AWS CRT-based S3 client. -## __Amazon EC2 Container Service__ +## __Amazon CloudWatch Internet Monitor__ - ### Features - - This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks. + - This release adds IPv4 prefixes to health events -## __Amazon Elastic Compute Cloud__ +## __Amazon Kinesis Video Streams__ - ### Features - - This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks. + - Increasing NextToken parameter length restriction for List APIs from 512 to 1024. -## __Amazon EventBridge__ +# __2.24.8__ __2024-02-21__ +## __AWS Elemental MediaLive__ - ### Features - - Adding AppSync as an EventBridge Target + - MediaLive now supports the ability to restart pipelines in a running channel. -## __Amazon WorkSpaces__ +## __AWS IoT Events__ - ### Features - - Added AWS Workspaces RebootWorkspaces API - Extended Reboot documentation update - -# __2.23.0__ __2024-01-10__ -## __AWS CRT HTTP Client__ - - ### Bugfixes - - Fixed the issue where `AWS_ERROR_HTTP_CONNECTION_CLOSED` was not retried by the SDK. + - Increase the maximum length of descriptions for Inputs, Detector Models, and Alarm Models ## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch Logs__ - - ### Features - - Add support for account level subscription filter policies to PutAccountPolicy, DescribeAccountPolicies, and DeleteAccountPolicy APIs. Additionally, PutAccountPolicy has been modified with new optional "selectionCriteria" parameter for resource selection. - -## __Amazon Connect Wisdom Service__ - - ### Features - - QueryAssistant and GetRecommendations will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications. - -## __Amazon Location Service__ - - ### Features - - This release adds API support for custom layers for the maps service APIs: CreateMap, UpdateMap, DescribeMap. - -## __Amazon Q Connect__ - - ### Features - - QueryAssistant and GetRecommendations will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications. - -## __Amazon Route 53__ - - ### Features - - Route53 now supports geoproximity routing in AWS regions - -## __Amazon S3__ - ### Bugfixes - - Fixes a bug in DeleteObjects to properly encode the key in the request. - -## __AmazonConnectCampaignService__ - - ### Features - - Minor pattern updates for Campaign and Dial Request API fields. - -## __Redshift Serverless__ - - ### Features - - Updates to ConfigParameter for RSS workgroup, removal of use_fips_ssl - -# __2.22.13__ __2024-01-08__ -## __AWS CodeBuild__ - - ### Features - - Aws CodeBuild now supports new compute type BUILD_GENERAL1_XLARGE + - Add content-length header in Json and Xml Protocol Marshaller for String and Binary explicit Payloads. -## __Amazon Elastic Compute Cloud__ +## __Amazon Lookout for Equipment__ - ### Features - - Amazon EC2 R7iz bare metal instances are powered by custom 4th generation Intel Xeon Scalable processors. + - This release adds a field exposing model quality to read APIs for models. It also adds a model quality field to the API response when creating an inference scheduler. -## __Amazon Route 53 Resolver__ +## __Amazon Simple Systems Manager (SSM)__ - ### Features - - This release adds support for query type configuration on firewall rules that enables customers for granular action (ALLOW, ALERT, BLOCK) by DNS query type. + - This release adds support for sharing Systems Manager parameters with other AWS accounts. -# __2.22.12__ __2024-01-05__ -## __AWS Key Management Service__ +# __2.24.7__ __2024-02-20__ +## __AWS Lambda__ - ### Features - - Documentation updates for AWS Key Management Service (KMS). + - Add .NET 8 (dotnet8) Runtime support to AWS Lambda. -## __Amazon Connect Service__ +## __Amazon DynamoDB__ - ### Features - - Minor trait updates for User APIs + - Publishing quick fix for doc only update. -## __Amazon Q Connect__ +## __Amazon Kinesis Firehose__ - ### Features - - Marked SearchQuickResponses API as readonly. + - This release updates a few Firehose related APIs. -## __Redshift Serverless__ +# __2.24.6__ __2024-02-19__ +## __AWS Amplify__ - ### Features - - use_fips_ssl and require_ssl parameter support for Workgroup, UpdateWorkgroup, and CreateWorkgroup + - This release contains API changes that enable users to configure their Amplify domains with their own custom SSL/TLS certificate. -# __2.22.11__ __2024-01-04__ ## __AWS Config__ - ### Features - - Updated ResourceType enum with new resource types onboarded by AWS Config in November and December 2023. - -## __AWS Service Catalog__ - - ### Features - - Added Idempotency token support to Service Catalog AssociateServiceActionWithProvisioningArtifact, DisassociateServiceActionFromProvisioningArtifact, DeleteServiceAction API - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Adding PerformanceInsightsEnabled and PerformanceInsightsKMSKeyId fields to DescribeDBInstances Response. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for managed instance draining which facilitates graceful termination of Amazon ECS instances. - -## __Amazon Elasticsearch Service__ - - ### Features - - This release adds support for new or existing Amazon OpenSearch domains to enable TLS 1.3 or TLS 1.2 with perfect forward secrecy cipher suites for domain endpoints. - -## __Amazon Lightsail__ - - ### Features - - This release adds support to set up an HTTPS endpoint on an instance. - -## __Amazon OpenSearch Service__ - - ### Features - - This release adds support for new or existing Amazon OpenSearch domains to enable TLS 1.3 or TLS 1.2 with perfect forward secrecy cipher suites for domain endpoints. - -## __Amazon SageMaker Service__ - - ### Features - - Adding support for provisioned throughput mode for SageMaker Feature Groups - -# __2.22.10__ __2024-01-03__ -## __AWS Elemental MediaConvert__ - - ### Features - - This release includes video engine updates including HEVC improvements, support for ingesting VP9 encoded video in MP4 containers, and support for user-specified 3D LUTs. + - Documentation updates for the AWS Config CLI -## __AWS SDK for Java v2__ +## __AWS MediaTailor__ - ### Features - - Updated endpoint and partition metadata. + - MediaTailor: marking #AdBreak.OffsetMillis as required. -## __Amazon Connect Service__ +## __Amazon Interactive Video Service__ - ### Features - - Amazon Connect, Contact Lens Evaluation API increase evaluation notes max length to 3072. + - Changed description for latencyMode in Create/UpdateChannel and Channel/ChannelSummary. -# __2.22.9__ __2023-12-29__ -## __AWS App Runner__ +## __Amazon Keyspaces__ - ### Features - - AWS App Runner adds Python 3.11 and Node.js 18 runtimes. + - Documentation updates for Amazon Keyspaces -## __Amazon Location Service__ +## __Amazon S3__ - ### Features - - This release introduces a new parameter to bypasses an API key's expiry conditions and delete the key. + - Add support for pause/resume upload for TransferManager with Java-based S3Client that has multipart enabled -## __Amazon QuickSight__ +## __chatbot__ - ### Features - - Add LinkEntityArn support for different partitions; Add UnsupportedUserEditionException in UpdateDashboardLinks API; Add support for New Reader Experience Topics + - This release adds support for AWS Chatbot. You can now monitor, operate, and troubleshoot your AWS resources with interactive ChatOps using the AWS SDK. -# __2.22.8__ __2023-12-28__ -## __AWS CodeStar connections__ +# __2.24.5__ __2024-02-16__ +## __AWS Lambda__ - ### Features - - New integration with the GitLab self-managed provider type. + - Documentation-only updates for Lambda to clarify a number of existing actions and properties. ## __AWS SDK for Java v2__ - ### Features - Updated endpoint and partition metadata. - - ### Bugfixes - - Fix for Signing Error when ampersand character included in HttpQuery when using DefaultAwsCrtV4aSigner. - -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - NoDataRetentionException thrown when GetImages requested for a Stream that does not retain data (that is, has a DataRetentionInHours of 0). - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Studio now supports Docker access from within app container - -# __2.22.7__ __2023-12-27__ -## __AWS SDK for Java v2__ +## __Amazon Connect Participant Service__ - ### Features - - Updated endpoint and partition metadata. + - Doc only update to GetTranscript API reference guide to inform users about presence of events in the chat transcript. ## __Amazon EMR__ - ### Features - - Add support for customers to modify cluster attribute auto-terminate post cluster launch + - adds fine grained control over Unhealthy Node Replacement to Amazon ElasticMapReduce -# __2.22.6__ __2023-12-26__ -## __AWS Identity and Access Management__ +## __Amazon Kinesis Firehose__ - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). + - This release adds support for Data Message Extraction for decompressed CloudWatch logs, and to use a custom file extension or time zone for S3 destinations. -## __AWS SDK for Java v2__ +## __Amazon Relational Database Service__ - ### Features - - Updated endpoint and partition metadata. + - Doc only update for a valid option in DB parameter group -# __2.22.5__ __2023-12-22__ -## __AWS Glue__ +## __Amazon Simple Notification Service__ - ### Features - - This release adds additional configurations for Query Session Context on the following APIs: GetUnfilteredTableMetadata, GetUnfilteredPartitionMetadata, GetUnfilteredPartitionsMetadata. + - This release marks phone numbers as sensitive inputs. -## __AWS Lake Formation__ +# __2.24.4__ __2024-02-15__ +## __AWS Artifact__ - ### Features - - This release adds additional configurations on GetTemporaryGlueTableCredentials for Query Session Context. + - This is the initial SDK release for AWS Artifact. AWS Artifact provides on-demand access to compliance and third-party compliance reports. This release includes access to List and Get reports, along with their metadata. This release also includes access to AWS Artifact notifications settings. -## __AWS MediaConnect__ +## __AWS CodePipeline__ - ### Features - - This release adds the DescribeSourceMetadata API. This API can be used to view the stream information of the flow's source. + - Add ability to override timeout on action level. ## __AWS SDK for Java v2__ - ### Features @@ -384,29467 +176,152 @@ Special thanks to the following contributors to this release: ## __AWS Secrets Manager__ - ### Features - - Update endpoint rules and examples. + - Doc only update for Secrets Manager -## __Agents for Amazon Bedrock__ +## __Amazon Detective__ - ### Features - - Adding Claude 2.1 support to Bedrock Agents + - Doc only updates for content enhancement -## __Amazon CloudWatch Network Monitor__ +## __Amazon GuardDuty__ - ### Features - - CloudWatch Network Monitor is a new service within CloudWatch that will help network administrators and operators continuously monitor network performance metrics such as round-trip-time and packet loss between their AWS-hosted applications and their on-premises locations. + - Marked fields IpAddressV4, PrivateIpAddress, Email as Sensitive. -## __Amazon Omics__ +## __Amazon HealthLake__ - ### Features - - Provides minor corrections and an updated description of APIs. + - This release adds a new response parameter, JobProgressReport, to the DescribeFHIRImportJob and ListFHIRImportJobs API operation. JobProgressReport provides details on the progress of the import job on the server. -## __Amazon Simple Storage Service__ +## __Amazon OpenSearch Service__ - ### Features - - Added additional examples for some operations. + - Adds additional supported instance types. -# __2.22.4__ __2023-12-21__ -## __AWS CodeCommit__ +## __Amazon Polly__ - ### Features - - AWS CodeCommit now supports customer managed keys from AWS Key Management Service. UpdateRepositoryEncryptionKey is added for updating the key configuration. CreateRepository, GetRepository, BatchGetRepositories are updated with new input or output parameters. + - Amazon Polly adds 1 new voice - Burcu (tr-TR) -## __AWS Elemental MediaLive__ +## __Amazon SageMaker Service__ - ### Features - - MediaLive now supports the ability to configure the audio that an AWS Elemental Link UHD device produces, when the device is configured as the source for a flow in AWS Elemental MediaConnect. + - This release adds a new API UpdateClusterSoftware for SageMaker HyperPod. This API allows users to patch HyperPod clusters with latest platform softwares. -## __AWS RDS DataService__ +# __2.24.3__ __2024-02-14__ +## __AWS Control Tower__ - ### Features - - This release adds support for using RDS Data API with Aurora PostgreSQL Serverless v2 and provisioned DB clusters. + - Adds support for new Baseline and EnabledBaseline APIs for automating multi-account governance. ## __AWS SDK for Java v2__ - ### Features + - Switching half of the AWS service clients onto the new SRA (Smithy Reference Architecture) identity and auth logic that was released in v2.21.0. For a list of individual services affected, please check the committed files. - Updated endpoint and partition metadata. - ### Bugfixes - - Changed the log level from error to warning when exceptions are found in parsing proxy configuration from system properties/environment variables, as we ignore those exceptions and proceed. - - Fix an issue where the S3 CRT client can incorrectly treat the body of an error response for `GetObject` as the object's content. For example, if a role has permissions for `HeadObject` but not a `GetObject`, the S3 CRT client would download the `403` response as the object's contents. - -## __AWS SDK for Java v2 Bundle__ - - ### Bugfixes - - Fix an issue where external dependencies are also included unshaded in in the `bundle` JAR. - -## __Agents for Amazon Bedrock__ - - ### Features - - This release introduces Amazon Aurora as a vector store on Knowledge Bases for Amazon Bedrock + - Fixed an issue where NPE would be thrown if there was an empty event in the input for an event streaming operation. -## __Amazon AppIntegrations Service__ - - ### Features - - The Amazon AppIntegrations service adds DeleteApplication API for deleting applications, and updates APIs to support third party applications reacting to workspace events and make data requests to Amazon Connect for agent and contact events. - -## __Amazon Connect Service__ - - ### Features - - Adds APIs to manage User Proficiencies and Predefined Attributes. Enhances StartOutboundVoiceContact API input. Introduces SearchContacts API. Enhances DescribeContact API. Adds an API to update Routing Attributes in QueuePriority and QueueTimeAdjustmentSeconds. - -## __Amazon Neptune Graph__ +## __Amazon Lookout for Equipment__ - ### Features - - Adds Waiters for successful creation and deletion of Graph, Graph Snapshot, Import Task and Private Endpoints for Neptune Analytics + - This feature allows customers to see pointwise model diagnostics results for their models. -## __Amazon Prometheus Service__ - - ### Features - - This release updates Amazon Managed Service for Prometheus APIs to support customer managed KMS keys. +## __Amazon Simple Storage Service__ + - ### Bugfixes + - Fix for Issue [#4912](https://github.com/aws/aws-sdk-java-v2/issues/4912) where client region with AWS_GLOBAL calls failed for cross region access. -## __Amazon Relational Database Service__ +## __QBusiness__ - ### Features - - This release adds support for using RDS Data API with Aurora PostgreSQL Serverless v2 and provisioned DB clusters. + - This release adds the metadata-boosting feature, which allows customers to easily fine-tune the underlying ranking of retrieved RAG passages in order to optimize Q&A answer relevance. It also adds new feedback reasons for the PutFeedback API. -## __Amazon SageMaker Service__ +# __2.24.2__ __2024-02-13__ +## __AWS Marketplace Catalog Service__ - ### Features - - Amazon SageMaker Training now provides model training container access for debugging purposes. Amazon SageMaker Search now provides the ability to use visibility conditions to limit resource access to a single domain or multiple domains. + - AWS Marketplace Catalog API now supports setting intent on requests -# __2.22.3__ __2023-12-20__ -## __AWS MediaTailor__ +## __AWS Resource Explorer__ - ### Features - - Adds the ability to configure time shifting on MediaTailor channels using the TimeShiftConfiguration field + - Resource Explorer now uses newly supported IPv4 'amazonaws.com' endpoints by default. ## __AWS SDK for Java v2__ - ### Features - Updated endpoint and partition metadata. -## __Amazon AppStream__ - - ### Features - - This release introduces configurable clipboard, allowing admins to specify the maximum length of text that can be copied by the users from their device to the remote session and vice-versa. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Add support for cluster insights, new EKS capability that surfaces potentially upgrade impacting issues. - -## __Amazon GuardDuty__ - - ### Features - - This release 1) introduces a new API: GetOrganizationStatistics , and 2) adds a new UsageStatisticType TOP_ACCOUNTS_BY_FEATURE for GetUsageStatistics API - -## __Amazon Managed Blockchain Query__ - - ### Features - - Adding Confirmation Status and Execution Status to GetTransaction Response. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Canada West (Calgary) Region (ca-west-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -# __2.22.2__ __2023-12-19__ -## __AWS AppSync__ - - ### Features - - This release adds additional configurations on GraphQL APIs for limits on query depth, resolver count, and introspection - -## __AWS Marketplace Catalog Service__ +## __Amazon DynamoDB__ - ### Features - - AWS Marketplace now supports a new API, BatchDescribeEntities, which returns metadata and content for multiple entities. + - Add additional logical operator ('and' and 'or') methods to DynamoDB Expression + - Contributed by: [@akiesler](https://github.com/akiesler) -## __AWS SDK for Java v2__ +## __Amazon Lightsail__ - ### Features - - Updated endpoint and partition metadata. + - This release adds support to upgrade the major version of a database. -## __Amazon Chime SDK Meetings__ +## __Amazon S3__ - ### Features - - Add meeting features to specify a maximum camera resolution, a maximum content sharing resolution, and a maximum number of attendees for a given meeting. + - Automatically trim object metadata keys of whitespace for `PutObject` and `CreateMultipartUpload`. -## __Amazon Elastic Compute Cloud__ +## __Amazon Security Lake__ - ### Features - - Provision BYOIPv4 address ranges and advertise them by specifying the network border groups option in Los Angeles, Phoenix and Dallas AWS Local Zones. + - Documentation updates for Security Lake -## __Amazon FSx__ - - ### Features - - Added support for FSx for OpenZFS on-demand data replication across AWS accounts and/or regions.Added the IncludeShared attribute for DescribeSnapshots.Added the CopyStrategy attribute for OpenZFSVolumeConfiguration. +## __URL Connection Client__ + - ### Bugfixes + - Fix a bug where headers with multiple values don't have all values for that header sent on the wire. This leads to signature mismatch exceptions. -## __Amazon Relational Database Service__ - - ### Features - - RDS - The release adds two new APIs: DescribeDBRecommendations and ModifyDBRecommendation + Fixes [#4746](https://github.com/aws/aws-sdk-java-v2/issues/4746). -# __2.22.1__ __2023-12-18__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. +## __Contributors__ +Special thanks to the following contributors to this release: -## __Amazon Cognito Identity Provider__ +[@akiesler](https://github.com/akiesler) +# __2.24.1__ __2024-02-12__ +## __AWS AppSync__ - ### Features - - Amazon Cognito now supports trigger versions that define the fields in the request sent to pre token generation Lambda triggers. + - Adds support for new options on GraphqlAPIs, Resolvers and Data Sources for emitting Amazon CloudWatch metrics for enhanced monitoring of AppSync APIs. -## __Amazon Elastic Kubernetes Service__ +## __Amazon CloudWatch__ - ### Features - - Add support for EKS Cluster Access Management. + - This release enables PutMetricData API request payload compression by default. -## __Amazon QuickSight__ +## __Amazon Neptune Graph__ - ### Features - - A docs-only release to add missing entities to the API reference. + - Adding a new option "parameters" for data plane api ExecuteQuery to support running parameterized query via SDK. -## __Amazon Route 53 Resolver__ +## __Amazon Route 53 Domains__ - ### Features - - Add DOH protocols in resolver endpoints. + - This release adds bill contact support for RegisterDomain, TransferDomain, UpdateDomainContact and GetDomainDetail API. -# __2.22.0__ __2023-12-15__ -## __AWS CRT HTTP Client__ +# __2.24.0__ __2024-02-09__ +## __AWS Batch__ - ### Features - - Release AWS CRT synchrounouse HTTP client. See [#3343](https://github.com/aws/aws-sdk-java-v2/issues/3343) - -## __AWS CRT-based S3 Client__ - - ### Bugfixes - - Make sure all CRT resources are closed when the AWS CRT-based S3 client is closed. + - This feature allows Batch to support configuration of repository credentials for jobs running on ECS -## __AWS Cloud9__ +## __AWS IoT__ - ### Features - - Updated Cloud9 API documentation for AL2023 release + - This release allows AWS IoT Core users to enable Online Certificate Status Protocol (OCSP) Stapling for TLS X.509 Server Certificates when creating and updating AWS IoT Domain Configurations with Custom Domain. -## __AWS Key Management Service__ +## __AWS Price List Service__ - ### Features - - Documentation updates for AWS Key Management Service + - Add Throttling Exception to all APIs. ## __AWS SDK for Java v2__ - ### Features - - Bump `aws-crt` version to `0.29.1`. - - If an HTTP client or HTTP client builder is not specified explicitly on the SDK client AND there are multiple HTTP client implementations on the classpath, the SDK will choose the one that has the highest priority instead of throwing exception. ApacheHttpClient and NettyNioAsyncHttpClient have the highest priority in sync and async SDK client respectively for now. - Updated endpoint and partition metadata. + - Updated internal core logic for signing properties with non-default values to be codegen based instead of set at runtime. -## __Amazon Connect Cases__ - - ### Features - - Increase number of fields that can be included in CaseEventIncludedData from 50 to 200 - -## __Amazon Connect Service__ +## __Amazon EC2 Container Service__ - ### Features - - Adds relatedContactId field to StartOutboundVoiceContact API input. Introduces PauseContact API and ResumeContact API for Task contacts. Adds pause duration, number of pauses, timestamps for last paused and resumed events to DescribeContact API response. Adds new Rule type and new Rule action. + - Documentation only update for Amazon ECS. -## __Amazon Relational Database Service__ +## __Amazon Prometheus Service__ - ### Features - - Updates Amazon RDS documentation by adding code examples + - Overall documentation updates. -## __Amazon SageMaker Service__ +## __Amazon S3__ - ### Features - - This release 1) introduces a new API: DeleteCompilationJob , and 2) adds InfraCheckConfig for Create/Describe training job API + - Overriding signer properties for S3 through the deprecated non-public execution attributes in S3SignerExecutionAttribute no longer works with this release. The recommended approach is to use plugins in order to change these settings. -# __2.21.46__ __2023-12-14__ -## __AWS B2B Data Interchange__ - - ### Features - - Documentation updates for AWS B2B Data Interchange + - ### Bugfixes + - Fix bug where PUT fails when using SSE-C with Checksum when using S3AsyncClient with multipart enabled. Enable CRC32 for putObject when using multipart client if checksum validation is not disabled and checksum is not set by user -## __AWS Control Tower__ +## __Braket__ - ### Features - - Documentation updates for AWS Control Tower. + - Creating a job will result in DeviceOfflineException when using an offline device, and DeviceRetiredException when using a retired device. -## __AWS IoT__ - - ### Features - - This release adds the ability to self-manage certificate signing in AWS IoT Core fleet provisioning using the new certificate provider resource. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SDK for Java v2 Bundle__ - - ### Bugfixes - - Fix an issue where `NoSuchMethodError` can be thrown an runtime if the SLF4J implementation detects multiple bindings when using the SDK bundle. - -## __AWSBillingConductor__ - - ### Features - - Billing Conductor is releasing a new API, GetBillingGroupCostReport, which provides the ability to retrieve/view the Billing Group Cost Report broken down by attributes for a specific billing group. - -## __Amazon AppStream__ - - ### Features - - This release includes support for images of Windows Server 2022 platform. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for more granular billing using tags (key:value pairs) - -## __Amazon GameLift__ - - ### Features - - Amazon GameLift adds the ability to add and update the game properties of active game sessions. - -## __Amazon Kinesis Firehose__ - - ### Features - - This release, 1) adds configurable buffering hints for the Splunk destination, and 2) reduces the minimum configurable buffering interval for supported destinations - -## __Amazon Neptune Graph__ - - ### Features - - This is the initial SDK release for Amazon Neptune Analytics - -## __Amazon OpenSearch Service__ - - ### Features - - Updating documentation for Amazon OpenSearch Service support for new zero-ETL integration with Amazon S3. - -## __Amazon QuickSight__ - - ### Features - - Update Dashboard Links support; SingleAxisOptions support; Scatterplot Query limit support. - -## __Amazon WorkSpaces__ - - ### Features - - Updated note to ensure customers understand running modes. - -# __2.21.45__ __2023-12-13__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Adding AgentVersion to SourceServer and RecoveryInstance structures - -# __2.21.44__ __2023-12-12__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch Logs__ - - ### Features - - This release introduces the StartLiveTail API to tail ingested logs in near real time. - -## __Amazon Location Service__ - - ### Features - - This release 1) adds sub-municipality field in Places API for searching and getting places information, and 2) allows optimizing route calculation based on expected arrival time. - -## __EC2 Image Builder__ - - ### Features - - This release adds the Image Workflows feature to give more flexibility and control over the image building and testing process. - -# __2.21.43__ __2023-12-11__ -## __AWS SecurityHub__ - - ### Features - - Added new resource detail objects to ASFF, including resources for AwsDynamoDbTable, AwsEc2ClientVpnEndpoint, AwsMskCluster, AwsS3AccessPoint, AwsS3Bucket - -## __Amazon Neptune__ - - ### Features - - This release adds a new parameter configuration setting to the Neptune cluster related APIs that can be leveraged to switch between the underlying supported storage modes. - -## __Amazon Pinpoint__ - - ### Features - - This release includes Amazon Pinpoint API documentation updates pertaining to campaign message sending rate limits. - -## __S3 Transfer Manager__ - - ### Bugfixes - - Fix an issue where multipart uploads from a file are not retryable when using the default, non CRT S3 client. - -# __2.21.42__ __2023-12-08__ -## __Amazon CloudWatch__ - - ### Features - - Adds support for the OpenTelemetry 1.0 output format in CloudWatch Metric Streams. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - M2 Mac instances are built on Apple M2 Mac mini computers. I4i instances are powered by 3rd generation Intel Xeon Scalable processors. C7i compute optimized, M7i general purpose and R7i memory optimized instances are powered by custom 4th Generation Intel Xeon Scalable processors. - -## __FinSpace User Environment Management service__ - - ### Features - - Releasing Scaling Group, Dataview, and Volume APIs - -# __2.21.41__ __2023-12-07__ -## __AWS CodeDeploy__ - - ### Features - - This release adds support for two new CodeDeploy features: 1) zonal deployments for Amazon EC2 in-place deployments, 2) deployments triggered by Auto Scaling group termination lifecycle hook events. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SDK for Java v2 - Codegen__ - - ### Features - - Allow users to customize package name. - -## __AWS SDK for Java v2 Bundle__ - - ### Bugfixes - - Fix failure to bind to SLF4J binding at runtime when using the SDK bundle. - -# __2.21.40__ __2023-12-06__ -## __AWS Backup__ - - ### Features - - AWS Backup - Features: Add VaultType to the output of DescribeRecoveryPoint, ListRecoveryPointByBackupVault API and add ResourceType to the input of ListRestoreJobs API - -## __Amazon Comprehend__ - - ### Features - - Documentation updates for Trust and Safety features. - -## __Amazon Connect Service__ - - ### Features - - Releasing Tagging Support for Instance Management APIS - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Releasing the new cpuManufacturer attribute within the DescribeInstanceTypes API response which notifies our customers with information on who the Manufacturer is for the processor attached to the instance, for example: Intel. - -## __Payment Cryptography Control Plane__ - - ### Features - - AWS Payment Cryptography IPEK feature release - -# __2.21.39__ __2023-12-05__ -## __AWS Clean Rooms ML__ - - ### Features - - Updated service title from cleanroomsml to CleanRoomsML. - -## __AWS CloudFormation__ - - ### Features - - Documentation update, December 2023 - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Comma separated multiple hosts specified in `NO_PROXY` environment variable are now treated as multiple hosts. - -## __Amazon Athena__ - - ### Features - - Adding IdentityCenter enabled request for interactive query - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds A10G, T4G, and H100 as accelerator name options and Habana as an accelerator manufacturer option for attribute based selection - -# __2.21.38__ __2023-12-04__ -## __AWS Archetype Lambda__ - - ### Features - - Update archetype-lambda to use AWS CRT HTTP client as the default HTTP client and bump dependency version. - -## __AWS Cloud9__ - - ### Features - - This release adds the requirement to include the imageId parameter in the CreateEnvironmentEC2 API call. - -## __AWS CloudFormation__ - - ### Features - - Including UPDATE_* states as a success status for CreateStack waiter. - -## __AWS Elemental MediaLive__ - - ### Features - - Adds support for custom color correction on channels using 3D LUT files. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Service Catalog App Registry__ - - ### Features - - Documentation-only updates for Dawn - -## __AWSBillingConductor__ - - ### Features - - This release adds the ability to specify a linked account of the billing group for the custom line item resource. - -## __Amazon S3__ - - ### Bugfixes - - Fixes double checksum validation for GetObject. Now when ChecksumMode is enabled, x-amz-te:append-md5 will not be sent, and only the flexible checksum will be validated. If ChecksumMode is enabled and no ChecksumAlgorithm was returned, no validation will be performed. - -## __Amazon SQS__ - - ### Features - - Adds a client builder option to disable the default MD5 checksum validation for SendMessage, ReceiveMessage and SendMessageBatch - -## __Braket__ - - ### Features - - This release enhances service support to create quantum tasks and hybrid jobs associated with Braket Direct Reservations. - -## __FinSpace User Environment Management service__ - - ### Features - - Release General Purpose type clusters - -# __2.21.37__ __2023-12-01__ -## __Amazon DynamoDB Enhanced__ - - ### Features - - Introduce the possibility to specify returnValuesOnConditionCheckFailure in DynamoDB Enhanced operations - - Contributed by: [@breader124](https://github.com/breader124) - -## __Amazon Q Connect__ - - ### Features - - This release adds the PutFeedback API and allows providing feedback against the specified assistant for the specified target. - -## __Amazon Recycle Bin__ - - ### Features - - Added resource identifier in the output and updated error handling. - -## __Amazon Verified Permissions__ - - ### Features - - Adds description field to PolicyStore API's and namespaces field to GetSchema. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@breader124](https://github.com/breader124) -# __2.21.36__ __2023-11-30__ -## __AWS ARC - Zonal Shift__ - - ### Features - - This release adds a new capability, zonal autoshift. You can configure zonal autoshift so that AWS shifts traffic for a resource away from an Availability Zone, on your behalf, when AWS determines that there is an issue that could potentially affect customers in the Availability Zone. - -## __AWS Glue__ - - ### Features - - Adds observation and analyzer support to the GetDataQualityResult and BatchGetDataQualityResult APIs. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for 1/ Code Editor, based on Code-OSS, Visual Studio Code Open Source, a new fully managed IDE option in SageMaker Studio 2/ JupyterLab, a new fully managed JupyterLab IDE experience in SageMaker Studio - -# __2.21.35__ __2023-11-29__ -## __AWS Marketplace Agreement Service__ - - ### Features - - The AWS Marketplace Agreement Service provides an API interface that helps AWS Marketplace sellers manage their agreements, including listing, filtering, and viewing details about their agreements. - -## __AWS Marketplace Catalog Service__ - - ### Features - - This release enhances the ListEntities API to support new entity type-specific strongly typed filters in the request and entity type-specific strongly typed summaries in the response. - -## __AWS Marketplace Deployment Service__ - - ### Features - - AWS Marketplace Deployment is a new service that provides essential features that facilitate the deployment of software, data, and services procured through AWS Marketplace. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Redshift Serverless__ - - ### Features - - This release adds the following support for Amazon Redshift Serverless: 1) cross-account cross-VPCs, 2) copying snapshots across Regions, 3) scheduling snapshot creation, and 4) restoring tables from a recovery point. - -# __2.21.34__ __2023-11-29__ -## __AWS CRT-based S3 client__ - - ### Features - - Add S3 express support for the AWS CRT-based S3 client. - -## __AWS Clean Rooms Service__ - - ### Features - - AWS Clean Rooms now provides differential privacy to protect against user-identification attempts and machine learning modeling to allow two parties to identify similar users in their data. - -## __AWS SDK for Java v2__ - - ### Features - - Add `cloudwatch-metric-publisher` to `aws-sdk-java` module so that it can be included in the bundle JAR. - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for AWS Security Token Service. - -## __Amazon OpenSearch Service__ - - ### Features - - Launching Amazon OpenSearch Service support for new zero-ETL integration with Amazon S3. Customers can now manage their direct query data sources to Amazon S3 programatically - -## __Amazon S3__ - - ### Features - - Adds SDK support for Amazon S3 Express One Zone. For usage, consult Javadocs and the official documentation. Note that users can switch off CreateSession authentication and use the regular credential providers to sign requests by using the `disableS3ExpressSessionAuth` option on the client builder, environment variables, system properties or the config file. - -## __Amazon SageMaker Runtime__ - - ### Features - - This release adds InferenceComponentName to InvokeEndpoint and InvokeEndpointWithResponseStream APIs to get inferences from the deployed InferenceComponents. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds following support 1/ Improved SDK tooling for model deployment. 2/ New Inference Component based features to lower inference costs and latency 3/ SageMaker HyperPod management. 4/ Additional parameters for FM Fine Tuning in Autopilot - -## __Application Auto Scaling__ - - ### Features - - Amazon SageMaker customers can now use Application Auto Scaling to automatically scale the number of Inference Component copies across an endpoint to meet the varying demand of their workloads. - -## __OpenSearch Service Serverless__ - - ### Features - - Amazon OpenSearch Serverless collections support an additional attribute called standby-replicas. This allows to specify whether a collection should have redundancy enabled. - -## __cleanrooms-ml__ - - ### Features - - Public Preview SDK release of AWS Clean Rooms ML APIs - -# __2.21.33__ __2023-11-28__ -## __AWS S3 Control__ - - ### Features - - Adds support for S3 Express One Zone, and InvocationSchemaVersion 2.0 for S3 Batch Operations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Access Analyzer__ - - ### Features - - This release adds support for external access findings for S3 directory buckets to help you easily identify cross-account access. Updated service API, documentation, and paginators. - -## __Agents for Amazon Bedrock__ - - ### Features - - This release introduces Agents for Amazon Bedrock - -## __Agents for Amazon Bedrock Runtime__ - - ### Features - - This release introduces Agents for Amazon Bedrock Runtime - -## __Amazon Bedrock__ - - ### Features - - This release adds support for customization types, model life cycle status and minor versions/aliases for model identifiers. - -## __Amazon Bedrock Runtime__ - - ### Features - - This release adds support for minor versions/aliases for invoke model identifier. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release introduces DetectProfileObjectType API to auto generate object type mapping. - -## __Amazon Connect Service__ - - ### Features - - Added support for following capabilities: Amazon Connect's in-app, web, and video calling. Two-way SMS integrations. Contact Lens real-time chat analytics feature. Amazon Connect Analytics Datalake capability. Capability to configure real time chat rules. - -## __Amazon Q Connect__ - - ### Features - - Amazon Q in Connect, an LLM-enhanced evolution of Amazon Connect Wisdom. This release adds generative AI support to Amazon Q Connect QueryAssistant and GetRecommendations APIs. - -## __Amazon Simple Storage Service__ - - ### Features - - Adds support for S3 Express One Zone. - -## __QBusiness__ - - ### Features - - Amazon Q - a generative AI powered application that your employees can use to ask questions and get answers from knowledge spread across disparate content repositories, summarize reports, write articles, take actions, and much more - all within their company's connected content repositories. - -# __2.21.32__ __2023-11-27__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon ElastiCache__ - - ### Features - - Launching Amazon ElastiCache Serverless that enables you to create a cache in under a minute without any capacity management. ElastiCache Serverless monitors the cache's memory, CPU, and network usage and scales both vertically and horizontally to support your application's requirements. - -# __2.21.31__ __2023-11-27__ -## __AWS AppSync__ - - ### Features - - This update enables introspection of Aurora cluster databases using the RDS Data API - -## __AWS B2B Data Interchange__ - - ### Features - - This is the initial SDK release for AWS B2B Data Interchange. - -## __AWS Backup__ - - ### Features - - AWS Backup now supports restore testing, a new feature that allows customers to automate restore testing and validating their backups. Additionally, this release adds support for EBS Snapshots Archive tier. - -## __AWS Control Tower__ - - ### Features - - This release adds the following support: 1. The EnableControl API can configure controls that are configurable. 2. The GetEnabledControl API shows the configured parameters on an enabled control. 3. The new UpdateEnabledControl API can change parameters on an enabled control. - -## __AWS Fault Injection Simulator__ - - ### Features - - AWS FIS adds support for multi-account experiments & empty target resolution. This release also introduces the CreateTargetAccountConfiguration API that allows experiments across multiple AWS accounts, and the ListExperimentResolvedTargets API to list target details. - -## __AWS Glue__ - - ### Features - - add observations support to DQ CodeGen config model + update document for connectiontypes supported by ConnectorData entities - -## __AWS SecurityHub__ - - ### Features - - Adds and updates APIs to support central configuration. This feature allows the Security Hub delegated administrator to configure Security Hub for their entire AWS Org across multiple regions from a home Region. With this release, findings also include account name and application metadata. - -## __Amazon Elastic File System__ - - ### Features - - Adding support for EFS Replication to existing file system. - -## __Amazon Relational Database Service__ - - ### Features - - Updates Amazon RDS documentation for support for RDS for Db2. - -## __Amazon Transcribe Service__ - - ### Features - - This release adds support for AWS HealthScribe APIs within Amazon Transcribe - -# __2.21.30__ __2023-11-26__ -## __AWS Billing and Cost Management Data Exports__ - - ### Features - - Users can create, read, update, delete Exports of billing and cost management data. Users can get details of Export Executions and details of Tables for exporting. Tagging support is provided for Exports - -## __AWS CloudTrail__ - - ### Features - - CloudTrail Lake now supports federating event data stores. giving users the ability to run queries against their event data using Amazon Athena. - -## __AWS CodeStar connections__ - - ### Features - - This release adds support for the CloudFormation Git sync feature. Git sync enables updating a CloudFormation stack from a template stored in a Git repository. - -## __AWS Compute Optimizer__ - - ### Features - - This release enables AWS Compute Optimizer to analyze and generate recommendations with customization and discounts preferences. - -## __AWS Config__ - - ### Features - - Support Periodic Recording for Configuration Recorder - -## __AWS Control Tower__ - - ### Features - - Add APIs to create and manage a landing zone. - -## __AWS Free Tier__ - - ### Features - - This is the initial SDK release for the AWS Free Tier GetFreeTierUsage API - -## __AWS IoT FleetWise__ - - ### Features - - AWS IoT FleetWise introduces new APIs for vision system data, such as data collected from cameras, radars, and lidars. You can now model and decode complex data types. - -## __AWS Lake Formation__ - - ### Features - - This release adds four new APIs "DescribeLakeFormationIdentityCenterConfiguration", "CreateLakeFormationIdentityCenterConfiguration", "DescribeLakeFormationIdentityCenterConfiguration", and "DeleteLakeFormationIdentityCenterConfiguration", and also updates the corresponding documentation. - -## __AWS S3 Control__ - - ### Features - - Introduce Amazon S3 Access Grants, a new S3 access control feature that maps identities in directories such as Active Directory, or AWS Identity and Access Management (IAM) Principals, to datasets in S3. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Secrets Manager__ - - ### Features - - AWS Secrets Manager has released the BatchGetSecretValue API, which allows customers to fetch up to 20 Secrets with a single request using a list of secret names or filters. - -## __AWS SecurityHub__ - - ### Features - - Adds and updates APIs to support customizable security controls. This feature allows Security Hub customers to provide custom parameters for security controls. With this release, findings for controls that support custom parameters will include the parameters used to generate the findings. - -## __AWS Step Functions__ - - ### Features - - Adds new TestState operation which accepts the definition of a single state and executes it. You can test a state without creating a state machine or updating an existing state machine. - -## __AWS re:Post Private__ - - ### Features - - Initial release of AWS re:Post Private - -## __Access Analyzer__ - - ### Features - - IAM Access Analyzer now continuously monitors IAM roles and users in your AWS account or organization to generate findings for unused access. Additionally, IAM Access Analyzer now provides custom policy checks to validate that IAM policies adhere to your security standards ahead of deployments. - -## __Amazon CloudWatch Logs__ - - ### Features - - Added APIs to Create, Update, Get, List and Delete LogAnomalyDetectors and List and Update Anomalies in Detector. Added LogGroupClass attribute for LogGroups to classify loggroup as Standard loggroup with all capabilities or InfrequentAccess loggroup with limited capabilities. - -## __Amazon Detective__ - - ### Features - - Added new APIs in Detective to support resource investigations - -## __Amazon EC2 Container Service__ - - ### Features - - Adds a new 'type' property to the Setting structure. Adds a new AccountSetting - guardDutyActivate for ECS. - -## __Amazon EKS Auth__ - - ### Features - - This release adds support for EKS Pod Identity feature. EKS Pod Identity makes it easy for customers to obtain IAM permissions for their applications running in the EKS clusters. - -## __Amazon Elastic File System__ - - ### Features - - Adding support for EFS Archive lifecycle configuration. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - This release adds support for EKS Pod Identity feature. EKS Pod Identity makes it easy for customers to obtain IAM permissions for the applications running in their EKS clusters. - -## __Amazon FSx__ - - ### Features - - Added support for FSx for ONTAP scale-out file systems and FlexGroup volumes. Added the HAPairs field and ThroughputCapacityPerHAPair for filesystem. Added AggregateConfiguration (containing Aggregates and ConstituentsPerAggregate) and SizeInBytes for volume. - -## __Amazon GuardDuty__ - - ### Features - - Add support for Runtime Monitoring for ECS and ECS-EC2. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release introduces new generative AI features in AWS Lex: Assisted Slot Resolution, Descriptive Bot Building, and Sample Utterance Generation. These features leverage large language models available through Amazon Bedrock to improve the bot builder and customer experiences. - -## __Amazon Lex Runtime V2__ - - ### Features - - This release introduces support for interpretationSource in the runtime service response. - -## __Amazon Managed Blockchain__ - - ### Features - - Add optional NetworkType property to Accessor APIs - -## __Amazon Personalize__ - - ### Features - - Enables metadata in recommendations, recommendations with themes, and next best action recommendations - -## __Amazon Personalize Events__ - - ### Features - - This release enables PutActions and PutActionInteractions - -## __Amazon Personalize Runtime__ - - ### Features - - Enables metadata in recommendations and next best action recommendations - -## __Amazon Prometheus Service__ - - ### Features - - This release adds support for the Amazon Managed Service for Prometheus collector, a fully managed, agentless Prometheus metrics scraping capability. - -## __Amazon QuickSight__ - - ### Features - - This release launches new APIs for trusted identity propagation setup and supports creating datasources using trusted identity propagation as authentication method for QuickSight accounts configured with IAM Identity Center. - -## __Amazon Redshift__ - - ### Features - - This release adds support for multi-data warehouse writes through data sharing. - -## __Amazon Simple Storage Service__ - - ### Features - - Adding new params - Key and Prefix, to S3 API operations for supporting S3 Access Grants. Note - These updates will not change any of the existing S3 API functionality. - -## __Amazon Transcribe Service__ - - ### Features - - This release adds support for transcriptions from audio sources in 64 new languages and introduces generative call summarization in Transcribe Call Analytics (Post call) - -## __Amazon WorkSpaces__ - - ### Features - - The release introduces Multi-Region Resilience one-way data replication that allows you to replicate data from your primary WorkSpace to a standby WorkSpace in another AWS Region. DescribeWorkspaces now returns the status of data replication. - -## __Amazon WorkSpaces Thin Client__ - - ### Features - - Initial release of Amazon WorkSpaces Thin Client - -## __Cost Optimization Hub__ - - ### Features - - This release launches Cost Optimization Hub, a new AWS Billing and Cost Management feature that helps you consolidate and prioritize cost optimization recommendations across your AWS Organizations member accounts and AWS Regions, so that you can get the most out of your AWS spend. - -## __Elastic Load Balancing__ - - ### Features - - This release enables both mutual authentication (mTLS), and Automatic Target Weights (ATW) for Application Load Balancers. - -# __2.21.29__ __2023-11-22__ -## __AWS S3 Control__ - - ### Features - - Amazon S3 Batch Operations now manages buckets or prefixes in a single step. - -## __Amazon Kinesis__ - - ### Features - - This release adds support for resource based policies on streams and consumers. - -## __Amazon SageMaker Service__ - - ### Features - - This feature adds the end user license agreement status as a model access configuration parameter. - -# __2.21.28__ __2023-11-21__ -## __AWS IoT SiteWise__ - - ### Features - - Adds 1/ user-defined unique identifier for asset and model metadata, 2/ asset model components, and 3/ query API for asset metadata and telemetry data. Supports 4/ multi variate anomaly detection using Amazon Lookout for Equipment, 5/ warm storage tier, and 6/ buffered ingestion of time series data. - -## __AWS IoT TwinMaker__ - - ### Features - - This release adds following support. 1. New APIs for metadata bulk operations. 2. Modify the component type API to support composite component types - nesting component types within one another. 3. New list APIs for components and properties. 4. Support the larger scope digital twin modeling. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudFront__ - - ### Features - - This release adds support for CloudFront KeyValueStore, a globally managed key value datastore associated with CloudFront Functions. - -## __Amazon CloudFront KeyValueStore__ - - ### Features - - This release adds support for CloudFront KeyValueStore, a globally managed key value datastore associated with CloudFront Functions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Amazon EC2. - -## __Amazon Simple Storage Service__ - - ### Features - - Add support for automatic date based partitioning in S3 Server Access Logs. - -## __Inspector Scan__ - - ### Features - - This release adds support for the new Amazon Inspector Scan API. The new Inspector Scan API can synchronously scan SBOMs adhering to the CycloneDX v1.5 format. - -# __2.21.27__ __2023-11-20__ -## __AWS CodeStar connections__ - - ### Features - - This release updates a few CodeStar Connections related APIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Amazon DocumentDB updates for new cluster storage configuration: Amazon DocumentDB I/O-Optimized. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Security group referencing over Transit gateways, enabling you to simplify Security group management and control of instance-to-instance traffic across VPCs that are connected by Transit gateway. - -# __2.21.26__ __2023-11-17__ -## __AWS App Mesh__ - - ### Features - - Change the default value of these fields from 0 to null: MaxConnections, MaxPendingRequests, MaxRequests, HealthCheckThreshold, PortNumber, and HealthCheckPolicy -> port. Users are not expected to perceive the change, except that badRequestException is thrown when required fields missing configured. - -## __AWS Cloud9__ - - ### Features - - A minor doc only update related to changing the date of an API change. - -## __AWS CloudFormation__ - - ### Features - - This release adds a new flag ImportExistingResources to CreateChangeSet. Specify this parameter on a CREATE- or UPDATE-type change set to import existing resources with custom names instead of recreating them. - -## __AWS CodePipeline__ - - ### Features - - CodePipeline now supports overriding source revisions to achieve manual re-deploy of a past revision - -## __AWS CodeStar connections__ - - ### Features - - This release adds support for the CloudFormation Git sync feature. Git sync enables updating a CloudFormation stack from a template stored in a Git repository. - -## __AWS Elemental MediaLive__ - - ### Features - - MediaLive has now added support for per-output static image overlay. - -## __AWS SDK for Java v2__ - - ### Features - - Add the EKS container host to the allowed loopback addresses for ContainerCredentialsProvider. Validate the loopback addresses even for RelativeURI after they have been resolved. - - Updated endpoint and partition metadata. - -## __AWS SSO OIDC__ - - ### Features - - Adding support for `sso-oauth:CreateTokenWithIAM`. - -## __AWS Security Token Service__ - - ### Features - - API updates for the AWS Security Token Service - -## __AWS Single Sign-On Admin__ - - ### Features - - Improves support for configuring RefreshToken and TokenExchange grants on applications. - -## __Amazon Athena__ - - ### Features - - Adding SerivicePreProcessing time metric - -## __Amazon CloudWatch Internet Monitor__ - - ### Features - - Adds new querying capabilities for running data queries on a monitor - -## __Amazon Connect Service__ - - ### Features - - This release adds WISDOM_QUICK_RESPONSES as new IntegrationType of Connect IntegrationAssociation resource and bug fixes. - -## __Amazon Connect Wisdom Service__ - - ### Features - - This release adds QuickResponse as a new Wisdom resource and Wisdom APIs for import, create, read, search, update and delete QuickResponse resources. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Added support for SAP HANA in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies with pre and post scripts. - -## __Amazon EC2 Container Registry__ - - ### Features - - Documentation and operational updates for Amazon ECR, adding support for pull through cache rules for upstream registries that require authentication. - -## __Amazon EMR__ - - ### Features - - Launch support for IAM Identity Center Trusted Identity Propagation and workspace storage encryption using AWS KMS in EMR Studio - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds new features for Amazon VPC IP Address Manager (IPAM) Allowing a choice between Free and Advanced Tiers, viewing public IP address insights across regions and in Amazon Cloudwatch, use IPAM to plan your subnet IPs within a VPC and bring your own autonomous system number to IPAM. - -## __Amazon EventBridge__ - - ### Features - - Introduces a new rule state ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS for matching with Get, List and Describe AWS API call events from CloudTrail. - -## __Amazon EventBridge Pipes__ - - ### Features - - TargetParameters now properly supports BatchJobParameters.ArrayProperties.Size and BatchJobParameters.RetryStrategy.Attempts being optional, and EcsTaskParameters.Overrides.EphemeralStorage.SizeInGiB now properly required when setting EphemeralStorage - -## __Amazon Interactive Video Service__ - - ### Features - - type & defaulting refinement to various range properties - -## __Amazon Interactive Video Service Chat__ - - ### Features - - type & defaulting refinement to various range properties - -## __Amazon Kinesis Video Streams__ - - ### Features - - Docs only build to bring up-to-date with public docs. - -## __Amazon Location Service__ - - ### Features - - Remove default value and allow nullable for request parameters having minimum value larger than zero. - -## __Amazon OpenSearch Ingestion__ - - ### Features - - Add support for enabling a persistent buffer when creating or updating an OpenSearch Ingestion pipeline. Add tags to Pipeline and PipelineSummary response models. - -## __Amazon Redshift__ - - ### Features - - Updated SDK for Amazon Redshift, which you can use to configure a connection with IAM Identity Center to manage access to databases. With these, you can create a connection through a managed application. You can also change a managed application, delete it, or get information about an existing one. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for option groups and replica enhancements to Amazon RDS Custom. - -## __Amazon Simple Storage Service__ - - ### Features - - Removes all default 0 values for numbers and false values for booleans - -## __Amazon Verified Permissions__ - - ### Features - - Adding BatchIsAuthorized API which supports multiple authorization requests against a PolicyStore - -## __Application Migration Service__ - - ### Features - - Removed invalid and unnecessary default values. - -## __Redshift Serverless__ - - ### Features - - Updated SDK for Amazon Redshift Serverless, which provides the ability to configure a connection with IAM Identity Center to manage user and group access to databases. - -## __TrustedAdvisor Public API__ - - ### Features - - AWS Trusted Advisor introduces new APIs to enable you to programmatically access Trusted Advisor best practice checks, recommendations, and prioritized recommendations. Trusted Advisor APIs enable you to integrate Trusted Advisor with your operational tools to automate your workloads. - -# __2.21.25__ __2023-11-16__ -## __AWS Elemental MediaPackage__ - - ### Features - - DRM_TOP_LEVEL_COMPACT allows placing content protection elements at the MPD level and referenced at the AdaptationSet level - -## __AWS Glue__ - - ### Features - - Introduces new column statistics APIs to support statistics generation for tables within the Glue Data Catalog. - -## __AWS IoT__ - - ### Features - - GA release the ability to index and search devices based on their GeoLocation data. With GeoQueries you can narrow your search to retrieve devices located in the desired geographic boundary. - -## __AWS Lambda__ - - ### Features - - Adds support for logging configuration in Lambda Functions. Customers will have more control how their function logs are captured and to which cloud watch log group they are delivered also. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Single Sign-On Admin__ - - ### Features - - Instances bound to a single AWS account, API operations for managing instances and applications, and assignments to applications are now supported. Trusted identity propagation is also supported, with new API operations for managing trusted token issuers and application grants and scopes. - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Introduces new APIs ListIncidentFindings and BatchGetIncidentFindings to use findings related to an incident. - -## __AWS Transfer Family__ - - ### Features - - Introduced S3StorageOptions for servers to enable directory listing optimizations and added Type fields to logical directory mappings. - -## __Amazon CodeCatalyst__ - - ### Features - - This release includes updates to the Dev Environment APIs to include an optional vpcConnectionName parameter that supports using Dev Environments with Amazon VPC. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - This release adds support for Amazon Data Lifecycle Manager default policies for EBS snapshots and EBS-backed AMIs. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Enable use of tenant-specific PublicSigningKeyUrl from device trust providers and onboard jumpcloud as a new device trust provider. - -## __Amazon FSx__ - - ### Features - - Enables customers to update their PerUnitStorageThroughput on their Lustre file systems. - -## __Amazon Interactive Video Service RealTime__ - - ### Features - - This release introduces server side composition and recording for stages. - -## __Amazon Macie 2__ - - ### Features - - This release adds support for configuring Macie to assume an IAM role when retrieving sample occurrences of sensitive data reported by findings. - -## __Amazon Pinpoint SMS Voice V2__ - - ### Features - - Amazon Pinpoint now offers additional operations as part of version 2 of the SMS and voice APIs. This release includes 26 new APIs to create and manage phone number registrations, add verified destination numbers, and request sender IDs. - -## __Amazon Polly__ - - ### Features - - Add new engine - long-form - dedicated for longer content, such as news articles, training materials, or marketing videos. - -## __Amazon QuickSight__ - - ### Features - - Custom permission support for QuickSight roles; Three new datasources STARBURST, TRINO, BIGQUERY; Lenient mode changes the default behavior to allow for exporting and importing with certain UI allowed errors, Support for permissions and tags export and import. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Studio now supports Trainium instance types - trn1.2xlarge, trn1.32xlarge, trn1n.32xlarge. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release introduces the ability to filter automation execution steps which have parent steps. In addition, runbook variable information is returned by GetAutomationExecution and parent step information is returned by the DescribeAutomationStepExecutions API. - -## __EC2 Image Builder__ - - ### Features - - This release adds the Image Lifecycle Management feature to automate the process of deprecating, disabling and deleting outdated images and their associated resources. - -## __Managed Streaming for Kafka__ - - ### Features - - Added a new API response field which determines if there is an action required from the customer regarding their cluster. - -# __2.21.24__ __2023-11-15__ -## __AWS CloudTrail__ - - ### Features - - The Lake Repricing feature lets customers configure a BillingMode for an event data store. The BillingMode determines the cost for ingesting and storing events and the default and maximum retention period for the event data store. - -## __AWS Lambda__ - - ### Features - - Add Java 21 (java21) support to AWS Lambda - -## __AWS S3 Control__ - - ### Features - - Add 5 APIs to create, update, get, list, delete S3 Storage Lens group(eg. CreateStorageLensGroup), 3 APIs for tagging(TagResource,UntagResource,ListTagsForResource), and update to StorageLensConfiguration to allow metrics to be aggregated on Storage Lens groups. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Systems Manager for SAP__ - - ### Features - - Update the default value of MaxResult to 50. - -## __Amazon CodeCatalyst__ - - ### Features - - This release adds functionality for retrieving information about workflows and workflow runs and starting workflow runs in Amazon CodeCatalyst. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - AWS EBS now supports Snapshot Lock, giving users the ability to lock an EBS Snapshot to prohibit deletion of the snapshot. This release introduces the LockSnapshot, UnlockSnapshot & DescribeLockedSnapshots APIs to manage lock configuration for snapshots. The release also includes the dl2q_24xlarge. - -## __Amazon Redshift__ - - ### Features - - The custom domain name SDK for Amazon Redshift provisioned clusters is updated with additional required parameters for modify and delete operations. Additionally, users can provide domain names with longer top-level domains. - -## __Amazon Relational Database Service__ - - ### Features - - Updates Amazon RDS documentation for support for upgrading RDS for MySQL snapshots from version 5.7 to version 8.0. - -## __AmazonMWAA__ - - ### Features - - This Amazon MWAA release adds support for customer-managed VPC endpoints. This lets you choose whether to create, and manage your environment's VPC endpoints, or to have Amazon MWAA create, and manage them for you. - -## __Auto Scaling__ - - ### Features - - This release introduces Instance Maintenance Policy, a new EC2 Auto Scaling capability that allows customers to define whether instances are launched before or after existing instances are terminated during instance replacement operations. - -## __FinSpace Public API__ - - ### Features - - Adding deprecated trait to APIs in this name space. - -## __FinSpace User Environment Management service__ - - ### Features - - Adding deprecated trait on Dataset Browser Environment APIs - -# __2.21.23__ __2023-11-14__ -## __AWS Backup__ - - ### Features - - AWS Backup - Features: Provide Job Summary for your backup activity. - -## __AWS Clean Rooms Service__ - - ### Features - - This feature provides the ability for the collaboration creator to configure either the member who can run queries or a different member in the collaboration to be billed for query compute costs. - -## __AWS Glue__ - - ### Features - - Introduces new storage optimization APIs to support automatic compaction of Apache Iceberg tables. - -## __AWS IoT__ - - ### Features - - This release introduces new attributes in API CreateSecurityProfile, UpdateSecurityProfile and DescribeSecurityProfile to support management of Metrics Export for AWS IoT Device Defender Detect. - -## __AWS Lambda__ - - ### Features - - Add Python 3.12 (python3.12) support to AWS Lambda - -## __AWS MediaTailor__ - - ### Features - - Removed unnecessary default values. - -## __AWS Resource Explorer__ - - ### Features - - Resource Explorer supports multi-account search. You can now use Resource Explorer to search and discover resources across AWS accounts within your organization or organizational unit. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Signer__ - - ### Features - - Documentation updates for AWS Signer - -## __AWS Step Functions__ - - ### Features - - This release adds support to redrive executions in AWS Step Functions with a new RedriveExecution operation. - -## __Amazon Connect Service__ - - ### Features - - Introducing SegmentAttributes parameter for StartChatContact API - -## __Amazon EventBridge Pipes__ - - ### Features - - Added support (via new LogConfiguration field in CreatePipe and UpdatePipe APIs) for logging to Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3), and Amazon Kinesis Data Firehose - -## __Amazon SageMaker Service__ - - ### Features - - This release makes Model Registry Inference Specification fields as not required. - -# __2.21.22__ __2023-11-13__ -## __AWS Data Exchange__ - - ### Features - - Removed Required trait for DataSet.OriginDetails.ProductId. - -## __AWS Database Migration Service__ - - ### Features - - Added new Db2 LUW Target endpoint with related endpoint settings. New executeTimeout endpoint setting for mysql endpoint. New ReplicationDeprovisionTime field for serverless describe-replications. - -## __AWS SDK for Java v2__ - - ### Features - - SdkPlugins can now see and modify all configuration set on the client, including default values - - The `serviceClientConfiguration` from SDK clients now includes the defaults set by the SDK. - - Updated endpoint and partition metadata. - -## __AWS Service Catalog App Registry__ - - ### Features - - When the customer associates a resource collection to their application with this new feature, then a new application tag will be applied to all supported resources that are part of that collection. This allows customers to more easily find the application that is associated with those resources. - -## __Amazon CodeCatalyst__ - - ### Documentations - - If you see a NullPointerException from DefaultCodeCatalystBaseClientBuilder after upgrading to this version, ensure you're not using an old version of codecatalyst. - -## __Amazon EC2 Container Service__ - - ### Features - - Adds a Client Token parameter to the ECS RunTask API. The Client Token parameter allows for idempotent RunTask requests. - -## __Amazon EMR__ - - ### Features - - Updated GetClusterSessionCredentials API to allow Amazon SageMaker Studio to connect to EMR on EC2 clusters to support IdentityCenter/PEZ integration. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds the new EC2 DescribeInstanceTopology API, which you can use to retrieve the network topology of your running instances on select platform types to determine their relative proximity to each other. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - This release enables customers to call the AWS Transcribe streaming service with the capability of identifying multiple languages in the stream. - -# __2.21.21__ __2023-11-10__ -## __AWS Control Tower__ - - ### Features - - AWS Control Tower supports tagging for enabled controls. This release introduces TagResource, UntagResource and ListTagsForResource APIs to manage tags in existing enabled controls. It updates EnabledControl API to tag resources at creation time. - -## __AWS Cost and Usage Report Service__ - - ### Features - - This release adds support for tagging and customers can now tag report definitions. Additionally, ReportStatus is now added to report definition to show when the last delivered time stamp and if it succeeded or not. - -## __AWS Elemental MediaConvert__ - - ### Features - - This release includes the ability to specify any input source as the primary input for corresponding follow modes, and allows users to specify fit and fill behaviors without resizing content. - -## __AWS Marketplace Entitlement Service__ - - ### Features - - Add paginators to GetEntitlements. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EC2 adds API updates to enable ENA Express at instance launch time. - -## __Amazon Relational Database Service__ - - ### Features - - Updates Amazon RDS documentation for zero-ETL integrations. - -## __Amazon S3__ - - ### Features - - Create a plugin framework for Code-gen to consume plugins specified in customization.config and configure them on the client instance - - Contributed by: [@anirudh9391](https://github.com/anirudh9391) - -## __Firewall Management Service__ - - ### Features - - Adds optimizeUnassociatedWebACL flag to ManagedServiceData, updates third-party firewall examples, and other minor documentation updates. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix an issue where data received on a channel while it was idling was not handled until the channel was leased again for a request. This caused issues such as late notification of channel closes, manifesting as channels being closed at the beginning of a request. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@anirudh9391](https://github.com/anirudh9391) -# __2.21.20__ __2023-11-09__ -## __AWS CloudFormation__ - - ### Features - - Added new ConcurrencyMode feature for AWS CloudFormation StackSets for faster deployments to target accounts. - -## __AWS CloudTrail__ - - ### Features - - The Insights in Lake feature lets customers enable CloudTrail Insights on a source CloudTrail Lake event data store and create a destination event data store to collect Insights events based on unusual management event activity in the source event data store. - -## __AWS Lambda__ - - ### Features - - Add Custom runtime on Amazon Linux 2023 (provided.al2023) support to AWS Lambda. - -## __Amazon CloudWatch Logs__ - - ### Features - - Update to support new APIs for delivery of logs from AWS services. - -## __Amazon Comprehend__ - - ### Features - - This release adds support for toxicity detection and prompt safety classification. - -## __Amazon Connect Service__ - - ### Features - - This release adds the ability to integrate customer lambda functions with Connect attachments for scanning and updates the ListIntegrationAssociations API to support filtering on IntegrationArn. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - AWS EBS now supports Block Public Access for EBS Snapshots. This release introduces the EnableSnapshotBlockPublicAccess, DisableSnapshotBlockPublicAccess and GetSnapshotBlockPublicAccessState APIs to manage account-level public access settings for EBS Snapshots in an AWS Region. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding EKS Anywhere subscription related operations. - -## __Amazon Omics__ - - ### Features - - Support UBAM filetype for Omics Storage and make referenceArn optional - -# __2.21.19__ __2023-11-08__ -## __Amazon Simple Queue Service__ - - ### Features - - This release enables customers to call SQS using AWS JSON-1.0 protocol and bug fix. - -# __2.21.18__ __2023-11-08__ -## __AWS DataSync__ - - ### Features - - This change allows for 0 length access keys and secret keys for object storage locations. Users can now pass in empty string credentials. - -## __AWS Lambda__ - - ### Features - - Add Node 20 (nodejs20.x) support to AWS Lambda. - -## __AWS Resilience Hub__ - - ### Features - - AWS Resilience Hub enhances Resiliency Score, providing actionable recommendations to improve application resilience. Amazon Elastic Kubernetes Service (EKS) operational recommendations have been added to help improve the resilience posture of your applications. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Cases__ - - ### Features - - This release adds the ability to add/view comment authors through CreateRelatedItem and SearchRelatedItems API. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html - -## __Amazon Connect Service__ - - ### Features - - This release clarifies in our public documentation that InstanceId is a requirement for SearchUsers API requests. - -## __Amazon GuardDuty__ - - ### Features - - Added API support for new GuardDuty EKS Audit Log finding types. - -## __Amazon Lex Model Building V2__ - - ### Features - - AWS Lex now supports selective log capture in conversation logs. When you enable this option within the conversation log settings, only the utterances that trigger intents and slots specified in session attributes will be logged. - -## __Amazon Omics__ - - ### Features - - Adding Run UUID and Run Output URI: GetRun and StartRun API response has two new fields "uuid" and "runOutputUri". - -## __Amazon Relational Database Service__ - - ### Features - - This Amazon RDS release adds support for patching the OS of an RDS Custom for Oracle DB instance. You can now upgrade the database or operating system using the modify-db-instance command. - -## __Amazon Simple Queue Service__ - - ### Features - - This release enables customers to call SQS using AWS JSON-1.0 protocol. - -## __Redshift Serverless__ - - ### Features - - Added a new parameter in the workgroup that helps you control your cost for compute resources. This feature provides a ceiling for RPUs that Amazon Redshift Serverless can scale up to. When automatic compute scaling is required, having a higher value for MaxRPU can enhance query throughput. - -# __2.21.17__ __2023-11-07__ -## __AWS Data Exchange__ - - ### Features - - Updated SendDataSetNotificationRequest Comment to be maximum length 4096. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Added support for pre and post scripts in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. - -## __Amazon Relational Database Service__ - - ### Features - - This Amazon RDS release adds support for the multi-tenant configuration. In this configuration, an RDS DB instance can contain multiple tenant databases. In RDS for Oracle, a tenant database is a pluggable database (PDB). - -# __2.21.16__ __2023-11-06__ -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild now supports AWS Lambda compute. - -## __AWS Cost Explorer Service__ - - ### Features - - This release extends the GetReservationPurchaseRecommendation API to support recommendations for Amazon MemoryDB reservations. - -## __AWS Identity and Access Management__ - - ### Features - - Add partitional endpoint for iso-e. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - Added new API that allows Amazon Connect Outbound Campaigns to create contacts in Amazon Connect when ingesting your dial requests. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Update the input of CreateDBInstance and ModifyDBInstance to support setting CA Certificates. Update the output of DescribeDBInstance and DescribeDBEngineVersions to show current and supported CA certificates. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new US English voices - Danielle and Gregory. Danielle and Gregory are available as Neural voices only. - -## __Amazon Route 53__ - - ### Features - - Add partitional endpoints for iso-e and iso-f. - -## __AmazonMWAA__ - - ### Features - - This release adds support for Apache Airflow version 2.7.2. This version release includes support for deferrable operators and triggers. - -## __s3__ - - ### Features - - Move the service to the standardized AWS SDK architecture for identity and auth that was introduced in 2.21.0 release. - -# __2.21.15__ __2023-11-03__ -## __AWS Config__ - - ### Features - - Updated ResourceType enum with new resource types onboarded by AWS Config in October 2023. - -## __AWS IoT Wireless__ - - ### Features - - Added LoRaWAN version 1.0.4 support - -## __AWS Launch Wizard__ - - ### Features - - AWS Launch Wizard is a service that helps reduce the time it takes to deploy applications to the cloud while providing a guided deployment experience. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed the AttributeMap#close method trying to close an ExecutorService instance instead of shutting it down, resulting in a deadlock starting with Java 21 - - Contributed by: [@michaeldimchuk](https://github.com/michaeldimchuk) - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect Chat introduces Create Persistent Contact Association API, allowing customers to choose when to resume previous conversations from previous chats, eliminating the need to repeat themselves and allowing agents to provide personalized service with access to entire conversation history. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@michaeldimchuk](https://github.com/michaeldimchuk) -# __2.21.14__ __2023-11-02__ -## __AWS App Runner__ - - ### Features - - AWS App Runner now supports using dual-stack address type for the public endpoint of your incoming traffic. - -## __AWS Glue__ - - ### Features - - This release introduces Google BigQuery Source and Target in AWS Glue CodeGenConfigurationNode. - -## __AWS Network Firewall__ - - ### Features - - This release introduces the stateless rule analyzer, which enables you to analyze your stateless rules for asymmetric routing. - -## __AWS SDK for Java v2__ - - ### Features - - Makes SignedRequest and AsyncSignedRequest implement CopyableBuilder to allow modifications - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - GetMetricDataV2 API: Update to include new metrics PERCENT_NON_TALK_TIME, PERCENT_TALK_TIME, PERCENT_TALK_TIME_AGENT, PERCENT_TALK_TIME_CUSTOMER - -## __Amazon GameLift__ - - ### Features - - Amazon GameLift adds support for shared credentials, which allows applications that are deployed on managed EC2 fleets to interact with other AWS resources. - -## __Amazon QuickSight__ - - ### Features - - This release introduces Float Decimal Type as SubType in QuickSight SPICE datasets and Custom week start and Custom timezone options in Analysis and Dashboard. - -# __2.21.13__ __2023-11-01__ -## __AWS Global Accelerator__ - - ### Features - - Global Accelerator now support accelerators with cross account endpoints. - -## __AWS SDK for Java v2__ - - ### Features - - Add `cloudwatch-metric-publisher` to `aws-sdk-java` module so that it can be included in the bundle JAR. - -## __Amazon Connect Service__ - - ### Features - - Adds the BatchGetFlowAssociation API which returns flow associations (flow-resource) corresponding to the list of resourceArns supplied in the request. This release also adds IsDefault, LastModifiedRegion and LastModifiedTime fields to the responses of several Describe and List APIs. - -## __Amazon Redshift__ - - ### Features - - Added support for Multi-AZ deployments for Provisioned RA3 clusters that provide 99.99% SLA availability. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for customized networking resources to Amazon RDS Custom. - -## __Amazon SageMaker Service__ - - ### Features - - Support for batch transform input in Model dashboard - -# __2.21.12__ __2023-10-31__ -## __AWS Amplify__ - - ### Features - - Add backend field to CreateBranch and UpdateBranch requests. Add pagination support for ListApps, ListDomainAssociations, ListBranches, and ListJobs - -## __AWS SDK for Java v2__ - - ### Features - - Introduce `AsyncRequestBody#fromInputStream(AsyncRequestBodyFromInputStreamConfiguration)` that allows users to specify the max read limit on the provided InputStream. - -## __AWSMainframeModernization__ - - ### Features - - Added name filter ability for ListDataSets API, added ForceUpdate for Updating environment and BatchJob submission using S3BatchJobIdentifier - -## __Amazon CloudWatch Application Insights__ - - ### Features - - Automate attaching managed policies - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Capacity Blocks for ML are a new EC2 purchasing option for reserving GPU instances on a future date to support short duration machine learning (ML) workloads. Capacity Blocks automatically place instances close together inside Amazon EC2 UltraClusters for low-latency, high-throughput networking. - -## __Amazon NeptuneData__ - - ### Features - - Minor change to not retry CancelledByUserException - -## __Amazon Translate__ - - ### Features - - Added support for Brevity translation settings feature. - -# __2.21.11__ __2023-10-30__ -## __AWS CRT-based S3 Client__ - - ### Features - - Add the cause of failure to the stacktrace if present for the AWS CRT-based S3 client. Related to [aws-crt-java#497](https://github.com/awslabs/aws-crt-java/issues/697). - -## __AWS Data Exchange__ - - ### Features - - We added a new API action: SendDataSetNotification. - -## __AWS DataSync__ - - ### Features - - Platform version changes to support AL1 deprecation initiative. - -## __AWS Elemental MediaPackage v2__ - - ### Features - - This feature allows customers to create a combination of manifest filtering, startover and time delay configuration that applies to all egress requests by default. - -## __AWS Resilience Hub__ - - ### Features - - Introduced the ability to filter applications by their last assessment date and time and have included metrics for the application's estimated workload Recovery Time Objective (RTO) and estimated workload Recovery Point Objective (RPO). - -## __Amazon Connect Service__ - - ### Features - - This release adds InstanceId field for phone number APIs. - -## __Amazon Connect Wisdom Service__ - - ### Features - - This release added necessary API documents on creating a Wisdom knowledge base to integrate with S3. - -## __Amazon Relational Database Service__ - - ### Features - - This release launches the CreateIntegration, DeleteIntegration, and DescribeIntegrations APIs to manage zero-ETL Integrations. - -## __Amazon S3 on Outposts__ - - ### Features - - Updated ListOutpostsWithS3 API response to include S3OutpostArn for use with AWS RAM. - -## __FinSpace User Environment Management service__ - - ### Features - - Introducing new API UpdateKxClusterCodeConfiguration, introducing new cache types for clusters and introducing new deployment modes for updating clusters. - -## __Redshift Serverless__ - - ### Features - - Added support for custom domain names for Amazon Redshift Serverless workgroups. This feature enables customers to create a custom domain name and use ACM to generate fully secure connections to it. - -# __2.21.10__ __2023-10-27__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - Updates the descriptions for the calls that manage web ACL associations, to provide information for customer-managed IAM policies. - -## __Amazon EMR__ - - ### Features - - Updated CreateCluster API request and DescribeCluster API responses to include EbsRootVolumeIops, and EbsRootVolumeThroughput attributes that specify the user configured root volume IOPS and throughput for Amazon EBS root device volume. This feature will be available from Amazon EMR releases 6.15.0 - -## __Amazon Neptune__ - - ### Features - - Update TdeCredentialPassword type to SensitiveString - -## __Amazon Pinpoint__ - - ### Features - - Updated documentation to describe the case insensitivity for EndpointIds. - -## __Amazon Redshift__ - - ### Features - - added support to create a dual stack cluster - -# __2.21.9__ __2023-10-26__ -## __AWS Network Firewall__ - - ### Features - - Network Firewall now supports inspection of outbound SSL/TLS traffic. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Systems Manager for SAP__ - - ### Features - - AWS Systems Manager for SAP added support for registration and discovery of SAP ABAP applications - -## __AWS Transfer Family__ - - ### Features - - No API changes from previous release. This release migrated the model to Smithy keeping all features unchanged. - -## __Amazon AppStream__ - - ### Features - - This release introduces multi-session fleets, allowing customers to provision more than one user session on a single fleet instance. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Launching GetSecurityGroupsForVpc API. This API gets security groups that can be associated by the AWS account making the request with network interfaces in the specified VPC. - -## __Amazon OpenSearch Service__ - - ### Features - - You can specify ipv4 or dualstack IPAddressType for cluster endpoints. If you specify IPAddressType as dualstack, the new endpoint will be visible under the 'EndpointV2' parameter and will support IPv4 and IPv6 requests. Whereas, the 'Endpoint' will continue to serve IPv4 requests. - -## __Amazon Redshift__ - - ### Features - - Add Redshift APIs GetResourcePolicy, DeleteResourcePolicy, PutResourcePolicy and DescribeInboundIntegrations for the new Amazon Redshift Zero-ETL integration feature, which can be used to control data ingress into Redshift namespace, and view inbound integrations. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon Sagemaker Autopilot now supports Text Generation jobs. - -## __Amazon Simple Notification Service__ - - ### Features - - Message Archiving and Replay is now supported in Amazon SNS for FIFO topics. - -# __2.21.8__ __2023-10-25__ -## __AWS Ground Station__ - - ### Features - - This release will allow KMS alias names to be used when creating Mission Profiles - -## __AWS Identity and Access Management__ - - ### Features - - Updates to GetAccessKeyLastUsed action to replace NoSuchEntity error with AccessDeniedException error. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed concurrency bug with ResolvedChecksumSpecs execution-attribute and associated mappings https://github.com/aws/aws-sdk-java-v2/issues/4608 - -## __Amazon Connect Cases__ - - ### Features - - Increase maximum length of CommentBody to 3000, and increase maximum length of StringValue to 1500 - -# __2.21.7__ __2023-10-24__ -## __AWS CodePipeline__ - - ### Features - - Add ability to trigger pipelines from git tags, define variables at pipeline level and new pipeline type V2. - -## __AWS Identity and Access Management__ - - ### Features - - Add the partitional endpoint for IAM in iso-f. - -## __AWS Migration Hub Config__ - - ### Features - - This release introduces DeleteHomeRegionControl API that customers can use to delete the Migration Hub Home Region configuration - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release updates the documentation for InstanceInterruptionBehavior and HibernationOptionsRequest to more accurately describe the behavior of these two parameters when using Spot hibernation. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Added support for Cluster Subnet and Security Group mutability. - -## __Migration Hub Strategy Recommendations__ - - ### Features - - This release introduces multi-data-source feature in Migration Hub Strategy Recommendations. This feature now supports vCenter as a data source to fetch inventory in addition to ADS and Import from file workflow that is currently supported with MHSR collector. - -## __OpenSearch Service Serverless__ - - ### Features - - This release includes the following new APIs: CreateLifecyclePolicy, UpdateLifecyclePolicy, BatchGetLifecyclePolicy, DeleteLifecyclePolicy, ListLifecyclePolicies and BatchGetEffectiveLifecyclePolicy to support the data lifecycle management feature. - -# __2.21.6__ __2023-10-23__ -## __AWS Marketplace Commerce Analytics__ - - ### Features - - The StartSupportDataExport operation has been deprecated as part of the Product Support Connection deprecation. As of December 2022, Product Support Connection is no longer supported. - -## __AWS Network Manager__ - - ### Features - - This release adds API support for Tunnel-less Connect (NoEncap Protocol) for AWS Cloud WAN - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Rekognition__ - - ### Features - - Amazon Rekognition introduces StartMediaAnalysisJob, GetMediaAnalysisJob, and ListMediaAnalysisJobs operations to run a bulk analysis of images with a Detect Moderation model. - -## __Redshift Serverless__ - - ### Features - - This release adds support for customers to see the patch version and workgroup version in Amazon Redshift Serverless. - -# __2.21.5__ __2023-10-20__ -## __AWS Application Discovery Service__ - - ### Features - - This release introduces three new APIs: StartBatchDeleteConfigurationTask, DescribeBatchDeleteConfigurationTask, and BatchDeleteAgents. - -## __AWS Health Imaging__ - - ### Features - - Updates on documentation links - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Removed mapping for RESOLVED_CHECKSUM_SPECS execution attribute that was causing intermittent failures for S3 operations with checksums since 2.21.0 release. The bug can cause `java.lang.NullPointerException: Cannot read field "value" because "s1" is null` exceptions, as reported in https://github.com/aws/aws-sdk-java-v2/issues/4608. - -## __Amazon AppConfig__ - - ### Features - - Update KmsKeyIdentifier constraints to support AWS KMS multi-Region keys. - -## __Amazon AppIntegrations Service__ - - ### Features - - Updated ScheduleConfig to be an optional input to CreateDataIntegration to support event driven downloading of files from sources such as Amazon s3 using Amazon Connect AppIntegrations. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for updating phone number metadata, such as phone number description. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release introduces a new API: DeleteOpsItem. This allows deletion of an OpsItem. - -# __2.21.4__ __2023-10-19__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Netty version bump to address CVE-2023-44487 - - Contributed by: [@mgrundie-r7](https://github.com/mgrundie-r7) - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __AWS Service Catalog__ - - ### Features - - Introduce support for EXTERNAL product and provisioning artifact type in CreateProduct and CreateProvisioningArtifact APIs. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 C7a instances, powered by 4th generation AMD EPYC processors, are ideal for high performance, compute-intensive workloads such as high performance computing. Amazon EC2 R7i instances are next-generation memory optimized and powered by custom 4th Generation Intel Xeon Scalable processors. - -## __Amazon Managed Blockchain Query__ - - ### Features - - This release adds support for Ethereum Sepolia network - -## __Amazon NeptuneData__ - - ### Features - - Doc changes to add IAM action mappings for the data actions. - -## __Amazon Omics__ - - ### Features - - This change enables customers to retrieve failure reasons with detailed status messages for their failed runs - -## __Amazon OpenSearch Service__ - - ### Features - - Added Cluster Administrative options for node restart, opensearch process restart and opensearch dashboard restart for Multi-AZ without standby domains - -## __Amazon QuickSight__ - - ### Features - - This release adds the following: 1) Trino and Starburst Database Connectors 2) Custom total for tables and pivot tables 3) Enable restricted folders 4) Add rolling dates for time equality filters 5) Refine DataPathValue and introduce DataPathType 6) Add SeriesType to ReferenceLineDataConfiguration - -## __Amazon Verified Permissions__ - - ### Features - - Improving Amazon Verified Permissions Create experience - -## __Amazon WorkSpaces__ - - ### Features - - Documentation updates for WorkSpaces - -## __glacier__ - - ### Features - - Move the service to the standardized AWS SDK architecture for identity and auth that was introduced in 2.21.0 release. - -## __s3control__ - - ### Features - - Move the service to the standardized AWS SDK architecture for identity and auth that was introduced in 2.21.0 release. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@mgrundie-r7](https://github.com/mgrundie-r7) -# __2.21.3__ __2023-10-18__ -## __AWS Cloud9__ - - ### Features - - Update to imageId parameter behavior and dates updated. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Changes for a new feature in Amazon Kendra's Query API to Collapse/Expand query results - -## __Amazon Connect Wisdom Service__ - - ### Features - - This release adds an max limit of 25 recommendation ids for NotifyRecommendationsReceived API. - -## __Amazon DynamoDB__ - - ### Features - - Updating descriptions for several APIs. - -## __Amazon Polly__ - - ### Bugfixes - - The Scala compiler gets confused when overriding a method with a more specific return type in the interface. To work around this we added a default implementation that fixes this issue with local testing. - - Contributed by: [@sugmanue](https://github.com/sugmanue) - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for upgrading the storage file system configuration on the DB instance using a blue/green deployment or a read replica. - -## __Amazon S3__ - - ### Bugfixes - - The Scala compiler gets confused when overriding a method with a more specific return type in the interface. To work around this we added a default implementation that fixes this issue with local testing. - - Contributed by: [@sugmanue](https://github.com/sugmanue) - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@sugmanue](https://github.com/sugmanue) -# __2.21.2__ __2023-10-17__ -## __AWS Application Discovery Service__ - - ### Features - - This release introduces three new APIs: StartBatchDeleteConfigurationTask, DescribeBatchDeleteConfigurationTask, and BatchDeleteAgents. - -## __AWS CRT-based S3 client__ - - ### Features - - Added a boolean flag, 'useEnvironmentVariableValues,' to the S3CrtProxyConfiguration to enable the disabling of reading ProxyConfig from environment variables by the CRT client. - -## __AWS CodePipeline__ - - ### Features - - Add retryMode ALL_ACTIONS to RetryStageExecution API that retries a failed stage starting from first action in the stage - -## __AWS Global Accelerator__ - - ### Features - - Fixed error where ListCustomRoutingEndpointGroups did not have a paginator - -## __AWS Route53 Recovery Control Config__ - - ### Features - - Adds permissions for GetResourcePolicy to support returning details about AWS Resource Access Manager resource policies for shared resources. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation only updates to address Amazon ECS tickets. - -## __Amazon GuardDuty__ - - ### Features - - Add domainWithSuffix finding field to dnsRequestAction - -## __Managed Streaming for Kafka__ - - ### Features - - AWS Managed Streaming for Kafka is launching MSK Replicator, a new feature that enables customers to reliably replicate data across Amazon MSK clusters in same or different AWS regions. You can now use SDK to create, list, describe, delete, update, and manage tags of MSK Replicators. - -## __Route53 Recovery Cluster__ - - ### Features - - Adds Owner field to ListRoutingControls API. - -# __2.21.1__ __2023-10-16__ -## __AWS CloudFormation__ - - ### Features - - SDK and documentation updates for UpdateReplacePolicy - -## __AWS Elemental MediaPackage v2__ - - ### Features - - This release allows customers to manage MediaPackage v2 resource using CloudFormation. - -## __AWS EntityResolution__ - - ### Features - - This launch expands our matching techniques to include provider-based matching to help customer match, link, and enhance records with minimal data movement. With data service providers, we have removed the need for customers to build bespoke integrations,. - -## __AWS SDK for Java v2__ - - ### Features - - Adds support for non-XML String payloads - - Proxy Configuration from Environment Variables for all SDK clients, including Apache, Netty, URL, and CRT HTTP clients PR [#4467](https://github.com/aws/aws-sdk-java-v2/issues/4467) - - Updated endpoint and partition metadata. - -## __AWS Transfer Family__ - - ### Features - - Documentation updates for AWS Transfer Family - -## __AWS X-Ray__ - - ### Features - - This releases enhances GetTraceSummaries API to support new TimeRangeType Service to query trace summaries by segment end time. - -## __Amazon Managed Blockchain Query__ - - ### Features - - This release introduces two new APIs: GetAssetContract and ListAssetContracts. This release also adds support for Bitcoin Testnet. - -## __Amazon OpenSearch Service__ - - ### Features - - This release allows customers to list and associate optional plugin packages with compatible Amazon OpenSearch Service clusters for enhanced functionality. - -## __Amazon Redshift__ - - ### Features - - Added support for managing credentials of provisioned cluster admin using AWS Secrets Manager. - -## __Amazon Simple Email Service__ - - ### Features - - This release provides enhanced visibility into your SES identity verification status. This will offer you more actionable insights, enabling you to promptly address any verification-related issues. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Updated exsiting API to allow AWS Elastic Disaster Recovery support of launching recovery into existing EC2 instances. - -## __Redshift Serverless__ - - ### Features - - Added support for managing credentials of serverless namespace admin using AWS Secrets Manager. - -# __2.21.0__ __2023-10-12__ -## __AWS Audit Manager__ - - ### Features - - This release introduces a new limit to the awsAccounts parameter. When you create or update an assessment, there is now a limit of 200 AWS accounts that can be specified in the assessment scope. - -## __AWS Config__ - - ### Features - - Add enums for resource types supported by Config - -## __AWS Control Tower__ - - ### Features - - Added new EnabledControl resource details to ListEnabledControls API and added new GetEnabledControl API. - -## __AWS Glue__ - - ### Features - - Extending version control support to GitLab and Bitbucket from AWSGlue - -## __AWS Lambda__ - - ### Features - - Adds support for Lambda functions to access Dual-Stack subnets over IPv6, via an opt-in flag in CreateFunction and UpdateFunctionConfiguration APIs - -## __AWS Price List Service__ - - ### Features - - Documentation updates for Price List - -## __AWS SDK for Java v2__ - - ### Features - - This release contains a major internal refactor of authentication. The refactor is part of moving the SDK to a standardized AWS SDK architecture. - - It paves the way for new features to be released over the coming months: SDK plugins to provide a unified interface to add third-party functionality to the SDK and the ability to define additional ways of authenticating with services. - - With this release, custom 3rd party credential providers can be created with fewer SDK dependencies (with the new `identity-spi` module), and AWS signers can be used with fewer SDK dependencies (with the new `http-auth-aws` module). - - Because this is a major refactor that may result in backwards-compatible behavior changes, this release bumps the minor version of the SDK to 2.21. - - Updated endpoint and partition metadata. - -## __Amazon Connect Customer Profiles__ - - ### Features - - Adds sensitive trait to various shapes in Customer Profiles Calculated Attribute API model. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds Ubuntu Pro as a supported platform for On-Demand Capacity Reservations and adds support for setting an Amazon Machine Image (AMI) to disabled state. Disabling the AMI makes it private if it was previously shared, and prevents new EC2 instance launches from it. - -## __Amazon Interactive Video Service RealTime__ - - ### Features - - Update GetParticipant to return additional metadata. - -## __Amazon Location Service__ - - ### Features - - This release adds endpoint updates for all AWS Location resource operations. - -## __Amazon Machine Learning__ - - ### Features - - This release marks Password field as sensitive - -## __Amazon Rekognition__ - - ### Features - - Amazon Rekognition introduces support for Custom Moderation. This allows the enhancement of accuracy for detect moderation labels operations by creating custom adapters tuned on customer data. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for adding a dedicated log volume to open-source RDS instances. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Canvas adds KendraSettings and DirectDeploySettings support for CanvasAppSettings - -## __Amazon Textract__ - - ### Features - - This release adds 9 new APIs for adapter and adapter version management, 3 new APIs for tagging, and updates AnalyzeDocument and StartDocumentAnalysis API parameters for using adapters. - -## __Amazon Transcribe Service__ - - ### Features - - This release is to enable m4a format to customers - -## __Amazon WorkSpaces__ - - ### Features - - Updated the CreateWorkspaces action documentation to clarify that the PCoIP protocol is only available for Windows bundles. - -## __Auto Scaling__ - - ### Features - - Update the NotificationMetadata field to only allow visible ascii characters. Add paginators to DescribeInstanceRefreshes, DescribeLoadBalancers, and DescribeLoadBalancerTargetGroups - -## __DynamoDB Enhanced Client__ - - ### Bugfixes - - Fix an issue where the presence of a `MappedTableResource` was being unnecessarily asserted when building a `WriteBatch` or `ReadBatch`. - -## __Elastic Load Balancing__ - - ### Features - - This release enables routing policies with Availability Zone affinity for Network Load Balancers. - -## __Inspector2__ - - ### Features - - Add MacOs ec2 platform support - -# __2.20.162__ __2023-10-06__ -## __AWS Marketplace Catalog Service__ - - ### Features - - This release adds support for Document type as an alternative for stringified JSON for StartChangeSet, DescribeChangeSet and DescribeEntity APIs - -## __AWS Transfer Family__ - - ### Features - - This release updates the max character limit of PreAuthenticationLoginBanner and PostAuthenticationLoginBanner to 4096 characters - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Elastic Compute Cloud (EC2). - -## __Amazon FSx__ - - ### Features - - After performing steps to repair the Active Directory configuration of a file system, use this action to initiate the process of attempting to recover to the file system. - -## __Amazon QuickSight__ - - ### Features - - NullOption in FilterListConfiguration; Dataset schema/table max length increased; Support total placement for pivot table visual; Lenient mode relaxes the validation to create resources with definition; Data sources can be added to folders; Redshift data sources support IAM Role-based authentication - -# __2.20.161__ __2023-10-05__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - Added new resource detail objects to ASFF, including resources for AwsEventsEventbus, AwsEventsEndpoint, AwsDmsEndpoint, AwsDmsReplicationTask, AwsDmsReplicationInstance, AwsRoute53HostedZone, and AwsMskCluster - -## __AWS Storage Gateway__ - - ### Features - - Add SoftwareVersion to response of DescribeGatewayInformation. - -## __Amazon Omics__ - - ### Features - - Add Etag Support for Omics Storage in ListReadSets and GetReadSetMetadata API - -## __Amazon Relational Database Service__ - - ### Features - - Updates Amazon RDS documentation for corrections and minor improvements. - -## __Amazon Route 53__ - - ### Features - - Add hostedzonetype filter to ListHostedZones API. - -## __Amazon WorkSpaces__ - - ### Features - - This release introduces Manage applications. This feature allows users to manage their WorkSpaces applications by associating or disassociating their WorkSpaces with applications. The DescribeWorkspaces API will now additionally return OperatingSystemName in its responses. - -# __2.20.160__ __2023-10-04__ -## __AWS MediaTailor__ - - ### Features - - Updates DescribeVodSource to include a list of ad break opportunities in the response - -## __AWS SDK for Java v2__ - - ### Features - - Add support for building JDK 21. - - Updated endpoint and partition metadata. - -## __Amazon AppConfig__ - - ### Features - - AWS AppConfig introduces KMS customer-managed key (CMK) encryption support for data saved to AppConfig's hosted configuration store. - -## __Amazon DataZone__ - - ### Features - - Initial release of Amazon DataZone - -## __Amazon SageMaker Service__ - - ### Features - - Adding support for AdditionalS3DataSource, a data source used for training or inference that is in addition to the input dataset or model data. - -## __Application Migration Service__ - - ### Features - - This release includes the following new APIs: ListConnectors, CreateConnector, UpdateConnector, DeleteConnector and UpdateSourceServer to support the source action framework feature. - -# __2.20.159__ __2023-10-03__ -## __AWS Elemental MediaConvert__ - - ### Features - - This release adds the ability to replace video frames without modifying the audio essence. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Well-Architected Tool__ - - ### Features - - AWS Well-Architected now supports Review Templates that allows you to create templates with pre-filled answers for Well-Architected and Custom Lens best practices. - -## __Amazon Connect Service__ - - ### Features - - GetMetricDataV2 API: Update to include new metrics CONTACTS_RESOLVED_IN_X , AVG_HOLD_TIME_ALL_CONTACTS , AVG_RESOLUTION_TIME , ABANDONMENT_RATE , AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS with added features: Interval Period, TimeZone, Negate MetricFilters, Extended date time range. - -## __Amazon Location Service__ - - ### Features - - Amazon Location Service adds support for bounding polygon queries. Additionally, the GeofenceCount field has been added to the DescribeGeofenceCollection API response. - -## __Amazon SageMaker Service__ - - ### Features - - This release allows users to run Selective Execution in SageMaker Pipelines without SourcePipelineExecutionArn if selected steps do not have any dependent steps. - -## __CloudWatch Observability Access Manager__ - - ### Features - - This release adds support for sharing AWS::ApplicationInsights::Application resources. - -# __2.20.158__ __2023-10-02__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Security Token Service__ - - ### Features - - STS API updates for assumeRole - -## __AWS Single Sign-On__ - - ### Features - - Fix FIPS Endpoints in aws-us-gov. - -## __AWS Transfer Family__ - - ### Features - - Documentation updates for AWS Transfer Family - -## __Amazon Bedrock__ - - ### Features - - Provisioned throughput feature with Amazon and third-party base models, and update validators for model identifier and taggable resource ARNs. - -## __Amazon Bedrock Runtime__ - - ### Features - - Add model timeout exception for InvokeModelWithResponseStream API and update validator for invoke model identifier. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Introducing Amazon EC2 R7iz instances with 3.9 GHz sustained all-core turbo frequency and deliver up to 20% better performance than previous generation z1d instances. - -## __Amazon Managed Blockchain__ - - ### Features - - Remove Rinkeby as option from Ethereum APIs - -## __Amazon Relational Database Service__ - - ### Features - - Adds DefaultCertificateForNewLaunches field in the DescribeCertificates API response. - -# __2.20.157__ __2023-09-28__ -## __AWS Budgets__ - - ### Features - - Update DescribeBudgets and DescribeBudgetNotificationsForAccount MaxResults limit to 1000. - -## __AWS IoT FleetWise__ - - ### Features - - AWS IoT FleetWise now supports encryption through a customer managed AWS KMS key. The PutEncryptionConfiguration and GetEncryptionConfiguration APIs were added. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - Correct and improve the documentation for the FieldToMatch option JA3 fingerprint. - -## __Amazon Bedrock__ - - ### Features - - Model Invocation logging added to enable or disable logs in customer account. Model listing and description support added. Provisioned Throughput feature added. Custom model support added for creating custom models. Also includes list, and delete functions for custom model. - -## __Amazon Bedrock Runtime__ - - ### Features - - Run Inference: Added support to run the inference on models. Includes set of APIs for running inference in streaming and non-streaming mode. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support for Customer Managed Key encryption for Amazon Verified Access resources - -## __Amazon SageMaker Feature Store Runtime__ - - ### Features - - Feature Store supports read/write of records with collection type features. - -## __Amazon SageMaker Service__ - - ### Features - - Online store feature groups supports Standard and InMemory tier storage types for low latency storage for real-time data retrieval. The InMemory tier supports collection types List, Set, and Vector. - -# __2.20.156__ __2023-09-27__ -## __AWS IoT__ - - ### Features - - Added support for IoT Rules Engine Kafka Action Headers - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Cognito Identity Provider__ - - ### Features - - The UserPoolType Status field is no longer used. - -## __Amazon Kinesis Firehose__ - - ### Features - - Features : Adding support for new data ingestion source to Kinesis Firehose - AWS Managed Services Kafka. - -## __Amazon Textract__ - - ### Features - - This release adds new feature - Layout to Analyze Document API which can automatically extract layout elements such as titles, paragraphs, headers, section headers, lists, page numbers, footers, table areas, key-value areas and figure areas and order the elements as a human would read. - -# __2.20.155__ __2023-09-26__ -## __AWS App Runner__ - - ### Features - - This release allows an App Runner customer to specify a custom source directory to run the build & start command. This change allows App Runner to support monorepo based repositories - -## __AWS CodeDeploy__ - - ### Features - - CodeDeploy now supports In-place and Blue/Green EC2 deployments with multiple Classic Load Balancers and multiple Target Groups. - -## __AWS Lake Formation__ - - ### Features - - This release adds three new API support "CreateLakeFormationOptIn", "DeleteLakeFormationOptIn" and "ListLakeFormationOptIns", and also updates the corresponding documentation. - -## __Amazon AppIntegrations Service__ - - ### Features - - The Amazon AppIntegrations service adds a set of APIs (in preview) to manage third party applications to be used in Amazon Connect agent workspace. - -## __Amazon Connect Service__ - - ### Features - - This release updates a set of Amazon Connect APIs that provides the ability to integrate third party applications in the Amazon Connect agent workspace. - -## __Amazon DynamoDB__ - - ### Features - - Amazon DynamoDB now supports Incremental Export as an enhancement to the existing Export Table - -## __Amazon DynamoDB Enhanced Client__ - - ### Bugfixes - - Provides a clearer exception message when building a ReadBatch or WriteBatch without setting the mappedTableResource (table) - - Contributed by: [@swar8080](https://github.com/swar8080) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - The release includes AWS verified access to support FIPs compliance in North America regions - -## __Amazon Pinpoint__ - - ### Features - - Update documentation for RemoveAttributes to more accurately reflect its behavior when attributes are deleted. - -## __Amazon Simple Storage Service__ - - ### Features - - This release adds a new field COMPLETED to the ReplicationStatus Enum. You can now use this field to validate the replication status of S3 objects using the AWS SDK. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@swar8080](https://github.com/swar8080) -# __2.20.154__ __2023-09-25__ -## __AWS Amplify UI Builder__ - - ### Features - - Support for generating code that is compatible with future versions of amplify project dependencies. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - You can now perform an exact match against the web request's JA3 fingerprint. - -## __Amazon Chime SDK Media Pipelines__ - - ### Features - - Adds support for sending WebRTC audio to Amazon Kineses Video Streams. - -## __Amazon QuickSight__ - - ### Features - - Added ability to tag users upon creation. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release updates the enum values for ResourceType in SSM DescribeInstanceInformation input and ConnectionStatus in GetConnectionStatus output. - -## __EMR Serverless__ - - ### Features - - This release adds support for application-wide default job configurations. - -## __FinSpace Public API__ - - ### Features - - Adding sensitive trait to attributes. Change max SessionDuration from 720 to 60. Correct "ApiAccess" attribute to "apiAccess" to maintain consistency between APIs. - -## __S3TransferManager__ - - ### Bugfixes - - Fix [aws-crt-java issue [#686](https://github.com/aws/aws-sdk-java-v2/issues/686)](https://github.com/awslabs/aws-crt-java/issues/686) S3AsyncClient ignoring trustAllCertificatesEnabled setting - - Contributed by: [@graebm](https://github.com/graebm) - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@graebm](https://github.com/graebm) -# __2.20.153__ __2023-09-22__ -## __AWS Database Migration Service__ - - ### Features - - new vendors for DMS CSF: MongoDB, MariaDB, DocumentDb and Redshift - -## __AWS Elemental MediaConvert__ - - ### Features - - This release supports the creation of of audio-only tracks in CMAF output groups. - -## __AWS SDK for Java v2__ - - ### Features - - Adds support for non-Json String payloads - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Fixed an issue in `InputStreamSubscriber` that could cause NPE to be thrown when close and onSubscribed get invoked concurrently. See [#4081](https://github.com/aws/aws-sdk-java-v2/issues/4081) - -## __Amazon CloudWatch Events__ - - ### Features - - Adds sensitive trait to various shapes in Jetstream Connections API model. - -## __Amazon DynamoDB__ - - ### Bugfixes - - Fixed a bug in DynamoDbTable.createTable, where global secondary indices with a partition key matching the default partition key of the table would be created as local secondary indices. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EC2 M2 Pro Mac instances are powered by Apple M2 Pro Mac Mini computers featuring 12 core CPU, 19 core GPU, 32 GiB of memory, and 16 core Apple Neural Engine and uniquely enabled by the AWS Nitro System through high-speed Thunderbolt connections. - -## __Amazon Elastic File System__ - - ### Features - - Documentation updates for Elastic File System - -## __Amazon GuardDuty__ - - ### Features - - Add `EKS_CLUSTER_NAME` to filter and sort key. - -## __Amazon S3__ - - ### Bugfixes - - Fixed the issue where SdkException is unnecessarily re-wrapped with SdkClientException in S3 multipart client and AWS CRT-based S3 client. See[#4356](https://github.com/aws/aws-sdk-java-v2/issues/4356) - -## __Amazon Simple Storage Servic__ - - ### Bugfixes - - Fix for Cross-region calls failure due to AuthorizationHeaderMalformed errors while using clients with configured region as us-east-1. - -## __Braket__ - - ### Features - - This release adds support to view the device queue depth (the number of queued quantum tasks and hybrid jobs on a device) and queue position for a quantum task and hybrid job. - -## __DynamoDB Enhanced Client__ - - ### Features - - Adds count, scanned count and returned consumed capacity to Page, used by Scan and Query operations - -# __2.20.152__ __2023-09-20__ -## __AWS App Runner__ - - ### Features - - This release adds improvements for managing App Runner auto scaling configuration resources. New APIs: UpdateDefaultAutoScalingConfiguration and ListServicesForAutoScalingConfiguration. Updated API: DeleteAutoScalingConfiguration. - -## __AWS Cloud Map__ - - ### Features - - Adds a new DiscoverInstancesRevision API and also adds InstanceRevision field to the DiscoverInstances API response. - -## __AWS Lambda__ - - ### Features - - Update aws-lambda-java-core version to 1.2.3 - - Contributed by: [@deki](https://github.com/deki) - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SSO OIDC__ - - ### Features - - Update FIPS endpoints in aws-us-gov. - -## __Amazon AppConfig__ - - ### Features - - Enabling boto3 paginators for list APIs and adding documentation around ServiceQuotaExceededException errors - -## __Amazon CloudWatch Logs__ - - ### Features - - Add ClientToken to QueryDefinition CFN Handler in CWL - -## __Amazon Kinesis Video Streams__ - - ### Features - - Updated DescribeMediaStorageConfiguration, StartEdgeConfigurationUpdate, ImageGenerationConfiguration$SamplingInterval, and UpdateMediaStorageConfiguration to match AWS Docs. - -## __Amazon Simple Storage Service__ - - ### Features - - Fix an issue where the SDK can fail to unmarshall response due to NumberFormatException - -## __CodeArtifact__ - - ### Features - - Add support for the Swift package format. - -## __S3 Transfer Manager__ - - ### Bugfixes - - Fix [3839](https://github.com/aws/aws-sdk-java-v2/issues/3839) S3 Transfer Manager issue with transferComplete() not called for AsyncRequestBody.fromFile() - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@deki](https://github.com/deki) -# __2.20.151__ __2023-09-19__ -## __AWS Outposts__ - - ### Features - - This release adds the InstanceFamilies field to the ListAssets response. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for C7i, and R7a instance types. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for one-time model monitoring schedules that are executed immediately without delay, explicit data analysis windows for model monitoring schedules and exclude features attributes to remove features from model monitor analysis. - -# __2.20.150__ __2023-09-18__ -## __AWS Application Discovery Service__ - - ### Features - - Add sensitive protection for customer information - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Do not instruct the CRT Sigv4a signer to do path normalization to avoid signature mismatch errors - -## __Amazon Macie 2__ - - ### Features - - This release changes the default managedDataIdentifierSelector setting for new classification jobs to RECOMMENDED. By default, new classification jobs now use the recommended set of managed data identifiers. - -## __Amazon WorkMail__ - - ### Features - - This release includes four new APIs UpdateUser, UpdateGroup, ListGroupsForEntity and DescribeEntity, along with RemoteUsers and some enhancements to existing APIs. - -# __2.20.149__ __2023-09-15__ -## __AWS DataSync__ - - ### Features - - Documentation-only updates for AWS DataSync. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon AppStream__ - - ### Features - - This release introduces app block builder, allowing customers to provision a resource to package applications into an app block - -## __Amazon Connect Service__ - - ### Features - - New rule type (OnMetricDataUpdate) has been added - -## __Amazon SageMaker Service__ - - ### Features - - This release introduces Skip Model Validation for Model Packages - -# __2.20.148__ __2023-09-14__ -## __AWS CloudFormation__ - - ### Features - - Documentation updates for AWS CloudFormation - -## __AWS EntityResolution__ - - ### Features - - Changed "ResolutionTechniques" and "MappedInputFields" in workflow and schema mapping operations to be required fields. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon AppStream__ - - ### Features - - This release introduces multi-session fleets, allowing customers to provision more than one user session on a single fleet instance. - -## __Amazon Lookout for Equipment__ - - ### Features - - This release adds APIs for the new scheduled retraining feature. - -# __2.20.147__ __2023-09-13__ -## __AWS Cloud9__ - - ### Features - - Update to include information on Ubuntu 18 deprecation. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Allow IamPolicy to read json policies where the principal value is itself an array - - Fix `InputStreamSubscriber` to return 0 when reading a length of 0. - - Contributed by: [@faucct](https://github.com/faucct) - -## __AWS SimSpace Weaver__ - - ### Features - - Edited the introductory text for the API reference. - -## __AWS X-Ray__ - - ### Features - - Add StartTime field in GetTraceSummaries API response for each TraceSummary. - -## __Amazon CloudWatch Internet Monitor__ - - ### Features - - This release updates the Amazon CloudWatch Internet Monitor API domain name. - -## __Amazon DynamoDB Enhanced Client__ - - ### Features - - This commit introduces returnConsumedCapacity input to BatchGetItemEnhancedRequest that allows customers to find out exactly how much read units were consumed by the operation. - - Contributed by: [@psnilesh](https://github.com/psnilesh) - -## __Amazon GuardDuty__ - - ### Features - - Add `managementType` field to ListCoverage API response. - -## __Amazon Interactive Video Service RealTime__ - - ### Features - - Doc only update that changes description for ParticipantToken. - -## __Amazon Kinesis Firehose__ - - ### Features - - DocumentIdOptions has been added for the Amazon OpenSearch destination. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Updated existing APIs and added new ones to support using AWS Elastic Disaster Recovery post-launch actions. Added support for new regions. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@faucct](https://github.com/faucct), [@psnilesh](https://github.com/psnilesh) -# __2.20.146__ __2023-09-12__ -## __AWS CRT-based S3 Client__ - - ### Bugfixes - - Improved CRT client uploads by directly passing requestPath, eliminating unnecessary file I/O in the Java SDK Transfer Manager. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports confidence score buckets for retrieved passage results using the Retrieve API. - -## __Amazon DynamoDB Enhanced Client__ - - ### Features - - This commit introduces DynamoDbTable#getItemWithResponse() that allows customers to specify additional parameters on the request such as ReturnConsumedCapacity to get additional information the service response. - - Contributed by: [@psnilesh](https://github.com/psnilesh) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for restricting public sharing of AMIs through AMI Block Public Access - -## __Amazon EventBridge__ - - ### Features - - Adds sensitive trait to various shapes in Jetstream Connections API model. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@psnilesh](https://github.com/psnilesh) -# __2.20.145__ __2023-09-11__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental Link now supports attaching a Link UHD device to a MediaConnect flow. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release will have ValidationException be thrown from ECR LifecyclePolicy APIs in regions LifecyclePolicy is not supported, this includes existing Amazon Dedicated Cloud (ADC) regions. This release will also change Tag: TagValue and Tag: TagKey to required. - -## __Amazon QuickSight__ - - ### Features - - This release launches new updates to QuickSight KPI visuals - support for sparklines, new templated layout and new targets for conditional formatting rules. - -# __2.20.144__ __2023-09-08__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Fixed an issue in async client where the future would get stuck if there is a server error and the server fails to return response body that matches with the content length specified in the response header. See [#4354](https://github.com/aws/aws-sdk-java-v2/issues/4354) - -## __AWS Single Sign-On Admin__ - - ### Features - - Content updates to IAM Identity Center API for China Regions. - -## __Amazon FSx__ - - ### Features - - Amazon FSx documentation fixes - -## __Amazon SageMaker Service__ - - ### Features - - Autopilot APIs will now support holiday featurization for Timeseries models. The models will now hold holiday metadata and should be able to accommodate holiday effect during inference. - -## __Amazon WorkSpaces__ - - ### Features - - A new field "ErrorDetails" will be added to the output of "DescribeWorkspaceImages" API call. This field provides in-depth details about the error occurred during image import process. These details include the possible causes of the errors and troubleshooting information. - -# __2.20.143__ __2023-09-07__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - Documentation updates for AWS Security Hub - -## __AWS SimSpace Weaver__ - - ### Features - - BucketName and ObjectKey are now required for the S3Location data type. BucketName is now required for the S3Destination data type. - -## __Amazon NeptuneData__ - - ### Features - - Minor changes to send unsigned requests to Neptune clusters - -# __2.20.142__ __2023-09-06__ -## __AWS Elemental MediaLive__ - - ### Features - - Adds advanced Output Locking options for Epoch Locking: Custom Epoch and Jam Sync Time - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Fix an issue where the multirelease classes were not being shaded or removed. - -## __AWS WAFV2__ - - ### Features - - The targeted protection level of the Bot Control managed rule group now provides optional, machine-learning analysis of traffic statistics to detect some bot-related activity. You can enable or disable the machine learning functionality through the API. - -## __Amazon Appflow__ - - ### Features - - Adding OAuth2.0 support for servicenow connector. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds 'outpost' location type to the DescribeInstanceTypeOfferings API, allowing customers that have been allowlisted for outpost to query their offerings in the API. - -## __Elastic Load Balancing__ - - ### Features - - This release enables default UDP connection termination and disabling unhealthy target connection termination for Network Load Balancers. - -# __2.20.141__ __2023-09-05__ -## __AWS Cloud9__ - - ### Features - - Added support for Ubuntu 22.04 that was not picked up in a previous Trebuchet request. Doc-only update. - -## __AWS Compute Optimizer__ - - ### Features - - This release adds support to provide recommendations for G4dn and P3 instances that use NVIDIA GPUs. - -## __AWS SDK for Java v2__ - - ### Features - - Add support for RequestCompression trait to GZIP compress requests. - - Updated endpoint and partition metadata. - -## __AWSBillingConductor__ - - ### Features - - This release adds support for line item filtering in for the custom line item resource. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation only update for Amazon ECS. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Introducing Amazon EC2 C7gd, M7gd, and R7gd Instances with up to 3.8 TB of local NVMe-based SSD block-level storage. These instances are powered by AWS Graviton3 processors, delivering up to 25% better performance over Graviton2-based instances. - -## __Amazon EventBridge__ - - ### Features - - Improve Endpoint Ruleset test coverage. - -## __Amazon Relational Database Service__ - - ### Features - - Add support for feature integration with AWS Backup. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Neo now supports data input shape derivation for Pytorch 2.0 and XGBoost compilation job for cloud instance targets. You can skip DataInputConfig field during compilation job creation. You can also access derived information from model in DescribeCompilationJob response. - -## __Amazon VPC Lattice__ - - ### Features - - This release adds Lambda event structure version config support for LAMBDA target groups. It also adds newline support for auth policies. - -# __2.20.140__ __2023-09-01__ -## __AWS SDK for Java v2__ - - ### Features - - Update Jackson to `2.15.2`. - - Updated endpoint and partition metadata. - -## __AWS SSO Identity Store__ - - ### Features - - New Identity Store content for China Region launch - -## __Amazon Chime SDK Media Pipelines__ - - ### Features - - This release adds support for the Voice Analytics feature for customer-owned KVS streams as part of the Amazon Chime SDK call analytics. - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect adds the ability to read, create, update, delete, and list view resources, and adds the ability to read, create, delete, and list view versions. - -## __Amazon NeptuneData__ - - ### Features - - Removed the descriptive text in the introduction. - -# __2.20.139__ __2023-08-31__ -## __AWS Health APIs and Notifications__ - - ### Features - - Adds new API DescribeEntityAggregatesForOrganization that retrieves entity aggregates across your organization. Also adds support for resource status filtering in DescribeAffectedEntitiesForOrganization, resource status aggregates in the DescribeEntityAggregates response, and new resource statuses. - -## __AWS Lambda__ - - ### Features - - Use latest AWS Lambda Java 17 runtime version in SAM template of archetype - - Contributed by: [@deki](https://github.com/deki) - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Chime SDK Media Pipelines__ - - ### Features - - This release adds support for feature Voice Enhancement for Call Recording as part of Amazon Chime SDK call analytics. - -## __Amazon CloudHSM__ - - ### Features - - Deprecating CloudHSM Classic API Service. - -## __Amazon CloudWatch Events__ - - ### Features - - Documentation updates for CloudWatch Events. - -## __Amazon Connect Customer Profiles__ - - ### Features - - Adds sensitive trait to various shapes in Customer Profiles API model. - -## __Amazon Connect Participant Service__ - - ### Features - - Amazon Connect Participant Service adds the ability to get a view resource using a view token, which is provided in a participant message, with the release of the DescribeView API. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for an account-level setting that you can use to configure the number of days for AWS Fargate task retirement. - -## __Amazon Interactive Video Service__ - - ### Features - - Updated "type" description for CreateChannel, UpdateChannel, Channel, and ChannelSummary. - -## __Amazon Managed Grafana__ - - ### Features - - Marking SAML RoleValues attribute as sensitive and updating VpcConfiguration attributes to match documentation. - -## __Amazon SageMaker Runtime__ - - ### Features - - This release adds a new InvokeEndpointWithResponseStream API to support streaming of model responses. - -## __AmazonConnectCampaignService__ - - ### Features - - Amazon Connect outbound campaigns has launched agentless dialing mode which enables customers to make automated outbound calls without agent engagement. This release updates three of the campaign management API's to support the new agentless dialing mode and the new dialing capacity field. - -## __Managed Streaming for Kafka Connect__ - - ### Features - - Minor model changes for Kafka Connect as well as endpoint updates. - -## __Payment Cryptography Data Plane__ - - ### Features - - Make KeyCheckValue field optional when using asymmetric keys as Key Check Values typically only apply to symmetric keys - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@deki](https://github.com/deki) -# __2.20.138__ __2023-08-30__ -## __AWS App Runner__ - - ### Features - - App Runner adds support for Bitbucket. You can now create App Runner connection that connects to your Bitbucket repositories and deploy App Runner service with the source code stored in a Bitbucket repository. - -## __AWS Audit Manager__ - - ### Features - - This release marks some assessment metadata as sensitive. We added a sensitive trait to the following attributes: assessmentName, emailAddress, scope, createdBy, lastUpdatedBy, and userName. - -## __AWS Clean Rooms Service__ - - ### Features - - This release decouples member abilities in a collaboration. With this change, the member who can run queries no longer needs to be the same as the member who can receive results. - -## __AWS DataSync__ - - ### Features - - AWS DataSync introduces Task Reports, a new feature that provides detailed reports of data transfer operations for each task execution. - -## __AWS Network Firewall__ - - ### Features - - Network Firewall increasing pagination token string length - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Appflow__ - - ### Features - - Add SAP source connector parallel and pagination feature - -## __Amazon Elastic Compute Cloud__ - - ### Features - - The DryRun field in EC2 APIs is no longer hidden and has been exposed. To determine the DryRun status for an EC2 operation using the dryRun field, users are now required to catch the Ec2Exception and extract the dryRun status from the errorCode of AwsErrorDetails within the Ec2Exception. - -## __Amazon NeptuneData__ - - ### Features - - Allows customers to execute data plane actions like bulk loading graphs, issuing graph queries using Gremlin and openCypher directly from the SDK. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Canvas adds IdentityProviderOAuthSettings support for CanvasAppSettings - -## __PcaConnectorAd__ - - ### Features - - The Connector for AD allows you to use a fully-managed AWS Private CA as a drop-in replacement for your self-managed enterprise CAs without local agents or proxy servers. Enterprises that use AD to manage Windows environments can reduce their private certificate authority (CA) costs and complexity. - -# __2.20.137__ __2023-08-29__ -## __Amazon Cognito Identity Provider__ - - ### Features - - Added API example requests and responses for several operations. Fixed the validation regex for user pools Identity Provider name. - -## __Amazon FSx__ - - ### Features - - Documentation updates for project quotas. - -## __Amazon Omics__ - - ### Features - - Add RetentionMode support for Runs. - -## __Amazon Simple Email Service__ - - ### Features - - Adds support for the new Export and Message Insights features: create, get, list and cancel export jobs; get message insights. - -# __2.20.136__ __2023-08-28__ -## __AWS Backup__ - - ### Features - - Add support for customizing time zone for backup window in backup plan rules. - -## __AWS Compute Optimizer__ - - ### Features - - This release enables AWS Compute Optimizer to analyze and generate licensing optimization recommendations for sql server running on EC2 instances. - -## __AWS Organizations__ - - ### Features - - Documentation updates for permissions and links. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Security Lake__ - - ### Features - - Remove incorrect regex enforcement on pagination tokens. - -## __Amazon WorkSpaces Web__ - - ### Features - - WorkSpaces Web now enables Admins to configure which cookies are synchronized from an end-user's local browser to the in-session browser. In conjunction with a browser extension, this feature enables enhanced Single-Sign On capability by reducing the number of times an end-user has to authenticate. - -## __Service Quotas__ - - ### Features - - Service Quotas now supports viewing the applied quota value and requesting a quota increase for a specific resource in an AWS account. - -# __2.20.135__ __2023-08-25__ -## __AWS CloudTrail__ - - ### Features - - Add ThrottlingException with error code 429 to handle CloudTrail Delegated Admin request rate exceeded on organization resources. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch__ - - ### Features - - Doc-only update to get doc bug fixes into the SDK docs - -## __Amazon Detective__ - - ### Features - - Added protections to interacting with fields containing customer information. - -# __2.20.134__ __2023-08-24__ -## __AWS Elemental MediaConvert__ - - ### Features - - This release includes additional audio channel tags in Quicktime outputs, support for film grain synthesis for AV1 outputs, ability to create audio-only FLAC outputs, and ability to specify Amazon S3 destination storage class. - -## __AWS Elemental MediaLive__ - - ### Features - - MediaLive now supports passthrough of KLV data to a HLS output group with a TS container. MediaLive now supports setting an attenuation mode for AC3 audio when the coding mode is 3/2 LFE. MediaLive now supports specifying whether to include filler NAL units in RTMP output group settings. - -## __AWS Glue__ - - ### Features - - Added API attributes that help in the monitoring of sessions. - -## __AWS MediaTailor__ - - ### Features - - Adds new source location AUTODETECT_SIGV4 access type. - -## __AWS S3 Control__ - - ### Features - - Updates to endpoint ruleset tests to address Smithy validation issues and standardize the capitalization of DualStack. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 M7a instances, powered by 4th generation AMD EPYC processors, deliver up to 50% higher performance compared to M6a instances. Amazon EC2 Hpc7a instances, powered by 4th Gen AMD EPYC processors, deliver up to 2.5x better performance compared to Amazon EC2 Hpc6a instances. - -## __Amazon QuickSight__ - - ### Features - - Excel support in Snapshot Export APIs. Removed Required trait for some insight Computations. Namespace-shared Folders support. Global Filters support. Table pin Column support. - -## __Amazon Relational Database Service__ - - ### Features - - This release updates the supported versions for Percona XtraBackup in Aurora MySQL. - -## __Amazon S3__ - - ### Features - - Add support for presigned `DeleteObject` in `S3Presigner`. - -## __Amazon Simple Storage Service__ - - ### Features - - Updates to endpoint ruleset tests to address Smithy validation issues. - -## __Amazon Verified Permissions__ - - ### Features - - Documentation updates for Amazon Verified Permissions. - -# __2.20.133__ __2023-08-23__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon API Gateway__ - - ### Features - - This release adds RootResourceId to GetRestApi response. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Marking fields as sensitive on BundleTask and GetPasswordData - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds 1 new voice - Zayd (ar-AE) - -# __2.20.132__ __2023-08-22__ -## __AWS Cost Explorer Service__ - - ### Features - - This release adds the LastUpdatedDate and LastUsedDate timestamps to help you manage your cost allocation tags. - -## __AWS Global Accelerator__ - - ### Features - - Global Accelerator now supports Client Ip Preservation for Network Load Balancer endpoints. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SDK for Java v2 - DynamoDb Enhanced__ - - ### Bugfixes - - Changes the default behavior of the DynamoDb Enhanced atomic counter extension to automatically filter out any counter attributes in the item to be updated. This allows users to read and update items without DynamoDb collision errors. - -## __Amazon Relational Database Service__ - - ### Features - - Adding parameters to CreateCustomDbEngineVersion reserved for future use. - -## __Amazon Verified Permissions__ - - ### Features - - Documentation updates for Amazon Verified Permissions. Increases max results per page for ListPolicyStores, ListPolicies, and ListPolicyTemplates APIs from 20 to 50. - -# __2.20.131__ __2023-08-21__ -## __AWS Cloud9__ - - ### Features - - Doc only update to add Ubuntu 22.04 as an Image ID option for Cloud9 - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - The DeleteKeyPair API has been updated to return the keyPairId when an existing key pair is deleted. - -## __Amazon Relational Database Service__ - - ### Features - - Adding support for RDS Aurora Global Database Unplanned Failover - -## __Amazon Route 53 Domains__ - - ### Features - - Fixed typos in description fields - -## __FinSpace User Environment Management service__ - - ### Features - - Allow customers to manage outbound traffic from their Kx Environment when attaching a transit gateway by providing network acl entries. Allow the customer to choose how they want to update the databases on a cluster allowing updates to possibly be faster than usual. - -# __2.20.130__ __2023-08-18__ -## __AWS CodeCommit__ - - ### Features - - Add new ListFileCommitHistory operation to retrieve commits which introduced changes to a specific file. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - Added Inspector Lambda code Vulnerability section to ASFF, including GeneratorDetails, EpssScore, ExploitAvailable, and CodeVulnerabilities. - -# __2.20.129__ __2023-08-17__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Sends final checksum chunk and trailer when only onComplete() is called by upstream (empty content) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support for SubnetConfigurations to allow users to select their own IPv4 and IPv6 addresses for Interface VPC endpoints - -## __Amazon GameLift__ - - ### Features - - Amazon GameLift updates its instance types support. - -# __2.20.128__ __2023-08-16__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Add support for the `SERVICE_ENDPOINT` metric. This metric represents the endpoint (scheme and authority) that the request was sent to. - -## __Amazon CloudWatch__ - - ### Features - - Doc-only update to incorporate several doc bug fixes - -## __Amazon Lex Model Building V2__ - - ### Features - - This release updates the Custom Vocabulary Weight field to support a value of 0. - -# __2.20.127__ __2023-08-15__ -## __AWS Glue__ - - ### Features - - AWS Glue Crawlers can now accept SerDe overrides from a custom csv classifier. The two SerDe options are LazySimpleSerDe and OpenCSVSerDe. In case, the user wants crawler to do the selection, "None" can be selected for this purpose. - -## __AWS Performance Insights__ - - ### Features - - AWS Performance Insights for Amazon RDS is launching Performance Analysis On Demand, a new feature that allows you to analyze database performance metrics and find out the performance issues. You can now use SDK to create, list, get, delete, and manage tags of performance analysis reports. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Updated API documentation to include additional exceptions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Elastic Compute Cloud (EC2). - -## __Amazon Route 53 Domains__ - - ### Features - - Provide explanation if CheckDomainTransferability return false. Provide requestId if a request is already submitted. Add sensitive protection for customer information - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Inference Recommender now provides SupportedResponseMIMETypes from DescribeInferenceRecommendationsJob response - -# __2.20.126__ __2023-08-14__ -## __AWS Elemental MediaPackage__ - - ### Features - - Fix SDK logging of certain fields. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Transfer Family__ - - ### Features - - Documentation updates for AWS Transfer Family - -## __Amazon Omics__ - - ### Features - - This release provides support for annotation store versioning and cross account sharing for Omics Analytics - -# __2.20.125__ __2023-08-11__ -## __AWS Config__ - - ### Features - - Updated ResourceType enum with new resource types onboarded by AWS Config in July 2023. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 P5 instances, powered by the latest NVIDIA H100 Tensor Core GPUs, deliver the highest performance in EC2 for deep learning (DL) and HPC applications. M7i-flex and M7i instances are next-generation general purpose instances powered by custom 4th Generation Intel Xeon Scalable processors. - -## __Amazon QuickSight__ - - ### Features - - New Authentication method for Account subscription - IAM Identity Center. Hierarchy layout support, default column width support and related style properties for pivot table visuals. Non-additive topic field aggregations for Topic API - -## __Amazon Simple Email Service__ - - ### Features - - Doc only updates to include: 1) Clarified which part of an email address where it's okay to have Punycode when it contains non-ASCII characters for the SendRawEmail action and other actions where this is applicable. 2) Updated S3Action description with new MB max bucket size from 30 to 40. - -## __Amazon Simple Workflow Service__ - - ### Features - - This release adds new API parameters to override workflow task list for workflow executions. - -## __AmplifyBackend__ - - ### Features - - Adds sensitive trait to required input shapes. - -# __2.20.124__ __2023-08-10__ -## __AWS CloudTrail__ - - ### Features - - Documentation updates for CloudTrail. - -## __AWS DynamoDB Enhanced Client__ - - ### Bugfixes - - Fix for Issue [#4156](https://github.com/aws/aws-sdk-java-v2/issues/4156) : Single quotes in toJson conversions for EnhancedDocuments are no longer being escaped. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Fixed bug where limit was not copied over when cloning ByteBuffer using immutableCopyOf() - -## __AWS Secrets Manager__ - - ### Features - - Add additional InvalidRequestException to list of possible exceptions for ListSecret. - -## __AWS Transfer Family__ - - ### Features - - Documentation updates for AW Transfer Family - -## __Amazon Connect Service__ - - ### Features - - This release adds APIs to provision agents that are global / available in multiple AWS regions and distribute them across these regions by percentage. - -## __Amazon Omics__ - - ### Features - - This release adds instanceType to GetRunTask & ListRunTasks responses. - -## __Elastic Load Balancing__ - - ### Features - - This release enables configuring security groups for Network Load Balancers - -# __2.20.123__ __2023-08-09__ -## __AWS Global Accelerator__ - - ### Features - - Documentation update for dualstack EC2 endpoint support - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Chime SDK Voice__ - - ### Features - - Updating CreatePhoneNumberOrder, UpdatePhoneNumber and BatchUpdatePhoneNumbers APIs, adding phone number name - -## __Amazon FSx__ - - ### Features - - For FSx for Lustre, add new data repository task type, RELEASE_DATA_FROM_FILESYSTEM, to release files that have been archived to S3. For FSx for Windows, enable support for configuring and updating SSD IOPS, and for updating storage type. For FSx for OpenZFS, add new deployment type, MULTI_AZ_1. - -## __Amazon GuardDuty__ - - ### Features - - Added autoEnable ALL to UpdateOrganizationConfiguration and DescribeOrganizationConfiguration APIs. - -## __Amazon S3__ - - ### Features - - Allow users to configure upload threshold size for AWS CRT-based S3 client via `S3CrtAsyncClientBuilder#thresholdInBytes`. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for cross account access for SageMaker Model Cards through AWS RAM. - -# __2.20.122__ __2023-08-08__ -## __AWS Backup__ - - ### Features - - This release introduces a new logically air-gapped vault (Preview) in AWS Backup that stores immutable backup copies, which are locked by default and isolated with encryption using AWS owned keys. Logically air-gapped vault (Preview) allows secure recovery of application data across accounts. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Service Catalog__ - - ### Features - - Introduce support for HashiCorp Terraform Cloud in Service Catalog by addying TERRAFORM_CLOUD product type in CreateProduct and CreateProvisioningArtifact API. - -## __Amazon ElastiCache__ - - ### Features - - Added support for cluster mode in online migration and test migration API - -# __2.20.121__ __2023-08-07__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Detective__ - - ### Features - - Updated the email validation regex to be in line with the TLD name specifications. - -## __Amazon Interactive Video Service RealTime__ - - ### Features - - Add QUOTA_EXCEEDED and PUBLISHER_NOT_FOUND to EventErrorCode for stage health events. - -## __Amazon Kinesis Video Streams__ - - ### Features - - This release enables minimum of Images SamplingInterval to be as low as 200 milliseconds in Kinesis Video Stream Image feature. - -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - This release enables minimum of Images SamplingInterval to be as low as 200 milliseconds in Kinesis Video Stream Image feature. - -## __Amazon Rekognition__ - - ### Features - - This release adds code snippets for Amazon Rekognition Custom Labels. - -# __2.20.120__ __2023-08-04__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - Documentation correction for AWS Private CA - -## __AWS DataSync__ - - ### Features - - Display cloud storage used capacity at a cluster level. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - Added a new API UpdateRoutingProfileAgentAvailabilityTimer to update agent availability timer of a routing profile. - -## __Amazon EC2 Container Service__ - - ### Features - - This is a documentation update to address various tickets. - -## __Amazon SageMaker Service__ - - ### Features - - Including DataCaptureConfig key in the Amazon Sagemaker Search's transform job object - -# __2.20.119__ __2023-08-03__ -## __AWS Cloud9__ - - ### Features - - Updated the deprecation date for Amazon Linux. Doc only update. - -## __AWS Database Migration Service__ - - ### Features - - The release makes public API for DMS Schema Conversion feature. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds new parameter isPrimaryIPv6 to allow assigning an IPv6 address as a primary IPv6 address to a network interface which cannot be changed to give equivalent functionality available for network interfaces with primary IPv4 address. - -## __Amazon S3__ - - ### Bugfixes - - Add `Expect: 100-continue` header for `UploadPartRequest` so that a upload part request can fail faster if there is a server error. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker now supports running training jobs on p5.48xlarge instance types. - -## __Auto Scaling__ - - ### Features - - Documentation changes related to Amazon EC2 Auto Scaling APIs. - -# __2.20.118__ __2023-08-02__ -## __AWS Budgets__ - - ### Features - - As part of CAE tagging integration we need to update our budget names regex filter to prevent customers from using "/action/" in their budget names. - -## __AWS Glue__ - - ### Features - - This release includes additional Glue Streaming KAKFA SASL property types. - -## __AWS Resilience Hub__ - - ### Features - - Drift Detection capability added when applications policy has moved from a meet to breach state. Customers will be able to exclude operational recommendations and receive credit in their resilience score. Customers can now add ARH permissions to an existing or new role. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Cognito Identity Provider__ - - ### Features - - New feature that logs Cognito user pool error messages to CloudWatch logs. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Inference Recommender introduces a new API GetScalingConfigurationRecommendation to recommend auto scaling policies based on completed Inference Recommender jobs. - -# __2.20.117__ __2023-08-01__ -## __AWS Batch__ - - ### Features - - This release adds support for price capacity optimized allocation strategy for Spot Instances. - -## __AWS Database Migration Service__ - - ### Features - - Adding new API describe-engine-versions which provides information about the lifecycle of a replication instance's version. - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental Link devices now report their Availability Zone. Link devices now support the ability to change their Availability Zone. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch Internet Monitor__ - - ### Features - - This release adds a new feature for Amazon CloudWatch Internet Monitor that enables customers to set custom thresholds, for performance and availability drops, for impact limited to a single city-network to trigger creation of a health event. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new French Belgian voice - Isabelle. Isabelle is available as Neural voice only. - -## __Amazon Relational Database Service__ - - ### Features - - Added support for deleted clusters PiTR. - -## __Amazon SageMaker Service__ - - ### Features - - Add Stairs TrafficPattern and FlatInvocations to RecommendationJobStoppingConditions - -# __2.20.116__ __2023-07-31__ -## __AWS Amplify UI Builder__ - - ### Features - - Amplify Studio releases GraphQL support for codegen job action. - -## __AWS Clean Rooms Service__ - - ### Features - - This release introduces custom SQL queries - an expanded set of SQL you can run. This release adds analysis templates, a new resource for storing pre-defined custom SQL queries ahead of time. This release also adds the Custom analysis rule, which lets you approve analysis templates for querying. - -## __AWS CodeStar connections__ - - ### Features - - New integration with the Gitlab provider type. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon EventBridge Scheduler__ - - ### Features - - This release introduces automatic deletion of schedules in EventBridge Scheduler. If configured, EventBridge Scheduler automatically deletes a schedule after the schedule has completed its last invocation. - -## __Amazon Lookout for Equipment__ - - ### Features - - This release includes new import resource, model versioning and resource policy features. - -## __Amazon Omics__ - - ### Features - - Add CreationType filter for ListReadSets - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for Aurora MySQL local write forwarding, which allows for forwarding of write operations from reader DB instances to the writer DB instance. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Israel (Tel Aviv) Region (il-central-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -## __Auto Scaling__ - - ### Features - - You can now configure an instance refresh to set its status to 'failed' when it detects that a specified CloudWatch alarm has gone into the ALARM state. You can also choose to roll back the instance refresh automatically when the alarm threshold is met. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Add support for in-aws right sizing - -## __Inspector2__ - - ### Features - - This release adds 1 new API: BatchGetFindingDetails to retrieve enhanced vulnerability intelligence details for findings. - -# __2.20.115__ __2023-07-28__ -## __AWS CloudFormation__ - - ### Features - - This SDK release is for the feature launch of AWS CloudFormation RetainExceptOnCreate. It adds a new parameter retainExceptOnCreate in the following APIs: CreateStack, UpdateStack, RollbackStack, ExecuteChangeSet. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudFront__ - - ### Features - - Add a new JavaScript runtime version for CloudFront Functions. - -## __Amazon CloudWatch Application Insights__ - - ### Features - - This release enable customer to add/remove/update more than one workload for a component - -## __Amazon Connect Service__ - - ### Features - - This release adds support for new number types. - -## __Amazon Pinpoint__ - - ### Features - - Added support for sending push notifications using the FCM v1 API with json credentials. Amazon Pinpoint customers can now deliver messages to Android devices using both FCM v1 API and the legacy FCM/GCM API - -## __Managed Streaming for Kafka__ - - ### Features - - Amazon MSK has introduced new versions of ListClusterOperations and DescribeClusterOperation APIs. These v2 APIs provide information and insights into the ongoing operations of both MSK Provisioned and MSK Serverless clusters. - -# __2.20.114__ __2023-07-27__ -## __Amazon Simple Queue Service__ - - ### Features - - Documentation changes related to SQS APIs. - -# __2.20.113__ __2023-07-27__ -## __Amazon Elastic Block Store__ - - ### Features - - SDK and documentation updates for Amazon Elastic Block Store API - -## __Amazon Elastic Compute Cloud__ - - ### Features - - SDK and documentation updates for Amazon Elastic Block Store APIs - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Add multiple customer error code to handle customer caused failure when managing EKS node groups - -## __Amazon SageMaker Service__ - - ### Features - - Expose ProfilerConfig attribute in SageMaker Search API response. - -## __Auto Scaling__ - - ### Features - - This release updates validation for instance types used in the AllowedInstanceTypes and ExcludedInstanceTypes parameters of the InstanceRequirements property of a MixedInstancesPolicy. - -# __2.20.112__ __2023-07-26__ -## __AWS Cloud Control API__ - - ### Features - - Updates the documentation for CreateResource. - -## __AWS Elemental MediaConvert__ - - ### Features - - This release includes general updates to user documentation. - -## __AWS EntityResolution__ - - ### Features - - AWS Entity Resolution can effectively match a source record from a customer relationship management (CRM) system with a source record from a marketing system containing campaign information. - -## __AWS Glue__ - - ### Features - - Release Glue Studio Snowflake Connector Node for SDK/CLI - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon HealthLake__ - - ### Features - - Updating the HealthLake service documentation. - -## __Amazon Managed Blockchain Query__ - - ### Features - - Amazon Managed Blockchain (AMB) Query provides serverless access to standardized, multi-blockchain datasets with developer-friendly APIs. - -## __Amazon Omics__ - - ### Features - - The service is renaming as a part of AWS Health. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds 1 new voice - Lisa (nl-BE) - -## __Amazon Route 53__ - - ### Features - - Update that corrects the documents for received feedback. - -## __OpenSearch Service Serverless__ - - ### Features - - This release adds new collection type VectorSearch. - -# __2.20.111__ __2023-07-25__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now supports Microsoft Azure Blob Storage locations. - -## __AWS IAM Policy Builder__ - - ### Bugfixes - - Fixed bug where actions were written instead of resources. - -## __AWS Lambda__ - - ### Features - - Add Python 3.11 (python3.11) support to AWS Lambda - -## __AWS Security Token Service__ - - ### Features - - API updates for the AWS Security Token Service - -## __AWS SecurityHub__ - - ### Features - - Add support for CONTAINS and NOT_CONTAINS comparison operators for Automation Rules string filters and map filters - -## __AWS Transfer Family__ - - ### Features - - This release adds support for SFTP Connectors. - -## __AWSBillingConductor__ - - ### Features - - Added support for Auto-Assocate Billing Groups for CreateBillingGroup, UpdateBillingGroup, and ListBillingGroups. - -## __Amazon Connect Customer Profiles__ - - ### Features - - Amazon Connect Customer Profiles now supports rule-based resolution to match and merge similar profiles into unified profiles, helping companies deliver faster and more personalized customer service by providing access to relevant customer information for agents and automated experiences. - -## __Amazon Connect Wisdom Service__ - - ### Features - - This release added two new data types: AssistantIntegrationConfiguration, and SessionIntegrationConfiguration to support Wisdom integration with Amazon Connect Chat - -## __Amazon DynamoDB__ - - ### Features - - Documentation updates for DynamoDB - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds an instance's peak and baseline network bandwidth as well as the memory sizes of an instance's inference accelerators to DescribeInstanceTypes. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for monitoring storage optimization progress on the DescribeDBInstances API. - -## __Amazon SageMaker Service__ - - ### Features - - Mark ContentColumn and TargetLabelColumn as required Targets in TextClassificationJobConfig in CreateAutoMLJobV2API - -## __EMR Serverless__ - - ### Features - - This release adds support for publishing application logs to CloudWatch. - -# __2.20.110__ __2023-07-24__ -## __AWS CloudFormation__ - - ### Features - - This release supports filtering by DRIFT_STATUS for existing API ListStackInstances and adds support for a new API ListStackInstanceResourceDrifts. Customers can now view resource drift information from their StackSet management accounts. - -## __AWS Cost Explorer Service__ - - ### Features - - This release introduces the new API 'GetSavingsPlanPurchaseRecommendationDetails', which retrieves the details for a Savings Plan recommendation. It also updates the existing API 'GetSavingsPlansPurchaseRecommendation' to include the recommendation detail ID. - -## __AWS Glue__ - - ### Features - - Added support for Data Preparation Recipe node in Glue Studio jobs - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Chime SDK Media Pipelines__ - - ### Features - - AWS Media Pipeline compositing enhancement and Media Insights Pipeline auto language identification. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add "disabled" enum value to SpotInstanceState. - -## __Amazon QuickSight__ - - ### Features - - This release launches new Snapshot APIs for CSV and PDF exports, adds support for info icon for filters and parameters in Exploration APIs, adds modeled exception to the DeleteAccountCustomization API, and introduces AttributeAggregationFunction's ability to add UNIQUE_VALUE aggregation in tooltips. - -## __AmazonApiGatewayV2__ - - ### Features - - Documentation updates for Amazon API Gateway. - -# __2.20.109__ __2023-07-21__ -## __AWS Elemental MediaConvert__ - - ### Features - - This release includes improvements to Preserve 444 handling, compatibility of HEVC sources without frame rates, and general improvements to MP4 outputs. - -## __AWS Glue__ - - ### Features - - This release adds support for AWS Glue Crawler with Apache Hudi Tables, allowing Crawlers to discover Hudi Tables in S3 and register them in Glue Data Catalog for query engines to query against. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for the DBSystemID parameter of CreateDBInstance to RDS Custom for Oracle. - -## __Amazon WorkSpaces__ - - ### Features - - Fixed VolumeEncryptionKey descriptions - -## __S3 Transfer Manager__ - - ### Bugfixes - - Fix a bug where the SSE-C parameters are not copied to the CompleteMultipartUpload request when transforming to a multipart copy. - -# __2.20.108__ __2023-07-20__ -## __Amazon CodeCatalyst__ - - ### Features - - This release adds support for updating and deleting spaces and projects in Amazon CodeCatalyst. It also adds support for creating, getting, and deleting source repositories in CodeCatalyst projects. - -## __Amazon Connect Cases__ - - ### Features - - This release adds the ability to assign a case to a queue or user. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release updates type for Channel field in SessionSpecification and UtteranceSpecification - -## __Amazon Route 53 Resolver__ - - ### Features - - This release adds support for Route 53 On Outposts, a new feature that allows customers to run Route 53 Resolver and Resolver endpoints locally on their Outposts. - -## __Amazon SageMaker Feature Store Runtime__ - - ### Features - - Cross account support for SageMaker Feature Store - -## __Amazon SageMaker Service__ - - ### Features - - Cross account support for SageMaker Feature Store - -## __Amazon Security Lake__ - - ### Features - - Adding support for Tags on Create and Resource Tagging API. - -## __Amazon Simple Storage Service__ - - ### Features - - Improve performance of S3 clients by simplifying and optimizing endpoint resolution. - -## __Amazon Transcribe Service__ - - ### Features - - Added API argument --toxicity-detection to startTranscriptionJob API, which allows users to view toxicity scores of submitted audio. - -# __2.20.107__ __2023-07-19__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Savings Plans__ - - ### Features - - Savings Plans endpoints update - -## __Amazon S3__ - - ### Bugfixes - - Handle Temporary redirect error 307 when client configured in us-east-1 accesses cross region. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fixed the issue where the position of the ByteBuffer from the request is not honored in NettyNioAsyncHttpClient. - -# __2.20.106__ __2023-07-19__ -## __AWS CloudFormation__ - - ### Features - - SDK and documentation updates for GetTemplateSummary API (unrecognized resources) - -## __AWS Health Imaging__ - - ### Features - - General Availability (GA) release of AWS Health Imaging, enabling customers to store, transform, and analyze medical imaging data at petabyte-scale. - -## __AWS Resource Access Manager__ - - ### Features - - This release adds support for securely sharing with AWS service principals. - -## __AWS SDK for Java v2__ - - ### Features - - Allowing configuring the prefetchTime and staleTime on WebIdentityTokenFileCredentialsProvider - -## __AWS Systems Manager for SAP__ - - ### Features - - Added support for SAP Hana High Availability discovery (primary and secondary nodes) and Backint agent installation with SSM for SAP. - -## __AWS WAFV2__ - - ### Features - - Added the URI path to the custom aggregation keys that you can specify for a rate-based rule. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 documentation updates. - -## __Amazon Managed Grafana__ - - ### Features - - Amazon Managed Grafana now supports grafanaVersion update for existing workspaces with UpdateWorkspaceConfiguration API. DescribeWorkspaceConfiguration API additionally returns grafanaVersion. A new ListVersions API lists available versions or, if given a workspaceId, the versions it can upgrade to. - -# __2.20.105__ __2023-07-18__ -## __AWS SDK for Java v2__ - - ### Features - - Added support for IamPolicy in new module software.amazon.awssdk:iam-policy-builder, a class to simplify the use of AWS policies. - - Updated endpoint and partition metadata. - -## __AWSMainframeModernization__ - - ### Features - - Allows UpdateEnvironment to update the environment to 0 host capacity. New GetSignedBluinsightsUrl API - -## __Amazon CodeGuru Security__ - - ### Features - - Documentation updates for CodeGuru Security. - -## __Amazon Connect Service__ - - ### Features - - GetMetricDataV2 API: Update to include Contact Lens Conversational Analytics Metrics - -## __Amazon Elasticsearch Service__ - - ### Features - - Regex Validation on the ElasticSearch Engine Version attribute - -## __Amazon Import/Export Snowball__ - - ### Features - - Adds support for RACK_5U_C. This is the first AWS Snow Family device designed to meet U.S. Military Ruggedization Standards (MIL-STD-810H) with 208 vCPU device in a portable, compact 5U, half-rack width form-factor. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release adds support for Lex Developers to view analytics for their bots. - -## __Amazon Translate__ - - ### Features - - Added DOCX word document support to TranslateDocument API - -# __2.20.104__ __2023-07-17__ -## __AWS Glue__ - - ### Features - - Adding new supported permission type flags to get-unfiltered endpoints that callers may pass to indicate support for enforcing Lake Formation fine-grained access control on nested column attributes. - -## __AWS Lake Formation__ - - ### Features - - Adds supports for ReadOnlyAdmins and AllowFullTableExternalDataAccess. Adds NESTED_PERMISSION and NESTED_CELL_PERMISSION to SUPPORTED_PERMISSION_TYPES enum. Adds CREATE_LF_TAG on catalog resource and ALTER, DROP, and GRANT_WITH_LF_TAG_EXPRESSION on LF Tag resource. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Added major version upgrade option in ModifyDBCluster API - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add Nitro TPM support on DescribeInstanceTypes - -## __Amazon Interactive Video Service__ - - ### Features - - This release provides the flexibility to configure what renditions or thumbnail qualities to record when creating recording configuration. - -## __CodeArtifact__ - - ### Features - - Doc only update for AWS CodeArtifact - -# __2.20.103__ __2023-07-13__ -## __AWS DataSync__ - - ### Features - - Added LunCount to the response object of DescribeStorageSystemResourcesResponse, LunCount represents the number of LUNs on a storage system resource. - -## __AWS Database Migration Service__ - - ### Features - - Enhanced PostgreSQL target endpoint settings for providing Babelfish support. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS MediaTailor__ - - ### Features - - Adds categories to MediaTailor channel assembly alerts - -## __AWS Proton__ - - ### Features - - This release adds support for deployment history for Proton provisioned resources - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __Amazon Cognito Identity Provider__ - - ### Features - - API model updated in Amazon Cognito - -## __Amazon Connect Service__ - - ### Features - - Add support for deleting Queues and Routing Profiles. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for the C7gn and Hpc7g instances. C7gn instances are powered by AWS Graviton3 processors and the fifth-generation AWS Nitro Cards. Hpc7g instances are powered by AWS Graviton 3E processors and provide up to 200 Gbps network bandwidth. - -## __Amazon FSx__ - - ### Features - - Amazon FSx for NetApp ONTAP now supports SnapLock, an ONTAP feature that enables you to protect your files in a volume by transitioning them to a write once, read many (WORM) state. - -## __Amazon Personalize__ - - ### Features - - This release provides ability to customers to change schema associated with their datasets in Amazon Personalize - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Canvas adds WorkspeceSettings support for CanvasAppSettings - -## __Amazon Simple Storage Service__ - - ### Features - - S3 Inventory now supports Object Access Control List and Object Owner as available object metadata fields in inventory reports. - -# __2.20.102__ __2023-07-10__ -## __AWS SDK for Java v2__ - - ### Features - - Enable zero-copy ByteBuffer publishing in AsyncRequestBody via "unsafe" constructors - - Contributed by: [@StephenFlavin](https://github.com/StephenFlavin) - -## __Amazon Cognito Identity Provider__ - - ### Features - - API model updated in Amazon Cognito - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@StephenFlavin](https://github.com/StephenFlavin) -# __2.20.101__ __2023-07-07__ -## __AWS Database Migration Service__ - - ### Features - - Releasing DMS Serverless. Adding support for PostgreSQL 15.x as source and target endpoint. Adding support for DocDB Elastic Clusters with sharded collections, PostgreSQL datatype mapping customization and disabling hostname validation of the certificate authority in Kafka endpoint settings - -## __AWS Elemental MediaLive__ - - ### Features - - This release enables the use of Thumbnails in AWS Elemental MediaLive. - -## __AWS Glue__ - - ### Features - - This release enables customers to create new Apache Iceberg tables and associated metadata in Amazon S3 by using native AWS Glue CreateTable operation. - -## __AWS MediaTailor__ - - ### Features - - The AWS Elemental MediaTailor SDK for Channel Assembly has added support for EXT-X-CUE-OUT and EXT-X-CUE-IN tags to specify ad breaks in HLS outputs, including support for EXT-OATCLS, EXT-X-ASSET, and EXT-X-CUE-OUT-CONT accessory tags. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch Logs__ - - ### Features - - Add CMK encryption support for CloudWatch Logs Insights query result data - -# __2.20.100__ __2023-07-06__ -## __AWS Outposts__ - - ### Features - - Added paginator support to several APIs. Added the ISOLATED enum value to AssetState. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Single Sign-on__ - - ### Bugfixes - - Fixed issue with SsoAccessTokenProvider prematurely throwing ExpiredTokenException. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add Nitro Enclaves support on DescribeInstanceTypes - -## __Amazon Location Service__ - - ### Features - - This release adds support for authenticating with Amazon Location Service's Places & Routes APIs with an API Key. Also, with this release developers can publish tracked device position updates to Amazon EventBridge. - -## __Amazon QuickSight__ - - ### Features - - This release includes below three changes: small multiples axes improvement, field based coloring, removed required trait from Aggregation function for TopBottomFilter. - -## __Amazon Relational Database Service__ - - ### Features - - Updates Amazon RDS documentation for creating DB instances and creating Aurora global clusters. - -# __2.20.99__ __2023-07-05__ -## __AWS Comprehend Medical__ - - ### Features - - Update to Amazon Comprehend Medical documentation. - -## __AWS Key Management Service__ - - ### Features - - Added Dry Run Feature to cryptographic and cross-account mutating KMS APIs (14 in all). This feature allows users to test their permissions and parameters before making the actual API call. - -## __AWS SDK for Java v2__ - - ### Features - - Cross region bucket access for S3 Client. This feature will allow users to access buckets of different region using a single cross region configured client. - -## __AWS SecurityHub__ - - ### Features - - Documentation updates for AWS Security Hub - -## __Amazon Connect Service__ - - ### Features - - GetMetricDataV2 API: Channels filters do not count towards overall limitation of 100 filter values. - -## __Application Migration Service__ - - ### Features - - This release introduces the Global view feature and new Replication state APIs. - -# __2.20.98__ __2023-07-03__ -## __AWS Batch__ - - ### Features - - This feature allows customers to use AWS Batch with Linux with ARM64 CPU Architecture and X86_64 CPU Architecture with Windows OS on Fargate Platform. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Inference Recommender now accepts new fields SupportedEndpointType and ServerlessConfiguration to support serverless endpoints. - -# __2.20.97__ __2023-06-30__ -## __AWS Elemental MediaConvert__ - - ### Features - - This release includes improved color handling of overlays and general updates to user documentation. - -## __AWS Transfer Family__ - - ### Features - - Add outbound Basic authentication support to AS2 connectors - -## __Amazon EC2 Container Service__ - - ### Features - - Added new field "credentialspecs" to the ecs task definition to support gMSA of windows/linux in both domainless and domain-joined mode - -## __Amazon Interactive Video Service__ - - ### Features - - Corrects the HTTP response code in the generated docs for PutMetadata and DeleteRecordingConfiguration APIs. - -## __Amazon Prometheus Service__ - - ### Features - - AWS SDK service model generation tool version upgrade. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for rolling deployment in SageMaker Inference. - -## __Amazon Verified Permissions__ - - ### Features - - This release corrects several broken links in the documentation. - -# __2.20.96__ __2023-06-29__ -## __AWS Clean Rooms Service__ - - ### Features - - This release adds support for the OR operator in RSQL join match conditions and the ability to control which operators (AND, OR) are allowed in a join match condition. - -## __AWS Glue__ - - ### Features - - This release adds support for AWS Glue Crawler with Iceberg Tables, allowing Crawlers to discover Iceberg Tables in S3 and register them in Glue Data Catalog for query engines to query against. - -## __Amazon AppStream__ - - ### Features - - This release introduces app block builder, allowing customers to provision a resource to package applications into an app block - -## __Amazon Chime__ - - ### Features - - The Amazon Chime SDK APIs in the Chime namespace are no longer supported. Customers should use APIs in the dedicated Amazon Chime SDK namespaces: ChimeSDKIdentity, ChimeSDKMediaPipelines, ChimeSDKMeetings, ChimeSDKMessaging, and ChimeSDKVoice. - -## __Amazon DynamoDB__ - - ### Features - - This release adds ReturnValuesOnConditionCheckFailure parameter to PutItem, UpdateItem, DeleteItem, ExecuteStatement, BatchExecuteStatement and ExecuteTransaction APIs. When set to ALL_OLD, API returns a copy of the item as it was when a conditional write failed - -## __Amazon GameLift__ - - ### Features - - Amazon GameLift now supports game builds that use the Amazon Linux 2023 (AL2023) operating system. - -## __Amazon SageMaker Service__ - - ### Features - - Adding support for timeseries forecasting in the CreateAutoMLJobV2 API. - -# __2.20.95__ __2023-06-28__ -## __AWS Lambda__ - - ### Features - - Surface ResourceConflictException in DeleteEventSourceMapping - -## __Amazon CloudWatch Internet Monitor__ - - ### Features - - This release adds a new feature for Amazon CloudWatch Internet Monitor that enables customers to set custom thresholds, for performance and availability drops, for triggering when to create a health event. - -## __Amazon Kinesis Analytics__ - - ### Features - - Support for new runtime environment in Kinesis Data Analytics Studio: Zeppelin-0.10, Apache Flink-1.15 - -## __Amazon Omics__ - - ### Features - - Add Common Workflow Language (CWL) as a supported language for Omics workflows - -## __Amazon Relational Database Service__ - - ### Features - - Amazon Relational Database Service (RDS) now supports joining a RDS for SQL Server instance to a self-managed Active Directory. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for Model Cards Model Registry integration. - -## __Amazon Simple Storage Service__ - - ### Features - - The S3 LISTObjects, ListObjectsV2 and ListObjectVersions API now supports a new optional header x-amz-optional-object-attributes. If header contains RestoreStatus as the value, then S3 will include Glacier restore status i.e. isRestoreInProgress and RestoreExpiryDate in List response. - -# __2.20.94__ __2023-06-27__ -## __AWS Private 5G__ - - ### Features - - This release allows Private5G customers to choose different commitment plans (60-days, 1-year, 3-years) when placing new orders, enables automatic renewal option for 1-year and 3-years commitments. It also allows customers to update the commitment plan of an existing radio unit. - -## __Amazon Appflow__ - - ### Features - - This release adds support to bypass SSO with the SAPOData connector when connecting to an SAP instance. - -## __Amazon Interactive Video Service__ - - ### Features - - IVS customers can now revoke the viewer session associated with an auth token, to prevent and stop playback using that token. - -## __Amazon Kinesis Video Streams__ - - ### Features - - General Availability (GA) release of Kinesis Video Streams at Edge, enabling customers to provide a configuration for the Kinesis Video Streams EdgeAgent running on an on-premise IoT device. Customers can now locally record from cameras and stream videos to the cloud on a configured schedule. - -## __Amazon Macie 2__ - - ### Features - - This release adds support for configuring new classification jobs to use the set of managed data identifiers that we recommend for jobs. For the managed data identifier selection type (managedDataIdentifierSelector), specify RECOMMENDED. - -## __Amazon SageMaker Feature Store Runtime__ - - ### Features - - Introducing TTL for online store records for feature groups. - -## __Amazon SageMaker Service__ - - ### Features - - Introducing TTL for online store records in feature groups. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Systems Manager doc-only update for June 2023. - -## __Amazon Verified Permissions__ - - ### Features - - This update fixes several broken links to the Cedar documentation. - -## __AppFabric__ - - ### Features - - Initial release of AWS AppFabric for connecting SaaS applications for better productivity and security. - -## __DynamoDB Enhanced Client__ - - ### Features - - Added support for StreamSpecification in the CreateTableEnhancedRequest, allowing configuration of table stream specification using DynamoDB Enhanced Client. - - Contributed by: [@acouvreur](https://github.com/acouvreur) - -## __EMR Serverless__ - - ### Features - - This release adds support to update the release label of an EMR Serverless application to upgrade it to a different version of Amazon EMR via UpdateApplication API. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@acouvreur](https://github.com/acouvreur) -# __2.20.93__ __2023-06-26__ -## __AWS Glue__ - - ### Features - - Timestamp Starting Position For Kinesis and Kafka Data Sources in a Glue Streaming Job - -## __AWS Identity and Access Management__ - - ### Features - - Support for a new API "GetMFADevice" to present MFA device metadata such as device certifications - -## __Amazon Connect Service__ - - ### Features - - This release provides a way to search for existing tags within an instance. Before tagging a resource, ensure consistency by searching for pre-existing key:value pairs. - -## __Amazon GuardDuty__ - - ### Features - - Add support for user.extra.sessionName in Kubernetes Audit Logs Findings. - -## __Amazon Pinpoint__ - - ### Features - - Added time zone estimation support for journeys - -# __2.20.92__ __2023-06-23__ -## __Amazon DevOps Guru__ - - ### Features - - This release adds support for encryption via customer managed keys. - -## __Amazon FSx__ - - ### Features - - Update to Amazon FSx documentation. - -## __Amazon Relational Database Service__ - - ### Features - - Documentation improvements for create, describe, and modify DB clusters and DB instances. - -## __Amazon Verified Permissions__ - - ### Features - - Added improved descriptions and new code samples to SDK documentation. - -# __2.20.91__ __2023-06-22__ -## __AWS Step Functions__ - - ### Features - - Adds support for Versions and Aliases. Adds 8 operations: PublishStateMachineVersion, DeleteStateMachineVersion, ListStateMachineVersions, CreateStateMachineAlias, DescribeStateMachineAlias, UpdateStateMachineAlias, DeleteStateMachineAlias, ListStateMachineAliases - -## __AWSKendraFrontendService__ - - ### Features - - Introducing Amazon Kendra Retrieve API that can be used to retrieve relevant passages or text excerpts given an input query. - -## __Amazon Chime SDK Identity__ - - ### Features - - AppInstanceBots can be configured to be invoked or not using the Target or the CHIME.mentions attribute for ChannelMessages - -## __Amazon Chime SDK Messaging__ - - ### Features - - ChannelMessages can be made visible to sender and intended recipient rather than all channel members with the target attribute. For example, a user can send messages to a bot and receive messages back in a group channel without other members seeing them. - -## __Maven config__ - - ### Bugfixes - - Fix the scm.url in the maven project - - Contributed by: [@jensim](https://github.com/jensim) - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@jensim](https://github.com/jensim) -# __2.20.90__ __2023-06-21__ -## __AWS Elemental MediaConvert__ - - ### Features - - This release introduces the bandwidth reduction filter for the HEVC encoder, increases the limits of outputs per job, and updates support for the Nagra SDK to version 1.14.7. - -## __AWS Transfer Family__ - - ### Features - - This release adds a new parameter StructuredLogDestinations to CreateServer, UpdateServer APIs. - -## __Amazon DynamoDB__ - - ### Features - - Documentation updates for DynamoDB - -## __Amazon EMR__ - - ### Features - - This release introduces a new Amazon EMR EPI called ListSupportedInstanceTypes that returns a list of all instance types supported by a given EMR release. - -## __Amazon SageMaker Service__ - - ### Features - - This release provides support in SageMaker for output files in training jobs to be uploaded without compression and enable customer to deploy uncompressed model from S3 to real-time inference Endpoints. In addition, ml.trn1n.32xlarge is added to supported instance type list in training job. - -## __AmazonMQ__ - - ### Features - - The Cross Region Disaster Recovery feature allows to replicate a brokers state from one region to another in order to provide customers with multi-region resiliency in the event of a regional outage. - -## __Inspector2__ - - ### Features - - This release adds support for Software Bill of Materials (SBOM) export and the general availability of code scanning for AWS Lambda functions. - -# __2.20.89__ __2023-06-20__ -## __AWS Config__ - - ### Features - - Updated ResourceType enum with new resource types onboarded by AWS Config in May 2023. - -## __AWS Lambda__ - - ### Features - - This release adds RecursiveInvocationException to the Invoke API and InvokeWithResponseStream API. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Appflow__ - - ### Features - - This release adds new API to reset connector metadata cache - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support for targeting Dedicated Host allocations by assetIds in AWS Outposts - -## __Amazon Redshift__ - - ### Features - - Added support for custom domain names for Redshift Provisioned clusters. This feature enables customers to create a custom domain name and use ACM to generate fully secure connections to it. - -# __2.20.88__ __2023-06-19__ -## __AWS CloudFormation__ - - ### Features - - Specify desired CloudFormation behavior in the event of ChangeSet execution failure using the CreateChangeSet OnStackFailure parameter - -## __AWS Glue__ - - ### Features - - This release adds support for creating cross region table/database resource links - -## __AWS Price List Service__ - - ### Features - - This release updates the PriceListArn regex pattern. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - `WaiterExecutor` recursive implementation changed to iterative - - Contributed by: [@flittev](https://github.com/flittev) - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation only update to address various tickets. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - API changes to AWS Verified Access to include data from trust providers in logs - -## __Amazon Route 53 Domains__ - - ### Features - - Update MaxItems upper bound to 1000 for ListPricesRequest - -## __Amazon SageMaker Service__ - - ### Features - - Amazon Sagemaker Autopilot releases CreateAutoMLJobV2 and DescribeAutoMLJobV2 for Autopilot customers with ImageClassification, TextClassification and Tabular problem type config support. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@flittev](https://github.com/flittev) -# __2.20.87__ __2023-06-16__ -## __AWS Account__ - - ### Features - - Improve pagination support for ListRegions - -## __AWS Application Discovery Service__ - - ### Features - - Add Amazon EC2 instance recommendations export - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __Amazon Connect Service__ - - ### Features - - Updates the *InstanceStorageConfig APIs to support a new ResourceType: SCREEN_RECORDINGS to enable screen recording and specify the storage configurations for publishing the recordings. Also updates DescribeInstance and ListInstances APIs to include InstanceAccessUrl attribute in the API response. - -## __Amazon DynamoDB__ - - ### Bugfixes - - Created static method EnumAttributeConverter::createWithNameAsKeys which creates a converter based on the Enum::name method to identify enums, rather than Enum::toString. This is preferable because Enum::name is final and cannot be overwritten, as opposed to Enum::toString. EnumAttributeConverter::create is kept as it is, for backward compatibility. - - Contributed by: [@martinKindall](https://github.com/martinKindall) - -## __Amazon Simple Storage Service__ - - ### Features - - This release adds SDK support for request-payer request header and request-charged response header in the "GetBucketAccelerateConfiguration", "ListMultipartUploads", "ListObjects", "ListObjectsV2" and "ListObjectVersions" S3 APIs. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@martinKindall](https://github.com/martinKindall) -# __2.20.86__ __2023-06-15__ -## __AWS Audit Manager__ - - ### Features - - This release introduces 2 Audit Manager features: CSV exports and new manual evidence options. You can now export your evidence finder results in CSV format. In addition, you can now add manual evidence to a control by entering free-form text or uploading a file from your browser. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon DynamoDB Enhanced__ - - ### Bugfixes - - Thanks to this bugfix it'll be possible to create DynamoDB table containing - secondary indices when using no arugments `createTable` method from `DefaultDynamoDbTable` - class. Information about their presence might be expressed using annotations, but it was ignored - and created tables didn't contain specified indices. Plase note that it is still not possible - to specify projections for indices using annotations. By default, all fields will be projected. - - Contributed by: [@breader124](https://github.com/breader124) - -## __Amazon Elastic File System__ - - ### Features - - Documentation updates for EFS. - -## __Amazon GuardDuty__ - - ### Features - - Updated descriptions for some APIs. - -## __Amazon Location Service__ - - ### Features - - Amazon Location Service adds categories to places, including filtering on those categories in searches. Also, you can now add metadata properties to your geofences. - -## __DynamoDB Enhanced Client__ - - ### Features - - Add EnhancedType parameters to static builder methods of StaticTableSchema and StaticImmitableTableSchema - - Contributed by: [@bmaizels](https://github.com/bmaizels) - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@breader124](https://github.com/breader124), [@bmaizels](https://github.com/bmaizels) -# __2.20.85__ __2023-06-13__ -## __AWS CloudTrail__ - - ### Features - - This feature allows users to view dashboards for CloudTrail Lake event data stores. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - Add support for Security Hub Automation Rules - -## __AWS SimSpace Weaver__ - - ### Features - - This release fixes using aws-us-gov ARNs in API calls and adds documentation for snapshot APIs. - -## __AWS WAFV2__ - - ### Features - - You can now detect and block fraudulent account creation attempts with the new AWS WAF Fraud Control account creation fraud prevention (ACFP) managed rule group AWSManagedRulesACFPRuleSet. - -## __AWS Well-Architected Tool__ - - ### Features - - AWS Well-Architected now supports Profiles that help customers prioritize which questions to focus on first by providing a list of prioritized questions that are better aligned with their business goals and outcomes. - -## __Amazon CodeGuru Security__ - - ### Features - - Initial release of Amazon CodeGuru Security APIs - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release introduces a new feature, EC2 Instance Connect Endpoint, that enables you to connect to a resource over TCP, without requiring the resource to have a public IPv4 address. - -## __Amazon Lightsail__ - - ### Features - - This release adds pagination for the Get Certificates API operation. - -## __Amazon Simple Storage Service__ - - ### Features - - Integrate double encryption feature to SDKs. - -## __Amazon Verified Permissions__ - - ### Features - - GA release of Amazon Verified Permissions. - -## __EC2 Image Builder__ - - ### Features - - Change the Image Builder ImagePipeline dateNextRun field to more accurately describe the data. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Added APIs to support network replication and recovery using AWS Elastic Disaster Recovery. - -# __2.20.84__ __2023-06-12__ -## __AWS Amplify UI Builder__ - - ### Features - - AWS Amplify UIBuilder is launching Codegen UI, a new feature that enables you to generate your amplify uibuilder components and forms. - -## __AWS SDK for Java v2__ - - ### Features - - Add "unsafe" and "fromRemaining" AsyncRequestBody constructors for byte arrays and ByteBuffers - - Contributed by: [@StephenFlavin](https://github.com/StephenFlavin) - - Updated endpoint and partition metadata. - - `IdleConnectionReaper` now does not prevent `HttpClientConnectionManager` from getting GC'd in the case where an SDK client is created per request and not closed. - -## __Amazon DynamoDB__ - - ### Features - - Documentation updates for DynamoDB - -## __Amazon DynamoDB Streams__ - - ### Features - - Documentation updates for DynamoDB Streams - -## __Amazon FSx__ - - ### Features - - Amazon FSx for NetApp ONTAP now supports joining a storage virtual machine (SVM) to Active Directory after the SVM has been created. - -## __Amazon OpenSearch Service__ - - ### Features - - This release adds support for SkipUnavailable connection property for cross cluster search - -## __Amazon Rekognition__ - - ### Features - - This release adds support for improved accuracy with user vector in Amazon Rekognition Face Search. Adds new APIs: AssociateFaces, CreateUser, DeleteUser, DisassociateFaces, ListUsers, SearchUsers, SearchUsersByImage. Also adds new face metadata that can be stored: user vector. - -## __Amazon SageMaker Service__ - - ### Features - - Sagemaker Neo now supports compilation for inferentia2 (ML_INF2) and Trainium1 (ML_TRN1) as available targets. With these devices, you can run your workloads at highest performance with lowest cost. inferentia2 (ML_INF2) is available in CMH and Trainium1 (ML_TRN1) is available in IAD currently - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@StephenFlavin](https://github.com/StephenFlavin) -# __2.20.83__ __2023-06-09__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - Document-only update to refresh CLI documentation for AWS Private CA. No change to the service. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed issue with leased connection leaks when threads executing HTTP connections with Apache HttpClient were interrupted while the connection was in progress. - -## __Amazon Connect Service__ - - ### Features - - This release adds search APIs for Prompts, Quick Connects and Hours of Operations, which can be used to search for those resources within a Connect Instance. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - By default, Netty threads are blocked during dns resolution, namely InetAddress.getByName is used under the hood. Now, there's an option to configure the NettyNioAsyncHttpClient in order to use a non blocking dns resolution strategy. - - Contributed by: [@martinKindall](https://github.com/martinKindall) - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@martinKindall](https://github.com/martinKindall) -# __2.20.82__ __2023-06-08__ -## __AWS Comprehend Medical__ - - ### Features - - This release supports a new set of entities and traits. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS STS__ - - ### Features - - Updates the core STS credential provider logic to return AwsSessionCredentials instead of an STS-specific class, and adds expirationTime to AwsSessionCredentials - -## __AWS Service Catalog__ - - ### Features - - New parameter added in ServiceCatalog DescribeProvisioningArtifact api - IncludeProvisioningArtifactParameters. This parameter can be used to return information about the parameters used to provision the product - -## __Amazon Athena__ - - ### Features - - You can now define custom spark properties at start of the session for use cases like cluster encryption, table formats, and general Spark tuning. - -## __Amazon Timestream Write__ - - ### Features - - This release adds the capability for customers to define how their data should be partitioned, optimizing for certain access patterns. This definition will take place as a part of the table creation. - -## __Payment Cryptography Control Plane__ - - ### Features - - Initial release of AWS Payment Cryptography Control Plane service for creating and managing cryptographic keys used during card payment processing. - -## __Payment Cryptography Data Plane__ - - ### Features - - Initial release of AWS Payment Cryptography DataPlane Plane service for performing cryptographic operations typically used during card payment processing. - -# __2.20.81__ __2023-06-07__ -## __AWS CloudFormation__ - - ### Features - - AWS CloudFormation StackSets is updating the deployment experience for all stackset operations to skip suspended AWS accounts during deployments. StackSets will skip target AWS accounts that are suspended and set the Detailed Status of the corresponding stack instances as SKIPPED_SUSPENDED_ACCOUNT - -## __AWS Direct Connect__ - - ### Features - - This update corrects the jumbo frames mtu values from 9100 to 8500 for transit virtual interfaces. - -## __AWS IoT Core Device Advisor__ - - ### Features - - AWS IoT Core Device Advisor now supports new Qualification Suite test case list. With this update, customers can more easily create new qualification test suite with an empty rootGroup input. - -## __Amazon CloudWatch Logs__ - - ### Features - - This change adds support for account level data protection policies using 3 new APIs, PutAccountPolicy, DeleteAccountPolicy and DescribeAccountPolicy. DescribeLogGroup API has been modified to indicate if account level policy is applied to the LogGroup via "inheritedProperties" list in the response. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release introduces event stream related APIs. - -## __Amazon EMR Containers__ - - ### Features - - EMR on EKS adds support for log rotation of Spark container logs with EMR-6.11.0 onwards, to the StartJobRun API. - -# __2.20.80__ __2023-06-06__ -## __AWS Identity and Access Management__ - - ### Features - - This release updates the AccountAlias regex pattern with the same length restrictions enforced by the length constraint. - -## __AWS IoT__ - - ### Features - - Adding IoT Device Management Software Package Catalog APIs to register, store, and report system software packages, along with their versions and metadata in a centralized location. - -## __AWS IoT Data Plane__ - - ### Features - - Update thing shadow name regex to allow '$' character - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Signer__ - - ### Features - - AWS Signer is launching Container Image Signing, a new feature that enables you to sign and verify container images. This feature enables you to validate that only container images you approve are used in your enterprise. - -## __Amazon Connect Service__ - - ### Features - - GetMetricDataV2 API is now available in AWS GovCloud(US) region. - -## __Amazon EMR__ - - ### Features - - This release provides customers the ability to specify an allocation strategies amongst PRICE_CAPACITY_OPTIMIZED, CAPACITY_OPTIMIZED, LOWEST_PRICE, DIVERSIFIED for Spot instances in Instance Feet cluster. This enables customers to choose an allocation strategy best suited for their workload. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release adds support for Lex Developers to create test sets and to execute those test-sets against their bots. - -## __Amazon QuickSight__ - - ### Features - - QuickSight support for pivot table field collapse state, radar chart range scale and multiple scope options in conditional formatting. - -## __Amazon Simple Queue Service__ - - ### Features - - Amazon SQS adds three new APIs - StartMessageMoveTask, CancelMessageMoveTask, and ListMessageMoveTasks to automate redriving messages from dead-letter queues to source queues or a custom destination. - -## __Inspector2__ - - ### Features - - Adds new response properties and request parameters for 'last scanned at' on the ListCoverage operation. This feature allows you to search and view the date of which your resources were last scanned by Inspector. - -# __2.20.79__ __2023-06-05__ -## __AWS CloudFormation__ - - ### Features - - AWS CloudFormation StackSets provides customers with three new APIs to activate, deactivate, and describe AWS Organizations trusted access which is needed to get started with service-managed StackSets. - -## __AWS Key Management Service__ - - ### Features - - This release includes feature to import customer's asymmetric (RSA and ECC) and HMAC keys into KMS. It also includes feature to allow customers to specify number of days to schedule a KMS key deletion as a policy condition key. - -## __AWS Lambda__ - - ### Features - - Add Ruby 3.2 (ruby3.2) Runtime support to AWS Lambda. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Upgrading AWS CRT dependency to v0.21.17. This version contains minor fixes and updates - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Making InstanceTagAttribute as the required parameter for the DeregisterInstanceEventNotificationAttributes and RegisterInstanceEventNotificationAttributes APIs. - -## __Amazon Fraud Detector__ - - ### Features - - Added new variable types, new DateTime data type, and new rules engine functions for interacting and working with DateTime data types. - -## __Amazon Keyspaces__ - - ### Features - - This release adds support for MRR GA launch, and includes multiregion support in create-keyspace, get-keyspace, and list-keyspace. - -## __AmazonMWAA__ - - ### Features - - This release adds ROLLING_BACK and CREATING_SNAPSHOT environment statuses for Amazon MWAA environments. - -## __FinSpace User Environment Management service__ - - ### Features - - Releasing new Managed kdb Insights APIs - -# __2.20.78__ __2023-06-02__ -## __AWS CloudTrail__ - - ### Features - - This feature allows users to start and stop event ingestion on a CloudTrail Lake event data store. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - Added APIs to describe managed products. The APIs retrieve information about rule groups that are managed by AWS and by AWS Marketplace sellers. - -## __Amazon Athena__ - - ### Features - - This release introduces the DeleteCapacityReservation API and the ability to manage capacity reservations using CloudFormation - -## __Amazon SageMaker Service__ - - ### Features - - This release adds Selective Execution feature that allows SageMaker Pipelines users to run selected steps in a pipeline. - -# __2.20.77__ __2023-06-01__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - Corrected the information for the header order FieldToMatch setting - -## __Alexa For Business__ - - ### Features - - Alexa for Business has been deprecated and is no longer supported. - -## __Amazon Appflow__ - - ### Features - - Added ability to select DataTransferApiType for DescribeConnector and CreateFlow requests when using Async supported connectors. Added supportedDataTransferType to DescribeConnector/DescribeConnectors/ListConnector response. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release introduces calculated attribute related APIs. - -## __Amazon Interactive Video Service__ - - ### Features - - API Update for IVS Advanced Channel type - -## __Amazon SageMaker Service__ - - ### Features - - Amazon Sagemaker Autopilot adds support for Parquet file input to NLP text classification jobs. - -# __2.20.76__ __2023-05-31__ -## __AWS Config__ - - ### Features - - Resource Types Exclusion feature launch by AWS Config - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix an issue where the optimal number of parts calculated could be higher than 10,000 - -## __AWS Service Catalog__ - - ### Features - - Documentation updates for ServiceCatalog. - -## __AWSMainframeModernization__ - - ### Features - - Adds an optional create-only 'roleArn' property to Application resources. Enables PS and PO data set org types. - -## __Amazon Fraud Detector__ - - ### Features - - This release enables publishing event predictions from Amazon Fraud Detector (AFD) to Amazon EventBridge. For example, after getting predictions from AFD, Amazon EventBridge rules can be configured to trigger notification through an SNS topic, send a message with SES, or trigger Lambda workflows. - -## __Amazon HealthLake__ - - ### Features - - This release adds a new request parameter to the CreateFHIRDatastore API operation. IdentityProviderConfiguration specifies how you want to authenticate incoming requests to your Healthlake Data Store. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for changing the engine for Oracle using the ModifyDbInstance API - -## __Amazon WorkSpaces Web__ - - ### Features - - WorkSpaces Web now allows you to control which IP addresses your WorkSpaces Web portal may be accessed from. - -# __2.20.75__ __2023-05-30__ -## __AWS Glue__ - - ### Features - - Added Runtime parameter to allow selection of Ray Runtime - -## __AWS Ground Station__ - - ### Features - - Updating description of GetMinuteUsage to be clearer. - -## __AWS IoT FleetWise__ - - ### Features - - Campaigns now support selecting Timestream or S3 as the data destination, Signal catalogs now support "Deprecation" keyword released in VSS v2.1 and "Comment" keyword released in VSS v3.0 - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - Added new resource detail objects to ASFF, including resources for AwsGuardDutyDetector, AwsAmazonMqBroker, AwsEventSchemasRegistry, AwsAppSyncGraphQlApi and AwsStepFunctionStateMachine. - -## __AWS WAFV2__ - - ### Features - - This SDK release provides customers the ability to use Header Order as a field to match. - -## __Amazon Chime SDK Voice__ - - ### Features - - Added optional CallLeg field to StartSpeakerSearchTask API request - -## __Amazon Location Service__ - - ### Features - - This release adds API support for political views for the maps service APIs: CreateMap, UpdateMap, DescribeMap. - -## __Amazon MemoryDB__ - - ### Features - - Amazon MemoryDB for Redis now supports AWS Identity and Access Management authentication access to Redis clusters starting with redis-engine version 7.0 - -## __Amazon Personalize__ - - ### Features - - This release provides support for the exclusion of certain columns for training when creating a solution and creating or updating a recommender with Amazon Personalize. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds 2 new voices - Sofie (da-DK) and Niamh (en-IE) - -## __Amazon Security Lake__ - - ### Features - - Log sources are now versioned. AWS log sources and custom sources will now come with a version identifier that enables producers to vend multiple schema versions to subscribers. Security Lake API have been refactored to more closely align with AWS API conventions. - -# __2.20.74__ __2023-05-26__ -## __AWS IoT Wireless__ - - ### Features - - Add Multicast Group support in Network Analyzer Configuration. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - Documentation update for a new Initiation Method value in DescribeContact API - -## __Amazon SageMaker Service__ - - ### Features - - Added ml.p4d and ml.inf1 as supported instance type families for SageMaker Notebook Instances. - -# __2.20.73__ __2023-05-25__ -## __AWS CodePipeline__ - - ### Features - - Add PollingDisabledAt time information in PipelineMetadata object of GetPipeline API. - -## __AWS Glue__ - - ### Features - - Added ability to create data quality rulesets for shared, cross-account Glue Data Catalog tables. Added support for dataset comparison rules through a new parameter called AdditionalDataSources. Enhanced the data quality results with a map containing profiled metric values. - -## __AWS Migration Hub Refactor Spaces__ - - ### Features - - This SDK update allows for path parameter syntax to be passed to the CreateRoute API. Path parameter syntax require parameters to be enclosed in {} characters. This update also includes a new AppendSourcePath field which lets users forward the source path to the Service URL endpoint. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon GameLift__ - - ### Features - - GameLift FleetIQ users can now filter game server claim requests to exclude servers on instances that are draining. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Automatic Model Tuning now supports enabling Autotune for tuning jobs which can choose tuning job configurations. - -## __Application Auto Scaling__ - - ### Features - - With this release, ElastiCache customers will be able to use predefined metricType "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage" for their ElastiCache instances. - -# __2.20.72__ __2023-05-24__ -## __AWS AppSync__ - - ### Features - - This release introduces AppSync Merged APIs, which provide the ability to compose multiple source APIs into a single federated/merged API. - -## __AWS Cost and Usage Report Service__ - - ### Features - - Add support for split cost allocation data on a report. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect Evaluation Capabilities: validation improvements - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker now provides an instantaneous deployment recommendation through the DescribeModel API - -# __2.20.71__ __2023-05-23__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon SageMaker Service__ - - ### Features - - Added ModelNameEquals, ModelPackageVersionArnEquals in request and ModelName, SamplePayloadUrl, ModelPackageVersionArn in response of ListInferenceRecommendationsJobs API. Added Invocation timestamps in response of DescribeInferenceRecommendationsJob API & ListInferenceRecommendationsJobSteps API. - -## __Amazon Translate__ - - ### Features - - Added support for calling TranslateDocument API. - -## __Firewall Management Service__ - - ### Features - - Fixes issue that could cause calls to GetAdminScope and ListAdminAccountsForOrganization to return a 500 Internal Server error. - -# __2.20.70__ __2023-05-22__ -## __AWS Backup__ - - ### Features - - Added support for tags on restore. - -## __AWS SDK for Java v2__ - - ### Features - - Add client configuration overriding of SCHEDULED_EXECUTOR_SERVICE option - - Contributed by: [@scrocquesel](https://github.com/scrocquesel) - - This commit adds a new ErrorType core metric that is recorded for all failed API call attempts. The ErrorType records the general category of error that ocurred for a failed API call attempt. Those categories are: - - - Throttling errors - - Service errors other than throttling - - I/O errors - - API call or API call attempt timeouts - - The intent of this metric is to help locate possible issues at a glance and help direct further debugging or investigation. - -## __Amazon Pinpoint__ - - ### Features - - Amazon Pinpoint is deprecating the tags parameter in the UpdateSegment, UpdateCampaign, UpdateEmailTemplate, UpdateSmsTemplate, UpdatePushTemplate, UpdateInAppTemplate and UpdateVoiceTemplate. Amazon Pinpoint will end support tags parameter by May 22, 2023. - -## __Amazon QuickSight__ - - ### Features - - Add support for Asset Bundle, Geospatial Heatmaps. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@scrocquesel](https://github.com/scrocquesel) -# __2.20.69__ __2023-05-19__ -## __AWS Backup__ - - ### Features - - Add ResourceArn, ResourceType, and BackupVaultName to ListRecoveryPointsByLegalHold API response. - -## __AWS Elemental MediaPackage v2__ - - ### Features - - Adds support for the MediaPackage Live v2 API - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Cases__ - - ### Features - - This release adds the ability to create fields with type Url through the CreateField API. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html - -## __Amazon Simple Email Service__ - - ### Features - - This release allows customers to update scaling mode property of dedicated IP pools with PutDedicatedIpPoolScalingAttributes call. - -# __2.20.68__ __2023-05-18__ -## __AWS CloudTrail__ - - ### Features - - Add ConflictException to PutEventSelectors, add (Channel/EDS)ARNInvalidException to Tag APIs. These exceptions provide customers with more specific error messages instead of internal errors. - -## __AWS Compute Optimizer__ - - ### Features - - In this launch, we add support for showing integration status with external metric providers such as Instana, Datadog ...etc in GetEC2InstanceRecommendations and ExportEC2InstanceRecommendations apis - -## __AWS Elemental MediaConvert__ - - ### Features - - This release introduces a new MXF Profile for XDCAM which is strictly compliant with the SMPTE RDD 9 standard and improved handling of output name modifiers. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - This update fixes an issue where CompletableFutures are leaked/never completed when the submission to the FUTURE_COMPLETE_EXECUTOR is rejected. - - By default, the SDK uses `2 * number of cores` (with a maximum of 64), and uses bounded queue of size 1000. In cases where the throughput to the client exceeds the executor's ability to keep up, it would reject executions. Before this change this would lead to leaked futures. - -## __AWS Security Token Service__ - - ### Features - - API updates for the AWS Security Token Service - -## __Amazon Athena__ - - ### Features - - Removing SparkProperties from EngineConfiguration object for StartSession API call - -## __Amazon Connect Service__ - - ### Features - - You can programmatically create and manage prompts using APIs, for example, to extract prompts stored within Amazon Connect and add them to your Amazon S3 bucket. AWS CloudTrail, AWS CloudFormation and tagging are supported. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation only release to address various tickets. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add support for i4g.large, i4g.xlarge, i4g.2xlarge, i4g.4xlarge, i4g.8xlarge and i4g.16xlarge instances powered by AWS Graviton2 processors that deliver up to 15% better compute performance than our other storage-optimized instances. - -## __Amazon Relational Database Service__ - - ### Features - - RDS documentation update for the EngineVersion parameter of ModifyDBSnapshot - -## __Amazon SageMaker geospatial capabilities__ - - ### Features - - This release makes ExecutionRoleArn a required field in the StartEarthObservationJob API. - -## __S3 Transfer Manager__ - - ### Bugfixes - - Fixed the issue where S3 Transfer Manager attempted to load AWS CRT classes when Java based S3 client was used. See [#3936](https://github.com/aws/aws-sdk-java-v2/issues/3936). - -# __2.20.67__ __2023-05-16__ -## __AWS Direct Connect__ - - ### Features - - This release includes an update to the mtu value for CreateTransitVirtualInterface from 9001 mtu to 8500 mtu. - -## __AWS Glue__ - - ### Features - - Add Support for Tags for Custom Entity Types - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Documentations - - Fix javadoc warnings in the sdk-core package. - - Contributed by: [@sugmanue](https://github.com/sugmanue) - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __AWS WAFV2__ - - ### Features - - My AWS Service (placeholder) - You can now rate limit web requests based on aggregation keys other than IP addresses, and you can aggregate using combinations of keys. You can also rate limit all requests that match a scope-down statement, without further aggregation. - -## __Amazon Detective__ - - ### Features - - Added and updated API operations in Detective to support the integration of ASFF Security Hub findings. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@sugmanue](https://github.com/sugmanue) -# __2.20.66__ __2023-05-15__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Transfer Family__ - - ### Features - - This release introduces the ability to require both password and SSH key when users authenticate to your Transfer Family servers that use the SFTP protocol. - -## __Amazon Athena__ - - ### Features - - You can now define custom spark properties at start of the session for use cases like cluster encryption, table formats, and general Spark tuning. - -## __Amazon CodeCatalyst__ - - ### Features - - With this release, the users can list the active sessions connected to their Dev Environment on AWS CodeCatalyst - -## __Amazon Rekognition__ - - ### Features - - This release adds a new EyeDirection attribute in Amazon Rekognition DetectFaces and IndexFaces APIs which predicts the yaw and pitch angles of a person's eye gaze direction for each face detected in the image. - -## __IAM Roles Anywhere__ - - ### Features - - Adds support for custom notification settings in a trust anchor. Introduces PutNotificationSettings and ResetNotificationSettings API's. Updates DurationSeconds max value to 3600. - -## __Managed Streaming for Kafka__ - - ### Features - - Added a fix to make clusterarn a required field in ListClientVpcConnections and RejectClientVpcConnection APIs - -# __2.20.65__ __2023-05-11__ -## __AWS Health APIs and Notifications__ - - ### Features - - Add support for regional endpoints - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Support__ - - ### Features - - This release adds 2 new Support APIs, DescribeCreateCaseOptions and DescribeSupportedLanguages. You can use these new APIs to get available support languages. - -## __Amazon Connect Service__ - - ### Features - - This release updates GetMetricDataV2 API, to support metric data up-to last 35 days - -## __Amazon ElastiCache__ - - ### Features - - Added support to modify the cluster mode configuration for the existing ElastiCache ReplicationGroups. Customers can now modify the configuration from cluster mode disabled to cluster mode enabled. - -## __Amazon Elasticsearch Service__ - - ### Features - - This release fixes DescribePackages API error with null filter value parameter. - -## __Amazon Interactive Video Service RealTime__ - - ### Features - - Add methods for inspecting and debugging stages: ListStageSessions, GetStageSession, ListParticipants, GetParticipant, and ListParticipantEvents. - -## __Amazon Omics__ - - ### Features - - This release provides support for Ready2Run and GPU workflows, an improved read set filter, the direct upload of read sets into Omics Storage, and annotation parsing for analytics stores. - -## __Amazon OpenSearch Service__ - - ### Features - - This release fixes DescribePackages API error with null filter value parameter. - -## __Amazon Route 53 Resolver__ - - ### Features - - Update FIPS endpoints for GovCloud (US) regions in SDK. - -# __2.20.64__ __2023-05-10__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - STS was being skipped in the default credential provider chain when using native builds in java. Now a proper reflect-config.json file was added to include sts. - - Contributed by: [@martinKindall](https://github.com/martinKindall) - -## __Amazon EMR__ - - ### Features - - EMR Studio now supports programmatically executing a Notebooks on an EMR on EKS cluster. In addition, notebooks can now be executed by specifying its location in S3. - -## __Amazon Relational Database Service__ - - ### Features - - Amazon Relational Database Service (RDS) updates for the new Aurora I/O-Optimized storage type for Amazon Aurora DB clusters - -## __Amazon Simple Workflow Service__ - - ### Features - - This release adds a new API parameter to exclude old history events from decision tasks. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@martinKindall](https://github.com/martinKindall) -# __2.20.63__ __2023-05-09__ -## __AWS Glue__ - - ### Features - - This release adds AmazonRedshift Source and Target nodes in addition to DynamicTransform OutputSchemas - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon SageMaker Service__ - - ### Features - - This release includes support for (1) Provisioned Concurrency for Amazon SageMaker Serverless Inference and (2) UpdateEndpointWeightsAndCapacities API for Serverless endpoints. - -## __Application Auto Scaling__ - - ### Features - - With this release, Amazon SageMaker Serverless Inference customers can use Application Auto Scaling to auto scale the provisioned concurrency of their serverless endpoints. - -# __2.20.62__ __2023-05-08__ -## __AWS Glue__ - - ### Features - - Support large worker types G.4x and G.8x for Glue Spark. - -## __AWS IoT SiteWise__ - - ### Features - - Provide support for 20,000 max results for GetAssetPropertyValueHistory/BatchGetAssetPropertyValueHistory and 15 minute aggregate resolution for GetAssetPropertyAggregates/BatchGetAssetPropertyAggregates - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SDK for Java v2, AWS STS__ - - ### Features - - Respect async credentials update flag from DefaultCredentialsProvider for WebIdentityTokenFileCredentialProvider, potentially avoiding latency spikes on credentials expiration - - Contributed by: [@paulolieuthier](https://github.com/paulolieuthier) - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for AWS Security Token Service. - -## __Amazon GuardDuty__ - - ### Features - - Add AccessDeniedException 403 Error message code to support 3 Tagging related APIs - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@paulolieuthier](https://github.com/paulolieuthier) -# __2.20.61__ __2023-05-05__ -## __AWS MediaTailor__ - - ### Features - - This release adds support for AFTER_LIVE_EDGE mode configuration for avail suppression, and adding a fill-policy setting that sets the avail suppression to PARTIAL_AVAIL or FULL_AVAIL_ONLY when AFTER_LIVE_EDGE is enabled. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support the inf2 and trn1n instances. inf2 instances are purpose built for deep learning inference while trn1n instances are powered by AWS Trainium accelerators and they build on the capabilities of Trainium-powered trn1 instances. - -## __Amazon Simple Queue Service__ - - ### Features - - Revert previous SQS protocol change. - -## __Inspector2__ - - ### Features - - Amazon Inspector now allows customers to search its vulnerability intelligence database if any of the Inspector scanning types are activated. - -# __2.20.60__ __2023-05-04__ -## __AWS Config__ - - ### Features - - Updated ResourceType enum with new resource types onboarded by AWS Config in April 2023. - -## __AWS Network Firewall__ - - ### Features - - This release adds support for the Suricata REJECT option in midstream exception configurations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Avoids NullPointerException when config and credentials files were not found for profiles. Now it returns an empty map, as it used to. - - Contributed by: [@martinKindall](https://github.com/martinKindall) - -## __AWS SecurityHub__ - - ### Features - - Add support for Finding History. - -## __Amazon CloudWatch__ - - ### Features - - Adds support for filtering by metric names in CloudWatch Metric Streams. - -## __Amazon Connect Service__ - - ### Features - - Remove unused InvalidParameterException from CreateParticipant API - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation update for new error type NamespaceNotFoundException for CreateCluster and UpdateCluster - -## __Amazon OpenSearch Service__ - - ### Features - - DescribeDomainNodes: A new API that provides configuration information for nodes part of the domain - -## __Amazon QuickSight__ - - ### Features - - Add support for Topic, Dataset parameters and VPC - -## __Amazon Rekognition__ - - ### Features - - This release adds a new attribute FaceOccluded. Additionally, you can now select attributes individually (e.g. ["DEFAULT", "FACE_OCCLUDED", "AGE_RANGE"] instead of ["ALL"]), which can reduce response time. - -## __Amazon SageMaker Service__ - - ### Features - - We added support for ml.inf2 and ml.trn1 family of instances on Amazon SageMaker for deploying machine learning (ML) models for Real-time and Asynchronous inference. You can use these instances to achieve high performance at a low cost for generative artificial intelligence (AI) models. - -## __Amazon Simple Queue Service__ - - ### Features - - This release enables customers to call SQS using AWS JSON-1.0 protocol. - -## __Amazon Simple Storage Service__ - - ### Features - - Documentation updates for Amazon S3 - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@martinKindall](https://github.com/martinKindall) -# __2.20.59__ __2023-05-03__ -## __AWS AppSync__ - - ### Features - - Private API support for AWS AppSync. With Private APIs, you can now create GraphQL APIs that can only be accessed from your Amazon Virtual Private Cloud ("VPC"). - -## __AWS IoT TwinMaker__ - - ### Features - - This release adds a field for GetScene API to return error code and message from dependency services. - -## __AWS Network Firewall__ - - ### Features - - AWS Network Firewall now supports policy level HOME_NET variable overrides. - -## __AWS Well-Architected Tool__ - - ### Features - - This release deepens integration with AWS Service Catalog AppRegistry to improve workload resource discovery. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds an SDK paginator for GetNetworkInsightsAccessScopeAnalysisFindings - -## __Amazon OpenSearch Service__ - - ### Features - - Amazon OpenSearch Service adds the option to deploy a domain across multiple Availability Zones, with each AZ containing a complete copy of data and with nodes in one AZ acting as a standby. This option provides 99.99% availability and consistent performance in the event of infrastructure failure. - -## __Inspector2__ - - ### Features - - This feature provides deep inspection for linux based instance - -# __2.20.58__ __2023-05-02__ -## __AWS Resilience Hub__ - - ### Features - - This release will improve resource level transparency in applications by discovering previously hidden resources. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWSKendraFrontendService__ - - ### Features - - AWS Kendra now supports configuring document fields/attributes via the GetQuerySuggestions API. You can now base query suggestions on the contents of document fields. - -## __Amazon Appflow__ - - ### Features - - This release adds new API to cancel flow executions. - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect Service Rules API update: Added OnContactEvaluationSubmit event source to support user configuring evaluation form rules. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation only update to address Amazon ECS tickets. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon Sagemaker Autopilot supports training models with sample weights and additional objective metrics. - -# __2.20.57__ __2023-05-01__ -## __AWS Compute Optimizer__ - - ### Features - - support for tag filtering within compute optimizer. ability to filter recommendation results by tag and tag key value pairs. ability to filter by inferred workload type added. - -## __AWS Key Management Service__ - - ### Features - - This release makes the NitroEnclave request parameter Recipient and the response field for CiphertextForRecipient available in AWS SDKs. It also adds the regex pattern for CloudHsmClusterId validation. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -# __2.20.56__ __2023-04-28__ -## __AWS Direct Connect__ - - ### Features - - This release corrects the jumbo frames MTU from 9100 to 8500. - -## __AWS IoT__ - - ### Features - - This release allows AWS IoT Core users to specify a TLS security policy when creating and updating AWS IoT Domain Configurations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SimSpace Weaver__ - - ### Features - - Added a new CreateSnapshot API. For the StartSimulation API, SchemaS3Location is now optional, added a new SnapshotS3Location parameter. For the DescribeSimulation API, added SNAPSHOT_IN_PROGRESS simulation state, deprecated SchemaError, added new fields: StartError and SnapshotS3Location. - -## __AWS WAFV2__ - - ### Features - - You can now associate a web ACL with a Verified Access instance. - -## __Amazon Appflow__ - - ### Features - - Adds Jwt Support for Salesforce Credentials. - -## __Amazon Athena__ - - ### Features - - You can now use capacity reservations on Amazon Athena to run SQL queries on fully-managed compute capacity. - -## __Amazon Elastic File System__ - - ### Features - - This release adds PAUSED and PAUSING state as a returned value for DescribeReplicationConfigurations response. - -## __Amazon Managed Grafana__ - - ### Features - - This release adds support for the grafanaVersion parameter in CreateWorkspace. - -## __Amazon Rekognition__ - - ### Features - - Added support for aggregating moderation labels by video segment timestamps for Stored Video Content Moderation APIs and added additional information about the job to all Stored Video Get API responses. - -## __Amazon WorkSpaces__ - - ### Features - - Added Windows 11 to support Microsoft_Office_2019 - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - The fix involves implementing a null-pointer check in the NettyUtils#isConnectionResetException() method, in case the - throwable of the original cause has no message. - - Contributed by: [@martinKindall](https://github.com/martinKindall) - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@martinKindall](https://github.com/martinKindall) -# __2.20.55__ __2023-04-27__ -## __AWS IoT Core Device Advisor__ - - ### Features - - AWS IoT Core Device Advisor now supports MQTT over WebSocket. With this update, customers can run all three test suites of AWS IoT Core Device Advisor - qualification, custom, and long duration tests - using Signature Version 4 for MQTT over WebSocket. - -## __AWS Lambda__ - - ### Features - - Add Java 17 (java17) support to AWS Lambda - -## __AWS Marketplace Catalog Service__ - - ### Features - - Enabled Pagination for List Entities and List Change Sets operations - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS X-Ray__ - - ### Features - - Updated X-Ray documentation with Resource Policy API descriptions. - -## __Amazon EMR Containers__ - - ### Features - - This release adds GetManagedEndpointSessionCredentials, a new API that allows customers to generate an auth token to connect to a managed endpoint, enabling features such as self-hosted Jupyter notebooks for EMR on EKS. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for AMD SEV-SNP on EC2 instances. - -## __Amazon GuardDuty__ - - ### Features - - Added API support to initiate on-demand malware scan on specific resources. - -## __Amazon OpenSearch Ingestion__ - - ### Features - - Documentation updates for OpenSearch Ingestion - -## __Amazon QLDB__ - - ### Features - - Documentation updates for Amazon QLDB - -## __Amazon SageMaker Service__ - - ### Features - - Added ml.p4d.24xlarge and ml.p4de.24xlarge as supported instances for SageMaker Studio - -## __Managed Streaming for Kafka__ - - ### Features - - Amazon MSK has added new APIs that allows multi-VPC private connectivity and cluster policy support for Amazon MSK clusters that simplify connectivity and access between your Apache Kafka clients hosted in different VPCs and AWS accounts and your Amazon MSK clusters. - -# __2.20.54__ __2023-04-26__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Exclude static fields from the required fields validation done by the ToBuilderIsCorrect class - - Contributed by: [@sugmanue](https://github.com/sugmanue) - - Fixed bug where using profile-based credentials could cause the SDK to read the profile file with each request. - -## __Amazon OpenSearch Ingestion__ - - ### Features - - Initial release for OpenSearch Ingestion - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@sugmanue](https://github.com/sugmanue) -# __2.20.53__ __2023-04-25__ -## __AWS DataSync__ - - ### Features - - This release adds 13 new APIs to support AWS DataSync Discovery GA. - -## __AWS Directory Service__ - - ### Features - - New field added in AWS Managed Microsoft AD DescribeSettings response and regex pattern update for UpdateSettings value. Added length validation to RemoteDomainName. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Chime SDK Messaging__ - - ### Features - - Remove non actionable field from UpdateChannelReadMarker and DeleteChannelRequest. Add precise exceptions to DeleteChannel and DeleteStreamingConfigurations error cases. - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect, Contact Lens Evaluation API release including ability to manage forms and to submit contact evaluations. - -## __Amazon Pinpoint__ - - ### Features - - Adds support for journey runs and querying journey execution metrics based on journey runs. Adds execution metrics to campaign activities. Updates docs for Advanced Quiet Time. - -# __2.20.52__ __2023-04-24__ -## __AWS CRT HTTP Client__ - - ### Bugfixes - - Fixed an issue where connection pool metrics were not reported in the AWS CRT HTTP client. - -## __AWS Elemental MediaConvert__ - - ### Features - - This release introduces a noise reduction pre-filter, linear interpolation deinterlace mode, video pass-through, updated default job settings, and expanded LC-AAC Stereo audio bitrate ranges. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Appflow__ - - ### Features - - Increased the max length for RefreshToken and AuthCode from 2048 to 4096. - -## __Amazon CodeCatalyst__ - - ### Features - - Documentation updates for Amazon CodeCatalyst. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - API changes to AWS Verified Access related to identity providers' information. - -## __Amazon Rekognition__ - - ### Features - - Added new status result to Liveness session status. - -# __2.20.51__ __2023-04-21__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - This release adds a new API CreateParticipant. For Amazon Connect Chat, you can use this new API to customize chat flow experiences. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation update to address various Amazon ECS tickets. - -## __Firewall Management Service__ - - ### Features - - AWS Firewall Manager adds support for multiple administrators. You can now delegate more than one administrator per organization. - -# __2.20.50__ __2023-04-20__ -## __AWS IoT__ - - ### Features - - Support additional OTA states in GetOTAUpdate API - -## __AWS SDK for Java v2__ - - ### Features - - API to Add TrustAllCertificates in CRT S3 Client options for test purposes - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - You can now create encrypted API keys to use in a client application integration of the JavaScript CAPTCHA API . You can also retrieve a list of your API keys and the JavaScript application integration URL. - -## __Amazon Chime__ - - ### Features - - Adds support for Hindi and Thai languages and additional Amazon Transcribe parameters to the StartMeetingTranscription API. - -## __Amazon Chime SDK Media Pipelines__ - - ### Features - - This release adds support for specifying the recording file format in an S3 recording sink configuration. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Adds support for Hindi and Thai languages and additional Amazon Transcribe parameters to the StartMeetingTranscription API. - -## __Amazon GameLift__ - - ### Features - - Amazon GameLift supports creating Builds for Windows 2016 operating system. - -## __Amazon GuardDuty__ - - ### Features - - This release adds support for the new Lambda Protection feature. - -## __Amazon Import/Export Snowball__ - - ### Features - - Adds support for Amazon S3 compatible storage. AWS Snow Family customers can now use Amazon S3 compatible storage on Snowball Edge devices. Also adds support for V3_5S. This is a refreshed AWS Snowball Edge Storage Optimized device type with 210TB SSD (customer usable). - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Canvas adds ModelRegisterSettings support for CanvasAppSettings. - -# __2.20.49__ __2023-04-19__ -## __AWS Resource Access Manager__ - - ### Features - - This release adds support for customer managed permissions. Customer managed permissions enable customers to author and manage tailored permissions for resources shared using RAM. - -## __AWS S3 Control__ - - ### Features - - Provides support for overriding endpoint when region is "snow". This will enable bucket APIs for Amazon S3 Compatible storage on Snow Family devices. - -## __AWS SDK for Java v2__ - - ### Features - - API to Add TrustAllCertificates in CRT S3 Client options for test purposes - - Updated endpoint and partition metadata. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __AWS SecurityHub__ - - ### Features - - Update that adds SDK code examples for Security Hub - -## __Amazon Comprehend__ - - ### Features - - This release supports native document models for custom classification, in addition to plain-text models. You train native document models using documents (PDF, Word, images) in their native format. - -## __Amazon EC2 Container Service__ - - ### Features - - This release supports the Account Setting "TagResourceAuthorization" that allows for enhanced Tagging security controls. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for the ImageId parameter of CreateCustomDBEngineVersion to RDS Custom for Oracle - -## __Amazon Simple Storage Service__ - - ### Features - - Provides support for "Snow" Storage class. - -# __2.20.48__ __2023-04-17__ -## __AWS IoT Wireless__ - - ### Features - - Supports the new feature of LoRaWAN roaming, allows to configure MaxEirp for LoRaWAN gateway, and allows to configure PingSlotPeriod for LoRaWAN multicast group - -## __AWS Lambda__ - - ### Features - - Add Python 3.10 (python3.10) support to AWS Lambda - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Appflow__ - - ### Features - - This release adds a Client Token parameter to the following AppFlow APIs: Create/Update Connector Profile, Create/Update Flow, Start Flow, Register Connector, Update Connector Registration. The Client Token parameter allows idempotent operations for these APIs. - -## __Amazon CloudWatch Internet Monitor__ - - ### Features - - This release includes a new configurable value, TrafficPercentageToMonitor, which allows users to adjust the amount of traffic monitored by percentage - -## __Amazon DynamoDB__ - - ### Features - - Documentation updates for DynamoDB API - -## __EMR Serverless__ - - ### Features - - The GetJobRun API has been updated to include the job's billed resource utilization. This utilization shows the aggregate vCPU, memory and storage that AWS has billed for the job run. The billed resources include a 1-minute minimum usage for workers, plus additional storage over 20 GB per worker. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Changed existing APIs and added new APIs to support using an account-level launch configuration template with AWS Elastic Disaster Recovery. - -# __2.20.47__ __2023-04-14__ -## __AWS Lambda__ - - ### Features - - This release adds SnapStart related exceptions to InvokeWithResponseStream API. IAM access related documentation is also added for this API. - -## __AWS Migration Hub Refactor Spaces__ - - ### Features - - Doc only update for Refactor Spaces environments without network bridge feature. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon EC2 Container Service__ - - ### Features - - This release supports ephemeral storage for AWS Fargate Windows containers. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support of modifying the engine mode of database clusters. - -# __2.20.46__ __2023-04-13__ -## __AWS MediaConnect__ - - ### Features - - Gateway is a new feature of AWS Elemental MediaConnect. Gateway allows the deployment of on-premises resources for the purpose of transporting live video to and from the AWS Cloud. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Chime SDK Voice__ - - ### Features - - This release adds tagging support for Voice Connectors and SIP Media Applications - -# __2.20.45__ __2023-04-12__ -## __AWS Ground Station__ - - ### Features - - AWS Ground Station Wideband DigIF GA Release - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Managed Blockchain__ - - ### Features - - Removal of the Ropsten network. The Ethereum foundation ceased support of Ropsten on December 31st, 2022.. - -# __2.20.44__ __2023-04-11__ -## __AWS IoT__ - - ### Features - - Re-release to remove unexpected API changes - -## __AWS IoT Data Plane__ - - ### Features - - This release adds support for MQTT5 user properties when calling the AWS IoT GetRetainedMessage API - -## __AWS SDK for Java v2__ - - ### Features - - Exposes endpointOverride in SdkClient through ServiceClientConfiguration - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs. - -## __Amazon Elastic Container Registry Public__ - - ### Features - - This release will allow using registry alias as registryId in BatchDeleteImage request. - -## __Amazon EventBridge__ - - ### Features - - EventBridge PutTarget support for multiple SQL arguments on RedshiftDataParameters - -## __EMR Serverless__ - - ### Features - - This release extends GetJobRun API to return job run timeout (executionTimeoutMinutes) specified during StartJobRun call (or default timeout of 720 minutes if none was specified). - -# __2.20.43__ __2023-04-10__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK now supports conversion of 608 paint-on captions to pop-on captions for SCC sources. - -## __AWS Marketplace Catalog Service__ - - ### Features - - Added three new APIs to support resource sharing: GetResourcePolicy, PutResourcePolicy, and DeleteResourcePolicy. Added new OwnershipType field to ListEntities request to let users filter on entities that are shared with them. Increased max page size of ListEntities response from 20 to 50 results. - -## __AWS SDK for Java v2__ - - ### Features - - Expose StandardRetryOptions of S3ClientOptions in the S3CrtClient Interface - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - This release adds the ability to configure an agent's routing profile to receive contacts from multiple channels at the same time via extending the UpdateRoutingProfileConcurrency, CreateRoutingProfile and DescribeRoutingProfile APIs. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for enabling FIPS compliance on Amazon ECS Fargate tasks - -## __Amazon Omics__ - - ### Features - - Remove unexpected API changes. - -## __Amazon Rekognition__ - - ### Features - - This release adds support for Face Liveness APIs in Amazon Rekognition. Updates UpdateStreamProcessor to return ResourceInUseException Exception. Minor updates to API documentation. - -# __2.20.42__ __2023-04-07__ -## __AWS Lambda__ - - ### Features - - This release adds a new Lambda InvokeWithResponseStream API to support streaming Lambda function responses. The release also adds a new InvokeMode parameter to Function Url APIs to control whether the response will be streamed or buffered. - -## __AWS Service Catalog__ - - ### Features - - Updates description for property - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Updated timestamp format for GetLifecyclePolicy API - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - This release adds a new parameter 'DBClusterParameterGroupName' to 'RestoreDBClusterFromSnapshot' API to associate the name of the DB cluster parameter group while performing restore. - -## __Amazon DynamoDB Enhanced Client__ - - ### Bugfixes - - Include flattened mappers in attribute converter resolution - - Contributed by: [@akiesler](https://github.com/akiesler) - -## __Amazon FSx__ - - ### Features - - Amazon FSx for Lustre now supports creating data repository associations on Persistent_1 and Scratch_2 file systems. - -## __Amazon QuickSight__ - - ### Features - - This release has two changes: adding the OR condition to tag-based RLS rules in CreateDataSet and UpdateDataSet; adding RefreshSchedule and Incremental RefreshProperties operations for users to programmatically configure SPICE dataset ingestions. - -## __Amazon S3__ - - ### Features - - Add support for the following in the CRT S3 client: - - - Enabling/disabling accelerate endpoints - - Using pathstyle addressing - -## __Redshift Data API Service__ - - ### Features - - Update documentation of API descriptions as needed in support of temporary credentials with IAM identity. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@akiesler](https://github.com/akiesler) -# __2.20.41__ __2023-04-06__ -## __AWS CloudFormation__ - - ### Features - - Including UPDATE_COMPLETE as a failed status for DeleteStack waiter. - -## __AWS IoT Greengrass V2__ - - ### Features - - Add support for SUCCEEDED value in coreDeviceExecutionStatus field. Documentation updates for Greengrass V2. - -## __AWS Proton__ - - ### Features - - This release adds support for the AWS Proton service sync feature. Service sync enables managing an AWS Proton service (creating and updating instances) and all of it's corresponding service instances from a Git repository. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Relational Database Service__ - - ### Features - - Adds and updates the SDK examples - -## __Amazon S3__ - - ### Features - - Adding feature for parsing S3 URIs - -# __2.20.40__ __2023-04-05__ -## __AWS App Runner__ - - ### Features - - App Runner adds support for seven new vCPU and memory configurations. - -## __AWS Config__ - - ### Features - - This release adds resourceType enums for types released in March 2023. - -## __AWS Network Firewall__ - - ### Features - - AWS Network Firewall now supports IPv6-only subnets. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SSO Identity Store__ - - ### Features - - Documentation updates for Identity Store CLI command reference. - -## __AWS Service Catalog__ - - ### Features - - removed incorrect product type value - -## __Amazon EC2 Container Service__ - - ### Features - - This is a document only updated to add information about Amazon Elastic Inference (EI). - -## __Amazon Interactive Video Service RealTime__ - - ### Features - - Fix ParticipantToken ExpirationTime format - -## __Amazon VPC Lattice__ - - ### Features - - This release removes the entities in the API doc model package for auth policies. - -# __2.20.39__ __2023-04-04__ -## __AWS Amplify UI Builder__ - - ### Features - - Support StorageField and custom displays for data-bound options in form builder. Support non-string operands for predicates in collections. Support choosing client to get token from. - -## __AWS Data Exchange__ - - ### Features - - This release updates the value of MaxResults. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - This release rolls back association config feature for webACLs that protect CloudFront protections. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - C6in, M6in, M6idn, R6in and R6idn bare metal instances are powered by 3rd Generation Intel Xeon Scalable processors and offer up to 200 Gbps of network bandwidth. - -## __Amazon Elastic Inference__ - - ### Features - - Updated public documentation for the Describe and Tagging APIs. - -## __Amazon SageMaker Runtime__ - - ### Features - - Amazon SageMaker Asynchronous Inference now provides customers a FailureLocation as a response parameter in InvokeEndpointAsync API to capture the model failure responses. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Asynchronous Inference now allows customer's to receive failure model responses in S3 and receive success/failure model responses in SNS notifications. - -## __Auto Scaling__ - - ### Features - - Documentation updates for Amazon EC2 Auto Scaling - -# __2.20.38__ __2023-04-03__ -## __AWS Glue__ - - ### Features - - Add support for database-level federation - -## __AWS Lake Formation__ - - ### Features - - Add support for database-level federation - -## __AWS License Manager__ - - ### Features - - This release adds grant override options to the CreateGrantVersion API. These options can be used to specify grant replacement behavior during grant activation. - -## __AWS SDK for Java v2__ - - ### Features - - Added option of using an explicit `ExecutorService` in `FileAsyncResponseTransformer` - - Contributed by: [@mpdn](https://github.com/mpdn) - - Updated endpoint and partition metadata. - -## __AWS Service Catalog__ - - ### Features - - This release introduces Service Catalog support for Terraform open source. It enables 1. The notify* APIs to Service Catalog. These APIs are used by the terraform engine to notify the result of the provisioning engine execution. 2. Adds a new TERRAFORM_OPEN_SOURCE product type in CreateProduct API. - -## __AWS WAFV2__ - - ### Features - - For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs. - -## __AmazonMWAA__ - - ### Features - - This Amazon MWAA release adds the ability to customize the Apache Airflow environment by launching a shell script at startup. This shell script is hosted in your environment's Amazon S3 bucket. Amazon MWAA runs the script before installing requirements and initializing the Apache Airflow process. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@mpdn](https://github.com/mpdn) -# __2.20.37__ __2023-03-31__ -## __AWS CRT-based S3 client__ - - ### Bugfixes - - Fixed the issue where AWS CRT-based S3 client was eagerly buffering data before the underlying CRT component was able to handle it. See [#3726](https://github.com/aws/aws-sdk-java-v2/issues/3726) - - Reduced the buffer used to upload object from 16MB to 1MB. - -## __AWS Resilience Hub__ - - ### Features - - Adding EKS related documentation for appTemplateBody - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Server Migration Service__ - - ### Features - - Deprecating AWS Server Migration Service. - -## __Amazon CloudWatch Internet Monitor__ - - ### Features - - This release adds a new feature for Amazon CloudWatch Internet Monitor that enables customers to deliver internet measurements to Amazon S3 buckets as well as CloudWatch Logs. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2 On Demand Capacity Reservations - -## __Amazon SageMaker Feature Store Runtime__ - - ### Features - - In this release, you can now chose between soft delete and hard delete when calling the DeleteRecord API, so you have more flexibility when it comes to managing online store data. - -## __Amazon Simple Storage Service__ - - ### Features - - Documentation updates for Amazon S3 - -# __2.20.36__ __2023-03-30__ -## __AWS Batch__ - - ### Features - - This feature allows Batch on EKS to support configuration of Pod Labels through Metadata for Batch on EKS Jobs. - -## __AWS Compute Optimizer__ - - ### Features - - This release adds support for HDD EBS volume types and io2 Block Express. We are also adding support for 61 new instance types and instances that have non consecutive runtime. - -## __AWS Glue__ - - ### Features - - This release adds support for AWS Glue Data Quality, which helps you evaluate and monitor the quality of your data and includes the API for creating, deleting, or updating data quality rulesets, runs and evaluations. - -## __AWS Network Firewall__ - - ### Features - - AWS Network Firewall added TLS inspection configurations to allow TLS traffic inspection. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Well-Architected Tool__ - - ### Features - - AWS Well-Architected SDK now supports getting consolidated report metrics and generating a consolidated report PDF. - -## __AWSKendraFrontendService__ - - ### Features - - AWS Kendra now supports featured results for a query. - -## __Amazon Athena__ - - ### Features - - Make DefaultExecutorDpuSize and CoordinatorDpuSize fields optional in StartSession - -## __Amazon EMR__ - - ### Features - - Updated DescribeCluster and ListClusters API responses to include ErrorDetail that specifies error code, programmatically accessible error data,and an error message. ErrorDetail provides the underlying reason for cluster failure and recommends actions to simplify troubleshooting of EMR clusters. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Tunnel Endpoint Lifecycle control, a new feature that provides Site-to-Site VPN customers with better visibility and control of their VPN tunnel maintenance updates. - -## __Amazon GuardDuty__ - - ### Features - - Added EKS Runtime Monitoring feature support to existing detector, finding APIs and introducing new Coverage APIs - -## __Amazon Interactive Video Service__ - - ### Features - - Amazon Interactive Video Service (IVS) now offers customers the ability to configure IVS channels to allow insecure RTMP ingest. - -## __Amazon SageMaker geospatial capabilities__ - - ### Features - - Amazon SageMaker geospatial capabilities now supports server-side encryption with customer managed KMS key and SageMaker notebooks with a SageMaker geospatial image in a Amazon SageMaker Domain with VPC only mode. - -## __Amazon VPC Lattice__ - - ### Features - - General Availability (GA) release of Amazon VPC Lattice - -## __Auto Scaling__ - - ### Features - - Amazon EC2 Auto Scaling now supports Elastic Load Balancing traffic sources with the AttachTrafficSources, DetachTrafficSources, and DescribeTrafficSources APIs. This release also introduces a new activity status, "WaitingForConnectionDraining", for VPC Lattice to the DescribeScalingActivities API. - -## __EC2 Image Builder__ - - ### Features - - Adds support for new image workflow details and image vulnerability detection. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Adding a field to the replication configuration APIs to support the auto replicate new disks feature. We also deprecated RetryDataReplication. - -# __2.20.35__ __2023-03-29__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Relational Database Service__ - - ### Features - - Add support for creating a read replica DB instance from a Multi-AZ DB cluster. - -## __OpenSearch Service Serverless__ - - ### Features - - This release includes two new exception types "ServiceQuotaExceededException" and "OcuLimitExceededException". - -# __2.20.34__ __2023-03-28__ -## __AWS IoT Data Plane__ - - ### Features - - Add endpoint ruleset support for cn-north-1. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - A binary attribute value must be encoded in base64 format for its String representation in EnhancedDocument.toJson() API - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Increased maximum length of "TriggerDetails.rawData" to 10K characters and "IncidentSummary" to 8K characters. - -## __AWS Systems Manager Incident Manager Contacts__ - - ### Features - - This release adds 12 new APIs as part of Oncall Schedule feature release, adds support for a new contact type: ONCALL_SCHEDULE. Check public documentation for AWS ssm-contacts for more information - -# __2.20.33__ __2023-03-27__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports ID3 tag insertion for audio only HLS output groups. AWS Elemental Link devices now support tagging. - -## __AWS IoT Wireless__ - - ### Features - - Introducing new APIs that enable Sidewalk devices to communicate with AWS IoT Core through Sidewalk gateways. This will empower AWS customers to connect Sidewalk devices with other AWS IoT Services, creating possibilities for seamless integration and advanced device management. - -## __AWS SecurityHub__ - - ### Features - - Added new resource detail objects to ASFF, including resources for AwsEksCluster, AWSS3Bucket, AwsEc2RouteTable and AwsEC2Instance. - -## __AWS Service Catalog App Registry__ - - ### Features - - In this release, we started supporting ARN in applicationSpecifier and attributeGroupSpecifier. GetAttributeGroup, ListAttributeGroups and ListAttributeGroupsForApplication APIs will now have CreatedBy field in the response. - -## __Amazon Athena__ - - ### Features - - Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or higher when they submit queries. - -## __Amazon Chime SDK Voice__ - - ### Features - - Documentation updates for Amazon Chime SDK Voice. - -## __Amazon Connect Participant Service__ - - ### Features - - This release provides an update to the SendMessage API to handle interactive message response content-types. - -## __Amazon Connect Service__ - - ### Features - - This release introduces support for RelatedContactId in the StartChatContact API. Interactive message and interactive message response have been added to the list of supported message content types for this API as well. - -## __Amazon SageMaker Service__ - - ### Features - - Fixed some improperly rendered links in SDK documentation. - -## __Amazon Voice ID__ - - ### Features - - Amazon Connect Voice ID now supports multiple fraudster watchlists. Every domain has a default watchlist where all existing fraudsters are placed by default. Custom watchlists may now be created, managed, and evaluated against for known fraudster detection. - -# __2.20.32__ __2023-03-24__ -## __AWS SDK for Java v2__ - - ### Features - - Adds ServiceClientConfiguration to SdkClient which exposes client settings to the user - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch__ - - ### Features - - Doc-only update to correct alarm actions list - -## __Amazon Comprehend__ - - ### Features - - This release adds a new field (FlywheelArn) to the EntitiesDetectionJobProperties object. The FlywheelArn field is returned in the DescribeEntitiesDetectionJob and ListEntitiesDetectionJobs responses when the EntitiesDetection job is started with a FlywheelArn instead of an EntityRecognizerArn . - -## __Amazon Relational Database Service__ - - ### Features - - Added error code CreateCustomDBEngineVersionFault for when the create custom engine version for Custom engines fails. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix a bug where, if validation of of the amount of expected data to be received (HTTP `Content-Length`) fails, the connection would be left dangling, consuming a connection from the pool until the client is shut down. - -# __2.20.31__ __2023-03-23__ -## __AWS Batch__ - - ### Features - - This feature allows Batch to support configuration of ephemeral storage size for jobs running on FARGATE - -## __AWS Cloud Map__ - - ### Features - - Reverted the throttling exception RequestLimitExceeded for AWS Cloud Map APIs introduced in SDK version 1.12.424 2023-03-09 to previous exception specified in the ErrorCode. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK now supports passthrough of ID3v2 tags for audio inputs to audio-only HLS outputs. - -## __AWS SDK for Java v2__ - - ### Features - - Introducing Enhanced Document API: A Higher-Level API for Working with Amazon DynamoDB Items - - Updated endpoint and partition metadata. - -## __Amazon Chime SDK Identity__ - - ### Features - - AppInstanceBots can be used to add a bot powered by Amazon Lex to chat channels. ExpirationSettings provides automatic resource deletion for AppInstanceUsers. - -## __Amazon Chime SDK Media Pipelines__ - - ### Features - - This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio. - -## __Amazon Chime SDK Messaging__ - - ### Features - - ExpirationSettings provides automatic resource deletion for Channels. - -## __Amazon Chime SDK Voice__ - - ### Features - - This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio. - -## __Amazon GuardDuty__ - - ### Features - - Adds AutoEnableOrganizationMembers attribute to DescribeOrganizationConfiguration and UpdateOrganizationConfiguration APIs. - -## __Amazon Interactive Video Service RealTime__ - - ### Features - - Initial release of the Amazon Interactive Video Service RealTime API. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Autopilot adds two new APIs - CreateAutoMLJobV2 and DescribeAutoMLJobV2. Amazon SageMaker Notebook Instances now supports the ml.geospatial.interactive instance type. - -## __Amazon Textract__ - - ### Features - - The AnalyzeDocument - Tables feature adds support for new elements in the API: table titles, footers, section titles, summary cells/tables, and table type. - -## __CodeArtifact__ - - ### Features - - Repository CreationTime is added to the CreateRepository and ListRepositories API responses. - -# __2.20.30__ __2023-03-22__ -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS IoT TwinMaker__ - - ### Features - - This release adds support of adding metadata when creating a new scene or updating an existing scene. - -## __AWS Network Manager__ - - ### Features - - This release includes an update to create-transit-gateway-route-table-attachment, showing example usage for TransitGatewayRouteTableArn. - -## __AWS Resilience Hub__ - - ### Features - - This release provides customers with the ability to import resources from within an EKS cluster and assess the resiliency of EKS cluster workloads. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon EventBridge Pipes__ - - ### Features - - This release improves validation on the ARNs in the API model - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This Patch Manager release supports creating, updating, and deleting Patch Baselines for AmazonLinux2023, AlmaLinux. - -# __2.20.29__ __2023-03-21__ -## __AWS Clean Rooms Service__ - - ### Features - - GA Release of AWS Clean Rooms, Added Tagging Functionality - -## __AWS IoT SiteWise__ - - ### Features - - Provide support for tagging of data streams and enabling tag based authorization for property alias - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Chime SDK Messaging__ - - ### Features - - Amazon Chime SDK messaging customers can now manage streaming configuration for messaging data for archival and analysis. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for AWS Network Firewall, AWS PrivateLink, and Gateway Load Balancers to Amazon VPC Reachability Analyzer, and it makes the path destination optional as long as a destination address in the filter at source is provided. - -## __Application Migration Service__ - - ### Features - - This release introduces the Import and export feature and expansion of the post-launch actions - -# __2.20.28__ __2023-03-20__ -## __AWS CRT-based S3 client__ - - ### Features - - Exposes `S3CrtHttpConfiguration` to allow users to configure HTTP settings such as proxy and connection timeout on AWS CRT-based S3 client. [#3262](https://github.com/aws/aws-sdk-java-v2/issues/3262) - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Neptune__ - - ### Features - - This release makes following few changes. db-cluster-identifier is now a required parameter of create-db-instance. describe-db-cluster will now return PendingModifiedValues and GlobalClusterIdentifier fields in the response. - -## __Amazon S3 on Outposts__ - - ### Features - - S3 On Outposts added support for endpoint status, and a failed endpoint reason, if any - -## __Amazon WorkDocs__ - - ### Features - - This release adds a new API, SearchResources, which enable users to search through metadata and content of folders, documents, document versions and comments in a WorkDocs site. - -## __Application Auto Scaling__ - - ### Features - - With this release customers can now tag their Application Auto Scaling registered targets with key-value pairs and manage IAM permissions for all the tagged resources centrally. - -# __2.20.27__ __2023-03-17__ -## __AWS Config__ - - ### Features - - This release adds resourceType enums for types released from October 2022 through February 2023. - -## __AWS Database Migration Service__ - - ### Features - - S3 setting to create AWS Glue Data Catalog. Oracle setting to control conversion of timestamp column. Support for Kafka SASL Plain authentication. Setting to map boolean from PostgreSQL to Redshift. SQL Server settings to force lob lookup on inline LOBs and to control access of database logs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWSBillingConductor__ - - ### Features - - This release adds a new filter to ListAccountAssociations API and a new filter to ListBillingGroups API. - -# __2.20.26__ __2023-03-16__ -## __AWS Resource Explorer__ - - ### Features - - Documentation updates for APIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon GuardDuty__ - - ### Features - - Updated 9 APIs for feature enablement to reflect expansion of GuardDuty to features. Added new APIs and updated existing APIs to support RDS Protection GA. - -## __Amazon SageMaker Runtime__ - - ### Features - - Documentation updates for SageMaker Runtime - -# __2.20.25__ __2023-03-15__ -## __AWS S3 Control__ - - ### Features - - Added support for S3 Object Lambda aliases. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Security Lake__ - - ### Features - - Make Create/Get/ListSubscribers APIs return resource share ARN and name so they can be used to validate the RAM resource share to accept. GetDatalake can be used to track status of UpdateDatalake and DeleteDatalake requests. - -## __Migration Hub Strategy Recommendations__ - - ### Features - - This release adds the binary analysis that analyzes IIS application DLLs on Windows and Java applications on Linux to provide anti-pattern report without configuring access to the source code. - -# __2.20.24__ __2023-03-14__ -## __AWS Data Exchange__ - - ### Features - - This release enables data providers to license direct access to S3 objects encrypted with Customer Managed Keys (CMK) in AWS KMS through AWS Data Exchange. Subscribers can use these keys to decrypt, then use the encrypted S3 objects shared with them, without creating or managing copies. - -## __AWS Direct Connect__ - - ### Features - - describe-direct-connect-gateway-associations includes a new status, updating, indicating that the association is currently in-process of updating. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation only updates to correct customer-reported issues - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new DnsOptions key (PrivateDnsOnlyForInboundResolverEndpoint) to CreateVpcEndpoint and ModifyVpcEndpoint APIs. - -## __Amazon Keyspaces__ - - ### Features - - Adding support for client-side timestamps - -## __Application Auto Scaling__ - - ### Features - - Application Auto Scaling customers can now use mathematical functions to customize the metric used with Target Tracking policies within the policy configuration itself, saving the cost and effort of publishing the customizations as a separate metric. - -# __2.20.23__ __2023-03-13__ -## __AWS Lake Formation__ - - ### Features - - This release updates the documentation regarding Get/Update DataCellsFilter - -## __AWS S3 Control__ - - ### Features - - Added support for cross-account Multi-Region Access Points. Added support for S3 Replication for S3 on Outposts. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Telco Network Builder__ - - ### Features - - This release adds tagging support to the following Network Instance APIs : Instantiate, Update, Terminate. - -## __Amazon AppIntegrations Service__ - - ### Features - - Adds FileConfiguration to Amazon AppIntegrations CreateDataIntegration supporting scheduled downloading of third party files into Amazon Connect from sources such as Microsoft SharePoint. - -## __Amazon Connect Wisdom Service__ - - ### Features - - This release extends Wisdom CreateKnowledgeBase API to support SharePoint connector type by removing the @required trait for objectField - -# __2.20.22__ __2023-03-10__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Secrets Manager__ - - ### Features - - The type definitions of SecretString and SecretBinary now have a minimum length of 1 in the model to match the exception thrown when you pass in empty values. - -## __Amazon Interactive Video Service Chat__ - - ### Features - - This release adds a new exception returned when calling AWS IVS chat UpdateLoggingConfiguration. Now UpdateLoggingConfiguration can return ConflictException when invalid updates are made in sequence to Logging Configurations. - -# __2.20.21__ __2023-03-09__ -## __AWS Cloud Map__ - - ### Features - - Updated all AWS Cloud Map APIs to provide consistent throttling exception (RequestLimitExceeded) - -## __AWS Network Manager__ - - ### Features - - This update provides example usage for TransitGatewayRouteTableArn. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch Evidently__ - - ### Features - - Updated entity override documentation - -## __Amazon Connect Service__ - - ### Features - - This release adds a new API, GetMetricDataV2, which returns metric data for Amazon Connect. - -## __Amazon QuickSight__ - - ### Features - - This release has two changes: add state persistence feature for embedded dashboard and console in GenerateEmbedUrlForRegisteredUser API; add properties for hidden collapsed row dimensions in PivotTableOptions. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Inference now allows SSM access to customer's model container by setting the "EnableSSMAccess" parameter for a ProductionVariant in CreateEndpointConfig API. - -## __Amazon Simple Email Service__ - - ### Features - - This release introduces a new recommendation in Virtual Deliverability Manager Advisor, which detects missing or misconfigured Brand Indicator for Message Identification (BIMI) DNS records for customer sending identities. - -## __CodeArtifact__ - - ### Features - - This release introduces the generic package format, a mechanism for storing arbitrary binary assets. It also adds a new API, PublishPackageVersion, to allow for publishing generic packages. - -## __Redshift Data API Service__ - - ### Features - - Added support for Redshift Serverless workgroup-arn wherever the WorkgroupName parameter is available. - -# __2.20.20__ __2023-03-08__ -## __AWS Elemental MediaPackage__ - - ### Features - - This release provides the date and time live resources were created. - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - This release provides the date and time VOD resources were created. - -## __AWS Lake Formation__ - - ### Features - - This release adds two new API support "GetDataCellsFiler" and "UpdateDataCellsFilter", and also updates the corresponding documentation. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Athena__ - - ### Features - - A new field SubstatementType is added to GetQueryExecution API, so customers have an error free way to detect the query type and interpret the result. - -## __Amazon DynamoDB__ - - ### Features - - Adds deletion protection support to DynamoDB tables. Tables with deletion protection enabled cannot be deleted. Deletion protection is disabled by default, can be enabled via the CreateTable or UpdateTable APIs, and is visible in TableDescription. This setting is not replicated for Global Tables. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Introducing Amazon EC2 C7g, M7g and R7g instances, powered by the latest generation AWS Graviton3 processors and deliver up to 25% better performance over Graviton2-based instances. - -## __Amazon Route 53 Resolver__ - - ### Features - - Add dual-stack and IPv6 support for Route 53 Resolver Endpoint,Add IPv6 target IP in Route 53 Resolver Forwarding Rule - -## __Amazon S3__ - - ### Features - - Adding PartType field to UploadPartRequest to indicate whether the part is the last part or not. - -## __Amazon SageMaker Service__ - - ### Features - - There needs to be a user identity to specify the SageMaker user who perform each action regarding the entity. However, these is a not a unified concept of user identity across SageMaker service that could be used today. - -# __2.20.19__ __2023-03-07__ -## __AWS Database Migration Service__ - - ### Features - - This release adds DMS Fleet Advisor Target Recommendation APIs and exposes functionality for DMS Fleet Advisor. It adds functionality to start Target Recommendation calculation. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Location Service__ - - ### Features - - Documentation update for the release of 3 additional map styles for use with Open Data Maps: Open Data Standard Dark, Open Data Visualization Light & Open Data Visualization Dark. - -# __2.20.18__ __2023-03-06__ -## __AWS Account__ - - ### Features - - AWS Account alternate contact email addresses can now have a length of 254 characters and contain the character "|". - -## __Amazon Interactive Video Service__ - - ### Features - - Updated text description in DeleteChannel, Stream, and StreamSummary. - -# __2.20.17__ __2023-03-03__ -## __AWS Elemental MediaConvert__ - - ### Features - - The AWS Elemental MediaConvert SDK has improved handling for different input and output color space combinations. - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive adds support for Nielsen watermark timezones. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon DynamoDB__ - - ### Features - - Documentation updates for DynamoDB. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for a new boot mode for EC2 instances called 'UEFI Preferred'. - -## __Amazon Macie 2__ - - ### Features - - Documentation updates for Amazon Macie - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe now supports role access for these API operations: CreateVocabulary, UpdateVocabulary, CreateVocabularyFilter, and UpdateVocabularyFilter. - -# __2.20.16__ __2023-03-02__ -## __AWS IoT__ - - ### Features - - A recurring maintenance window is an optional configuration used for rolling out the job document to all devices in the target group observing a predetermined start time, duration, and frequency that the maintenance window occurs. - -## __AWS Organizations__ - - ### Features - - This release introduces a new reason code, ACCOUNT_CREATION_NOT_COMPLETE, to ConstraintViolationException in CreateOrganization API. - -## __AWS Performance Insights__ - - ### Features - - This release adds a new field PeriodAlignment to allow the customer specifying the returned timestamp of time periods to be either the start or end time. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon EventBridge Pipes__ - - ### Features - - This release fixes some input parameter range and patterns. - -## __Amazon SageMaker Service__ - - ### Features - - Add a new field "EndpointMetrics" in SageMaker Inference Recommender "ListInferenceRecommendationsJobSteps" API response. - -## __Migration Hub Strategy Recommendations__ - - ### Features - - This release updates the File Import API to allow importing servers already discovered by customers with reduced pre-requisites. - -# __2.20.15__ __2023-03-01__ -## __AWS Price List Service__ - - ### Features - - This release adds 2 new APIs - ListPriceLists which returns a list of applicable price lists, and GetPriceListFileUrl which outputs a URL to retrieve your price lists from the generated file from ListPriceLists - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CodeCatalyst__ - - ### Features - - Published Dev Environments StopDevEnvironmentSession API - -## __Amazon S3 on Outposts__ - - ### Features - - S3 on Outposts introduces a new API ListOutpostsWithS3, with this API you can list all your Outposts with S3 capacity. - -# __2.20.14__ __2023-02-28__ -## __AWS Key Management Service__ - - ### Features - - AWS KMS is deprecating the RSAES_PKCS1_V1_5 wrapping algorithm option in the GetParametersForImport API that is used in the AWS KMS Import Key Material feature. AWS KMS will end support for this wrapping algorithm by October 1, 2023. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Add commons-codec to bom-internal to fix dependency convergence issue. See [#3787](https://github.com/aws/aws-sdk-java-v2/issues/3787) - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now supports flywheels to help you train and manage new model versions for custom models. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release allows IMDS support to be set to v2-only on an existing AMI, so that all future instances launched from that AMI will use IMDSv2 by default. - -## __Amazon Lightsail__ - - ### Features - - This release adds Lightsail for Research feature support, such as GUI session access, cost estimates, stop instance on idle, and disk auto mount. - -## __Amazon Managed Blockchain__ - - ### Features - - This release adds support for tagging to the accessor resource in Amazon Managed Blockchain - -## __Amazon Omics__ - - ### Features - - Minor model changes to accomodate batch imports feature - -# __2.20.13__ __2023-02-27__ -## __AWS Elemental MediaConvert__ - - ### Features - - The AWS Elemental MediaConvert SDK has added support for HDR10 to SDR tone mapping, and animated GIF video input sources. - -## __AWS Lambda__ - - ### Features - - This release adds the ability to create ESMs with Document DB change streams as event source. For more information see https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Fix race in FlatteningSubscriber where onClose called before items passed to onNext. See [#3734](https://github.com/aws/aws-sdk-java-v2/issues/3734) - - Contributed by: [@stevenshan](https://github.com/stevenshan) - -## __Amazon CloudWatch Internet Monitor__ - - ### Features - - CloudWatch Internet Monitor is a a new service within CloudWatch that will help application developers and network engineers continuously monitor internet performance metrics such as availability and performance between their AWS-hosted applications and end-users of these applications - -## __Amazon DevOps Guru__ - - ### Features - - This release adds the description field on ListAnomaliesForInsight and DescribeAnomaly API responses for proactive anomalies. - -## __Amazon Timestream Write__ - - ### Features - - This release adds the ability to ingest batched historical data or migrate data in bulk from S3 into Timestream using CSV files. - -## __Elastic Disaster Recovery Service__ - - ### Features - - New fields were added to reflect availability zone data in source server and recovery instance description commands responses, as well as source server launch status. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@stevenshan](https://github.com/stevenshan) -# __2.20.12__ __2023-02-24__ -## __AWS SecurityHub__ - - ### Features - - New Security Hub APIs and updates to existing APIs that help you consolidate control findings and enable and disable controls across all supported standards - -## __AWS Service Catalog__ - - ### Features - - Documentation updates for Service Catalog - -## __Amazon Connect Cases__ - - ### Features - - This release adds the ability to delete domains through the DeleteDomain API. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html - -## __Amazon Connect Service__ - - ### Features - - StartTaskContact API now supports linked task creation with a new optional RelatedContactId parameter - -## __Amazon Redshift__ - - ### Features - - Documentation updates for Redshift API bringing it in line with IAM best practices. - -# __2.20.11__ __2023-02-23__ -## __AWS IoT Wireless__ - - ### Features - - In this release, we add additional capabilities for the FUOTA which allows user to configure the fragment size, the sending interval and the redundancy ratio of the FUOTA tasks - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - You can now associate an AWS WAF v2 web ACL with an AWS App Runner service. - -## __Amazon Appflow__ - - ### Features - - This release enables the customers to choose whether to use Private Link for Metadata and Authorization call when using a private Salesforce connections - -## __Amazon EC2 Container Service__ - - ### Features - - This release supports deleting Amazon ECS task definitions that are in the INACTIVE state. - -## __Amazon GuardDuty__ - - ### Features - - Updated API and data types descriptions for CreateFilter, UpdateFilter, and TriggerDetails. - -## __Amazon Location Service__ - - ### Features - - This release adds support for using Maps APIs with an API Key in addition to AWS Cognito. This includes support for adding, listing, updating and deleting API Keys. - -## __Amazon Macie 2__ - - ### Features - - This release adds support for a new finding type, Policy:IAMUser/S3BucketSharedWithCloudFront, and S3 bucket metadata that indicates if a bucket is shared with an Amazon CloudFront OAI or OAC. - -## __Amazon Managed Grafana__ - - ### Features - - Doc-only update. Updated information on attached role policies for customer provided roles - -# __2.20.10__ __2023-02-22__ -## __AWS DataSync__ - - ### Features - - AWS DataSync has relaxed the minimum length constraint of AccessKey for Object Storage locations to 1. - -## __Amazon Chime SDK Voice__ - - ### Features - - This release introduces support for Voice Connector media metrics in the Amazon Chime SDK Voice namespace - -## __Amazon CloudFront__ - - ### Features - - CloudFront now supports block lists in origin request policies so that you can forward all headers, cookies, or query string from viewer requests to the origin *except* for those specified in the block list. - -## __Amazon OpenSearch Service__ - - ### Features - - This release lets customers configure Off-peak window and software update related properties for a new/existing domain. It enhances the capabilities of StartServiceSoftwareUpdate API; adds 2 new APIs - ListScheduledActions & UpdateScheduledAction; and allows Auto-tune to make use of Off-peak window. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Document only update for Feb 2023 - -## __CloudWatch RUM__ - - ### Features - - CloudWatch RUM now supports CloudWatch Custom Metrics - -# __2.20.9__ __2023-02-21__ -## __AWS Resilience Hub__ - - ### Features - - In this release we improved resilience hub application creation and maintenance by introducing new resource and app component crud APIs, improving visibility and maintenance of application input sources and added support for additional information attributes to be provided by customers. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Fix race condition that could cause a NullPointerException to be raised from ProfileCredentialsProvider. - -## __AWS SecurityHub__ - - ### Features - - Documentation updates for AWS Security Hub - -## __AWS Telco Network Builder__ - - ### Features - - This is the initial SDK release for AWS Telco Network Builder (TNB). AWS Telco Network Builder is a network automation service that helps you deploy and manage telecom networks. - -## __Amazon QuickSight__ - - ### Features - - S3 data sources now accept a custom IAM role. - -# __2.20.8__ __2023-02-20__ -## __AWS Audit Manager__ - - ### Features - - This release introduces a ServiceQuotaExceededException to the UpdateAssessmentFrameworkShare API operation. - -## __Amazon Connect Service__ - - ### Features - - Reasons for failed diff has been approved by SDK Reviewer - -# __2.20.7__ __2023-02-17__ -## __AWS App Runner__ - - ### Features - - This release supports removing MaxSize limit for AutoScalingConfiguration. - -## __AWS Glue__ - - ### Features - - Release of Delta Lake Data Lake Format for Glue Studio Service - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -# __2.20.6__ __2023-02-16__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - Added a notice for account takeover prevention (ATP). The interface incorrectly lets you to configure ATP response inspection in regional web ACLs in Region US East (N. Virginia), without returning an error. ATP response inspection is only available in web ACLs that protect CloudFront distributions. - -## __Amazon EMR__ - - ### Features - - This release provides customers the ability to define a timeout period for procuring capacity during a resize operation for Instance Fleet clusters. Customers can specify this timeout using the ResizeSpecifications parameter supported by RunJobFlow, ModifyInstanceFleet and AddInstanceFleet APIs. - -## __Amazon Interactive Video Service__ - - ### Features - - Doc-only update. Updated text description in DeleteChannel, Stream, and StreamSummary. - -## __Amazon Managed Grafana__ - - ### Features - - With this release Amazon Managed Grafana now supports inbound Network Access Control that helps you to restrict user access to your Grafana workspaces - -# __2.20.5__ __2023-02-15__ -## __AWS CloudTrail__ - - ### Features - - This release adds an InsufficientEncryptionPolicyException type to the StartImport endpoint - -## __AWS Glue__ - - ### Features - - Fix DirectJDBCSource not showing up in CLI code gen - -## __AWS Private 5G__ - - ### Features - - This release introduces a new StartNetworkResourceUpdate API, which enables return/replacement of hardware from a NetworkSite. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - For protected CloudFront distributions, you can now use the AWS WAF Fraud Control account takeover prevention (ATP) managed rule group to block new login attempts from clients that have recently submitted too many failed login attempts. - -## __Amazon Elastic File System__ - - ### Features - - Documentation update for EFS to support IAM best practices. - -## __Amazon Fraud Detector__ - - ### Features - - This release introduces Lists feature which allows customers to reference a set of values in Fraud Detector's rules. With Lists, customers can dynamically manage these attributes in real time. Lists can be created/deleted and its contents can be modified using the Fraud Detector API. - -## __Amazon Relational Database Service__ - - ### Features - - Database Activity Stream support for RDS for SQL Server. - -# __2.20.4__ __2023-02-14__ -## __AWS DataSync__ - - ### Features - - With this launch, we are giving customers the ability to use older SMB protocol versions, enabling them to use DataSync to copy data to and from their legacy storage arrays. - -## __Amazon AppConfig__ - - ### Features - - AWS AppConfig now offers the option to set a version label on hosted configuration versions. Version labels allow you to identify specific hosted configuration versions based on an alternate versioning scheme that you define. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - With this release customers can turn host maintenance on or off when allocating or modifying a supported dedicated host. Host maintenance is turned on by default for supported hosts. - -# __2.20.3__ __2023-02-13__ -## __AWS Account__ - - ### Features - - This release of the Account Management API enables customers to view and manage whether AWS Opt-In Regions are enabled or disabled for their Account. For more information, see https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html - -## __AWS AppConfig Data__ - - ### Features - - AWS AppConfig now offers the option to set a version label on hosted configuration versions. If a labeled hosted configuration version is deployed, its version label is available in the GetLatestConfiguration response. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Keep precedence of options when passed to ProfileFileSupplier.aggregate - -## __Amazon Import/Export Snowball__ - - ### Features - - Adds support for EKS Anywhere on Snowball. AWS Snow Family customers can now install EKS Anywhere service on Snowball Edge Compute Optimized devices. - -# __2.20.2__ __2023-02-10__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - This update provides the Wisdom session ARN for contacts enabled for Wisdom in the chat channel. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support for waiters that automatically poll for an imported snapshot until it reaches the completed state. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds two new neural Japanese voices - Kazuha, Tomoko - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Autopilot adds support for selecting algorithms in CreateAutoMLJob API. - -## __Amazon Simple Notification Service__ - - ### Features - - This release adds support for SNS X-Ray active tracing as well as other updates. - -## __Auto Scaling__ - - ### Features - - You can now either terminate/replace, ignore, or wait for EC2 Auto Scaling instances on standby or protected from scale in. Also, you can also roll back changes from a failed instance refresh. - -# __2.20.1__ __2023-02-09__ -## __AWS Migration Hub Refactor Spaces__ - - ### Features - - This release adds support for creating environments with a network fabric type of NONE - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Documentation updates for Chime Meetings SDK - -## __Amazon CloudWatch Evidently__ - - ### Features - - Updated entity overrides parameter to accept up to 2500 overrides or a total of 40KB. - -## __Amazon EMR Containers__ - - ### Features - - EMR on EKS allows configuring retry policies for job runs through the StartJobRun API. Using retry policies, a job cause a driver pod to be restarted automatically if it fails or is deleted. The job's status can be seen in the DescribeJobRun and ListJobRun APIs and monitored using CloudWatch events. - -## __Amazon Lex Model Building V2__ - - ### Features - - AWS Lex now supports Network of Bots. - -## __Amazon Lex Runtime V2__ - - ### Features - - AWS Lex now supports Network of Bots. - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Lightsail - -## __Amazon WorkDocs__ - - ### Features - - Doc only update for the WorkDocs APIs. - -## __Amazon WorkSpaces__ - - ### Features - - Removed Windows Server 2016 BYOL and made changes based on IAM campaign. - -# __2.20.0__ __2023-02-08__ -## __AWS Backup__ - - ### Features - - This release added one attribute (resource name) in the output model of our 9 existing APIs in AWS backup so that customers will see the resource name at the output. No input required from Customers. - -## __AWS CRT HTTP Client__ - - ### Features - - The AWS CRT HTTP Client is now generally available. Visit [Dev Guide](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) for more information. - -## __AWS Glue__ - - ### Features - - DirectJDBCSource + Glue 4.0 streaming options - -## __AWS Lake Formation__ - - ### Features - - This release removes the LFTagpolicyResource expression limits. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudFront__ - - ### Features - - CloudFront Origin Access Control extends support to AWS Elemental MediaStore origins. - -## __Amazon S3__ - - ### Bugfixes - - Bug fix for Default Md5 checksum was getting skipped even when new http checksum was not set to any checksum algorithm. - -# __2.19.33__ __2023-02-07__ -## __AWS SDK for Java v2__ - - ### Features - - - ProfileCredentialsProvider and ProfileTokenProvider can reload credentials when disk profile changes - - Updated DefaultCredentialsProvider chain for reloading credentials - - Service support classes store ProfileFile as a Supplier interface - - SdkClientOption and SdkExecutionAttributes constants for PROFILE_FILE have been deprecated in favor of PROFILE_FILE_SUPPLIER - - Updated endpoint and partition metadata. - -## __AWS Transfer Family__ - - ### Features - - Updated the documentation for the ImportCertificate API call, and added examples. - -# __2.19.32__ __2023-02-06__ -## __AWS CRT-based S3 Client__ - - ### Bugfixes - - Fix an issue where maxConcurrency configured by the user on the builder was not honored. - -## __AWS Compute Optimizer__ - - ### Features - - AWS Compute optimizer can now infer if Kafka is running on an instance. - -## __AWS Elemental MediaConvert__ - - ### Features - - The AWS Elemental MediaConvert SDK has added improved scene change detection capabilities and a bandwidth reduction filter, along with video quality enhancements, to the AVC encoder. - -## __AWS Outposts__ - - ### Features - - Adds OrderType to Order structure. Adds PreviousOrderId and PreviousLineItemId to LineItem structure. Adds new line item status REPLACED. Increases maximum length of pagination token. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release deprecates the PartyType and Gender enum data types from the Profile model and replaces them with new PartyTypeString and GenderString attributes, which accept any string of length up to 255. - -## __Amazon Fraud Detector__ - - ### Features - - My AWS Service (Amazon Fraud Detector) - This release introduces Cold Start Model Training which optimizes training for small datasets and adds intelligent methods for treating unlabeled data. You can now train Online Fraud Insights or Transaction Fraud Insights models with minimal historical-data. - -# __2.19.31__ __2023-02-03__ -## __AWS Proton__ - - ### Features - - Add new GetResourcesSummary API - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Redshift__ - - ### Features - - Corrects descriptions of the parameters for the API operations RestoreFromClusterSnapshot, RestoreTableFromClusterSnapshot, and CreateCluster. - -# __2.19.30__ __2023-02-02__ -## __AWS CRT HTTP Client__ - - ### Features - - Allow users to enable Post Quantum TLS via `AwsCrtAsyncHttpClient.builder().postQuantumTlsEnabled(true).build()`. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Single Sign-On Admin__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon AppConfig__ - - ### Features - - AWS AppConfig introduces KMS customer-managed key (CMK) encryption of configuration data, along with AWS Secrets Manager as a new configuration data source. S3 objects using SSE-KMS encryption and SSM Parameter Store SecureStrings are also now supported. - -## __Amazon Connect Service__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2. - -## __Amazon Keyspaces__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon QuickSight__ - - ### Features - - QuickSight support for Radar Chart and Dashboard Publish Options - -## __Amazon Redshift__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Elastic Load Balancing__ - - ### Features - - The GWLB Flex Health Check project updates the default values of healthy-threshold-count from 3 to 5 and unhealthy-threshold-count from 3 to 2 - -# __2.19.29__ __2023-02-01__ -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS MediaTailor__ - - ### Features - - The AWS Elemental MediaTailor SDK for Channel Assembly has added support for program updates, and the ability to clip the end of VOD sources in programs. - -## __AWS SDK for Java v2__ - - ### Features - - EC2 Instance Metadata Client is now generally available - https://github.com/aws/aws-sdk-java-v2/issues/61 - - Updated endpoint and partition metadata. - -## __Amazon DevOps Guru__ - - ### Features - - This release adds filter support ListAnomalyForInsight API. - -## __Amazon Forecast Service__ - - ### Features - - This release will enable customer select INCREMENTAL as ImportModel in Forecast's CreateDatasetImportJob API. Verified latest SDK containing required attribute, following https://w.amazon.com/bin/view/AWS-Seer/Launch/Trebuchet/ - -## __Amazon Simple Notification Service__ - - ### Features - - Additional attributes added for set-topic-attributes. - -# __2.19.28__ __2023-01-31__ -## __AWS AppSync__ - - ### Features - - This release introduces the feature to support EventBridge as AppSync data source. - -## __AWS CRT-based S3 Client__ - - ### Bugfixes - - Fixed an issue where port number was not added to host header. See [#3721](https://github.com/aws/aws-sdk-java-v2/issues/3721) and [#3682](https://github.com/aws/aws-sdk-java-v2/issues/3682). - -## __AWS CloudTrail__ - - ### Features - - Add new "Channel" APIs to enable users to manage channels used for CloudTrail Lake integrations, and "Resource Policy" APIs to enable users to manage the resource-based permissions policy attached to a channel. - -## __AWS CloudTrail Data Service__ - - ### Features - - Add CloudTrail Data Service to enable users to ingest activity events from non-AWS sources into CloudTrail Lake. - -## __AWS Ground Station__ - - ### Features - - DigIF Expansion changes to the Customer APIs. - -## __AWS IoT__ - - ### Features - - Added support for IoT Rules Engine Cloudwatch Logs action batch mode. - -## __AWS Outposts__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - New fields have been added to the AWS Security Finding Format. Compliance.SecurityControlId is a unique identifier for a security control across standards. Compliance.AssociatedStandards contains all enabled standards in which a security control is enabled. - -## __AWS Support__ - - ### Features - - This fixes incorrect endpoint construction when a customer is explicitly setting a region. - -## __Access Analyzer__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon Connect Participant Service__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This launch allows customers to associate up to 8 IP addresses to their NAT Gateways to increase the limit on concurrent connections to a single destination by eight times from 55K to 440K. - -## __Amazon Kinesis__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon OpenSearch Service__ - - ### Features - - Amazon OpenSearch Service adds the option for a VPC endpoint connection between two domains when the local domain uses OpenSearch version 1.3 or 2.3. You can now use remote reindex to copy indices from one VPC domain to another without a reverse proxy. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds two new neural American English voices - Ruth, Stephen - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Automatic Model Tuning now supports more completion criteria for Hyperparameter Optimization. - -## __CodeArtifact__ - - ### Features - - This release introduces a new DeletePackage API, which enables deletion of a package and all of its versions from a repository. - -# __2.19.27__ __2023-01-30__ -## __AWS Application Discovery Service__ - - ### Features - - Update ImportName validation to 255 from the current length of 100 - -## __AWS CloudFormation__ - - ### Features - - This feature provides a method of obtaining which regions a stackset has stack instances deployed in. - -## __AWS Elemental MediaConvert__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon CloudDirectory__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - We add Prefix Lists as a new route destination option for LocalGatewayRoutes. This will allow customers to create routes to Prefix Lists. Prefix List routes will allow customers to group individual CIDR routes with the same target into a single route. - -## __Amazon Simple Workflow Service__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __DynamoDB Enhanced Client__ - - ### Bugfixes - - Cache BeanTableSchema and ImmutableTableSchema to prevent potential metaspace memory leak with JDK 15+. See [#3701](https://github.com/aws/aws-sdk-java-v2/issues/3701). - -## __EC2 Image Builder__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Managed Streaming for Kafka__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -# __2.19.26__ __2023-01-27__ -## __AWS Elastic Beanstalk__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __AWS Fault Injection Simulator__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __AWS Greengrass__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __AWS IoT Greengrass V2__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) in SDK. - -## __AWS MediaTailor__ - - ### Features - - This release introduces the As Run logging type, along with API and documentation updates. - -## __AWS Outposts__ - - ### Features - - Adding support for payment term in GetOrder, CreateOrder responses. - -## __AWSServerlessApplicationRepository__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon AppStream__ - - ### Features - - Fixing the issue where Appstream waiters hang for fleet_started and fleet_stopped. - -## __Amazon Glacier__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -## __Amazon SageMaker Runtime__ - - ### Features - - Amazon SageMaker Runtime which supports InvokeEndpointAsync asynchronously can now invoke endpoints with custom timeout values. Asynchronous invocations support longer processing times. - -## __Amazon SageMaker Service__ - - ### Features - - This release supports running SageMaker Training jobs with container images that are in a private Docker registry. - -## __Application Auto Scaling__ - - ### Features - - Enabled FIPS endpoints for GovCloud (US) regions in SDK. - -# __2.19.25__ __2023-01-26__ -## __AWS CRT HTTP Client__ - - ### Features - - Throw UnsupportedOperationException if the AWS CRT HTTP Client is configured with HTTP/2 protocol. - - - ### Bugfixes - - Fix an issue that could result in resource leak when sending request fails due to errors such as invalid request. - -## __AWS IoT FleetWise__ - - ### Features - - Add model validation to BatchCreateVehicle and BatchUpdateVehicle operations that invalidate requests with an empty vehicles list. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Append Content-encoding header instead of over writing the header when Checksum algorithm is selected along with user set Content-encoding - -## __Amazon EventBridge__ - - ### Features - - Minor comments for Redshift Serverless workgroup target support. - -## __Amazon Simple Storage Service__ - - ### Features - - Allow FIPS to be used with path-style URLs. - -# __2.19.24__ __2023-01-25__ -## __AWS CRT HTTP Client__ - - ### Features - - Remove CRT connection timeout default - -## __AWS CloudFormation__ - - ### Features - - Enabled FIPS aws-us-gov endpoints in SDK. - -## __AWS S3 Control__ - - ### Features - - Add additional endpoint tests for S3 Control. Fix missing endpoint parameters for PutBucketVersioning and GetBucketVersioning. Prior to this fix, those operations may have resulted in an invalid endpoint being resolved. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Security Token Service__ - - ### Features - - Doc only change to update wording in a key topic - -## __AWSMainframeModernization__ - - ### Features - - Add returnCode, batchJobIdentifier in GetBatchJobExecution response, for user to view the batch job execution result & unique identifier from engine. Also removed unused headers from REST APIs - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds new functionality that allows customers to provision IPv6 CIDR blocks through Amazon VPC IP Address Manager (IPAM) as well as allowing customers to utilize IPAM Resource Discovery APIs. - -## __Amazon Polly__ - - ### Features - - Add 5 new neural voices - Sergio (es-ES), Andres (es-MX), Remi (fr-FR), Adriano (it-IT) and Thiago (pt-BR). - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Inference Recommender now decouples from Model Registry and could accept Model Name to invoke inference recommendations job; Inference Recommender now provides CPU/Memory Utilization metrics data in recommendation output. - -## __Redshift Serverless__ - - ### Features - - Added query monitoring rules as possible parameters for create and update workgroup operations. - -# __2.19.23__ __2023-01-24__ -## __AWS CRT HTTP Client__ - - ### Features - - Renamed `readBufferSize` -> `readBufferSizeInBytes`. - - Renamed: `ConnectionHealthChecksConfiguration` -> `ConnectionHealthConfiguration` - Renamed: `allowableThroughputFailureInterval` -> `minimumThroughputTimeout` - Renamed: `minThroughputInBytesPerSecond` -> `minimumThroughputInBps` - Renamed: `AwsCrtAsyncHttpClient.builder().connectionHealthChecksConfiguration` -> `AwsCrtAsyncHttpClient.builder().connectionHealthConfiguration` - - - ### Removals - - Removed `tlsCipherPreference`. - -## __AWS Glue DataBrew__ - - ### Features - - Enabled FIPS us-gov-west-1 endpoints in SDK. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Systems Manager for SAP__ - - ### Features - - This release provides updates to documentation and support for listing operations performed by AWS Systems Manager for SAP. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Asia Pacific (Melbourne) Region (ap-southeast-4) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -# __2.19.22__ __2023-01-23__ -## __AWS Lambda__ - - ### Features - - Release Lambda RuntimeManagementConfig, enabling customers to better manage runtime updates to their Lambda functions. This release adds two new APIs, GetRuntimeManagementConfig and PutRuntimeManagementConfig, as well as support on existing Create/Get/Update function APIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Inference now supports P4de instance types. - -# __2.19.21__ __2023-01-20__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - C6in, M6in, M6idn, R6in and R6idn instances are powered by 3rd Generation Intel Xeon Scalable processors (code named Ice Lake) with an all-core turbo frequency of 3.5 GHz. - -## __Amazon Interactive Video Service__ - - ### Features - - API and Doc update. Update to arns field in BatchGetStreamKey. Also updates to operations and structures. - -## __Amazon QuickSight__ - - ### Features - - This release adds support for data bars in QuickSight table and increases pivot table field well limit. - -# __2.19.20__ __2023-01-19__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive adds support for SCTE 35 preRollMilliSeconds. - -## __AWS Glue__ - - ### Features - - Release Glue Studio Hudi Data Lake Format for SDK/CLI - -## __AWS Ground Station__ - - ### Features - - Add configurable prepass and postpass times for DataflowEndpointGroup. Add Waiter to allow customers to wait for a contact that was reserved through ReserveContact - -## __AWS Panorama__ - - ### Features - - Added AllowMajorVersionUpdate option to OTAJobConfig to make appliance software major version updates opt-in. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Appflow__ - - ### Features - - Adding support for Salesforce Pardot connector in Amazon AppFlow. - -## __Amazon CloudWatch Logs__ - - ### Features - - Bug fix - Removed the regex pattern validation from CoralModel to avoid potential security issue. - -## __Amazon Connect Participant Service__ - - ### Features - - This release updates Amazon Connect Participant's GetTranscript api to provide transcripts of past chats on a persistent chat session. - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect Chat introduces Persistent Chat, allowing customers to resume previous conversations with context and transcripts carried over from previous chats, eliminating the need to repeat themselves and allowing agents to provide personalized service with access to entire conversation history. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds SSM Parameter Resource Aliasing support to EC2 Launch Templates. Launch Templates can now store parameter aliases in place of AMI Resource IDs. CreateLaunchTemplateVersion and DescribeLaunchTemplateVersions now support a convenience flag, ResolveAlias, to return the resolved parameter value. - -## __Amazon OpenSearch Service__ - - ### Features - - This release adds the enhanced dry run option, that checks for validation errors that might occur when deploying configuration changes and provides a summary of these errors, if any. The feature will also indicate whether a blue/green deployment will be required to apply a change. - -## __Amazon SageMaker Service__ - - ### Features - - HyperParameterTuningJobs now allow passing environment variables into the corresponding TrainingJobs - -## __CodeArtifact__ - - ### Features - - Documentation updates for CodeArtifact - -# __2.19.19__ __2023-01-18__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - Improved the visibility of the guidance for updating AWS WAF resources, such as web ACLs and rule groups. - -## __Amazon CloudWatch__ - - ### Features - - Enable cross-account streams in CloudWatch Metric Streams via Observability Access Manager. - -## __Amazon Elastic File System__ - - ### Features - - Documentation updates for EFS access points limit increase - -## __Amazon Interactive Video Service Chat__ - - ### Features - - Updates the range for a Chat Room's maximumMessageRatePerSecond field. - -# __2.19.18__ __2023-01-17__ -## __AWS Cloud9__ - - ### Features - - Added minimum value to AutomaticStopTimeMinutes parameter. - -## __AWS Network Firewall__ - - ### Features - - Network Firewall now allows creation of dual stack endpoints, enabling inspection of IPv6 traffic. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWSBillingConductor__ - - ### Features - - This release adds support for SKU Scope for pricing plans. - -## __EC2 Image Builder__ - - ### Features - - Add support for AWS Marketplace product IDs as input during CreateImageRecipe for the parent-image parameter. Add support for listing third-party components. - -# __2.19.17__ __2023-01-13__ -## __AWS Outposts__ - - ### Features - - This release adds POWER_30_KVA as an option for PowerDrawKva. PowerDrawKva is part of the RackPhysicalProperties structure in the CreateSite request. - -## __AWS Resource Groups__ - - ### Features - - AWS Resource Groups customers can now turn on Group Lifecycle Events in their AWS account. When you turn this on, Resource Groups monitors your groups for changes to group state or membership. Those changes are sent to Amazon EventBridge as events that you can respond to using rules you create. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - This release updates the responses of UpdateContactFlowContent, UpdateContactFlowMetadata, UpdateContactFlowName and DeleteContactFlow API with empty responses. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2. - -# __2.19.16__ __2023-01-12__ -## __AWS Clean Rooms Service__ - - ### Features - - Initial release of AWS Clean Rooms - -## __AWS Elemental MediaConvert__ - - ### Features - - The AWS Elemental MediaConvert SDK has added support for compact DASH manifest generation, audio normalization using TruePeak measurements, and the ability to clip the sample range in the color corrector. - -## __AWS Lambda__ - - ### Features - - Add support for MaximumConcurrency parameter for SQS event source. Customers can now limit the maximum concurrent invocations for their SQS Event Source Mapping. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Secrets Manager__ - - ### Features - - Update documentation for new ListSecrets and DescribeSecret parameters - -## __Amazon CloudWatch Logs__ - - ### Features - - Bug fix: logGroupName is now not a required field in GetLogEvents, FilterLogEvents, GetLogGroupFields, and DescribeLogStreams APIs as logGroupIdentifier can be provided instead - -# __2.19.15__ __2023-01-11__ -## __AWSKendraFrontendService__ - - ### Features - - This release adds support to new document types - RTF, XML, XSLT, MS_EXCEL, CSV, JSON, MD - -# __2.19.14__ __2023-01-10__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Prevent NullPointerException in Netty exception handler - - Contributed by: [@sigurjonviktorsson](https://github.com/sigurjonviktorsson) - -## __Amazon Location Service__ - - ### Features - - This release adds support for two new route travel models, Bicycle and Motorcycle which can be used with Grab data source. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for configuring allocated storage on the CreateDBInstanceReadReplica, RestoreDBInstanceFromDBSnapshot, and RestoreDBInstanceToPointInTime APIs. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@sigurjonviktorsson](https://github.com/sigurjonviktorsson) -# __2.19.13__ __2023-01-09__ -## __AWS Network Firewall__ - - ### Features - - Network Firewall now supports the Suricata rule action reject, in addition to the actions pass, drop, and alert. - -## __AWS Resource Access Manager__ - - ### Features - - Enabled FIPS aws-us-gov endpoints in SDK. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Elastic Container Registry Public__ - - ### Features - - This release for Amazon ECR Public makes several change to bring the SDK into sync with the API. - -## __Amazon Kendra Intelligent Ranking__ - - ### Features - - Introducing Amazon Kendra Intelligent Ranking, a new set of Kendra APIs that leverages Kendra semantic ranking capabilities to improve the quality of search results from other search services (i.e. OpenSearch, ElasticSearch, Solr). - -## __Amazon WorkSpaces Web__ - - ### Features - - This release adds support for a new portal authentication type: AWS IAM Identity Center (successor to AWS Single Sign-On). - -# __2.19.12__ __2023-01-06__ -## __AWS Audit Manager__ - - ### Features - - This release introduces a new data retention option in your Audit Manager settings. You can now use the DeregistrationPolicy parameter to specify if you want to delete your data when you deregister Audit Manager. - -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - Added revocation parameter validation: bucket names must match S3 bucket naming rules and CNAMEs conform to RFC2396 restrictions on the use of special characters in URIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -# __2.19.11__ __2023-01-05__ -## __AWS App Runner__ - - ### Features - - This release adds support of securely referencing secrets and configuration data that are stored in Secrets Manager and SSM Parameter Store by adding them as environment secrets in your App Runner service. - -## __AWS SDK for Java v2__ - - ### Features - - Add `s3-transfer-manager` in `aws-sdk-java` module so that it's included in `bundle`. - - Updated endpoint and partition metadata. - -## __Amazon Connect Service__ - - ### Features - - Documentation update for a new Initiation Method value in DescribeContact API - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Amazon Lightsail. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for specifying which certificate authority (CA) to use for a DB instance's server certificate during DB instance creation, as well as other CA enhancements. - -## __AmazonMWAA__ - - ### Features - - MWAA supports Apache Airflow version 2.4.3. - -## __AmplifyBackend__ - - ### Features - - Updated GetBackendAPIModels response to include ModelIntrospectionSchema json string - -## __EMR Serverless__ - - ### Features - - Adds support for customized images. You can now provide runtime images when creating or updating EMR Serverless Applications. - -# __2.19.10__ __2023-01-04__ -## __Amazon CloudWatch Logs__ - - ### Features - - Update to remove sequenceToken as a required field in PutLogEvents calls. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Adding support for QuickSetup Document Type in Systems Manager - -## __Application Auto Scaling__ - - ### Features - - Customers can now use the existing DescribeScalingActivities API to also see the detailed and machine-readable reasons for Application Auto Scaling not scaling their resources and, if needed, take the necessary corrective actions. - -# __2.19.9__ __2023-01-03__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Security Lake__ - - ### Features - - Allow CreateSubscriber API to take string input that allows setting more descriptive SubscriberDescription field. Make souceTypes field required in model level for UpdateSubscriberRequest as it is required for every API call on the backend. Allow ListSubscribers take any String as nextToken param. - -# __2.19.8__ __2022-12-30__ -## __AWS IoT FleetWise__ - - ### Features - - Update documentation - correct the epoch constant value of default value for expiryTime field in CreateCampaign request. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudFront__ - - ### Features - - Extend response headers policy to support removing headers from viewer responses - -# __2.19.7__ __2022-12-29__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Secrets Manager__ - - ### Features - - Added owning service filter, include planned deletion flag, and next rotation date response parameter in ListSecrets. - -## __Amazon API Gateway__ - - ### Features - - Documentation updates for Amazon API Gateway - -## __Amazon Connect Wisdom Service__ - - ### Features - - This release extends Wisdom CreateContent and StartContentUpload APIs to support PDF and MicrosoftWord docx document uploading. - -## __Amazon EMR__ - - ### Features - - Added GetClusterSessionCredentials API to allow Amazon SageMaker Studio to connect to EMR on EC2 clusters with runtime roles and AWS Lake Formation-based access control for Apache Spark, Apache Hive, and Presto queries. - -# __2.19.6__ __2022-12-28__ -## __AWS Network Firewall__ - - ### Features - - AWS Network Firewall now provides status messages for firewalls to help you troubleshoot when your endpoint fails. - -## __AWS Route53 Recovery Control Config__ - - ### Features - - Added support for Python paginators in the route53-recovery-control-config List* APIs. - -## __Amazon ElastiCache__ - - ### Features - - This release allows you to modify the encryption in transit setting, for existing Redis clusters. You can now change the TLS configuration of your Redis clusters without the need to re-build or re-provision the clusters or impact application availability. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for Custom Engine Version (CEV) on RDS Custom SQL Server. - -# __2.19.5__ __2022-12-27__ -## __AWS Transfer Family__ - - ### Features - - Add additional operations to throw ThrottlingExceptions - -## __Amazon MemoryDB__ - - ### Features - - This release adds support for MemoryDB Reserved nodes which provides a significant discount compared to on-demand node pricing. Reserved nodes are not physical nodes, but rather a billing discount applied to the use of on-demand nodes in your account. - -# __2.19.4__ __2022-12-23__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Connect Participant Service__ - - ### Features - - Amazon Connect Chat introduces the Message Receipts feature. This feature allows agents and customers to receive message delivered and read receipts after they send a chat message. - -## __Amazon Connect Service__ - - ### Features - - Support for Routing Profile filter, SortCriteria, and grouping by Routing Profiles for GetCurrentMetricData API. Support for RoutingProfiles, UserHierarchyGroups, and Agents as filters, NextStatus and AgentStatusName for GetCurrentUserData. Adds ApproximateTotalCount to both APIs. - -## __Amazon Detective__ - - ### Features - - This release adds a missed AccessDeniedException type to several endpoints. - -## __Amazon FSx__ - - ### Features - - Fix a bug where a recent release might break certain existing SDKs. - -## __Inspector2__ - - ### Features - - Amazon Inspector adds support for scanning NodeJS 18.x and Go 1.x AWS Lambda function runtimes. - -# __2.19.3__ __2022-12-22__ -## __AWS Compute Optimizer__ - - ### Features - - This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for ecs services running on Fargate. - -## __AWS IoT Core Device Advisor__ - - ### Features - - This release adds the following new features: 1) Documentation updates for IoT Device Advisor APIs. 2) Updated required request parameters for IoT Device Advisor APIs. 3) Added new service feature: ability to provide the test endpoint when customer executing the StartSuiteRun API. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect Chat introduces the Idle Participant/Autodisconnect feature, which allows users to set timeouts relating to the activity of chat participants, using the new UpdateParticipantRoleConfig API. - -## __Amazon Kinesis Video WebRTC Storage__ - - ### Features - - Amazon Kinesis Video Streams offers capabilities to stream video and audio in real-time via WebRTC to the cloud for storage, playback, and analytical processing. Customers can use our enhanced WebRTC SDK and cloud APIs to enable real-time streaming, as well as media ingestion to the cloud. - -## __Amazon Relational Database Service__ - - ### Features - - Add support for managing master user password in AWS Secrets Manager for the DBInstance and DBCluster. - -# __2.19.2__ __2022-12-21__ -## __AWS License Manager Linux Subscriptions__ - - ### Features - - AWS License Manager now offers cross-region, cross-account tracking of commercial Linux subscriptions on AWS. This includes subscriptions purchased as part of EC2 subscription-included AMIs, on the AWS Marketplace, or brought to AWS via Red Hat Cloud Access Program. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Support__ - - ### Features - - Documentation updates for the AWS Support API - -## __AWS Transfer Family__ - - ### Features - - This release adds support for Decrypt as a workflow step type. - -## __Amazon Connect Participant Service__ - - ### Features - - Amazon Connect Chat now allows for JSON (application/json) message types to be sent in the SendMessage API. - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect Chat now allows for JSON (application/json) message types to be sent as part of the initial message in the StartChatContact API. - -## __Amazon EventBridge Scheduler__ - - ### Features - - Updated the ListSchedules and ListScheduleGroups APIs to allow the NamePrefix field to start with a number. Updated the validation for executionRole field to support any role name. - -## __Amazon Macie 2__ - - ### Features - - This release adds support for analyzing Amazon S3 objects that use the S3 Glacier Instant Retrieval (Glacier_IR) storage class. - -## __Amazon SageMaker Service__ - - ### Features - - This release enables adding RStudio Workbench support to an existing Amazon SageMaker Studio domain. It allows setting your RStudio on SageMaker environment configuration parameters and also updating the RStudioConnectUrl and RStudioPackageManagerUrl parameters for existing domains - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Doc-only updates for December 2022. - -# __2.19.1__ __2022-12-20__ -## __AWS Batch__ - - ### Features - - Adds isCancelled and isTerminated to DescribeJobs response. - -## __AWS Elemental MediaLive__ - - ### Features - - This release adds support for two new features to AWS Elemental MediaLive. First, you can now burn-in timecodes to your MediaLive outputs. Second, we now now support the ability to decode Dolby E audio when it comes in on an input. - -## __AWS Resource Explorer__ - - ### Features - - Documentation updates for AWS Resource Explorer. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support for pagination in the EC2 DescribeImages API. - -## __Amazon Lookout for Equipment__ - - ### Features - - This release adds support for listing inference schedulers by status. - -## __Amazon Route 53 Domains__ - - ### Features - - Use Route 53 domain APIs to change owner, create/delete DS record, modify IPS tag, resend authorization. New: AssociateDelegationSignerToDomain, DisassociateDelegationSignerFromDomain, PushDomain, ResendOperationAuthorization. Updated: UpdateDomainContact, ListOperations, CheckDomainTransferability. - -## __Amazon S3 Transfer Manager__ - - ### Bugfixes - - Add `s3-transfer-manager` to bom so that users can use bom to manage its version. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Autopilot adds support for new objective metrics in CreateAutoMLJob API. - -## __Amazon Transcribe Service__ - - ### Features - - Enable our batch transcription jobs for Swedish and Vietnamese. - -## __AmazonNimbleStudio__ - - ### Features - - Amazon Nimble Studio now supports configuring session storage volumes and persistence, as well as backup and restore sessions through launch profiles. - -# __2.19.0__ __2022-12-19__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - - - ### Bugfixes - - Include the raw `partitions.json` data as a string within `DefaultPartitionDataProvider` so it doesn't need to be loaded at runtime as a classpath resource. - -## __Amazon Athena__ - - ### Features - - Add missed InvalidRequestException in GetCalculationExecutionCode,StopCalculationExecution APIs. Correct required parameters (Payload and Type) in UpdateNotebook API. Change Notebook size from 15 Mb to 10 Mb. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for alarm-based rollbacks in ECS, a new feature that allows customers to add automated safeguards for Amazon ECS service rolling updates. - -## __Amazon Kinesis Video Streams__ - - ### Features - - Amazon Kinesis Video Streams offers capabilities to stream video and audio in real-time via WebRTC to the cloud for storage, playback, and analytical processing. Customers can use our enhanced WebRTC SDK and cloud APIs to enable real-time streaming, as well as media ingestion to the cloud. - -## __Amazon Kinesis Video WebRTC Storage__ - - ### Features - - Amazon Kinesis Video Streams offers capabilities to stream video and audio in real-time via WebRTC to the cloud for storage, playback, and analytical processing. Customers can use our enhanced WebRTC SDK and cloud APIs to enable real-time streaming, as well as media ingestion to the cloud. - -## __Amazon Relational Database Service__ - - ### Features - - Add support for --enable-customer-owned-ip to RDS create-db-instance-read-replica API for RDS on Outposts. - -## __Amazon S3 Transfer Manager__ - - ### Features - - The Amazon S3 Transfer Manager is now generally available. Visit [Dev Guide](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/transfer-manager.html) for more information, - -## __Amazon SageMaker Service__ - - ### Features - - AWS Sagemaker - Sagemaker Images now supports Aliases as secondary identifiers for ImageVersions. SageMaker Images now supports additional metadata for ImageVersions for better images management. - -# __2.18.41__ __2022-12-16__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now supports the use of tags with task executions. With this new feature, you can apply tags each time you execute a task, giving you greater control and management over your task executions. - -## __AWS IoT FleetWise__ - - ### Features - - Updated error handling for empty resource names in "UpdateSignalCatalog" and "GetModelManifest" operations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Appflow__ - - ### Features - - This release updates the ListConnectorEntities API action so that it returns paginated responses that customers can retrieve with next tokens. - -## __Amazon CloudFront__ - - ### Features - - Updated documentation for CloudFront - -## __Amazon Elastic File System__ - - ### Features - - General documentation updates for EFS. - -## __Amazon GuardDuty__ - - ### Features - - This release provides the valid characters for the Description and Name field. - -## __Amazon S3__ - - ### Bugfixes - - Do not prefix copy-source with / when using the sourceBucket and sourceKey APIs. - -## __Amazon S3 Transfer Manager__ - - ### Features - - Change default `targetThroughputInGbps` from 5 to 10 - -## __Amazon SageMaker Service__ - - ### Features - - AWS sagemaker - Features: This release adds support for random seed, it's an integer value used to initialize a pseudo-random number generator. Setting a random seed will allow the hyperparameter tuning search strategies to produce more consistent configurations for the same tuning job. - -# __2.18.40__ __2022-12-15__ -## __AWS Backup Gateway__ - - ### Features - - This release adds support for VMware vSphere tags, enabling customer to protect VMware virtual machines using tag-based policies for AWS tags mapped from vSphere tags. This release also adds support for customer-accessible gateway-hypervisor interaction log and upload bandwidth rate limit schedule. - -## __AWS Glue__ - - ### Features - - This release adds support for AWS Glue Crawler with native DeltaLake tables, allowing Crawlers to classify Delta Lake format tables and catalog them for query engines to query against. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - Added new resource details objects to ASFF, including resources for AwsEc2LaunchTemplate, AwsSageMakerNotebookInstance, AwsWafv2WebAcl and AwsWafv2RuleGroup. - -## __AWSMainframeModernization__ - - ### Features - - Adds an optional create-only `KmsKeyId` property to Environment and Application resources. - -## __Amazon Connect Service__ - - ### Features - - Added support for "English - New Zealand" and "English - South African" to be used with Amazon Connect Custom Vocabulary APIs. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for container port ranges in ECS, a new capability that allows customers to provide container port ranges to simplify use cases where multiple ports are in use in a container. This release updates TaskDefinition mutation APIs and the Task description APIs. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Add support for Windows managed nodes groups. - -## __Amazon Kinesis__ - - ### Features - - Added StreamARN parameter for Kinesis Data Streams APIs. Added a new opaque pagination token for ListStreams. SDKs will auto-generate Account Endpoint when accessing Kinesis Data Streams. - -## __Amazon Location Service__ - - ### Features - - This release adds support for a new style, "VectorOpenDataStandardLight" which can be used with the new data source, "Open Data Maps (Preview)". - -## __Amazon S3 Transfer Manager__ - - ### Features - - Do not base 64 encode when writing `ResumableFileDownload` to disk. - - Flattened and removed OverrideConfigurations such that these can be configured directly to S3TransferManagerBuilder, upload and transfer Requests. Also refactored certain attributes and API names to represent better meaningful names. - - Moved POJO classes to `software.amazon.awssdk.transfer.s3.model` and moved configuration classes to `software.amazon.awssdk.transfer.s3.config` - - Rename `DownloadDirectoryRequest.destinationDirectory` to `destination`. - - Rename `ResumableFileDownload`'s `to` and `writeTo` methods to `serializeTo` to make it clear that these aren't affecting the download. - - Rename `UploadDirectoryRequest.prefix` and `delimiter` to `s3Prefix` and `s3Delimiter` to make it clear these are S3 parameters, not file-system parameters. - - - ### Bugfixes - - Allow pausing a resumed download, even if the resumed download hasn't started. - - Fixed issues in S3 Transfer Manager resumeDownloadFile API where errors were being wrapped by SdkClientException - - Require setting the bytes transferred on transfer progress snapshots. This prevents programming bugs where the caller forgets to set the value and it gets defaulted to 0. - - - ### Removals - - Backward incompatible changes after removing s3ClientConfiguration() from builder API of S3TransferManager Interface. - - Added crtBuilder in S3AsyncClient Interface. - - Backward incompatible changes after changing args of test() API in DownloadFilter Interface from DownloadFileContext to S3Object. - - Make `aws-crt` an optional dependency in `s3-transfer-manager` module. Customers need to explicitly add `aws-crt` dependency if they want to use CRT-based Transfer Manager - - Remove UploadDirectoryRequest's override configuration's `recursive` option. The same functionality can be achieved with `UploadDirectoryRequest.builder().maxDepth(1)` or S3TransferManager.builder().maxUploadDirectoryDepth(1). - - Remove `DownloadDirectoryRequest.prefix` and `delimiter`. The same functionality is already available via the `listObjectsV2RequestTransformer`. - - Removed charset options from `ResumableFileDownload`'s string options, because there's no reason to choose something other than UTF-8. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Inference Recommender now allows customers to load tests their models on various instance types using private VPC. - -## __Amazon Translate__ - - ### Features - - Raised the input byte size limit of the Text field in the TranslateText API to 10000 bytes. - -# __2.18.39__ __2022-12-14__ -## __AWS Cost Explorer Service__ - - ### Features - - This release supports percentage-based thresholds on Cost Anomaly Detection alert subscriptions. - -## __AWS Network Manager__ - - ### Features - - Appliance Mode support for AWS Cloud WAN. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch__ - - ### Features - - Adding support for Metrics Insights Alarms - -## __Amazon SageMaker Metrics Service__ - - ### Features - - Update SageMaker Metrics documentation. - -## __Redshift Data API Service__ - - ### Features - - This release adds a new --client-token field to ExecuteStatement and BatchExecuteStatement operations. Customers can now run queries with the additional client token parameter to ensures idempotency. - -# __2.18.38__ __2022-12-13__ -## __AWS CloudTrail__ - - ### Features - - Merging mainline branch for service model into mainline release branch. There are no new APIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Relational Database Service__ - - ### Features - - This deployment adds ClientPasswordAuthType field to the Auth structure of the DBProxy. - -# __2.18.36__ __2022-12-12__ -## __AWS Migration Hub Refactor Spaces__ - - ### Features - - This release adds support for Lambda alias service endpoints. Lambda alias ARNs can now be passed into CreateService. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - Documents the naming requirement for logging destinations that you use with web ACLs. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release allows custom strings in PartyType and Gender through 2 new attributes in the CreateProfile and UpdateProfile APIs: PartyTypeString and GenderString. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release updates DescribeFpgaImages to show supported instance types of AFIs in its response. - -## __Amazon Kinesis Video Streams__ - - ### Features - - This release adds support for public preview of Kinesis Video Stream at Edge enabling customers to provide configuration for the Kinesis Video Stream EdgeAgent running on an on-premise IoT device. Customers can now locally record from cameras and stream videos to the cloud on configured schedule. - -## __Amazon Lookout for Vision__ - - ### Features - - This documentation update adds kms:GenerateDataKey as a required permission to StartModelPackagingJob. - -## __Amazon Rekognition__ - - ### Features - - Adds support for "aliases" and "categories", inclusion and exclusion filters for labels and label categories, and aggregating labels by video segment timestamps for Stored Video Label Detection APIs. - -## __Amazon Relational Database Service__ - - ### Features - - Update the RDS API model to support copying option groups during the CopyDBSnapshot operation - -## __Amazon SageMaker Metrics Service__ - - ### Features - - This release introduces support SageMaker Metrics APIs. - -# __2.18.35__ __2022-12-09__ -## __AWS Elemental MediaLive__ - - ### Features - - Link devices now support buffer size (latency) configuration. A higher latency value means a longer delay in transmitting from the device to MediaLive, but improved resiliency. A lower latency value means a shorter delay, but less resiliency. - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - This release provides the approximate number of assets in a packaging group. - -## __AWS IoT FleetWise__ - - ### Features - - Deprecated assignedValue property for actuators and attributes. Added a message to invalid nodes and invalid decoder manifest exceptions. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed an issue that could cause exception to be thrown from `CombinedResponseAsyncHttpResponseHandler#onStream` when `onError` got invoked first - -## __Amazon CloudWatch Logs__ - - ### Features - - Doc-only update for CloudWatch Logs, for Tagging Permissions clarifications - -## __Amazon S3__ - - ### Bugfixes - - Fixed an issue that could result in exceptions or signature validation failures when signing or presigning S3 requests using the signer directly when paths contain encoded or path traversal characters. - -# __2.18.34__ __2022-12-08__ -## __AWS IoT TwinMaker__ - - ### Features - - This release adds the following new features: 1) New APIs for managing a continuous sync of assets and asset models from AWS IoT SiteWise. 2) Support user friendly names for component types (ComponentTypeName) and properties (DisplayName). - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Auto Scaling__ - - ### Features - - Adds support for metric math for target tracking scaling policies, saving you the cost and effort of publishing a custom metric to CloudWatch. Also adds support for VPC Lattice by adding the Attach/Detach/DescribeTrafficSources APIs and a new health check type to the CreateAutoScalingGroup API. - -## __Migration Hub Strategy Recommendations__ - - ### Features - - This release adds known application filtering, server selection for assessments, support for potential recommendations, and indications for configuration and assessment status. For more information, see the AWS Migration Hub documentation at https://docs.aws.amazon.com/migrationhub/index.html - -# __2.18.33__ __2022-12-07__ -## __AWS Cost Explorer Service__ - - ### Features - - This release adds the LinkedAccountName field to the GetAnomalies API response under RootCause - -## __AWS Key Management Service__ - - ### Features - - Updated examples and exceptions for External Key Store (XKS). - -## __AWS SDK for Java v2__ - - ### Features - - Adding utilities for signing CloudFront URLs and cookies - - Updated endpoint and partition metadata. - -## __Amazon CloudFront__ - - ### Features - - Introducing UpdateDistributionWithStagingConfig that can be used to promote the staging configuration to the production. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adds support for EKS add-ons configurationValues fields and DescribeAddonConfiguration function - -## __Amazon S3__ - - ### Bugfixes - - S3 query param validation - - The SDK will raise SdkClientException when a null value is set for a member marked with the required trait. - -# __2.18.32__ __2022-12-06__ -## __AWS SDK for Java v2__ - - ### Features - - Adding utilities for signing CloudFront URLs and cookies - - Updated endpoint and partition metadata. - -## __AWSBillingConductor__ - - ### Features - - This release adds the Tiering Pricing Rule feature. - -## __Amazon Connect Service__ - - ### Features - - This release provides APIs that enable you to programmatically manage rules for Contact Lens conversational analytics and third party applications. For more information, see https://docs.aws.amazon.com/connect/latest/APIReference/rules-api.html - -## __Amazon DynamoDB__ - - ### Features - - Endpoint Ruleset update: Use http instead of https for the "local" region. - -## __Amazon DynamoDB Streams__ - - ### Features - - Endpoint Ruleset update: Use http instead of https for the "local" region. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds the BlueGreenDeploymentNotFoundFault to the AddTagsToResource, ListTagsForResource, and RemoveTagsFromResource operations. - -## __Amazon SageMaker Feature Store Runtime__ - - ### Features - - For online + offline Feature Groups, added ability to target PutRecord and DeleteRecord actions to only online store, or only offline store. If target store parameter is not specified, actions will apply to both stores. - -# __2.18.31__ __2022-12-05__ -## __AWS Cost Explorer Service__ - - ### Features - - This release introduces two new APIs that offer a 1-click experience to refresh Savings Plans recommendations. The two APIs are StartSavingsPlansPurchaseRecommendationGeneration and ListSavingsPlansPurchaseRecommendationGeneration. - -## __AWS SDK for Java v2__ - - ### Features - - Support for clients with AWS Query protocol migrating towards AwsJson in order to support custom error codes. - - Contributed by: [@ziyanli-amazon](https://github.com/ziyanli-amazon) - - Updated endpoint and partition metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2. - -## __Amazon Interactive Video Service Chat__ - - ### Features - - Adds PendingVerification error type to messaging APIs to block the resource usage for accounts identified as being fraudulent. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds the InvalidDBInstanceStateFault to the RestoreDBClusterFromSnapshot operation. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe now supports creating custom language models in the following languages: Japanese (ja-JP) and German (de-DE). - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@ziyanli-amazon](https://github.com/ziyanli-amazon) -# __2.18.30__ __2022-12-02__ -## __AWS AppSync__ - - ### Features - - Fixes the URI for the evaluatecode endpoint to include the /v1 prefix (ie. "/v1/dataplane-evaluatecode"). - -## __AWS Elemental MediaConvert__ - - ### Features - - The AWS Elemental MediaConvert SDK has added support for configurable ID3 eMSG box attributes and the ability to signal them with InbandEventStream tags in DASH and CMAF outputs. - -## __AWS Elemental MediaLive__ - - ### Features - - Updates to Event Signaling and Management (ESAM) API and documentation. - -## __AWS Proton__ - - ### Features - - CreateEnvironmentAccountConnection RoleArn input is now optional - -## __AWS SDK for Java v2__ - - ### Features - - Added AsyncResponseBody.fromInputStream and AsyncRequestBody.forBlockingInputStream, allowing streaming operation requests to be written to like an input stream. - - - ### Bugfixes - - This changes fixes the previously incorrect handling of `hostPrefix` in services, causing requests for some services to have the wrong URL. This change also undoes the suppression of rules-based endpoint generation for all services apart from EventBridge, S3, and S3 Control, which was implemented in [#3520](https://github.com/aws/aws-sdk-java-v2/issues/3520) because of the previously mentioned `hostPrefix` issue. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation updates for Amazon ECS - -## __Amazon Polly__ - - ### Features - - Add language code for Finnish (fi-FI) - -## __Amazon Simple Notification Service__ - - ### Features - - This release adds the message payload-filtering feature to the SNS Subscribe, SetSubscriptionAttributes, and GetSubscriptionAttributes API actions - -## __Firewall Management Service__ - - ### Features - - AWS Firewall Manager now supports Fortigate Cloud Native Firewall as a Service as a third-party policy type. - -## __Redshift Serverless__ - - ### Features - - Add Table Level Restore operations for Amazon Redshift Serverless. Add multi-port support for Amazon Redshift Serverless endpoints. Add Tagging support to Snapshots and Recovery Points in Amazon Redshift Serverless. - -# __2.18.29__ __2022-12-01__ -## __AWS SDK for Java v2__ - - ### Features - - Added AsyncRequestBody.forBlockingOutputStream, allowing streaming operation requests to be written to like an output stream. - - Updated endpoint and partition metadata. - - - ### Bugfixes - - This fixes an issue with the client option validation where the client builder is incorrectly validating that a value for the SIGNER option is present, even when it's not required (because the service does not use AWS auth). - - This change only does the appropriate validations based on the authtypes present in the service model. - -## __AWS Step Functions__ - - ### Features - - This release adds support for the AWS Step Functions Map state in Distributed mode. The changes include a new MapRun resource and several new and modified APIs. - -## __Amazon CodeCatalyst__ - - ### Features - - This release adds operations that support customers using the AWS Toolkits and Amazon CodeCatalyst, a unified software development service that helps developers develop, deploy, and maintain applications in the cloud. For more information, see the documentation. - -## __Amazon Comprehend__ - - ### Features - - Comprehend now supports semi-structured documents (such as PDF files or image files) as inputs for custom analysis using the synchronous APIs (ClassifyDocument and DetectEntities). - -## __Amazon EventBridge Pipes__ - - ### Features - - AWS introduces new Amazon EventBridge Pipes which allow you to connect sources (SQS, Kinesis, DDB, Kafka, MQ) to Targets (14+ EventBridge Targets) without any code, with filtering, batching, input transformation, and an optional Enrichment stage (Lambda, StepFunctions, ApiGateway, ApiDestinations) - -## __Amazon GameLift__ - - ### Features - - GameLift introduces a new feature, GameLift Anywhere. GameLift Anywhere allows you to integrate your own compute resources with GameLift. You can also use GameLift Anywhere to iteratively test your game servers without uploading the build to GameLift for every iteration. - -# __2.18.28__ __2022-11-30__ -## __AWS Data Exchange__ - - ### Features - - This release enables data providers to license direct access to data in their Amazon S3 buckets or AWS Lake Formation data lakes through AWS Data Exchange. Subscribers get read-only access to the data and can use it in downstream AWS services, like Amazon Athena, without creating or managing copies. - -## __AWS Glue__ - - ### Features - - This release adds support for AWS Glue Data Quality, which helps you evaluate and monitor the quality of your data and includes the API for creating, deleting, or updating data quality rulesets, runs and evaluations. - -## __AWS S3 Control__ - - ### Features - - Amazon S3 now supports cross-account access points. S3 bucket owners can now allow trusted AWS accounts to create access points associated with their bucket. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Access Analyzer__ - - ### Features - - This release adds support for S3 cross account access points. IAM Access Analyzer will now produce public or cross account findings when it detects bucket delegation to external account access points. - -## __Amazon Athena__ - - ### Features - - This release includes support for using Apache Spark in Amazon Athena. - -## __Amazon DocumentDB Elastic Clusters__ - - ### Features - - Launched Amazon DocumentDB Elastic Clusters. You can now use the SDK to create, list, update and delete Amazon DocumentDB Elastic Cluster resources - -## __Amazon SageMaker Service__ - - ### Features - - Added Models as part of the Search API. Added Model shadow deployments in realtime inference, and shadow testing in managed inference. Added support for shared spaces, geospatial APIs, Model Cards, AutoMLJobStep in pipelines, Git repositories on user profiles and domains, Model sharing in Jumpstart. - -## __Amazon SageMaker geospatial capabilities__ - - ### Features - - This release provides Amazon SageMaker geospatial APIs to build, train, deploy and visualize geospatial models. - -# __2.18.27__ __2022-11-29__ -## __AWS Key Management Service__ - - ### Features - - AWS KMS introduces the External Key Store (XKS), a new feature for customers who want to protect their data with encryption keys stored in an external key management system under their control. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SimSpace Weaver__ - - ### Features - - AWS SimSpace Weaver is a new service that helps customers build spatial simulations at new levels of scale - resulting in virtual worlds with millions of dynamic entities. See the AWS SimSpace Weaver developer guide for more details on how to get started. https://docs.aws.amazon.com/simspaceweaver - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for AWS Verified Access and the Hpc6id Amazon EC2 compute optimized instance type, which features 3rd generation Intel Xeon Scalable processors. - -## __Amazon Kinesis Firehose__ - - ### Features - - Allow support for the Serverless offering for Amazon OpenSearch Service as a Kinesis Data Firehose delivery destination. - -## __Amazon Omics__ - - ### Features - - Amazon Omics is a new, purpose-built service that can be used by healthcare and life science organizations to store, query, and analyze omics data. The insights from that data can be used to accelerate scientific discoveries and improve healthcare. - -## __Amazon Security Lake__ - - ### Features - - Amazon Security Lake automatically centralizes security data from cloud, on-premises, and custom sources into a purpose-built data lake stored in your account. Security Lake makes it easier to analyze security data, so you can improve the protection of your workloads, applications, and data - -## __OpenSearch Service Serverless__ - - ### Features - - Publish SDK for Amazon OpenSearch Serverless - -# __2.18.26__ __2022-11-28__ -## __AWS ARC - Zonal Shift__ - - ### Features - - Amazon Route 53 Application Recovery Controller Zonal Shift is a new service that makes it easy to shift traffic away from an Availability Zone in a Region. See the developer guide for more information: https://docs.aws.amazon.com/r53recovery/latest/dg/what-is-route53-recovery.html - -## __AWS Compute Optimizer__ - - ### Features - - Adds support for a new recommendation preference that makes it possible for customers to optimize their EC2 recommendations by utilizing an external metrics ingestion service to provide metrics. - -## __AWS Config__ - - ### Features - - With this release, you can use AWS Config to evaluate your resources for compliance with Config rules before they are created or updated. Using Config rules in proactive mode enables you to test and build compliant resource templates or check resource configurations at the time they are provisioned. - -## __AWS Glue__ - - ### Features - - This release allows the creation of Custom Visual Transforms (Dynamic Transforms) to be created via AWS Glue CLI/SDK. - -## __AWS Lambda__ - - ### Features - - Adds support for Lambda SnapStart, which helps improve the startup performance of functions. Customers can now manage SnapStart based functions via CreateFunction and UpdateFunctionConfiguration APIs - -## __AWS License Manager User Subscriptions__ - - ### Features - - AWS now offers fully-compliant, Amazon-provided licenses for Microsoft Office Professional Plus 2021 Amazon Machine Images (AMIs) on Amazon EC2. These AMIs are now available on the Amazon EC2 console and on AWS Marketplace to launch instances on-demand without any long-term licensing commitments. - -## __AWS S3 Control__ - - ### Features - - Added two new APIs to support Amazon S3 Multi-Region Access Point failover controls: GetMultiRegionAccessPointRoutes and SubmitMultiRegionAccessPointRoutes. The failover control APIs are supported in the following Regions: us-east-1, us-west-2, eu-west-1, ap-southeast-2, and ap-northeast-1. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - Adding StandardsManagedBy field to DescribeStandards API response - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Introduces ENA Express, which uses AWS SRD and dynamic routing to increase throughput and minimize latency, adds support for trust relationships between Reachability Analyzer and AWS Organizations to enable cross-account analysis, and adds support for Infrastructure Performance metric subscriptions. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adds support for additional EKS add-ons metadata and filtering fields - -## __Amazon FSx__ - - ### Features - - This release adds support for 4GB/s / 160K PIOPS FSx for ONTAP file systems and 10GB/s / 350K PIOPS FSx for OpenZFS file systems (Single_AZ_2). For FSx for ONTAP, this also adds support for DP volumes, snapshot policy, copy tags to backups, and Multi-AZ route table updates. - -## __Amazon Macie 2__ - - ### Features - - Added support for configuring Macie to continually sample objects from S3 buckets and inspect them for sensitive data. Results appear in statistics, findings, and other data that Macie provides. - -## __Amazon QuickSight__ - - ### Features - - This release adds new Describe APIs and updates Create and Update APIs to support the data model for Dashboards, Analyses, and Templates. - -## __Inspector2__ - - ### Features - - This release adds support for Inspector to scan AWS Lambda. - -# __2.18.25__ __2022-11-27__ -## __AWS Backup__ - - ### Features - - AWS Backup introduces support for legal hold and application stack backups. AWS Backup Audit Manager introduces support for cross-Region, cross-account reports. - -## __AWS IoT__ - - ### Features - - Job scheduling enables the scheduled rollout of a Job with start and end times and a customizable end behavior when end time is reached. This is available for continuous and snapshot jobs. Added support for MQTT5 properties to AWS IoT TopicRule Republish Action. - -## __AWS IoT Data Plane__ - - ### Features - - This release adds support for MQTT5 properties to AWS IoT HTTP Publish API. - -## __AWS IoT Wireless__ - - ### Features - - This release includes a new feature for customers to calculate the position of their devices by adding three new APIs: UpdateResourcePosition, GetResourcePosition, and GetPositionEstimate. - -## __AWS Organizations__ - - ### Features - - This release introduces delegated administrator for AWS Organizations, a new feature to help you delegate the management of your Organizations policies, enabling you to govern your AWS organization in a decentralized way. You can now allow member accounts to manage Organizations policies. - -## __AWS SDK for Java v2__ - - ### Features - - Added AsyncResponseTransformer.toBlockingInputStream, allowing streaming operation responses to be read as if they're an InputStream. - - Updated endpoint and partition metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports preview of table information from HTML tables in the search results. The most relevant cells with their corresponding rows, columns are displayed as a preview in the search result. The most relevant table cell or cells are also highlighted in table preview. - -## __Amazon CloudWatch__ - - ### Features - - Adds cross-account support to the GetMetricData API. Adds cross-account support to the ListMetrics API through the usage of the IncludeLinkedAccounts flag and the new OwningAccounts field. - -## __Amazon CloudWatch Logs__ - - ### Features - - Updates to support CloudWatch Logs data protection and CloudWatch cross-account observability - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for ECS Service Connect, a new capability that simplifies writing and operating resilient distributed applications. This release updates the TaskDefinition, Cluster, Service mutation APIs with Service connect constructs and also adds a new ListServicesByNamespace API. - -## __Amazon Elastic File System__ - - ### Features - - This release adds elastic as a new ThroughputMode value for EFS file systems and adds AFTER_1_DAY as a value for TransitionToIARules. - -## __Amazon Relational Database Service__ - - ### Features - - This release enables new Aurora and RDS feature called Blue/Green Deployments that makes updates to databases safer, simpler and faster. - -## __Amazon Textract__ - - ### Features - - This release adds support for classifying and splitting lending documents by type, and extracting information by using the Analyze Lending APIs. This release also includes support for summarized information of the processed lending document package, in addition to per document results. - -## __Amazon Transcribe Service__ - - ### Features - - This release adds support for 'inputType' for post-call and real-time (streaming) Call Analytics within Amazon Transcribe. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - This release adds support for real-time (streaming) and post-call Call Analytics within Amazon Transcribe. - -## __Application Migration Service__ - - ### Features - - This release adds support for Application and Wave management. We also now support custom post-launch actions. - -## __CloudWatch Observability Access Manager__ - - ### Features - - Amazon CloudWatch Observability Access Manager is a new service that allows configuration of the CloudWatch cross-account observability feature. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Non breaking changes to existing APIs, and additional APIs added to support in-AWS failing back using AWS Elastic Disaster Recovery. - -# __2.18.24__ __2022-11-23__ -## __AWS SDK for Java v2__ - - ### Features - - When a request fails after SDK retries, include the retried failure messages as "suppressed" exceptions. Stack traces for these suppressed exceptions are not preserved. - - When raising an exception as a result of a service response, if service does not return a error message, include the error code or HTTP status code in exception messages instead of the string "null". - -## __Amazon Managed Grafana__ - - ### Features - - This release includes support for configuring a Grafana workspace to connect to a datasource within a VPC as well as new APIs for configuring Grafana settings. - -## __Amazon Recycle Bin__ - - ### Features - - This release adds support for Rule Lock for Recycle Bin, which allows you to lock retention rules so that they can no longer be modified or deleted. - -# __2.18.23__ __2022-11-22__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon Appflow__ - - ### Features - - Adding support for Amazon AppFlow to transfer the data to Amazon Redshift databases through Amazon Redshift Data API service. This feature will support the Redshift destination connector on both public and private accessible Amazon Redshift Clusters and Amazon Redshift Serverless. - -## __Amazon Kinesis Analytics__ - - ### Features - - Support for Apache Flink 1.15 in Kinesis Data Analytics. - -# __2.18.22__ __2022-11-21__ -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Asia Pacific (Hyderabad) Region (ap-south-2) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -# __2.18.21__ __2022-11-18__ -## __AWS Audit Manager__ - - ### Features - - This release introduces a new feature for Audit Manager: Evidence finder. You can now use evidence finder to quickly query your evidence, and add the matching evidence results to an assessment report. - -## __AWS Glue__ - - ### Features - - AWSGlue Crawler - Adding support for Table and Column level Comments with database level datatypes for JDBC based crawler. - -## __AWS IoT RoboRunner__ - - ### Features - - AWS IoT RoboRunner is a new service that makes it easy to build applications that help multi-vendor robots work together seamlessly. See the IoT RoboRunner developer guide for more details on getting started. https://docs.aws.amazon.com/iotroborunner/latest/dev/iotroborunner-welcome.html - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Service Catalog__ - - ### Features - - This release 1. adds support for Principal Name Sharing with Service Catalog portfolio sharing. 2. Introduces repo sourced products which are created and managed with existing SC APIs. These products are synced to external repos and auto create new product versions based on changes in the repo. - -## __AWS Step Functions__ - - ### Features - - This release adds support for using Step Functions service integrations to invoke any cross-account AWS resource, even if that service doesn't support resource-based policies or cross-account calls. See https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html - -## __AWS Systems Manager for SAP__ - - ### Features - - AWS Systems Manager for SAP provides simplified operations and management of SAP applications such as SAP HANA. With this release, SAP customers and partners can automate and simplify their SAP system administration tasks such as backup/restore of SAP HANA. - -## __AWS Transfer Family__ - - ### Features - - Adds a NONE encryption algorithm type to AS2 connectors, providing support for skipping encryption of the AS2 message body when a HTTPS URL is also specified. - -## __Amazon Appflow__ - - ### Features - - AppFlow provides a new API called UpdateConnectorRegistration to update a custom connector that customers have previously registered. With this API, customers no longer need to unregister and then register a connector to make an update. - -## __Amazon Chime SDK Voice__ - - ### Features - - Amazon Chime Voice Connector, Voice Connector Group and PSTN Audio Service APIs are now available in the Amazon Chime SDK Voice namespace. See https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html for more details. - -## __Amazon CloudFront__ - - ### Features - - CloudFront API support for staging distributions and associated traffic management policies. - -## __Amazon Connect Service__ - - ### Features - - Added AllowedAccessControlTags and TagRestrictedResource for Tag Based Access Control on Amazon Connect Webpage - -## __Amazon DynamoDB__ - - ### Features - - Updated minor fixes for DynamoDB documentation. - -## __Amazon DynamoDB Streams__ - - ### Features - - Updated minor fixes for DynamoDB documentation. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for copying an Amazon Machine Image's tags when copying an AMI. - -## __Amazon QuickSight__ - - ### Features - - This release adds the following: 1) Asset management for centralized assets governance 2) QuickSight Q now supports public embedding 3) New Termination protection flag to mitigate accidental deletes 4) Athena data sources now accept a custom IAM role 5) QuickSight supports connectivity to Databricks - -## __Amazon SageMaker Service__ - - ### Features - - Added DisableProfiler flag as a new field in ProfilerConfig - -# __2.18.20__ __2022-11-17__ -## __AWS Amplify__ - - ### Features - - Adds a new value (WEB_COMPUTE) to the Platform enum that allows customers to create Amplify Apps with Server-Side Rendering support. - -## __AWS AppSync__ - - ### Features - - This release introduces the APPSYNC_JS runtime, and adds support for JavaScript in AppSync functions and AppSync pipeline resolvers. - -## __AWS Database Migration Service__ - - ### Features - - Adds support for Internet Protocol Version 6 (IPv6) on DMS Replication Instances - -## __AWS Lambda__ - - ### Features - - Add Node 18 (nodejs18.x) support to AWS Lambda. - -## __AWS S3 Control__ - - ### Features - - Added 34 new S3 Storage Lens metrics to support additional customer use cases. - -## __AWS SDK for Java v2__ - - ### Features - - Provide the contents of stderr as part of the exception in the case of non zero RCs returned from the external process in `ProcessCredentialProvider`. See [#3377](https://github.com/aws/aws-sdk-java-v2/issues/3377) - - Stop using execution.interceptors reflective loading for internal interceptors. This will reduce the chance of shading errors. - - Updated endpoint and partition metadata. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager. - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for AWS Security Token Service. - -## __AWS SecurityHub__ - - ### Features - - Added SourceLayerArn and SourceLayerHash field for security findings. Updated AwsLambdaFunction Resource detail - -## __AWS Service Catalog App Registry__ - - ### Features - - This release adds support for tagged resource associations, which allows you to associate a group of resources with a defined resource tag key and value to the application. - -## __Amazon Appflow__ - - ### Features - - AppFlow simplifies the preparation and cataloging of SaaS data into the AWS Glue Data Catalog where your data can be discovered and accessed by AWS analytics and ML services. AppFlow now also supports data field partitioning and file size optimization to improve query performance and reduce cost. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new optional parameter "privateIpAddress" for the CreateNatGateway API. PrivateIPAddress will allow customers to select a custom Private IPv4 address instead of having it be auto-assigned. - -## __Amazon Interactive Video Service Chat__ - - ### Features - - Adds LoggingConfiguration APIs for IVS Chat - a feature that allows customers to store and record sent messages in a chat room to S3 buckets, CloudWatch logs, or Kinesis firehose. - -## __Amazon Personalize__ - - ### Features - - This release provides support for creation and use of metric attributions in AWS Personalize - -## __Amazon Polly__ - - ### Features - - Add two new neural voices - Ola (pl-PL) and Hala (ar-AE). - -## __Amazon Textract__ - - ### Features - - This release adds support for specifying and extracting information from documents using the Signatures feature within Analyze Document API - -## __Amazon WorkSpaces__ - - ### Features - - The release introduces CreateStandbyWorkspaces, an API that allows you to create standby WorkSpaces associated with a primary WorkSpace in another Region. DescribeWorkspaces now includes related WorkSpaces properties. DescribeWorkspaceBundles and CreateWorkspaceBundle now return more bundle details. - -## __CloudWatch RUM__ - - ### Features - - CloudWatch RUM now supports custom events. To use custom events, create an app monitor or update an app monitor with CustomEvent Status as ENABLED. - -## __EMR Serverless__ - - ### Features - - Adds support for AWS Graviton2 based applications. You can now select CPU architecture when creating new applications or updating existing ones. - -## __Elastic Load Balancing__ - - ### Features - - Provides new target group attributes to turn on/off cross zone load balancing and configure target group health for Network Load Balancers and Application Load Balancers. Provides improvements to health check configuration for Network Load Balancers. - -# __2.18.19__ __2022-11-16__ -## __AWS Batch__ - - ### Features - - Documentation updates related to Batch on EKS - -## __AWS CloudFormation__ - - ### Features - - Added UnsupportedTarget HandlerErrorCode for use with CFN Resource Hooks - -## __AWS Comprehend Medical__ - - ### Features - - This release supports new set of entities and traits. It also adds new category (BEHAVIORAL_ENVIRONMENTAL_SOCIAL). - -## __AWS IoT TwinMaker__ - - ### Features - - This release adds the following: 1) ExecuteQuery API allows users to query their AWS IoT TwinMaker Knowledge Graph 2) Pricing plan APIs allow users to configure and manage their pricing mode 3) Support for property groups and tabular property values in existing AWS IoT TwinMaker APIs. - -## __AWS Proton__ - - ### Features - - Add support for sorting and filtering in ListServiceInstances - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Add support for PagerDuty integrations on ResponsePlan, IncidentRecord, and RelatedItem APIs - -## __AWS Transfer Family__ - - ### Features - - Allow additional operations to throw ThrottlingException - -## __AWS X-Ray__ - - ### Features - - This release adds new APIs - PutResourcePolicy, DeleteResourcePolicy, ListResourcePolicies for supporting resource based policies for AWS X-Ray. - -## __AWSBillingConductor__ - - ### Features - - This release adds a new feature BillingEntity pricing rule. - -## __Amazon Connect Service__ - - ### Features - - This release adds a new MonitorContact API for initiating monitoring of ongoing Voice and Chat contacts. - -## __Amazon ElastiCache__ - - ### Features - - for Redis now supports AWS Identity and Access Management authentication access to Redis clusters starting with redis-engine version 7.0 - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adds support for customer-provided placement groups for Kubernetes control plane instances when creating local EKS clusters on Outposts - -## __Amazon Personalize Events__ - - ### Features - - This release provides support for creation and use of metric attributions in AWS Personalize - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for container databases (CDBs) to Amazon RDS Custom for Oracle. A CDB contains one PDB at creation. You can add more PDBs using Oracle SQL. You can also customize your database installation by setting the Oracle base, Oracle home, and the OS user name and group. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release adds support for cross account access in CreateOpsItem, UpdateOpsItem and GetOpsItem. It introduces new APIs to setup resource policies for SSM resources: PutResourcePolicy, GetResourcePolicies and DeleteResourcePolicy. - -# __2.18.18__ __2022-11-15__ -## __AWS IoT Greengrass V2__ - - ### Features - - Adds new parent target ARN paramater to CreateDeployment, GetDeployment, and ListDeployments APIs for the new subdeployments feature. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Systems Manager for SAP__ - - ### Features - - AWS Systems Manager for SAP provides simplified operations and management of SAP applications such as SAP HANA. With this release, SAP customers and partners can automate and simplify their SAP system administration tasks such as backup/restore of SAP HANA. - -## __Amazon Connect Service__ - - ### Features - - This release updates the APIs: UpdateInstanceAttribute, DescribeInstanceAttribute, and ListInstanceAttributes. You can use it to programmatically enable/disable enhanced contact monitoring using attribute type ENHANCED_CONTACT_MONITORING on the specified Amazon Connect instance. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Europe (Spain) Region (eu-south-2) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -## __Amazon WorkSpaces__ - - ### Features - - This release introduces ModifyCertificateBasedAuthProperties, a new API that allows control of certificate-based auth properties associated with a WorkSpaces directory. The DescribeWorkspaceDirectories API will now additionally return certificate-based auth properties in its responses. - -## __Netty NIO Http Client__ - - ### Bugfixes - - Fix for Netty based client request getting stuck if connection is reset after recieveing Http Continue response. - -# __2.18.17__ __2022-11-14__ -## __AWS Lake Formation__ - - ### Features - - This release adds a new parameter "Parameters" in the DataLakeSettings. - -## __AWS Proton__ - - ### Features - - Add support for CodeBuild Provisioning - -## __AWS X-Ray__ - - ### Features - - This release enhances GetServiceGraph API to support new type of edge to represent links between SQS and Lambda in event-driven applications. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release enhances the SearchProfiles API by providing functionality to search for profiles using multiple keys and logical operators. - -## __Amazon Managed Blockchain__ - - ### Features - - Updating the API docs data type: NetworkEthereumAttributes, and the operations DeleteNode, and CreateNode to also include the supported Goerli network. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for restoring an RDS Multi-AZ DB cluster snapshot to a Single-AZ deployment or a Multi-AZ DB instance deployment. - -## __Amazon WorkDocs__ - - ### Features - - Added 2 new document related operations, DeleteDocumentVersion and RestoreDocumentVersions. - -# __2.18.16__ __2022-11-11__ -## __AWS Glue__ - - ### Features - - Added links related to enabling job bookmarks. - -## __AWS IoT__ - - ### Features - - This release add new api listRelatedResourcesForAuditFinding and new member type IssuerCertificates for Iot device device defender Audit. - -## __AWS License Manager__ - - ### Features - - AWS License Manager now supports onboarded Management Accounts or Delegated Admins to view granted licenses aggregated from all accounts in the organization. - -## __AWS Marketplace Catalog Service__ - - ### Features - - Added three new APIs to support tagging and tag-based authorization: TagResource, UntagResource, and ListTagsForResource. Added optional parameters to the StartChangeSet API to support tagging a resource while making a request to create it. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS SecurityHub__ - - ### Features - - Documentation updates for Security Hub - -## __AWS Systems Manager Incident Manager__ - - ### Features - - RelatedItems now have an ID field which can be used for referencing them else where. Introducing event references in TimelineEvent API and increasing maximum length of "eventData" to 12K characters. - -## __Amazon Rekognition__ - - ### Features - - Adding support for ImageProperties feature to detect dominant colors and image brightness, sharpness, and contrast, inclusion and exclusion filters for labels and label categories, new fields to the API response, "aliases" and "categories" - -# __2.18.15__ __2022-11-10__ -## __AWS Resource Explorer__ - - ### Features - - Text only updates to some Resource Explorer descriptions. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for task scale-in protection with updateTaskProtection and getTaskProtection APIs. UpdateTaskProtection API can be used to protect a service managed task from being terminated by scale-in events and getTaskProtection API to get the scale-in protection status of a task. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new price capacity optimized allocation strategy for Spot Instances to help customers optimize provisioning of Spot Instances via EC2 Auto Scaling, EC2 Fleet, and Spot Fleet. It allocates Spot Instances based on both spare capacity availability and Spot Instance price. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon OpenSearch Service now offers managed VPC endpoints to connect to your Amazon OpenSearch Service VPC-enabled domain in a Virtual Private Cloud (VPC). This feature allows you to privately access OpenSearch Service domain without using public IPs or requiring traffic to traverse the Internet. - -## __Amazon EventBridge Scheduler__ - - ### Features - - AWS introduces the new Amazon EventBridge Scheduler. EventBridge Scheduler is a serverless scheduler that allows you to create, run, and manage tasks from one central, managed service. - -## __Auto Scaling__ - - ### Features - - This release adds a new price capacity optimized allocation strategy for Spot Instances to help customers optimize provisioning of Spot Instances via EC2 Auto Scaling, EC2 Fleet, and Spot Fleet. It allocates Spot Instances based on both spare capacity availability and Spot Instance price. - -# __2.18.14__ __2022-11-09__ -## __AWS Elemental MediaPackage VOD__ - - ### Features - - This release adds "IncludeIframeOnlyStream" for Dash endpoints. - -## __AWS Ground Station__ - - ### Features - - This release adds the preview of customer-provided ephemeris support for AWS Ground Station, allowing space vehicle owners to provide their own position and trajectory information for a satellite. - -## __Amazon Connect Cases__ - - ### Features - - This release adds the ability to disable templates through the UpdateTemplate API. Disabling templates prevents customers from creating cases using the template. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html - -## __Amazon Connect Service__ - - ### Features - - This release adds new fields SignInUrl, UserArn, and UserId to GetFederationToken response payload. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 Trn1 instances, powered by AWS Trainium chips, are purpose built for high-performance deep learning training. u-24tb1.112xlarge and u-18tb1.112xlarge High Memory instances are purpose-built to run large in-memory databases. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - This will release hi-IN and th-TH - -# __2.18.13__ __2022-11-08__ -## __AWS Certificate Manager__ - - ### Features - - Support added for requesting elliptic curve certificate key algorithm types P-256 (EC_prime256v1) and P-384 (EC_secp384r1). - -## __AWS Resource Explorer__ - - ### Features - - This is the initial SDK release for AWS Resource Explorer. AWS Resource Explorer lets your users search for and discover your AWS resources across the AWS Regions in your account. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWSBillingConductor__ - - ### Features - - This release adds the Recurring Custom Line Item feature along with a new API ListCustomLineItemVersions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release enables sharing of EC2 Placement Groups across accounts and within AWS Organizations using Resource Access Manager - -## __Amazon Lightsail__ - - ### Features - - This release adds support for Amazon Lightsail to automate the delegation of domains registered through Amazon Route 53 to Lightsail DNS management and to automate record creation for DNS validation of Lightsail SSL/TLS certificates. - -## __Amazon OpenSearch Service__ - - ### Features - - Amazon OpenSearch Service now offers managed VPC endpoints to connect to your Amazon OpenSearch Service VPC-enabled domain in a Virtual Private Cloud (VPC). This feature allows you to privately access OpenSearch Service domain without using public IPs or requiring traffic to traverse the Internet. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new voices: Elin (sv-SE), Ida (nb-NO), Laura (nl-NL) and Suvi (fi-FI). They are available as neural voices only. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Europe (Zurich) Region (eu-central-2) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -## __Firewall Management Service__ - - ### Features - - AWS Firewall Manager now supports importing existing AWS Network Firewall firewalls into Firewall Manager policies. - -# __2.18.12__ __2022-11-07__ -## __AWS CloudTrail__ - - ### Features - - This release includes support for configuring a delegated administrator to manage an AWS Organizations organization CloudTrail trails and event data stores, and AWS Key Management Service encryption of CloudTrail Lake event data stores. - -## __AWS Elemental MediaConvert__ - - ### Features - - The AWS Elemental MediaConvert SDK has added support for setting the SDR reference white point for HDR conversions and conversion of HDR10 to DolbyVision without mastering metadata. - -## __AWS SDK for Java v2__ - - ### Features - - The SSOCredentialProvider should resolve to SSO Token Provider if the profile has sso_session property defined in it. - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - The geo match statement now adds labels for country and region. You can match requests at the region level by combining a geo match statement with label match statements. - -## __AWS Well-Architected Tool__ - - ### Features - - This release adds support for integrations with AWS Trusted Advisor and AWS Service Catalog AppRegistry to improve workload discovery and speed up your workload reviews. - -## __Amazon Athena__ - - ### Features - - Adds support for using Query Result Reuse - -## __Amazon ElastiCache__ - - ### Features - - Added support for IPv6 and dual stack for Memcached and Redis clusters. Customers can now launch new Redis and Memcached clusters with IPv6 and dual stack networking support. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for two new attributes for attribute-based instance type selection - NetworkBandwidthGbps and AllowedInstanceTypes. - -## __Amazon Lex Model Building V2__ - - ### Features - - Amazon Lex now supports new APIs for viewing and editing Custom Vocabulary in bots. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release includes support for applying a CloudWatch alarm to multi account multi region Systems Manager Automation - -## __Amazon WorkSpaces__ - - ### Features - - This release adds protocols attribute to workspaces properties data type. This enables customers to migrate workspaces from PC over IP (PCoIP) to WorkSpaces Streaming Protocol (WSP) using create and modify workspaces public APIs. - -## __Auto Scaling__ - - ### Features - - This release adds support for two new attributes for attribute-based instance type selection - NetworkBandwidthGbps and AllowedInstanceTypes. - -# __2.18.11__ __2022-11-04__ -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch Logs__ - - ### Features - - Doc-only update for bug fixes and support of export to buckets encrypted with SSE-KMS - -## __Amazon EMR Containers__ - - ### Features - - Adding support for Job templates. Job templates allow you to create and store templates to configure Spark applications parameters. This helps you ensure consistent settings across applications by reusing and enforcing configuration overrides in data pipelines. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds API support for the recipient of an AMI account share to remove shared AMI launch permissions. - -# __2.18.10__ __2022-11-03__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed an issue that could result in signature mismatch exceptions when requests included . or .. - -## __Amazon MemoryDB__ - - ### Features - - Adding support for r6gd instances for MemoryDB Redis with data tiering. In a cluster with data tiering enabled, when available memory capacity is exhausted, the least recently used data is automatically tiered to solid state drives for cost-effective capacity scaling with minimal performance impact. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker now supports running training jobs on ml.trn1 instance types. - -# __2.18.9__ __2022-11-02__ -## __AWS IoT SiteWise__ - - ### Features - - This release adds the ListAssetModelProperties and ListAssetProperties APIs. You can list all properties that belong to a single asset model or asset using these two new APIs. - -## __AWS S3 Control__ - - ### Features - - S3 on Outposts launches support for Lifecycle configuration for Outposts buckets. With S3 Lifecycle configuration, you can mange objects so they are stored cost effectively. You can manage objects using size-based rules and specify how many noncurrent versions bucket will retain. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Adds support for tagging replication-set on creation. - -## __Amazon S3__ - - ### Bugfixes - - Update CopySourceInterceptor to remove leading slash in header value for ARN source buckets - -## __Amazon SageMaker Service__ - - ### Features - - This release updates Framework model regex for ModelPackage to support new Framework version xgboost, sklearn. - -# __2.18.8__ __2022-11-01__ -## __Amazon Relational Database Service__ - - ### Features - - Relational Database Service - This release adds support for configuring Storage Throughput on RDS database instances. - -## __Amazon Textract__ - - ### Features - - Add ocr results in AnalyzeIDResponse as blocks - -# __2.18.7__ __2022-10-31__ -## __AWS App Runner__ - - ### Features - - This release adds support for private App Runner services. Services may now be configured to be made private and only accessible from a VPC. The changes include a new VpcIngressConnection resource and several new and modified APIs. - -## __AWS IoT__ - - ### Features - - This release adds the Amazon Location action to IoT Rules Engine. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon CloudWatch Logs__ - - ### Features - - SDK release to support tagging for destinations and log groups with TagResource. Also supports tag on create with PutDestination. - -## __Amazon Connect Service__ - - ### Features - - Amazon connect now support a new API DismissUserContact to dismiss or remove terminated contacts in Agent CCP - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Elastic IP transfer is a new Amazon VPC feature that allows you to transfer your Elastic IP addresses from one AWS Account to another. - -## __Amazon Simple Email Service__ - - ### Features - - This release includes support for interacting with the Virtual Deliverability Manager, allowing you to opt in/out of the feature and to retrieve recommendations and metric data. - -## __Amazon Textract__ - - ### Features - - This release introduces additional support for 30+ normalized fields such as vendor address and currency. It also includes OCR output in the response and accuracy improvements for the already supported fields in previous version - -# __2.18.6__ __2022-10-28__ -## __AWS App Runner__ - - ### Features - - AWS App Runner adds .NET 6, Go 1, PHP 8.1 and Ruby 3.1 runtimes. - -## __AWS Cloud9__ - - ### Features - - Update to the documentation section of the Cloud9 API Reference guide. - -## __AWS CloudFormation__ - - ### Features - - This release adds more fields to improves visibility of AWS CloudFormation StackSets information in following APIs: ListStackInstances, DescribeStackInstance, ListStackSetOperationResults, ListStackSetOperations, DescribeStackSetOperation. - -## __AWS MediaTailor__ - - ### Features - - This release introduces support for SCTE-35 segmentation descriptor messages which can be sent within time signal messages. - -## __AWS Private 5G__ - - ### Features - - Fix incorrect endpoint-prefix in endpoint ruleset. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS Support App__ - - ### Features - - Fix incorrect endpoint-prefix in endpoint ruleset. - -## __Amazon AppStream__ - - ### Features - - This release includes CertificateBasedAuthProperties in CreateDirectoryConfig and UpdateDirectoryConfig. - -## __GameSparks__ - - ### Features - - Add LATEST as a possible GameSDK Version on snapshot - -# __2.18.5__ __2022-10-27__ -## __AWS Glue__ - - ### Features - - Added support for custom datatypes when using custom csv classifier. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __AWS WAFV2__ - - ### Features - - This release adds the following: Challenge rule action, to silently verify client browsers; rule group rule action override to any valid rule action, not just Count; token sharing between protected applications for challenge/CAPTCHA token; targeted rules option for Bot Control managed rule group. - -## __AWs SDK for Java v2__ - - ### Bugfixes - - We are only enabling rules based endpoints for S3, S3Control, and EventBridge for now in order to roll back incorrect hostprefix handling in the Java SDK. EventBridge are unaffected by this issue because it does not have a `hostPrefix` in its service model. S3 and S3Control have `hostPrefix` in the model, it is handled by the rule set. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Feature supports the replacement of instance root volume using an updated AMI without requiring customers to stop their instance. - -## __Amazon Redshift__ - - ### Features - - This release clarifies use for the ElasticIp parameter of the CreateCluster and RestoreFromClusterSnapshot APIs. - -## __Amazon SageMaker Service__ - - ### Features - - This change allows customers to provide a custom entrypoint script for the docker container to be run while executing training jobs, and provide custom arguments to the entrypoint script. - -## __Firewall Management Service__ - - ### Features - - Add support NetworkFirewall Managed Rule Group Override flag in GetViolationDetails API - -# __2.18.4__ __2022-10-26__ -## __AWS Identity and Access Management__ - - ### Features - - Doc only update that corrects instances of CLI not using an entity. - -## __AWS SDK for Java v2__ - - ### Features - - Update EnhancedAttributeValue to accept Collection - - Contributed by: [@L-Applin](https://github.com/L-Applin) - - - ### Bugfixes - - HttpChecksumResolver.getResolvedChecksumSpecs() first attempts retrieval of checksum from ExecutionAttributes before resolving it - -## __Amazon Neptune__ - - ### Features - - Added a new cluster-level attribute to set the capacity range for Neptune Serverless instances. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Automatic Model Tuning now supports specifying Grid Search strategy for tuning jobs, which evaluates all hyperparameter combinations exhaustively based on the categorical hyperparameters provided. - -## __Managed Streaming for Kafka__ - - ### Features - - This release adds support for Tiered Storage. UpdateStorage allows you to control the Storage Mode for supported storage tiers. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@L-Applin](https://github.com/L-Applin) -# __2.18.3__ __2022-10-25__ -## __AWS MediaTailor__ - - ### Features - - This release is a documentation update - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Access Analyzer__ - - ### Features - - This release adds support for six new resource types in IAM Access Analyzer to help you easily identify public and cross-account access to your AWS resources. Updated service API, documentation, and paginators. - -## __Amazon Location Service__ - - ### Features - - Added new map styles with satellite imagery for map resources using HERE as a data provider. - -## __Amazon Relational Database Service__ - - ### Features - - Relational Database Service - This release adds support for exporting DB cluster data to Amazon S3. - -## __Amazon WorkSpaces__ - - ### Features - - This release adds new enums for supporting Workspaces Core features, including creating Manual running mode workspaces, importing regular Workspaces Core images and importing g4dn Workspaces Core images. - -# __2.18.2__ __2022-10-24__ -## __AWS Batch__ - - ### Features - - This release adds support for AWS Batch on Amazon EKS. - -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - AWS Private Certificate Authority (AWS Private CA) now offers usage modes which are combination of features to address specific use cases. - -## __AWS DataSync__ - - ### Features - - Added support for self-signed certificates when using object storage locations; added BytesCompressed to the TaskExecution response. - -## __AWS SDK for Java v2__ - - ### Features - - Updated endpoint and partition metadata. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Inference Recommender now supports a new API ListInferenceRecommendationJobSteps to return the details of all the benchmark we create for an inference recommendation job. - -# __2.18.1__ __2022-10-21__ -## __Amazon Cognito Identity Provider__ - - ### Features - - This release adds a new "DeletionProtection" field to the UserPool in Cognito. Application admins can configure this value with either ACTIVE or INACTIVE value. Setting this field to ACTIVE will prevent a user pool from accidental deletion. - -## __Amazon SageMaker Service__ - - ### Features - - CreateInferenceRecommenderjob API now supports passing endpoint details directly, that will help customers to identify the max invocation and max latency they can achieve for their model and the associated endpoint along with getting recommendations on other instances. - -## __Amazon Simple Storage Service__ - - ### Features - - S3 on Outposts launches support for automatic bucket-style alias. You can use the automatic access point alias instead of an access point ARN for any object-level operation in an Outposts bucket. - -# __2.18.0__ __2022-10-20__ -## __AWS Global Accelerator__ - - ### Features - - Global Accelerator now supports AddEndpoints and RemoveEndpoints operations for standard endpoint groups. - -## __AWS Resilience Hub__ - - ### Features - - In this release, we are introducing support for regional optimization for AWS Resilience Hub applications. It also includes a few documentation updates to improve clarity. - -## __AWS SDK for Java v2__ - - ### Features - - This release updates internal logic for constructing API endpoints. - - We have added rule-based endpoint providers. Additionally there are new interfaces for endpoint providers and parameters at the service client level. - - The SDK provides service-specific `EndpointProvider` interfaces (e.g. `S3EndpointProvider`), that have a single method `resolveEndpoint`. `resolveEndpoint` accepts a set of parameters (also service specific) and computes an endpoint based on those parameters. All clients have a default implementation, but users are free to implement these to customize their endpoint logic. - - It is important to know that `EndpointProvider`s and the endpoint override on the client are not mutually exclusive. In all existing cases, the endpoint override is passed as a parameter to the the provider and the provider *may* modify it. For example, the S3 provider may add the bucket name as a prefix to the endpoint override for virtual bucket addressing. - - There may be some behavior changes related to endpoint resolution as as the the endpoint resolution is now standardised across SDKs so this release also bumps the minor version of the SDK to `2.18`. - - Notably, there are some changes in S3: when including and endpoint override, the SDK will use virtual bucket addressing as long as the bucket is a valid DNS label. This is different from the previous behavior where this only happens if the endpoint override begins with 's3'. - - In many situations, the exception thrown for validations like including an endpoint override and enabling DualStack has changed to `SdkClientExcpetion` and error messages have changed as well. - - Updated endpoint and partition metadata. - -## __Amazon DevOps Guru__ - - ### Features - - This release adds information about the resources DevOps Guru is analyzing. - -## __CloudWatch RUM__ - - ### Features - - CloudWatch RUM now supports Extended CloudWatch Metrics with Additional Dimensions - -# __2.17.295__ __2022-10-19__ -## __AWS CloudTrail__ - - ### Features - - This release includes support for exporting CloudTrail Lake query results to an Amazon S3 bucket. - -## __AWS Config__ - - ### Features - - This release adds resourceType enums for AppConfig, AppSync, DataSync, EC2, EKS, Glue, GuardDuty, SageMaker, ServiceDiscovery, SES, Route53 types. - -## __AWS S3 Control__ - - ### Features - - Updates internal logic for constructing API endpoints. We have added rule-based endpoints and internal model parameters. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Support App__ - - ### Features - - This release adds the RegisterSlackWorkspaceForOrganization API. You can use the API to register a Slack workspace for an AWS account that is part of an organization. - -## __Amazon Chime SDK Messaging__ - - ### Features - - Documentation updates for Chime Messaging SDK - -## __Amazon Connect Service__ - - ### Features - - This release adds API support for managing phone numbers that can be used across multiple AWS regions through telephony traffic distribution. - -## __Amazon EventBridge__ - - ### Features - - Updates internal logic for constructing API endpoints. We have added rule-based endpoints and internal model parameters. - -## __Amazon Managed Blockchain__ - - ### Features - - Adding new Accessor APIs for Amazon Managed Blockchain - -## __Amazon Simple Storage Service__ - - ### Features - - Updates internal logic for constructing API endpoints. We have added rule-based endpoints and internal model parameters. - -## __Amazon WorkSpaces Web__ - - ### Features - - WorkSpaces Web now supports user access logging for recording session start, stop, and URL navigation. - -## __WS SDK for Java v2__ - - ### Bugfixes - - Fix bug in FIPS configuration handling where setting a non-FIPS region clears the setting. - -# __2.17.294__ __2022-10-18__ -## __AWS Cloud Map__ - - ### Features - - Updated the ListNamespaces API to support the NAME and HTTP_NAME filters, and the BEGINS_WITH filter condition. - -## __AWS SDK for Java v2__ - - ### Features - - Bump jackson-databind version to 2.13.4.2 - - Updated service endpoint metadata. - -## __Amazon Fraud Detector__ - - ### Features - - Documentation Updates for Amazon Fraud Detector - -## __Amazon SageMaker Service__ - - ### Features - - This change allows customers to enable data capturing while running a batch transform job, and configure monitoring schedule to monitoring the captured data. - -## __Amazon Simple Email Service__ - - ### Features - - This release allows subscribers to enable Dedicated IPs (managed) to send email via a fully managed dedicated IP experience. It also adds identities' VerificationStatus in the response of GetEmailIdentity and ListEmailIdentities APIs, and ImportJobs counts in the response of ListImportJobs API. - -# __2.17.293__ __2022-10-17__ -## __AWS Greengrass__ - - ### Features - - This change allows customers to specify FunctionRuntimeOverride in FunctionDefinitionVersion. This configuration can be used if the runtime on the device is different from the AWS Lambda runtime specified for that function. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for C7g, C6g, C6gd, C6gn, M6g, M6gd, R6g, and R6gn Graviton instance types in Amazon SageMaker Inference. - -# __2.17.292__ __2022-10-14__ -## __AWS Elemental MediaConvert__ - - ### Features - - MediaConvert now supports specifying the minimum percentage of the HRD buffer available at the end of each encoded video segment. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.17.291__ __2022-10-13__ -## __AWS Amplify UI Builder__ - - ### Features - - We are releasing the ability for fields to be configured as arrays. - -## __AWS Directory Service__ - - ### Features - - This release adds support for describing and updating AWS Managed Microsoft AD set up. - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports forwarding SCTE-35 messages through the Event Signaling and Management (ESAM) API, and can read those SCTE-35 messages from an inactive source. - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - This release adds SPEKE v2 support for MediaPackage VOD. Speke v2 is an upgrade to the existing SPEKE API to support multiple encryption keys, based on an encryption contract selected by the customer. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for the AWS Identity and Access Management API Reference. - -## __AWS IoT FleetWise__ - - ### Features - - Documentation update for AWS IoT FleetWise - -## __AWS Panorama__ - - ### Features - - Pause and resume camera stream processing with SignalApplicationInstanceNodeInstances. Reboot an appliance with CreateJobForDevices. More application state information in DescribeApplicationInstance response. - -## __AWS RDS DataService__ - - ### Features - - Doc update to reflect no support for schema parameter on BatchExecuteStatement API - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Update RelatedItem enum to support Tasks - -## __AWS Transfer Family__ - - ### Features - - This release adds an option for customers to configure workflows that are triggered when files are only partially received from a client due to premature session disconnect. - -## __Amazon Appflow__ - - ### Features - - With this update, you can choose which Salesforce API is used by Amazon AppFlow to transfer data to or from your Salesforce account. You can choose the Salesforce REST API or Bulk API 2.0. You can also choose for Amazon AppFlow to pick the API automatically. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for a secondary email and a mobile number for Amazon Connect instance users. - -## __Amazon Connect Wisdom Service__ - - ### Features - - This release updates the GetRecommendations API to include a trigger event list for classifying and grouping recommendations. - -## __Amazon DynamoDB__ - - ### Features - - Add locale converter to enhanced DynamoDB client - - Contributed by: [@thomasturrell](https://github.com/thomasturrell) - -## __Amazon DynamoDB Enhanced__ - - ### Features - - Treat @java.beans.Transient as @DynamoDbIgnore in BeanTableSchema and ImmutableTableSchema. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation update to address tickets. - -## __Amazon GuardDuty__ - - ### Features - - Add UnprocessedDataSources to CreateDetectorResponse which specifies the data sources that couldn't be enabled during the CreateDetector request. In addition, update documentations. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Support of AmazonLinux2022 by Patch Manager - -## __Amazon Translate__ - - ### Features - - This release enables customers to specify multiple target languages in asynchronous batch translation requests. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@thomasturrell](https://github.com/thomasturrell) -# __2.17.290__ __2022-10-07__ -## __AWS IoT Greengrass V2__ - - ### Features - - This release adds error status details for deployments and components that failed on a device and adds features to improve visibility into component installation. - -## __AWS SDK for Java v2__ - - ### Features - - Add the ability to configure connection timeout, and enabling keep-alive with interval/timeout settings on the AwsCrtAsyncHttpClient to support long-running connections - - Contributed by: [@nikp](https://github.com/nikp) - - Updated service endpoint metadata. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Documentation update to replace broken link. - -## __Amazon QuickSight__ - - ### Features - - Amazon QuickSight now supports SecretsManager Secret ARN in place of CredentialPair for DataSource creation and update. This release also has some minor documentation updates and removes CountryCode as a required parameter in GeoSpatialColumnGroup - -## __Elastic Load Balancing__ - - ### Features - - Gateway Load Balancer adds a new feature (target_failover) for customers to rebalance existing flows to a healthy target after marked unhealthy or deregistered. This allows graceful patching/upgrades of target appliances during maintenance windows, and helps reduce unhealthy target failover time. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@nikp](https://github.com/nikp) -# __2.17.289__ __2022-10-06__ -## __AWS Resilience Hub__ - - ### Features - - Documentation change for AWS Resilience Hub. Doc-only update to fix Documentation layout - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Adds support for automatically transforming a FIPS pesudo region (e.g. "fips-us-west-2"), into a standard region name + setting the `fips_enabled` flag to `true`. - -# __2.17.288__ __2022-10-05__ -## __AWS Glue__ - - ### Features - - This SDK release adds support to sync glue jobs with source control provider. Additionally, a new parameter called SourceControlDetails will be added to Job model. - -## __AWS Network Firewall__ - - ### Features - - StreamExceptionPolicy configures how AWS Network Firewall processes traffic when a network connection breaks midstream - -## __AWS Outposts__ - - ### Features - - This release adds the Asset state information to the ListAssets response. The ListAssets request supports filtering on Asset state. - -# __2.17.287__ __2022-10-04__ -## __AWS S3 Control__ - - ### Features - - S3 Object Lambda adds support to allow customers to intercept HeadObject and ListObjects requests and introduce their own compute. These requests were previously proxied to S3. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Build headers with two-digit day of month to meet RFC 822 reporting requirement - - Contributed by: [@dave-fn](https://github.com/dave-fn) - -## __Amazon Connect Cases__ - - ### Features - - This release adds APIs for Amazon Connect Cases. Cases allows your agents to quickly track and manage customer issues that require multiple interactions, follow-up tasks, and teams in your contact center. For more information, see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html - -## __Amazon Connect Service__ - - ### Features - - Updated the CreateIntegrationAssociation API to support the CASES_DOMAIN IntegrationType. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation updates to address various Amazon ECS tickets. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added EnableNetworkAddressUsageMetrics flag for ModifyVpcAttribute, DescribeVpcAttribute APIs. - -## __Amazon WorkMail__ - - ### Features - - This release adds support for impersonation roles in Amazon WorkMail. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@dave-fn](https://github.com/dave-fn) -# __2.17.286__ __2022-10-03__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Access Analyzer__ - - ### Features - - AWS IAM Access Analyzer policy validation introduces new checks for role trust policies. As customers author a policy, IAM Access Analyzer policy validation evaluates the policy for any issues to make it easier for customers to author secure policies. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adding an imdsSupport attribute to EC2 AMIs - -## __Amazon Import/Export Snowball__ - - ### Features - - Adds support for V3_5C. This is a refreshed AWS Snowball Edge Compute Optimized device type with 28TB SSD, 104 vCPU and 416GB memory (customer usable). - -# __2.17.285__ __2022-09-30__ -## __AWS CodeDeploy__ - - ### Features - - This release allows you to override the alarm configurations when creating a deployment. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SSO OIDC__ - - ### Features - - Documentation updates for the IAM Identity Center OIDC CLI Reference. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - This release adds support for archival of single-volume snapshots created by Amazon Data Lifecycle Manager policies - -## __Amazon DevOps Guru__ - - ### Features - - This release adds filter feature on AddNotificationChannel API, enable customer to configure the SNS notification messages by Severity or MessageTypes - -## __Amazon SageMaker Runtime__ - - ### Features - - A new parameter called EnableExplanations is added to InvokeEndpoint API to enable on-demand SageMaker Clarify online explainability requests. - -## __Amazon SageMaker Service__ - - ### Features - - A new parameter called ExplainerConfig is added to CreateEndpointConfig API to enable SageMaker Clarify online explainability feature. - -# __2.17.284__ __2022-09-29__ -## __AWS Certificate Manager__ - - ### Features - - This update returns additional certificate details such as certificate SANs and allows sorting in the ListCertificates API. - -## __AWS Migration Hub Orchestrator__ - - ### Features - - Introducing AWS MigrationHubOrchestrator. This is the first public release of AWS MigrationHubOrchestrator. - -## __AWS Proton__ - - ### Features - - This release adds an option to delete pipeline provisioning repositories using the UpdateAccountSettings API - -## __AWS SDK for Java v2__ - - ### Features - - Provide the ability to set a custom socket factory when building an HTTP client - - Contributed by: [@dave-fn](https://github.com/dave-fn) - - Updated service endpoint metadata. - - - ### Bugfixes - - Update RequestBody/AsyncRequestBody.fromString(String, Charset) to use the provided charset in the content-type. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __Amazon Elastic Compute Cloud__ - - ### Features - - u-3tb1 instances are powered by Intel Xeon Platinum 8176M (Skylake) processors and are purpose-built to run large in-memory databases. - -## __Amazon FSx__ - - ### Features - - This release adds support for Amazon File Cache. - -## __Amazon Polly__ - - ### Features - - Added support for the new Cantonese voice - Hiujin. Hiujin is available as a Neural voice only. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Training Managed Warm Pools let you retain provisioned infrastructure to reduce latency for repetitive training workloads. - -## __Amazon Translate__ - - ### Features - - This release enables customers to access control rights on Translate resources like Parallel Data and Custom Terminology using Tag Based Authorization. - -## __Amazon WorkSpaces__ - - ### Features - - This release includes diagnostic log uploading feature. If it is enabled, the log files of WorkSpaces Windows client will be sent to Amazon WorkSpaces automatically for troubleshooting. You can use modifyClientProperty api to enable/disable this feature. - -## __EMR Serverless__ - - ### Features - - This release adds API support to debug Amazon EMR Serverless jobs in real-time with live application UIs - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@dave-fn](https://github.com/dave-fn) -# __2.17.283__ __2022-09-27__ -## __AWS Cost Explorer Service__ - - ### Features - - This release is to support retroactive Cost Categories. The new field will enable you to retroactively apply new and existing cost category rules to previous months. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - My AWS Service (placeholder) - Amazon Kendra now provides a data source connector for DropBox. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-dropbox.html - -## __Amazon Location Service__ - - ### Features - - This release adds place IDs, which are unique identifiers of places, along with a new GetPlace operation, which can be used with place IDs to find a place again later. UnitNumber and UnitType are also added as new properties of places. - -# __2.17.282__ __2022-09-26__ -## __AWS Cost and Usage Report Service__ - - ### Features - - This release adds two new support regions(me-central-1/eu-south-2) for OSG. - -## __AWS IoT FleetWise__ - - ### Features - - General availability (GA) for AWS IoT Fleetwise. It adds AWS IoT Fleetwise to AWS SDK. For more information, see https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/Welcome.html. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release includes support for applying a CloudWatch alarm to Systems Manager capabilities like Automation, Run Command, State Manager, and Maintenance Windows. - -# __2.17.281__ __2022-09-23__ -## __AWS App Runner__ - - ### Features - - AWS App Runner adds a Node.js 16 runtime. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAFV2__ - - ### Features - - Add the default specification for ResourceType in ListResourcesForWebACL. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Letting external AWS customers provide ImageId as a Launch Template override in FleetLaunchTemplateOverridesRequest - -## __Amazon Lex Model Building V2__ - - ### Features - - This release introduces additional optional parameters promptAttemptsSpecification to PromptSpecification, which enables the users to configure interrupt setting and Audio, DTMF and Text input configuration for the initial and retry prompt played by the Bot - -## __Amazon Lightsail__ - - ### Features - - This release adds Instance Metadata Service (IMDS) support for Lightsail instances. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release adds new SSM document types ConformancePackTemplate and CloudFormation - -## __AmazonNimbleStudio__ - - ### Features - - Amazon Nimble Studio adds support for on-demand Amazon Elastic Compute Cloud (EC2) G3 and G5 instances, allowing customers to utilize additional GPU instance types for their creative projects. - -# __2.17.280__ __2022-09-22__ -## __AWS Backup Gateway__ - - ### Features - - Changes include: new GetVirtualMachineApi to fetch a single user's VM, improving ListVirtualMachines to fetch filtered VMs as well as all VMs, and improving GetGatewayApi to now also return the gateway's MaintenanceStartTime. - -## __AWS Device Farm__ - - ### Features - - This release adds the support for VPC-ENI based connectivity for private devices on AWS Device Farm. - -## __AWS Glue__ - - ### Features - - Added support for S3 Event Notifications for Catalog Target Crawlers. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SSO Identity Store__ - - ### Features - - Documentation updates for the Identity Store CLI Reference. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Amazon EC2. - -# __2.17.279__ __2022-09-21__ -## __AWS S3 Control__ - - ### Features - - S3 on Outposts launches support for object versioning for Outposts buckets. With S3 Versioning, you can preserve, retrieve, and restore every version of every object stored in your buckets. You can recover from both unintended user actions and application failures. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed issue where errors were being wrapped by SdkClientException - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now supports synchronous mode for targeted sentiment API operations. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker now allows customization on Canvas Application settings, including enabling/disabling time-series forecasting and specifying an Amazon Forecast execution role at both the Domain and UserProfile levels. - -# __2.17.278__ __2022-09-20__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for blocked paths to Amazon VPC Reachability Analyzer. - -# __2.17.277__ __2022-09-19__ -## __AWS CloudTrail__ - - ### Features - - This release includes support for importing existing trails into CloudTrail Lake. - -## __AWS MediaConnect__ - - ### Features - - This change allows the customer to use the SRT Caller protocol as part of their flows - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds CapacityAllocations field to DescribeCapacityReservations - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for Amazon RDS Proxy with SQL Server compatibility. - -# __2.17.276__ __2022-09-16__ -## __AWS CodeStar Notifications__ - - ### Features - - This release adds tag based access control for the UntagResource API. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed issue where request used to fail while calculating Trailer based checksum for Async Request body. - -## __Amazon EC2 Container Service__ - - ### Features - - This release supports new task definition sizes. - -# __2.17.275__ __2022-09-15__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DynamoDB__ - - ### Features - - Increased DynamoDB transaction limit from 25 to 100. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This feature allows customers to create tags for vpc-endpoint-connections and vpc-endpoint-service-permissions. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Automatic Model Tuning now supports specifying Hyperband strategy for tuning jobs, which uses a multi-fidelity based tuning strategy to stop underperforming hyperparameter configurations early. - -# __2.17.274__ __2022-09-14__ -## __AWS Amplify UI Builder__ - - ### Features - - Amplify Studio UIBuilder is introducing forms functionality. Forms can be configured from Data Store models, JSON, or from scratch. These forms can then be generated in your project and used like any other React components. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This update introduces API operations to manage and create local gateway route tables, CoIP pools, and VIF group associations. - -# __2.17.273__ __2022-09-13__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Transfer Family__ - - ### Features - - This release introduces the ability to have multiple server host keys for any of your Transfer Family servers that use the SFTP protocol. - -## __AWSKendraFrontendService__ - - ### Features - - This release enables our customer to choose the option of Sharepoint 2019 for the on-premise Sharepoint connector. - -## __Amazon CloudWatch Evidently__ - - ### Features - - This release adds support for the client-side evaluation - powered by AWS AppConfig feature. - -## __Amazon Connect Customer Profiles__ - - ### Features - - Added isUnstructured in response for Customer Profiles Integration APIs - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Two new features for local gateway route tables: support for static routes targeting Elastic Network Interfaces and direct VPC routing. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Fixed the data type of lagDuration that is returned in Describe Source Server API - -# __2.17.272__ __2022-09-12__ -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding support for local Amazon EKS clusters on Outposts - -# __2.17.271__ __2022-09-09__ -## __AWS CloudTrail__ - - ### Features - - This release adds CloudTrail getChannel and listChannels APIs to allow customer to view the ServiceLinkedChannel configurations. - -## __AWS Performance Insights__ - - ### Features - - Increases the maximum values of two RDS Performance Insights APIs. The maximum value of the Limit parameter of DimensionGroup is 25. The MaxResult maximum is now 25 for the following APIs: DescribeDimensionKeys, GetResourceMetrics, ListAvailableResourceDimensions, and ListAvailableResourceMetrics. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release is for supporting Composite Slot Type feature in AWS Lex V2. Composite Slot Type will help developer to logically group coherent slots and maintain their inter-relationships in runtime conversation. - -## __Amazon Lex Runtime V2__ - - ### Features - - This release is for supporting Composite Slot Type feature in AWS Lex V2. Composite Slot Type will help developer to logically group coherent slots and maintain their inter-relationships in runtime conversation. - -## __Amazon Redshift__ - - ### Features - - This release updates documentation for AQUA features and other description updates. - -# __2.17.270__ __2022-09-08__ -## __AWS Common Runtime HTTP Client__ - - ### Features - - Adds support for Https proxy system properties: host, port, user, password - -## __AWS Elemental MediaLive__ - - ### Features - - This change exposes API settings which allow Dolby Atmos and Dolby Vision to be used when running a channel using Elemental Media Live - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon EMR Containers__ - - ### Features - - EMR on EKS now allows running Spark SQL using the newly introduced Spark SQL Job Driver in the Start Job Run API - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support to send VPC Flow Logs to kinesis-data-firehose as new destination type - -## __Amazon Lookout for Metrics__ - - ### Features - - Release dimension value filtering feature to allow customers to define dimension filters for including only a subset of their dataset to be used by LookoutMetrics. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Middle East (UAE) Region (me-central-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds Mode to AutoMLJobConfig. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release adds support for Systems Manager State Manager Association tagging. - -## __Apache HTTP Client__ - - ### Features - - Adds support for Https proxy system properties: host, port, user, password - -## __Netty NIO HTTP Client__ - - ### Features - - Adds support for Https proxy system properties: host, port, user, password - -# __2.17.269__ __2022-09-07__ -## __AWS Data Exchange__ - - ### Features - - Documentation updates for AWS Data Exchange. - -## __AWS IoT SiteWise__ - - ### Features - - Allow specifying units in Asset Properties - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix for NPE when Http Checksum algorithm is set for a request with Empty payload. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Amazon EC2. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adds support for EKS Addons ResolveConflicts "preserve" flag. Also adds new update failed status for EKS Addons. - -## __Amazon FSx__ - - ### Features - - Documentation update for Amazon FSx. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Hosting now allows customization on ML instance storage volume size, model data download timeout and inference container startup ping health check timeout for each ProductionVariant in CreateEndpointConfig API. - -## __Amazon Simple Notification Service__ - - ### Features - - Amazon SNS introduces the Data Protection Policy APIs, which enable customers to attach a data protection policy to an SNS topic. This allows topic owners to enable the new message data protection feature to audit and block sensitive data that is exchanged through their topics. - -## __Inspector2__ - - ### Features - - This release adds new fields like fixAvailable, fixedInVersion and remediation to the finding model. The requirement to have vulnerablePackages in the finding model has also been removed. The documentation has been updated to reflect these changes. - -# __2.17.268__ __2022-09-06__ -## __AWS SSO Identity Store__ - - ### Features - - Documentation updates for the Identity Store CLI Reference. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds HyperParameterTuningJob type in Search API. - -# __2.17.267__ __2022-09-02__ -## __AWS Elemental MediaPackage__ - - ### Features - - Added support for AES_CTR encryption to CMAF origin endpoints - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Cognito Identity Provider__ - - ### Features - - This release adds a new "AuthSessionValidity" field to the UserPoolClient in Cognito. Application admins can configure this value for their users' authentication duration, which is currently fixed at 3 minutes, up to 15 minutes. Setting this field will also apply to the SMS MFA authentication flow. - -## __Amazon Connect Service__ - - ### Features - - This release adds search APIs for Routing Profiles and Queues, which can be used to search for those resources within a Connect Instance. - -## __Amazon SageMaker Service__ - - ### Features - - This release enables administrators to attribute user activity and API calls from Studio notebooks, Data Wrangler and Canvas to specific users even when users share the same execution IAM role. ExecutionRoleIdentityConfig at Sagemaker domain level enables this feature. - -# __2.17.266__ __2022-09-01__ -## __AWS Control Tower__ - - ### Features - - This release contains the first SDK for AWS Control Tower. It introduces a new set of APIs: EnableControl, DisableControl, GetControlOperation, and ListEnabledControls. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Documentation updates to fix formatting issues in CLI and SDK documentation. - -## __Amazon Route 53__ - - ### Features - - Documentation updates for Amazon Route 53. - -# __2.17.265__ __2022-08-31__ -## __AWS IoT Things Graph__ - - ### Features - - This release deprecates all APIs of the ThingsGraph service - -## __AWS RDS DataService__ - - ### Features - - Documentation updates for RDS Data API - -## __AWS SSO Identity Store__ - - ### Features - - Expand IdentityStore API to support Create, Read, Update, Delete and Get operations for User, Group and GroupMembership resources. - -## __Amazon CloudFront__ - - ### Features - - Update API documentation for CloudFront origin access control (OAC) - -## __Amazon Interactive Video Service__ - - ### Features - - IVS Merge Fragmented Streams. This release adds support for recordingReconnectWindow field in IVS recordingConfigurations. For more information see https://docs.aws.amazon.com/ivs/latest/APIReference/Welcome.html - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Inference Recommender now accepts Inference Recommender fields: Domain, Task, Framework, SamplePayloadUrl, SupportedContentTypes, SupportedInstanceTypes, directly in our CreateInferenceRecommendationsJob API through ContainerConfig - -# __2.17.264__ __2022-08-30__ -## __AWS IoT Greengrass V2__ - - ### Features - - Adds topologyFilter to ListInstalledComponentsRequest which allows filtration of components by ROOT or ALL (including root and dependency components). Adds lastStatusChangeTimestamp to ListInstalledComponents response to show the last time a component changed state on a device. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SSO Identity Store__ - - ### Features - - Documentation updates for the Identity Store CLI Reference. - -## __AWS Single Sign-On__ - - ### Features - - Documentation updates for the AWS IAM Identity Center Portal CLI Reference. - -## __AWS Single Sign-On Admin__ - - ### Features - - Documentation updates for the AWS IAM Identity Center CLI Reference. - -## __Amazon Lookout for Equipment__ - - ### Features - - This release adds new apis for providing labels. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API adds support for using allow lists to define specific text and text patterns to ignore when inspecting data sources for sensitive data. - -# __2.17.263__ __2022-08-29__ -## __AWS SDK for Java v2__ - - ### Features - - Bump CRT version to 0.19.2 - - Updated service endpoint metadata. - -## __Amazon FSx__ - - ### Features - - Documentation updates for Amazon FSx for NetApp ONTAP. - -## __Amazon S3 Transfer Manager__ - - ### Bugfixes - - Added usage of createAnonymousCredentials to fix issue where NPE was thrown when AnonymousCredentialsProvider was passed in - -## __Amazon Voice ID__ - - ### Features - - Amazon Connect Voice ID now detects voice spoofing. When a prospective fraudster tries to spoof caller audio using audio playback or synthesized speech, Voice ID will return a risk score and outcome to indicate the how likely it is that the voice is spoofed. - -## __S3 Transfer Manager__ - - ### Bugfixes - - Fixed the file name mapping issue in downloadDirectory. See [#3366](https://github.com/aws/aws-sdk-java-v2/issues/3366) - -# __2.17.262__ __2022-08-26__ -## __AWS Elemental MediaPackage__ - - ### Features - - This release adds Ads AdTriggers and AdsOnDeliveryRestrictions to describe calls for CMAF endpoints on MediaPackage. - -## __Amazon Relational Database Service__ - - ### Features - - Removes support for RDS Custom from DBInstanceClass in ModifyDBInstance - -# __2.17.261__ __2022-08-25__ -## __AWS IoT Wireless__ - - ### Features - - This release includes a new feature for the customers to enable the LoRa gateways to send out beacons for Class B devices and an option to select one or more gateways for Class C devices when sending the LoRaWAN downlink messages. - -## __AWS Panorama__ - - ### Features - - Support sorting and filtering in ListDevices API, and add more fields to device listings and single device detail - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SSO OIDC__ - - ### Features - - Updated required request parameters on IAM Identity Center's OIDC CreateToken action. - -## __Amazon GameLift__ - - ### Features - - This release adds support for eight EC2 local zones as fleet locations; Atlanta, Chicago, Dallas, Denver, Houston, Kansas City (us-east-1-mci-1a), Los Angeles, and Phoenix. It also adds support for C5d, C6a, C6i, and R5d EC2 instance families. - -## __Amazon Interactive Video Service Chat__ - - ### Features - - Documentation change for IVS Chat API Reference. Doc-only update to add a paragraph on ARNs to the Welcome section. - -## __Elastic Load Balancing__ - - ### Features - - Documentation updates for ELBv2. Gateway Load Balancer now supports Configurable Flow Stickiness, enabling you to configure the hashing used to maintain stickiness of flows to a specific target appliance. - -# __2.17.260__ __2022-08-24__ -## __AWS Config__ - - ### Features - - AWS Config now supports ConformancePackTemplate documents in SSM Docs for the deployment and update of conformance packs. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed an issue in sync clients where empty response payloads could cause a null pointer exception. - -## __AWS Transfer Family__ - - ### Features - - Documentation updates for AWS Transfer Family - -## __Amazon CloudFront__ - - ### Features - - Adds support for CloudFront origin access control (OAC), making it possible to restrict public access to S3 bucket origins in all AWS Regions, those with SSE-KMS, and more. - -## __Amazon Interactive Video Service__ - - ### Features - - Documentation Change for IVS API Reference - Doc-only update to type field description for CreateChannel and UpdateChannel actions and for Channel data type. Also added Amazon Resource Names (ARNs) paragraph to Welcome section. - -## __Amazon QuickSight__ - - ### Features - - Added a new optional property DashboardVisual under ExperienceConfiguration parameter of GenerateEmbedUrlForAnonymousUser and GenerateEmbedUrlForRegisteredUser API operations. This supports embedding of specific visuals in QuickSight dashboards. - -# __2.17.259__ __2022-08-23__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix signature mismatch exception generated when signing query parameters with empty-value keys. - -## __AWS Single Sign-On Admin__ - - ### Features - - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) - -## __Amazon Relational Database Service__ - - ### Features - - RDS for Oracle supports Oracle Data Guard switchover and read replica backups. - -# __2.17.258__ __2022-08-22__ -## __AWS IoT SiteWise__ - - ### Features - - Enable non-unique asset names under different hierarchies - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Added new resource details objects to ASFF, including resources for AwsBackupBackupVault, AwsBackupBackupPlan and AwsBackupRecoveryPoint. Added FixAvailable, FixedInVersion and Remediation to Vulnerability. - -## __AWS Support App__ - - ### Features - - This is the initial SDK release for the AWS Support App in Slack. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Update document for volume clone - -## __Amazon Elastic Compute Cloud__ - - ### Features - - R6a instances are powered by 3rd generation AMD EPYC (Milan) processors delivering all-core turbo frequency of 3.6 GHz. C6id, M6id, and R6id instances are powered by 3rd generation Intel Xeon Scalable processor (Ice Lake) delivering all-core turbo frequency of 3.5 GHz. - -## __Amazon Forecast Query Service__ - - ### Features - - releasing What-If Analysis APIs - -## __Amazon Forecast Service__ - - ### Features - - releasing What-If Analysis APIs and update ARN regex pattern to be more strict in accordance with security recommendation - -## __Amazon Lex Model Building V2__ - - ### Features - - This release introduces a new feature to stop a running BotRecommendation Job for Automated Chatbot Designer. - -# __2.17.257__ __2022-08-19__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - This release adds support for a new authentication type - Personal Access Token (PAT) for confluence server. - -## __Amazon Connect Service__ - - ### Features - - This release adds SearchSecurityProfiles API which can be used to search for Security Profile resources within a Connect Instance. - -## __Amazon Interactive Video Service Chat__ - - ### Features - - Documentation Change for IVS Chat API Reference - Doc-only update to change text/description for tags field. - -## __Amazon Lookout for Metrics__ - - ### Features - - This release is to make GetDataQualityMetrics API publicly available. - -# __2.17.256__ __2022-08-18__ -## __AWS Network Manager__ - - ### Features - - Add TransitGatewayPeeringAttachmentId property to TransitGatewayPeering Model - -## __Amazon Chime SDK Media Pipelines__ - - ### Features - - The Amazon Chime SDK now supports live streaming of real-time video from the Amazon Chime SDK sessions to streaming platforms such as Amazon IVS and Amazon Elemental MediaLive. We have also added support for concatenation to create a single media capture file. - -## __Amazon CloudWatch__ - - ### Features - - Add support for managed Contributor Insights Rules - -## __Amazon Cognito Identity Provider__ - - ### Features - - This change is being made simply to fix the public documentation based on the models. We have included the PasswordChange and ResendCode events, along with the Pass, Fail and InProgress status. We have removed the Success and Failure status which are never returned by our APIs. - -## __Amazon DynamoDB__ - - ### Features - - This release adds support for importing data from S3 into a new DynamoDB table - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for VPN log options , a new feature allowing S2S VPN connections to send IKE activity logs to CloudWatch Logs - -# __2.17.255__ __2022-08-17__ -## __AWS App Mesh__ - - ### Features - - AWS App Mesh release to support Multiple Listener and Access Log Format feature - -## __AWS Lake Formation__ - - ### Features - - This release adds a new API support "AssumeDecoratedRoleWithSAML" and also release updates the corresponding documentation. - -## __AWS Lambda__ - - ### Features - - Added support for customization of Consumer Group ID for MSK and Kafka Event Source Mappings. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager. - -## __AWSKendraFrontendService__ - - ### Features - - This release adds Zendesk connector (which allows you to specify Zendesk SAAS platform as data source), Proxy Support for Sharepoint and Confluence Server (which allows you to specify the proxy configuration if proxy is required to connect to your Sharepoint/Confluence Server as data source). - -## __Amazon Lex Model Building V2__ - - ### Features - - This release introduces support for enhanced conversation design with the ability to define custom conversation flows with conditional branching and new bot responses. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for Internet Protocol Version 6 (IPv6) for RDS Aurora database clusters. - -## __AmazonConnectCampaignService__ - - ### Features - - Updated exceptions for Amazon Connect Outbound Campaign api's. - -# __2.17.254__ __2022-08-16__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - Documentation updates for Service Catalog - -## __Amazon Rekognition__ - - ### Features - - This release adds APIs which support copying an Amazon Rekognition Custom Labels model and managing project policies across AWS account. - -# __2.17.253__ __2022-08-15__ -## __AWS SSO Identity Store__ - - ### Features - - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) - -## __AWS Single Sign-On__ - - ### Features - - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) - -## __Amazon CloudFront__ - - ### Features - - Adds Http 3 support to distributions - -## __Amazon Connect Wisdom Service__ - - ### Features - - This release introduces a new API PutFeedback that allows submitting feedback to Wisdom on content relevance. - -# __2.17.252__ __2022-08-12__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime SDK Messaging__ - - ### Features - - The Amazon Chime SDK now supports channels with up to one million participants with elastic channels. - -## __Amazon Interactive Video Service__ - - ### Features - - Updates various list api MaxResults ranges - -## __Amazon Personalize Runtime__ - - ### Features - - This release provides support for promotions in AWS Personalize runtime. - -## __Amazon Prometheus Service__ - - ### Features - - This release adds log APIs that allow customers to manage logging for their Amazon Managed Service for Prometheus workspaces. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for RDS Custom to DBInstanceClass in ModifyDBInstance - -# __2.17.251__ __2022-08-11__ -## __AWS Backup Storage__ - - ### Features - - This is the first public release of AWS Backup Storage. We are exposing some previously-internal APIs for use by external services. These APIs are not meant to be used directly by customers. - -## __AWS Glue__ - - ### Features - - Add support for Python 3.9 AWS Glue Python Shell jobs - -## __AWS Private 5G__ - - ### Features - - This is the initial SDK release for AWS Private 5G. AWS Private 5G is a managed service that makes it easy to deploy, operate, and scale your own private mobile network at your on-premises location. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.17.250__ __2022-08-10__ -## __Amazon Data Lifecycle Manager__ - - ### Features - - This release adds support for excluding specific data (non-boot) volumes from multi-volume snapshot sets created by snapshot lifecycle policies - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for excluding specific data (non-root) volumes from multi-volume snapshot sets created from instances. - -## __URL Connection HTTP Client__ - - ### Bugfixes - - Fix for S3Client with URL Connection http client fails with EOFException when executing HeadObjectRequest for gzip encodeFix to S3Client fails with EOFException. - -# __2.17.249__ __2022-08-09__ -## __Amazon Augmented AI Runtime__ - - ### Features - - Fix bug with parsing ISO-8601 CreationTime in Java SDK in DescribeHumanLoop - -## __Amazon CloudWatch__ - - ### Features - - Various quota increases related to dimensions and custom metrics - -## __Amazon Location Service__ - - ### Features - - Amazon Location Service now allows circular geofences in BatchPutGeofence, PutGeofence, and GetGeofence APIs. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Automatic Model Tuning now supports specifying multiple alternate EC2 instance types to make tuning jobs more robust when the preferred instance type is not available due to insufficient capacity. - -# __2.17.248__ __2022-08-08__ -## __AWS Glue__ - - ### Features - - Add an option to run non-urgent or non-time sensitive Glue Jobs on spare capacity - -## __AWS IoT Wireless__ - - ### Features - - AWS IoT Wireless release support for sidewalk data reliability. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SSO Identity Store__ - - ### Features - - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) - -## __AWS SSO OIDC__ - - ### Features - - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) - -## __AWS Single Sign-On__ - - ### Features - - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) - -## __AWS Single Sign-On Admin__ - - ### Features - - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) - -## __Amazon Pinpoint__ - - ### Features - - Adds support for Advance Quiet Time in Journeys. Adds RefreshOnSegmentUpdate and WaitForQuietTime to JourneyResponse. - -## __Amazon QuickSight__ - - ### Features - - A series of documentation updates to the QuickSight API reference. - -# __2.17.247__ __2022-08-04__ -## __AWS Config__ - - ### Features - - Add resourceType enums for Athena, GlobalAccelerator, Detective and EC2 types - -## __AWS Database Migration Service__ - - ### Features - - Documentation updates for Database Migration Service (DMS). - -## __AWS IoT__ - - ### Features - - The release is to support attach a provisioning template to CACert for JITP function, Customer now doesn't have to hardcode a roleArn and templateBody during register a CACert to enable JITP. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Adds support for Tags on Amazon Chime SDK WebRTC sessions - -# __2.17.246__ __2022-08-03__ -## __AWS WAFV2__ - - ### Features - - You can now associate an AWS WAF web ACL with an Amazon Cognito user pool. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Add a new exception type, ForbiddenException, that is returned when request is not allowed - -# __2.17.245__ __2022-08-02__ -## __AWS License Manager User Subscriptions__ - - ### Features - - This release supports user based subscription for Microsoft Visual Studio Professional and Enterprise on EC2. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Personalize__ - - ### Features - - This release adds support for incremental bulk ingestion for the Personalize CreateDatasetImportJob API. - -# __2.17.244__ __2022-08-01__ -## __AWS Config__ - - ### Features - - Documentation update for PutConfigRule and PutOrganizationConfigRule - -## __AWS SDK for Java v2__ - - ### Bugfixes - - AWS-JSON services use the Fault trait to designate exceptions that are the service's fault (i.e. 500), rather than HTTP status code bindings like REST services. In cases where the response being unmarshalled does *NOT* have a status code (e.g. because the response was constructed rather from some other data rather than an actual HTTP response), the status code will default to 500 for faults and 400 for non-faults. - -## __Amazon WorkSpaces__ - - ### Features - - This release introduces ModifySamlProperties, a new API that allows control of SAML properties associated with a WorkSpaces directory. The DescribeWorkspaceDirectories API will now additionally return SAML properties in its responses. - -# __2.17.243__ __2022-07-29__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Shield__ - - ### Features - - AWS Shield Advanced now supports filtering for ListProtections and ListProtectionGroups. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Amazon EC2. - -## __Amazon FSx__ - - ### Features - - Documentation updates for Amazon FSx - -# __2.17.242__ __2022-07-28__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for VM Import/Export. - -## __Amazon Elasticsearch Service__ - - ### Features - - This release adds support for gp3 EBS (Elastic Block Store) storage. - -## __Amazon Lookout for Vision__ - - ### Features - - This release introduces support for image segmentation models and updates CPU accelerator options for models hosted on edge devices. - -## __Amazon OpenSearch Service__ - - ### Features - - This release adds support for gp3 EBS (Elastic Block Store) storage. - -# __2.17.241__ __2022-07-27__ -## __AWS Audit Manager__ - - ### Features - - This release adds an exceeded quota exception to several APIs. We added a ServiceQuotaExceededException for the following operations: CreateAssessment, CreateControl, CreateAssessmentFramework, and UpdateAssessmentStatus. - -## __AWS Config__ - - ### Features - - This release adds ListConformancePackComplianceScores API to support the new compliance score feature, which provides a percentage of the number of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations in the conformance pack. - -## __AWS Global Accelerator__ - - ### Features - - Global Accelerator now supports dual-stack accelerators, enabling support for IPv4 and IPv6 traffic. - -## __AWS Marketplace Catalog Service__ - - ### Features - - The SDK for the StartChangeSet API will now automatically set and use an idempotency token in the ClientRequestToken request parameter if the customer does not provide it. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime__ - - ### Features - - Chime VoiceConnector will now support ValidateE911Address which will allow customers to prevalidate their addresses included in their SIP invites for emergency calling - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new English and Hindi voice - Kajal. Kajal is available as Neural voice only. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Adding doc updates for OpsCenter support in Service Setting actions. - -## __Amazon WorkSpaces__ - - ### Features - - Added CreateWorkspaceImage API to create a new WorkSpace image from an existing WorkSpace. - -# __2.17.240__ __2022-07-26__ -## __AWS AppSync__ - - ### Features - - Adds support for a new API to evaluate mapping templates with mock data, allowing you to remotely unit test your AppSync resolvers and functions. - -## __AWS SecurityHub__ - - ### Features - - Documentation updates for AWS Security Hub - -## __AWS Transfer Family__ - - ### Features - - AWS Transfer Family now supports Applicability Statement 2 (AS2), a network protocol used for the secure and reliable transfer of critical Business-to-Business (B2B) data over the public internet using HTTP/HTTPS as the transport mechanism. - -## __Amazon Detective__ - - ### Features - - Added the ability to get data source package information for the behavior graph. Graph administrators can now start (or stop) optional datasources on the behavior graph. - -## __Amazon GuardDuty__ - - ### Features - - Amazon GuardDuty introduces a new Malware Protection feature that triggers malware scan on selected EC2 instance resources, after the service detects a potentially malicious activity. - -## __Amazon Lookout for Vision__ - - ### Features - - This release introduces support for the automatic scaling of inference units used by Amazon Lookout for Vision models. - -## __Amazon Macie 2__ - - ### Features - - This release adds support for retrieving (revealing) sample occurrences of sensitive data that Amazon Macie detects and reports in findings. - -## __Amazon Rekognition__ - - ### Features - - This release introduces support for the automatic scaling of inference units used by Amazon Rekognition Custom Labels models. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for using RDS Proxies with RDS for MariaDB databases. - -# __2.17.239__ __2022-07-25__ -## __Auto Scaling__ - - ### Features - - Documentation update for Amazon EC2 Auto Scaling. - -# __2.17.238__ __2022-07-22__ -## __AWS Account__ - - ### Features - - This release enables customers to manage the primary contact information for their AWS accounts. For more information, see https://docs.aws.amazon.com/accounts/latest/reference/API_Operations.html - -## __AWS Elemental MediaLive__ - - ### Features - - Link devices now support remote rebooting. Link devices now support maintenance windows. Maintenance windows allow a Link device to install software updates without stopping the MediaLive channel. The channel will experience a brief loss of input from the device while updates are installed. - -## __AWS IoT Core Device Advisor__ - - ### Features - - Added new service feature (Early access only) - Long Duration Test, where customers can test the IoT device to observe how it behaves when the device is in operation for longer period. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fix issue in IMDS credentials provider that causes expired credentials to be vended for a short period of time after the credentials provider is inactive for a long time. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added support for EC2 M1 Mac instances. For more information, please visit aws.amazon.com/mac. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds the "ModifyActivityStream" API with support for audit policy state locking and unlocking. - -## __Amazon Transcribe Service__ - - ### Features - - Remove unsupported language codes for StartTranscriptionJob and update VocabularyFileUri for UpdateMedicalVocabulary - -# __2.17.237__ __2022-07-21__ -## __AWS Database Migration Service__ - - ### Features - - Documentation updates for Database Migration Service (DMS). - -## __AWS EC2 Instance Connect__ - - ### Features - - This release includes a new exception type "EC2InstanceUnavailableException" for SendSSHPublicKey and SendSerialConsoleSSHPublicKey APIs. - -## __AWS IoT SiteWise__ - - ### Features - - Added asynchronous API to ingest bulk historical and current data into IoT SiteWise. - -## __AWS Network Firewall__ - - ### Features - - Network Firewall now supports referencing dynamic IP sets from stateful rule groups, for IP sets stored in Amazon VPC prefix lists. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now provides Oauth2 support for SharePoint Online. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html - -## __Amazon Athena__ - - ### Features - - This feature allows customers to retrieve runtime statistics for completed queries - -## __Amazon CloudWatch__ - - ### Features - - Adding support for the suppression of Composite Alarm actions - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Enable copy-on-write restore type - -## __Amazon Fraud Detector__ - - ### Features - - The release introduces Account Takeover Insights (ATI) model. The ATI model detects fraud relating to account takeover. This release also adds support for new variable types: ARE_CREDENTIALS_VALID and SESSION_ID and adds new structures to Model Version APIs. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for creating an RDS Proxy for an RDS for MariaDB database. - -## __Amazon S3 Transfer Manager__ - - ### Bugfixes - - Fixed an issue where using S3ClientConfiguration.Builder.endpointOverride could cause AWS_ERROR_INVALID_ARGUMENT. - -# __2.17.236__ __2022-07-20__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - AWS Certificate Manager (ACM) Private Certificate Authority (PCA) documentation updates - -## __AWS IoT__ - - ### Features - - GA release the ability to enable/disable IoT Fleet Indexing for Device Defender and Named Shadow information, and search them through IoT Fleet Indexing APIs. This includes Named Shadow Selection as a part of the UpdateIndexingConfiguration API. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.17.235__ __2022-07-19__ -## __AWS Glue__ - - ### Features - - Documentation updates for AWS Glue Job Timeout and Autoscaling - -## __Amazon DevOps Guru__ - - ### Features - - Added new APIs for log anomaly detection feature. - -## __Amazon SageMaker Service__ - - ### Features - - Fixed an issue with cross account QueryLineage - -## __Amazon Sagemaker Edge Manager__ - - ### Features - - Amazon SageMaker Edge Manager provides lightweight model deployment feature to deploy machine learning models on requested devices. - -## __Amazon WorkSpaces__ - - ### Features - - Increased the character limit of the login message from 850 to 2000 characters. - -# __2.17.234__ __2022-07-18__ -## __AWS Application Discovery Service__ - - ### Features - - Add AWS Agentless Collector details to the GetDiscoverySummary API response - -## __AWS Elemental MediaPackage__ - - ### Features - - This release adds "IncludeIframeOnlyStream" for Dash endpoints and increases the number of supported video and audio encryption presets for Speke v2 - -## __AWS Key Management Service__ - - ### Features - - Added support for the SM2 KeySpec in China Partition Regions - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Single Sign-On Admin__ - - ### Features - - AWS SSO now supports attaching customer managed policies and a permissions boundary to your permission sets. This release adds new API operations to manage and view the customer managed policies and the permissions boundary for a given permission set. - -## __Amazon ElastiCache__ - - ### Features - - Adding AutoMinorVersionUpgrade in the DescribeReplicationGroups API - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Amazon EC2. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Edge Manager provides lightweight model deployment feature to deploy machine learning models on requested devices. - -# __2.17.233__ __2022-07-15__ -## __AWS DataSync__ - - ### Features - - Documentation updates for AWS DataSync regarding configuring Amazon FSx for ONTAP location security groups and SMB user permissions. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAFV2__ - - ### Features - - This SDK release provide customers ability to add sensitivity level for WAF SQLI Match Statements. - -## __Amazon CloudWatch Evidently__ - - ### Features - - This release adds support for the new segmentation feature. - -## __Amazon DynamoDB Enhanced__ - - ### Bugfixes - - Adding usage of ExpressionNames to VersionedRecord, thereby allowing version attributes with reserved words and special characters - -## __Elastic Disaster Recovery Service__ - - ### Features - - Changed existing APIs to allow choosing a dynamic volume type for replicating volumes, to reduce costs for customers. - -## __S3 Transfer Manager (Developer Preview)__ - - ### Bugfixes - - Fixed possible security issue in `S3TransferManager`s `downloadDirectory` operation where files could be downloaded to a sibling directory of the destination directory if the key contained relative paths. - -# __2.17.232__ __2022-07-14__ -## __AWS Config__ - - ### Features - - Update ResourceType enum with values for Route53Resolver, Batch, DMS, Workspaces, Stepfunctions, SageMaker, ElasticLoadBalancingV2, MSK types - -## __AWS Glue__ - - ### Features - - This release adds an additional worker type for Glue Streaming jobs. - -## __AWS Outposts__ - - ### Features - - This release adds the ShipmentInformation and AssetInformationList fields to the GetOrder API response. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - This release adds AccessControlConfigurations which allow you to redefine your document level access control without the need for content re-indexing. - -## __Amazon Athena__ - - ### Features - - This release updates data types that contain either QueryExecutionId, NamedQueryId or ExpectedBucketOwner. Ids must be between 1 and 128 characters and contain only non-whitespace characters. ExpectedBucketOwner must be 12-digit string. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds flow logs for Transit Gateway to allow customers to gain deeper visibility and insights into network traffic through their Transit Gateways. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for G5, P4d, and C6i instance types in Amazon SageMaker Inference and increases the number of hyperparameters that can be searched from 20 to 30 in Amazon SageMaker Automatic Model Tuning - -## __AmazonNimbleStudio__ - - ### Features - - Amazon Nimble Studio adds support for IAM-based access to AWS resources for Nimble Studio components and custom studio components. Studio Component scripts use these roles on Nimble Studio workstation to mount filesystems, access S3 buckets, or other configured resources in the Studio's AWS account - -## __CodeArtifact__ - - ### Features - - This release introduces Package Origin Controls, a mechanism used to counteract Dependency Confusion attacks. Adds two new APIs, PutPackageOriginConfiguration and DescribePackage, and updates the ListPackage, DescribePackageVersion and ListPackageVersion APIs in support of the feature. - -## __Firewall Management Service__ - - ### Features - - Adds support for strict ordering in stateful rule groups in Network Firewall policies. - -## __Inspector2__ - - ### Features - - This release adds support for Inspector V2 scan configurations through the get and update configuration APIs. Currently this allows configuring ECR automated re-scan duration to lifetime or 180 days or 30 days. - -# __2.17.231__ __2022-07-13__ -## __Amazon AppConfig__ - - ### Features - - Adding Create, Get, Update, Delete, and List APIs for new two new resources: Extensions and ExtensionAssociations. - -## __URL Connection Client__ - - ### Bugfixes - - Set the `Accept` header for `UrlConnectionHttpClient` because the default one does not comply with RFC 7231. See https://bugs.openjdk.org/browse/JDK-8163921 - -# __2.17.230__ __2022-07-12__ -## __AWS Network Manager__ - - ### Features - - This release adds general availability API support for AWS Cloud WAN. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.17.229__ __2022-07-11__ -## __AWS SDK for Java v2__ - - ### Features - - Jitter credential provider cache refresh times. - - Log a warning when an extreme number of async credential providers are running in parallel, because it could indicate that the user is not closing their clients or credential providers when they are done using them. - - Share background refresh threads across async credential providers to reduce base SDK resource consumption. - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Build, manage, and monitor a unified global network that connects resources running across your cloud and on-premises environments using the AWS Cloud WAN APIs. - -## __Amazon Redshift__ - - ### Features - - This release adds a new --snapshot-arn field for describe-cluster-snapshots, describe-node-configuration-options, restore-from-cluster-snapshot, authorize-snapshot-acsess, and revoke-snapshot-acsess APIs. It allows customers to give a Redshift snapshot ARN or a Redshift Serverless ARN as input. - -## __Redshift Serverless__ - - ### Features - - Removed prerelease language for GA launch. - -# __2.17.228__ __2022-07-08__ -## __AWS Backup__ - - ### Features - - This release adds support for authentication using IAM user identity instead of passed IAM role, identified by excluding the IamRoleArn field in the StartRestoreJob API. This feature applies to only resource clients with a destructive restore nature (e.g. SAP HANA). - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Requests which are defined with AuthType as None should not be signed or authorized by the SDK. - -# __2.17.227__ __2022-07-07__ -## __AWS Database Migration Service__ - - ### Features - - New api to migrate event subscriptions to event bridge rules - -## __AWS IoT__ - - ### Features - - This release adds support to register a CA certificate without having to provide a verification certificate. This also allows multiple AWS accounts to register the same CA in the same region. - -## __AWS IoT Wireless__ - - ### Features - - Adds 5 APIs: PutPositionConfiguration, GetPositionConfiguration, ListPositionConfigurations, UpdatePosition, GetPosition for the new Positioning Service feature which enables customers to configure solvers to calculate position of LoRaWAN devices, or specify position of LoRaWAN devices & gateways. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Adds support for AppKeys and TenantIds in Amazon Chime SDK WebRTC sessions - -## __Amazon SageMaker Service__ - - ### Features - - Heterogeneous clusters: the ability to launch training jobs with multiple instance types. This enables running component of the training job on the instance type that is most suitable for it. e.g. doing data processing and augmentation on CPU instances and neural network training on GPU instances - -# __2.17.226__ __2022-07-06__ -## __AWS CloudFormation__ - - ### Features - - My AWS Service (placeholder) - Add a new feature Account-level Targeting for StackSet operation - -## __Synthetics__ - - ### Features - - This release introduces Group feature, which enables users to group cross-region canaries. - -# __2.17.225__ __2022-07-05__ -## __AWS Config__ - - ### Features - - Updating documentation service limits - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Adds support for tagging incident-record on creation by providing incident tags in the template within a response-plan. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release introduces additional optional parameters "messageSelectionStrategy" to PromptSpecification, which enables the users to configure the bot to play messages in orderly manner. - -## __Amazon QuickSight__ - - ### Features - - This release allows customers to programmatically create QuickSight accounts with Enterprise and Enterprise + Q editions. It also releases allowlisting domains for embedding QuickSight dashboards at runtime through the embedding APIs. - -## __Amazon Relational Database Service__ - - ### Features - - Adds waiters support for DBCluster. - -## __IAM Roles Anywhere__ - - ### Features - - IAM Roles Anywhere allows your workloads such as servers, containers, and applications to obtain temporary AWS credentials and use the same IAM roles and policies that you have configured for your AWS workloads to access AWS resources. - -# __2.17.224__ __2022-07-01__ -## __AWS Database Migration Service__ - - ### Features - - Added new features for AWS DMS version 3.4.7 that includes new endpoint settings for S3, OpenSearch, Postgres, SQLServer and Oracle. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for additional retention periods to Performance Insights. - -# __2.17.223__ __2022-06-30__ -## __AWS Glue__ - - ### Features - - This release adds tag as an input of CreateDatabase - -## __AWS Price List Service__ - - ### Features - - Documentation update for GetProducts Response. - -## __AWS Well-Architected Tool__ - - ### Features - - Added support for UpdateGlobalSettings API. Added status filter to ListWorkloadShares and ListLensShares. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now provides a data source connector for alfresco - -## __Amazon Athena__ - - ### Features - - This feature introduces the API support for Athena's parameterized query and BatchGetPreparedStatement API. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release adds the optional MinAllowedConfidenceScoreForMerging parameter to the CreateDomain, UpdateDomain, and GetAutoMergingPreview APIs in Customer Profiles. This parameter is used as a threshold to influence the profile auto-merging step of the Identity Resolution process. - -## __Amazon EMR__ - - ### Features - - This release adds support for the ExecutionRoleArn parameter in the AddJobFlowSteps and DescribeStep APIs. Customers can use ExecutionRoleArn to specify the IAM role used for each job they submit using the AddJobFlowSteps API. - -## __Amazon WorkMail__ - - ### Features - - This release adds support for managing user availability configurations in Amazon WorkMail. - -## __AmazonMWAA__ - - ### Features - - Documentation updates for Amazon Managed Workflows for Apache Airflow. - -# __2.17.222__ __2022-06-29__ -## __AWS Common Runtime HTTP Client__ - - ### Bugfixes - - Improve connection reusing by keying connection pools using hostname + port, instead of the full URI. - -## __AWS Elemental MediaLive__ - - ### Features - - This release adds support for automatic renewal of MediaLive reservations at the end of each reservation term. Automatic renewal is optional. This release also adds support for labelling accessibility-focused audio and caption tracks in HLS outputs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon AppStream__ - - ### Features - - Includes support for StreamingExperienceSettings in CreateStack and UpdateStack APIs - -## __Amazon EMR__ - - ### Features - - This release introduces additional optional parameter "Throughput" to VolumeSpecification to enable user to configure throughput for gp3 ebs volumes. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds: UpdateFeatureGroup, UpdateFeatureMetadata, DescribeFeatureMetadata APIs; FeatureMetadata type in Search API; LastModifiedTime, LastUpdateStatus, OnlineStoreTotalSizeBytes in DescribeFeatureGroup API. - -## __Amazon Translate__ - - ### Features - - Added ListLanguages API which can be used to list the languages supported by Translate. - -## __Elastic Load Balancing__ - - ### Features - - This release adds two attributes for ALB. One, helps to preserve the host header and the other helps to modify, preserve, or remove the X-Forwarded-For header in the HTTP request. - -## __Redshift Serverless__ - - ### Features - - Add new API operations for Amazon Redshift Serverless, a new way of using Amazon Redshift without needing to manually manage provisioned clusters. The new operations let you interact with Redshift Serverless resources, such as create snapshots, list VPC endpoints, delete resource policies, and more. - -# __2.17.221__ __2022-06-28__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now supports Amazon FSx for NetApp ONTAP locations. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new spread placement group to EC2 Placement Groups: host level spread, which spread instances between physical hosts, available to Outpost customers only. CreatePlacementGroup and DescribePlacementGroups APIs were updated with a new parameter: SpreadLevel to support this feature. - -## __Amazon Polly__ - - ### Features - - Add 4 new neural voices - Pedro (es-US), Liam (fr-CA), Daniel (de-DE) and Arthur (en-GB). - -## __FinSpace Public API__ - - ### Features - - Release new API GetExternalDataViewAccessDetails - -# __2.17.220__ __2022-06-27__ -## __AWS IoT__ - - ### Features - - This release ease the restriction for the input of tag value to align with AWS standard, now instead of min length 1, we change it to min length 0. - -# __2.17.219__ __2022-06-24__ -## __AWS Glue__ - - ### Features - - This release enables the new ListCrawls API for viewing the AWS Glue Crawler run history. - -## __AWS RDS DataService__ - - ### Features - - Documentation updates for RDS Data API - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.17.218__ __2022-06-23__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has released support for automatic DolbyVision metadata generation when converting HDR10 to DolbyVision. - -## __AWS Migration Hub Refactor Spaces__ - - ### Features - - This release adds the new API UpdateRoute that allows route to be updated to ACTIVE/INACTIVE state. In addition, CreateRoute API will now allow users to create route in ACTIVE/INACTIVE state. - -## __Amazon Lookout for Equipment__ - - ### Features - - This release adds visualizations to the scheduled inference results. Users will be able to see interference results, including diagnostic results from their running inference schedulers. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Ground Truth now supports Virtual Private Cloud. Customers can launch labeling jobs and access to their private workforce in VPC mode. - -## __Application Migration Service__ - - ### Features - - New and modified APIs for the Post-Migration Framework - -# __2.17.217__ __2022-06-22__ -## __AWS Price List Service__ - - ### Features - - This release introduces 1 update to the GetProducts API. The serviceCode attribute is now required when you use the GetProductsRequest. - -## __AWS Transfer Family__ - - ### Features - - Until today, the service supported only RSA host keys and user keys. Now with this launch, Transfer Family has expanded the support for ECDSA and ED25519 host keys and user keys, enabling customers to support a broader set of clients by choosing RSA, ECDSA, and ED25519 host and user keys. - -## __Amazon API Gateway__ - - ### Features - - Documentation updates for Amazon API Gateway - -# __2.17.216__ __2022-06-21__ -## __AWS Well-Architected Tool__ - - ### Features - - Adds support for lens tagging, Adds support for multiple helpful-resource urls and multiple improvement-plan urls. - -## __Amazon EC2 Container Service__ - - ### Features - - Amazon ECS UpdateService now supports the following parameters: PlacementStrategies, PlacementConstraints and CapacityProviderStrategy. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Private IP VPNs, a new feature allowing S2S VPN connections to use private ip addresses as the tunnel outside ip address over Direct Connect as transport. - -# __2.17.215__ __2022-06-20__ -## __AWS Directory Service__ - - ### Features - - This release adds support for describing and updating AWS Managed Microsoft AD settings - -## __AWS Outposts__ - - ### Features - - This release adds the AssetLocation structure to the ListAssets response. AssetLocation includes the RackElevation for an Asset. - -## __Managed Streaming for Kafka__ - - ### Features - - Documentation updates to use Az Id during cluster creation. - -# __2.17.214__ __2022-06-17__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - This release updates these APIs: UpdateInstanceAttribute, DescribeInstanceAttribute and ListInstanceAttributes. You can use it to programmatically enable/disable High volume outbound communications using attribute type HIGH_VOLUME_OUTBOUND on the specified Amazon Connect instance. - -## __Amazon DynamoDB__ - - ### Features - - Doc only update for DynamoDB service - -## __Amazon DynamoDB Streams__ - - ### Features - - Doc only update for DynamoDB service - -## __AmazonConnectCampaignService__ - - ### Features - - Added Amazon Connect high volume outbound communications SDK. - -# __2.17.213__ __2022-06-16__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __AWS SecurityHub__ - - ### Features - - Added Threats field for security findings. Added new resource details for ECS Container, ECS Task, RDS SecurityGroup, Kinesis Stream, EC2 TransitGateway, EFS AccessPoint, CloudFormation Stack, CloudWatch Alarm, VPC Peering Connection and WAF Rules - -## __Redshift Data API Service__ - - ### Features - - This release adds a new --workgroup-name field to operations that connect to an endpoint. Customers can now execute queries against their serverless workgroups. - -# __2.17.212__ __2022-06-15__ -## __AWS Service Catalog App Registry__ - - ### Features - - This release adds a new API ListAttributeGroupsForApplication that returns associated attribute groups of an application. In addition, the UpdateApplication and UpdateAttributeGroup APIs will not allow users to update the 'Name' attribute. - -## __Amazon GuardDuty__ - - ### Features - - Adds finding fields available from GuardDuty Console. Adds FreeTrial related operations. Deprecates the use of various APIs related to Master Accounts and Replace them with Administrator Accounts. - -## __Amazon WorkSpaces__ - - ### Features - - Added new field "reason" to OperationNotSupportedException. Receiving this exception in the DeregisterWorkspaceDirectory API will now return a reason giving more context on the failure. - -## __FinSpace Public API__ - - ### Features - - This release adds a new set of APIs, GetPermissionGroup, DisassociateUserFromPermissionGroup, AssociateUserToPermissionGroup, ListPermissionGroupsByUser, ListUsersByPermissionGroup. - -# __2.17.211__ __2022-06-14__ -## __AWS Budgets__ - - ### Features - - Add a budgets ThrottlingException. Update the CostFilters value pattern. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for rules that constrain Automatic-ABR rendition selection when generating ABR package ladders. - -## __Amazon Lookout for Metrics__ - - ### Features - - Adding filters to Alert and adding new UpdateAlert API. - -# __2.17.210__ __2022-06-13__ -## __AWS Outposts__ - - ### Features - - This release adds API operations AWS uses to install Outpost servers. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Do not start periodically refreshing async credential providers until they have been used at least once. - -# __2.17.209__ __2022-06-10__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS STS__ - - ### Features - - Adding New WebIdentityTokenFileCredentialsProvider in sts that accepts STSClient - -## __Amazon Fraud Detector__ - - ### Features - - Documentation updates for Amazon Fraud Detector (AWSHawksNest) - -# __2.17.208__ __2022-06-09__ -## __Amazon Chime SDK Meetings__ - - ### Features - - Adds support for live transcription in AWS GovCloud (US) Regions. - -# __2.17.207__ __2022-06-08__ -## __AWS Database Migration Service__ - - ### Features - - This release adds DMS Fleet Advisor APIs and exposes functionality for DMS Fleet Advisor. It adds functionality to create and modify fleet advisor instances, and to collect and analyze information about the local data infrastructure. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Removals - - Remove the `netty-reactive-streams-http` depdendency. It is unused after [#1629](https://github.com/aws/aws-sdk-java-v2/issues/1629), and we have no plans to use the upstream version in the future. - -## __AWSMainframeModernization__ - - ### Features - - AWS Mainframe Modernization service is a managed mainframe service and set of tools for planning, migrating, modernizing, and running mainframe workloads on AWS - -## __Amazon Neptune__ - - ### Features - - This release adds support for Neptune to be configured as a global database, with a primary DB cluster in one region, and up to five secondary DB clusters in other regions. - -## __Amazon Redshift__ - - ### Features - - Adds new API GetClusterCredentialsWithIAM to return temporary credentials. - -# __2.17.206__ __2022-06-07__ -## __AWS Audit Manager__ - - ### Features - - This release introduces 2 updates to the Audit Manager API. The roleType and roleArn attributes are now required when you use the CreateAssessment or UpdateAssessment operation. We also added a throttling exception to the RegisterAccount API operation. - -## __AWS Cost Explorer Service__ - - ### Features - - Added two new APIs to support cost allocation tags operations: ListCostAllocationTags, UpdateCostAllocationTagsStatus. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.17.205__ __2022-06-06__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime SDK Messaging__ - - ### Features - - This release adds support for searching channels by members via the SearchChannels API, removes required restrictions for Name and Mode in UpdateChannel API and enhances CreateChannel API by exposing member and moderator list as well as channel id as optional parameters. - -## __Amazon Connect Service__ - - ### Features - - This release adds a new API, GetCurrentUserData, which returns real-time details about users' current activity. - -# __2.17.204__ __2022-06-02__ -## __AWS Proton__ - - ### Features - - Add new "Components" API to enable users to Create, Delete and Update AWS Proton components. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now provides a data source connector for GitHub. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-github.html - -## __Amazon CloudWatch Application Insights__ - - ### Features - - Provide Account Level onboarding support through CFN/CLI - -## __Amazon Connect Service__ - - ### Features - - This release adds the following features: 1) New APIs to manage (create, list, update) task template resources, 2) Updates to startTaskContact API to support task templates, and 3) new TransferContact API to programmatically transfer in-progress tasks via a contact flow. - -## __Amazon Voice ID__ - - ### Features - - Added a new attribute ServerSideEncryptionUpdateDetails to Domain and DomainSummary. - -## __CodeArtifact__ - - ### Features - - Documentation updates for CodeArtifact - -# __2.17.203__ __2022-06-01__ -## __AWS Backup Gateway__ - - ### Features - - Adds GetGateway and UpdateGatewaySoftwareNow API and adds hypervisor name to UpdateHypervisor API - -## __Amazon Chime SDK Meetings__ - - ### Features - - Adds support for centrally controlling each participant's ability to send and receive audio, video and screen share within a WebRTC session. Attendee capabilities can be specified when the attendee is created and updated during the session with the new BatchUpdateAttendeeCapabilitiesExcept API. - -## __Amazon Forecast Service__ - - ### Features - - Added Format field to Import and Export APIs in Amazon Forecast. Added TimeSeriesSelector to Create Forecast API. - -## __Amazon Route 53__ - - ### Features - - Add new APIs to support Route 53 IP Based Routing - -# __2.17.202__ __2022-05-31__ -## __AWS IoT SiteWise__ - - ### Features - - This release adds the following new optional field to the IoT SiteWise asset resource: assetDescription. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Amazon Cognito now supports IP Address propagation for all unauthenticated APIs (e.g. SignUp, ForgotPassword). - -## __Amazon Lookout for Metrics__ - - ### Features - - Adding backtest mode to detectors using the Cloudwatch data source. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Notebook Instances now support Jupyter Lab 3. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe now supports automatic language identification for multi-lingual audio in batch mode. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Changed existing APIs and added new APIs to accommodate using multiple AWS accounts with AWS Elastic Disaster Recovery. - -# __2.17.201__ __2022-05-27__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now supports TLS encryption in transit, file system policies and access points for EFS locations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Appflow__ - - ### Features - - Adding the following features/changes: Parquet output that preserves typing from the source connector, Failed executions threshold before deactivation for scheduled flows, increasing max size of access and refresh token from 2048 to 4096 - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Notebook Instances now allows configuration of Instance Metadata Service version and Amazon SageMaker Studio now supports G5 instance types. - -## __EMR Serverless__ - - ### Features - - This release adds support for Amazon EMR Serverless, a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive. - -# __2.17.200__ __2022-05-26__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - C7g instances, powered by the latest generation AWS Graviton3 processors, provide the best price performance in Amazon EC2 for compute-intensive workloads. - -## __Amazon Forecast Service__ - - ### Features - - Introduced a new field in Auto Predictor as Time Alignment Boundary. It helps in aligning the timestamps generated during Forecast exports - -## __Amazon Lightsail__ - - ### Features - - Amazon Lightsail now supports the ability to configure a Lightsail Container Service to pull images from Amazon ECR private repositories in your account. - -## __EMR Serverless Web Service__ - - ### Features - - This release adds support for Amazon EMR Serverless, a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive. - -# __2.17.199__ __2022-05-25__ -## __AWS App Runner__ - - ### Features - - Documentation-only update added for CodeConfiguration. - -## __AWS CloudFormation__ - - ### Features - - Add a new parameter statusReason to DescribeStackSetOperation output for additional details - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __Amazon API Gateway__ - - ### Features - - Documentation updates for Amazon API Gateway - -## __Amazon FSx__ - - ### Features - - This release adds root squash support to FSx for Lustre to restrict root level access from clients by mapping root users to a less-privileged user/group with limited permissions. - -## __Amazon Lookout for Metrics__ - - ### Features - - Adding AthenaSourceConfig for MetricSet APIs to support Athena as a data source. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Autopilot adds support for manually selecting features from the input dataset using the CreateAutoMLJob API. - -## __Amazon Voice ID__ - - ### Features - - VoiceID will now automatically expire Speakers if they haven't been accessed for Enrollment, Re-enrollment or Successful Auth for three years. The Speaker APIs now return a "LastAccessedAt" time for Speakers, and the EvaluateSession API returns "SPEAKER_EXPIRED" Auth Decision for EXPIRED Speakers. - -# __2.17.198__ __2022-05-24__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for rules that constrain Automatic-ABR rendition selection when generating ABR package ladders. - -## __AWS Network Manager__ - - ### Features - - This release adds Multi Account API support for a TGW Global Network, to enable and disable AWSServiceAccess with AwsOrganizations for Network Manager service and dependency CloudFormation StackSets service. - -## __AWS SDK for Java v2__ - - ### Features - - Bump CRT version to 0.16.10, which contains M1 support [#2942](https://github.com/aws/aws-sdk-java-v2/issues/2942) - - Updated service endpoint metadata. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Amazon Cognito now supports requiring attribute verification (ex. email and phone number) before update. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Stop Protection feature enables customers to protect their instances from accidental stop actions. - -## __Amazon Interactive Video Service Chat__ - - ### Features - - Doc-only update. For MessageReviewHandler structure, added timeout period in the description of the fallbackResult field - -# __2.17.197__ __2022-05-23__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon ElastiCache__ - - ### Features - - Added support for encryption in transit for Memcached clusters. Customers can now launch Memcached cluster with encryption in transit enabled when using Memcached version 1.6.12 or later. - -## __Amazon Forecast Service__ - - ### Features - - New APIs for Monitor that help you understand how your predictors perform over time. - -## __Amazon Personalize__ - - ### Features - - Adding modelMetrics as part of DescribeRecommender API response for Personalize. - -# __2.17.196__ __2022-05-20__ -## __Amazon CloudWatch Logs__ - - ### Features - - Doc-only update to publish the new valid values for log retention - -## __Amazon Comprehend__ - - ### Features - - Comprehend releases 14 new entity types for DetectPiiEntities and ContainsPiiEntities APIs. - -# __2.17.195__ __2022-05-19__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Lookout for Metrics__ - - ### Features - - In this release we added SnsFormat to SNSConfiguration to support human readable alert. - -## __GameSparks__ - - ### Features - - This release adds an optional DeploymentResult field in the responses of GetStageDeploymentIntegrationTests and ListStageDeploymentIntegrationTests APIs. - -# __2.17.194__ __2022-05-18__ -## __AWS App Mesh__ - - ### Features - - This release updates the existing Create and Update APIs for meshes and virtual nodes by adding a new IP preference field. This new IP preference field can be used to control the IP versions being used with the mesh and allows for IPv6 support within App Mesh. - -## __AWS Batch__ - - ### Features - - Documentation updates for AWS Batch. - -## __AWS IoT Events Data__ - - ### Features - - Introducing new API for deleting detectors: BatchDeleteDetector. - -## __AWS IoT Greengrass V2__ - - ### Features - - This release adds the new DeleteDeployment API operation that you can use to delete deployment resources. This release also adds support for discontinued AWS-provided components, so AWS can communicate when a component has any issues that you should consider before you deploy it. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Transfer Family__ - - ### Features - - AWS Transfer Family now supports SetStat server configuration option, which provides the ability to ignore SetStat command issued by file transfer clients, enabling customers to upload files without any errors. - -## __Amazon DynamoDB Enhanced Client__ - - ### Features - - Introducing the UpdateExpression API in the enhanced client and the capability to use update expressions in the extension framework. Additionally, the new AtomicCounterExtension utilizes this feature to provide atomic counter support for users through tagging and annotations. - -## __Amazon QuickSight__ - - ### Features - - API UpdatePublicSharingSettings enables IAM admins to enable/disable account level setting for public access of dashboards. When enabled, owners/co-owners for dashboards can enable public access on their dashboards. These dashboards can only be accessed through share link or embedding. - -# __2.17.193__ __2022-05-17__ -## __AWS Glue__ - - ### Features - - This release adds a new optional parameter called codeGenNodeConfiguration to CRUD job APIs that allows users to manage visual jobs via APIs. The updated CreateJob and UpdateJob will create jobs that can be viewed in Glue Studio as a visual graph. GetJob can be used to get codeGenNodeConfiguration. - -## __AWS Key Management Service__ - - ### Features - - Add HMAC best practice tip, annual rotation of AWS managed keys. - -## __S3 Transfer Manager (Developer Preview)__ - - ### Features - - Add serialization capability to ResumableFileDownload, allowing users to persist paused downloads - -# __2.17.192__ __2022-05-16__ -## __AWS Application Discovery Service__ - - ### Features - - Add Migration Evaluator Collector details to the GetDiscoverySummary API response - -## __AWS Resilience Hub__ - - ### Features - - In this release, we are introducing support for Amazon Elastic Container Service, Amazon Route 53, AWS Elastic Disaster Recovery, AWS Backup in addition to the existing supported Services. This release also supports Terraform file input from S3 and scheduling daily assessments - -## __AWS SDK for Java v2__ - - ### Features - - Bump CRT version to 0.16.8 - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for AWS Security Token Service. - -## __AWS Service Catalog__ - - ### Features - - Updated the descriptions for the ListAcceptedPortfolioShares API description and the PortfolioShareType parameters. - -## __Amazon CloudFront__ - - ### Features - - Introduced a new error (TooLongCSPInResponseHeadersPolicy) that is returned when the value of the Content-Security-Policy header in a response headers policy exceeds the maximum allowed length. - -## __Amazon Rekognition__ - - ### Features - - Documentation updates for Amazon Rekognition. - -## __Amazon WorkSpaces Web__ - - ### Features - - Amazon WorkSpaces Web now supports Administrator timeout control - -# __2.17.191__ __2022-05-13__ -## __Amazon Managed Grafana__ - - ### Features - - This release adds APIs for creating and deleting API keys in an Amazon Managed Grafana workspace. - -# __2.17.190__ __2022-05-12__ -## __AWS IoT__ - - ### Features - - Documentation update for China region ListMetricValues for IoT - -## __AWS Lambda__ - - ### Features - - Lambda releases NodeJs 16 managed runtime to be available in all commercial regions. - -## __AWS Outposts__ - - ### Features - - Documentation updates for AWS Outposts. - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Adding support for dynamic SSM Runbook parameter values. Updating validation pattern for engagements. Adding ConflictException to UpdateReplicationSet API contract. - -## __AWS Transfer Family__ - - ### Features - - AWS Transfer Family now accepts ECDSA keys for server host keys - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now provides a data source connector for Jira. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-jira.html - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release introduces a target type Gateway Load Balancer Endpoint for mirrored traffic. Customers can now specify GatewayLoadBalancerEndpoint option during the creation of a traffic mirror target. - -## __Amazon Interactive Video Service Chat__ - - ### Features - - Documentation-only updates for IVS Chat API Reference. - -## __Amazon Lightsail__ - - ### Features - - This release adds support to include inactive database bundles in the response of the GetRelationalDatabaseBundles request. - -## __Amazon WorkSpaces__ - - ### Features - - Increased the character limit of the login message from 600 to 850 characters. - -## __FinSpace Public API__ - - ### Features - - We've now deprecated CreateSnapshot permission for creating a data view, instead use CreateDataView permission. - -# __2.17.189__ __2022-05-11__ -## __AWS Secrets Manager__ - - ### Features - - Doc only update for Secrets Manager that fixes several customer-reported issues. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release updates AWS PrivateLink APIs to support IPv6 for PrivateLink Services and Endpoints of type 'Interface'. - -# __2.17.188__ __2022-05-10__ -## __AWS Compute Optimizer__ - - ### Features - - Documentation updates for Compute Optimizer - -## __AWS Migration Hub Refactor Spaces__ - - ### Features - - AWS Migration Hub Refactor Spaces documentation only update to fix a formatting issue. - -## __AWS SDK for Java v2__ - - ### Features - - Bump `aws-crt` version from `0.16.1` to `0.16.7` - - - ### Bugfixes - - DynamoDBEnhanced - Fix handling attribute names with special characters including `/` - -## __Amazon EMR__ - - ### Features - - This release updates the Amazon EMR ModifyInstanceGroups API to support "MERGE" type cluster reconfiguration. Also, added the ability to specify a particular Amazon Linux release for all nodes in a cluster launch request. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added support for using NitroTPM and UEFI Secure Boot on EC2 instances. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adds BOTTLEROCKET_ARM_64_NVIDIA and BOTTLEROCKET_x86_64_NVIDIA AMI types to EKS managed nodegroups - -## __S3 Transfer Manager (Developer Preview)__ - - ### Bugfixes - - Fixed a bug in `S3TransferManager#uploadDirectory` and `S3TransferManager#downloadDirectory` where failedUploads or failedDownloads did not contain all failed transfers - - Fixed cancellation logic in `S3TransferManager#downloadDirectory` - -# __2.17.187__ __2022-05-09__ -## __AWS Cloud Control API__ - - ### Features - - SDK release for Cloud Control API to include paginators for Python SDK. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Systems Manager Incident Manager Contacts__ - - ### Features - - Fixed an error in the DescribeEngagement example for AWS Incident Manager. - -## __Amazon CloudWatch Evidently__ - - ### Features - - Add detail message inside GetExperimentResults API response to indicate experiment result availability - -# __2.17.186__ __2022-05-06__ -## __AWS Elemental MediaPackage__ - - ### Features - - This release adds Dvb Dash 2014 as an available profile option for Dash Origin Endpoints. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Documentation updates for Security Hub API reference - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add new state values for IPAMs, IPAM Scopes, and IPAM Pools. - -## __Amazon Location Service__ - - ### Features - - Amazon Location Service now includes a MaxResults parameter for ListGeofences requests. - -## __Amazon Redshift__ - - ### Features - - Introduces new field 'LoadSampleData' in CreateCluster operation. Customers can now specify 'LoadSampleData' option during creation of a cluster, which results in loading of sample data in the cluster that is created. - -## __Amazon Relational Database Service__ - - ### Features - - Various documentation improvements. - -# __2.17.185__ __2022-05-05__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now supports a new ObjectTags Task API option that can be used to control whether Object Tags are transferred. - -## __AWS IoT__ - - ### Features - - AWS IoT Jobs now allows you to create up to 100,000 active continuous and snapshot jobs by using concurrency control. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - AWS Kendra now supports hierarchical facets for a query. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/filtering.html - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 I4i instances are powered by 3rd generation Intel Xeon Scalable processors and feature up to 30 TB of local AWS Nitro SSD storage - -# __2.17.184__ __2022-05-04__ -## __AWS Backup__ - - ### Features - - Adds support to 2 new filters about job complete time for 3 list jobs APIs in AWS Backup - -## __AWS IoT Secure Tunneling__ - - ### Features - - This release introduces a new API RotateTunnelAccessToken that allow revoking the existing tokens and generate new tokens - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Lightsail - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release adds the TargetMaps parameter in SSM State Manager API. - -# __2.17.183__ __2022-05-03__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support for allocating Dedicated Hosts on AWS Outposts. The AllocateHosts API now accepts an OutpostArn request parameter, and the DescribeHosts API now includes an OutpostArn response parameter. - -## __Amazon Kinesis Video Streams__ - - ### Features - - Add support for multiple image feature related APIs for configuring image generation and notification of a video stream. Add "GET_IMAGES" to the list of supported API names for the GetDataEndpoint API. - -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - Add support for GetImages API for retrieving images from a video stream - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Autopilot adds new metrics for all candidate models generated by Autopilot experiments; RStudio on SageMaker now allows users to bring your own development environment in a custom image. - -## __Amazon Simple Storage Service__ - - ### Features - - Documentation only update for doc bug fixes for the S3 API docs. - -# __2.17.182__ __2022-05-02__ -## __AWS Organizations__ - - ### Features - - This release adds the INVALID_PAYMENT_INSTRUMENT as a fail reason and an error message. - -## __AWS Outposts__ - - ### Features - - This release adds a new API called ListAssets to the Outposts SDK, which lists the hardware assets in an Outpost. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Synthetics__ - - ### Features - - CloudWatch Synthetics has introduced a new feature to provide customers with an option to delete the underlying resources that Synthetics canary creates when the user chooses to delete the canary. - -# __2.17.181__ __2022-04-29__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK nows supports creation of Dolby Vision profile 8.1, the ability to generate black frames of video, and introduces audio-only DASH and CMAF support. - -## __AWS WAFV2__ - - ### Features - - You can now inspect all request headers and all cookies. You can now specify how to handle oversize body contents in your rules that inspect the body. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Amazon CodeGuru Reviewer now supports suppressing recommendations from being generated on specific files and directories. - -## __Amazon Relational Database Service__ - - ### Features - - Feature - Adds support for Internet Protocol Version 6 (IPv6) on RDS database instances. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Update the StartChangeRequestExecution, adding TargetMaps to the Runbook parameter - -# __2.17.180__ __2022-04-28__ -## __AWS Audit Manager__ - - ### Features - - This release adds documentation updates for Audit Manager. We provided examples of how to use the Custom_ prefix for the keywordValue attribute. We also provided more details about the DeleteAssessmentReport operation. - -## __AWS Network Firewall__ - - ### Features - - AWS Network Firewall adds support for stateful threat signature AWS managed rule groups. - -## __Amazon Connect Service__ - - ### Features - - This release introduces an API for changing the current agent status of a user in Connect. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support to query the public key and creation date of EC2 Key Pairs. Additionally, the format (pem or ppk) of a key pair can be specified when creating a new key pair. - -## __Amazon GuardDuty__ - - ### Features - - Documentation update for API description. - -## __Braket__ - - ### Features - - This release enables Braket Hybrid Jobs with Embedded Simulators to have multiple instances. - -## __S3 Transfer Manager (Develper Preview)__ - - ### Features - - Add `DownloadDirectoryRequest.Builder#downloadFileRequestTransformer` and `DownloadDirectoryRequest.Builder#listObjectsRequestTranformer` to allow users to modify requests during directory downloads. - -# __2.17.179__ __2022-04-27__ -## __AWS Amplify__ - - ### Features - - Documentation only update to support the Amplify GitHub App feature launch - -## __AWS CloudTrail__ - - ### Features - - Increases the retention period maximum to 2557 days. Deprecates unused fields of the ListEventDataStores API response. Updates documentation. - -## __AWS IoT Wireless__ - - ### Features - - Add list support for event configurations, allow to get and update event configurations by resource type, support LoRaWAN events; Make NetworkAnalyzerConfiguration as a resource, add List, Create, Delete API support; Add FCntStart attribute support for ABP WirelessDevice. - -## __AWS SDK for Java v2__ - - ### Features - - Expose an option in `AsyncResponseTransformer#toFile` to allow overwriting and appending existing file. - -## __Amazon Chime SDK Media Pipelines__ - - ### Features - - For Amazon Chime SDK meetings, the Amazon Chime Media Pipelines SDK allows builders to capture audio, video, and content share streams. You can also capture meeting events, live transcripts, and data messages. The pipelines save the artifacts to an Amazon S3 bucket that you designate. - -## __Amazon Lookout for Equipment__ - - ### Features - - This release adds the following new features: 1) Introduces an option for automatic schema creation 2) Now allows for Ingestion of data containing most common errors and allows automatic data cleaning 3) Introduces new API ListSensorStatistics that gives further information about the ingested data - -## __Amazon Rekognition__ - - ### Features - - This release adds support to configure stream-processor resources for label detections on streaming-videos. UpateStreamProcessor API is also launched with this release, which could be used to update an existing stream-processor. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Autopilot adds support for custom validation dataset and validation ratio through the CreateAutoMLJob and DescribeAutoMLJob APIs. - -## __S3 Transfer Manager (Develper Preview)__ - - ### Features - - Implement pause and resume for `S3TransferManager#downloadFile` - - S3TransferManager#downloadFile now by default replaces existing file if it already exists instead of throwing FileAlreadyExistsException. See [#3108](https://github.com/aws/aws-sdk-java-v2/issues/3108) - -# __2.17.178__ __2022-04-26__ -## __AWS Glue__ - - ### Features - - This release adds documentation for the APIs to create, read, delete, list, and batch read of AWS Glue custom patterns, and for Lake Formation configuration settings in the AWS Glue crawler. - -## __AWS Network Firewall__ - - ### Features - - AWS Network Firewall now enables customers to use a customer managed AWS KMS key for the encryption of their firewall resources. - -## __AWS Price List Service__ - - ### Features - - Documentation updates for Price List API - -## __Amazon CloudFront__ - - ### Features - - CloudFront now supports the Server-Timing header in HTTP responses sent from CloudFront. You can use this header to view metrics that help you gain insights about the behavior and performance of CloudFront. To use this header, enable it in a response headers policy. - -## __Amazon Interactive Video Service Chat__ - - ### Features - - Adds new APIs for IVS Chat, a feature for building interactive chat experiences alongside an IVS broadcast. - -## __Amazon Lightsail__ - - ### Features - - This release adds support for Lightsail load balancer HTTP to HTTPS redirect and TLS policy configuration. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker Inference Recommender now accepts customer KMS key ID for encryption of endpoints and compilation outputs created during inference recommendation. - -# __2.17.177__ __2022-04-25__ -## __AWS RDS DataService__ - - ### Features - - Support to receive SQL query results in the form of a simplified JSON string. This enables developers using the new JSON string format to more easily convert it to an object using popular JSON string parsing libraries. - -## __AWS SecurityHub__ - - ### Features - - Security Hub now lets you opt-out of auto-enabling the defaults standards (CIS and FSBP) in accounts that are auto-enabled with Security Hub via Security Hub's integration with AWS Organizations. - -## __Amazon Connect Service__ - - ### Features - - This release adds SearchUsers API which can be used to search for users with a Connect Instance - -## __Amazon GameLift__ - - ### Features - - Documentation updates for Amazon GameLift. - -## __AmazonMQ__ - - ### Features - - This release adds the CRITICAL_ACTION_REQUIRED broker state and the ActionRequired API property. CRITICAL_ACTION_REQUIRED informs you when your broker is degraded. ActionRequired provides you with a code which you can use to find instructions in the Developer Guide on how to resolve the issue. - -# __2.17.176__ __2022-04-22__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix to ignore empty strings while marshalling list of strings in header field. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Include additional exceptions types. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support for waiters that automatically poll for a deleted NAT Gateway until it reaches the deleted state. - -# __2.17.175__ __2022-04-21__ -## __AWS Glue__ - - ### Features - - This release adds APIs to create, read, delete, list, and batch read of Glue custom entity types - -## __AWS IoT SiteWise__ - - ### Features - - This release adds 3 new batch data query APIs : BatchGetAssetPropertyValue, BatchGetAssetPropertyValueHistory and BatchGetAssetPropertyAggregates - -## __AWS IoT TwinMaker__ - - ### Features - - General availability (GA) for AWS IoT TwinMaker. For more information, see https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/Welcome.html - -## __AWS MediaTailor__ - - ### Features - - This release introduces tiered channels and adds support for live sources. Customers using a STANDARD channel can now create programs using live sources. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __AWS Storage Gateway__ - - ### Features - - This release adds support for minimum of 5 character length virtual tape barcodes. - -## __Amazon Connect Wisdom Service__ - - ### Features - - This release updates the GetRecommendations API to include a trigger event list for classifying and grouping recommendations. - -## __Amazon ElastiCache__ - - ### Features - - Doc only update for ElastiCache - -## __Amazon Lookout for Metrics__ - - ### Features - - Added DetectMetricSetConfig API for detecting configuration required for creating metric set from provided S3 data source. - -# __2.17.174__ __2022-04-20__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Prevent IndexOutOfBoundsException when PutObject tagging is an empty set. - -## __Amazon Connect Service__ - - ### Features - - This release adds APIs to search, claim, release, list, update, and describe phone numbers. You can also use them to associate and disassociate contact flows to phone numbers. - -## __Amazon Macie 2__ - - ### Features - - Sensitive data findings in Amazon Macie now indicate how Macie found the sensitive data that produced a finding (originType). - -## __Amazon Relational Database Service__ - - ### Features - - Added a new cluster-level attribute to set the capacity range for Aurora Serverless v2 instances. - -## __Application Migration Service__ - - ### Features - - Removed required annotation from input fields in Describe operations requests. Added quotaValue to ServiceQuotaExceededException - -# __2.17.173__ __2022-04-19__ -## __AWS Key Management Service__ - - ### Features - - Adds support for KMS keys and APIs that generate and verify HMAC codes - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Transfer Family__ - - ### Features - - This release contains corrected HomeDirectoryMappings examples for several API functions: CreateAccess, UpdateAccess, CreateUser, and UpdateUser,. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now provides a data source connector for Quip. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-quip.html - -## __Amazon Personalize__ - - ### Features - - Adding StartRecommender and StopRecommender APIs for Personalize. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new Austrian German voice - Hannah. Hannah is available as Neural voice only. - -## __Amazon Redshift__ - - ### Features - - Introduces new fields for LogDestinationType and LogExports on EnableLogging requests and Enable/Disable/DescribeLogging responses. Customers can now select CloudWatch Logs as a destination for their Audit Logs. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Added offset support for specifying the number of days to wait after the date and time specified by a CRON expression when creating SSM association. - -## __Amazon Textract__ - - ### Features - - This release adds support for specifying and extracting information from documents using the Queries feature within Analyze Document API - -## __Amazon WorkLink__ - - ### Features - - Amazon WorkLink is no longer supported. This will be removed in a future version of the SDK. - -## __Auto Scaling__ - - ### Features - - EC2 Auto Scaling now adds default instance warm-up times for all scaling activities, health check replacements, and other replacement events in the Auto Scaling instance lifecycle. - -# __2.17.172__ __2022-04-15__ -## __Amazon Athena__ - - ### Features - - This release adds subfields, ErrorMessage, Retryable, to the AthenaError response object in the GetQueryExecution API when a query fails. - -## __Amazon Lightsail__ - - ### Features - - This release adds support to describe the synchronization status of the account-level block public access feature for your Amazon Lightsail buckets. - -## __Amazon Relational Database Service__ - - ### Features - - Removes Amazon RDS on VMware with the deletion of APIs related to Custom Availability Zones and Media installation - -# __2.17.171__ __2022-04-14__ -## __AWS Batch__ - - ### Features - - Enables configuration updates for compute environments with BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies. - -## __AWS Glue__ - - ### Features - - Auto Scaling for Glue version 3.0 and later jobs to dynamically scale compute resources. This SDK change provides customers with the auto-scaled DPU usage - -## __AWS SDK for Java v2__ - - ### Features - - Automatically refresh credentials in the background when async credential refreshes are enabled, even if traffic is low. - - Updated service endpoint metadata. - -## __Amazon AppStream__ - - ### Features - - Includes updates for create and update fleet APIs to manage the session scripts locations for Elastic fleets. - -## __Amazon Appflow__ - - ### Features - - Enables users to pass custom token URL parameters for Oauth2 authentication during create connector profile - -## __Amazon CloudWatch__ - - ### Features - - Updates documentation for additional statistics in CloudWatch Metric Streams. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Amazon EC2. - -# __2.17.170__ __2022-04-13__ -## __Amazon CloudWatch__ - - ### Features - - Adds support for additional statistics in CloudWatch Metric Streams. - -## __Amazon FSx__ - - ### Features - - This release adds support for deploying FSx for ONTAP file systems in a single Availability Zone. - -# __2.17.169__ __2022-04-12__ -## __AWS IoT TwinMaker__ - - ### Features - - This release adds the following new features: 1) ListEntities API now supports search using ExternalId. 2) BatchPutPropertyValue and GetPropertyValueHistory API now allows users to represent time in sub-second level precisions. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DevOps Guru__ - - ### Features - - This release adds new APIs DeleteInsight to deletes the insight along with the associated anomalies, events and recommendations. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - X2idn and X2iedn instances are powered by 3rd generation Intel Xeon Scalable processors with an all-core turbo frequency up to 3.5 GHzAmazon EC2. C6a instances are powered by 3rd generation AMD EPYC processors. - -## __Amazon Elastic File System__ - - ### Features - - Amazon EFS adds support for a ThrottlingException when using the CreateAccessPoint API if the account is nearing the AccessPoint limit(120). - -# __2.17.168__ __2022-04-11__ -## __AWS Amplify UI Builder__ - - ### Features - - In this release, we have added the ability to bind events to component level actions. - -## __AWS App Runner__ - - ### Features - - This release adds tracing for App Runner services with X-Ray using AWS Distro for OpenTelemetry. New APIs: CreateObservabilityConfiguration, DescribeObservabilityConfiguration, ListObservabilityConfigurations, and DeleteObservabilityConfiguration. Updated APIs: CreateService and UpdateService. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon WorkSpaces__ - - ### Features - - Added API support that allows customers to create GPU-enabled WorkSpaces using EC2 G4dn instances. - -# __2.17.167__ __2022-04-08__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for the pass-through of WebVTT styling to WebVTT outputs, pass-through of KLV metadata to supported formats, and improved filter support for processing 444/RGB content. - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - This release adds ScteMarkersSource as an available field for Dash Packaging Configurations. When set to MANIFEST, MediaPackage will source the SCTE-35 markers from the manifest. When set to SEGMENTS, MediaPackage will source the SCTE-35 markers from the segments. - -## __AWS WAFV2__ - - ### Features - - Add a new CurrentDefaultVersion field to ListAvailableManagedRuleGroupVersions API response; add a new VersioningSupported boolean to each ManagedRuleGroup returned from ListAvailableManagedRuleGroups API response. - -# __2.17.166__ __2022-04-07__ -## __AWS Performance Insights__ - - ### Features - - Adds support for DocumentDB to the Performance Insights API. - -## __Amazon API Gateway__ - - ### Features - - ApiGateway CLI command get-usage now includes usagePlanId, startDate, and endDate fields in the output to match documentation. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Added support to enable/disable performance insights when creating or modifying db instances - -## __Amazon EventBridge__ - - ### Features - - Adds new EventBridge Endpoint resources for disaster recovery, multi-region failover, and cross-region replication capabilities to help you build resilient event-driven applications. - -## __Amazon Personalize__ - - ### Features - - This release provides tagging support in AWS Personalize. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon Sagemaker Notebook Instances now supports G5 instance types - -# __2.17.165__ __2022-04-06__ -## __AWS Config__ - - ### Features - - Add resourceType enums for AWS::EMR::SecurityConfiguration and AWS::SageMaker::CodeRepository - -## __AWS Lambda__ - - ### Features - - This release adds new APIs for creating and managing Lambda Function URLs and adds a new FunctionUrlAuthType parameter to the AddPermission API. Customers can use Function URLs to create built-in HTTPS endpoints on their functions. - -## __AWS Panorama__ - - ### Features - - Added Brand field to device listings. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - Upgrade jackson-databind to 2.13.2.2 - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now provides a data source connector for Box. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-box.html - -# __2.17.164__ __2022-04-05__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now supports Amazon FSx for OpenZFS locations. - -## __AWS S3 Control__ - - ### Features - - Documentation-only update for doc bug fixes for the S3 Control API docs. - -## __AWS SDK for Java v2__ - - ### Features - - Bump CRT version to `0.16.1`. - - - ### Bugfixes - - Refresh IMDS credentials more aggressively. - -## __AWS SecurityHub__ - - ### Features - - Added additional ASFF details for RdsSecurityGroup AutoScalingGroup, ElbLoadBalancer, CodeBuildProject and RedshiftCluster. - -## __Amazon FSx__ - - ### Features - - Provide customers more visibility into file system status by adding new "Misconfigured Unavailable" status for Amazon FSx for Windows File Server. - -# __2.17.163__ __2022-04-04__ -## __AWS IoT__ - - ### Features - - AWS IoT - AWS IoT Device Defender adds support to list metric datapoints collected for IoT devices through the ListMetricValues API - -## __AWS Proton__ - - ### Features - - SDK release to support tagging for AWS Proton Repository resource - -## __AWS Server Migration Service__ - - ### Features - - Revised product update notice for SMS console deprecation. - -## __AWS Service Catalog__ - - ### Features - - This release adds ProvisioningArtifictOutputKeys to DescribeProvisioningParameters to reference the outputs of a Provisioned Product and deprecates ProvisioningArtifactOutputs. - -# __2.17.162__ __2022-04-01__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - This release updates these APIs: UpdateInstanceAttribute, DescribeInstanceAttribute and ListInstanceAttributes. You can use it to programmatically enable/disable multi-party conferencing using attribute type MULTI_PARTY_CONFERENCING on the specified Amazon Connect instance. - -# __2.17.161__ __2022-03-31__ -## __AWS Audit Manager__ - - ### Features - - This release adds documentation updates for Audit Manager. The updates provide data deletion guidance when a customer deregisters Audit Manager or deregisters a delegated administrator. - -## __AWS Cloud Control API__ - - ### Features - - SDK release for Cloud Control API in Amazon Web Services China (Beijing) Region, operated by Sinnet, and Amazon Web Services China (Ningxia) Region, operated by NWCD - -## __AWS Glue DataBrew__ - - ### Features - - This AWS Glue Databrew release adds feature to support ORC as an input format. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fix NPE thrown from serializing/deserializing a structure that has map type with null values - -## __Amazon Managed Grafana__ - - ### Features - - This release adds tagging support to the Managed Grafana service. New APIs: TagResource, UntagResource and ListTagsForResource. Updates: add optional field tags to support tagging while calling CreateWorkspace. - -## __Amazon Pinpoint SMS Voice V2__ - - ### Features - - Amazon Pinpoint now offers a version 2.0 suite of SMS and voice APIs, providing increased control over sending and configuration. This release is a new SDK for sending SMS and voice messages called PinpointSMSVoiceV2. - -## __Amazon WorkSpaces__ - - ### Features - - Added APIs that allow you to customize the logo, login message, and help links in the WorkSpaces client login page. To learn more, visit https://docs.aws.amazon.com/workspaces/latest/adminguide/customize-branding.html - -## __Route53 Recovery Cluster__ - - ### Features - - This release adds a new API "ListRoutingControls" to list routing control states using the highly reliable Route 53 ARC data plane endpoints. - -## __URLConnection HTTP Client__ - - ### Features - - ProxyConfiguration support for UrlConnectionHttpClient. - -# __2.17.160__ __2022-03-30__ -## __AWS IoT__ - - ### Features - - Doc only update for IoT that fixes customer-reported issues. - -## __AWS IoT Data Plane__ - - ### Features - - Update the default AWS IoT Core Data Plane endpoint from VeriSign signed to ATS signed. If you have firewalls with strict egress rules, configure the rules to grant you access to data-ats.iot.[region].amazonaws.com or data-ats.iot.[region].amazonaws.com.cn. - -## __AWS SDK for Java v2__ - - ### Features - - Extend union type improvements to additional services: dynamodb, dynamodbstreams, iot, sagemaker, clouddirectory, iotanalytics, kendra, marketplaceentitlement, quicksight, s3, xray. - - Remove unnecessary dependencies on JDK modules not in java.base. This didn't remove all of the dependencies on such modules, just the unnecessary ones. - - - ### Bugfixes - - Fix issue where the `contentLength` specified on the `RequestBody` is not honored. Fixes [#2908](https://github.com/aws/aws-sdk-java-v2/issues/2908). - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release simplifies the auto-recovery configuration process enabling customers to set the recovery behavior to disabled or default - -## __Amazon FSx__ - - ### Features - - This release adds support for modifying throughput capacity for FSx for ONTAP file systems. - -## __Firewall Management Service__ - - ### Features - - AWS Firewall Manager now supports the configuration of third-party policies that can use either the centralized or distributed deployment models. - -# __2.17.159__ __2022-03-29__ -## __AWS Organizations__ - - ### Features - - This release provides the new CloseAccount API that enables principals in the management account to close any member account within an organization. - -## __AWS SDK for Java v2__ - - ### Features - - Allow services to model structures with mutually exclusive fields (union types). Such structures have additional static constructors and the ability to query for which field is populated. Services which support this feature at launch: accessanalyzer, appconfig, appconfigdata, appmesh, connect, emrcontainers, evidently, grafana, groundstation, healthlake, inspector2, iottwinmaker, migrationhubstrategy, nimble, panorama, proton, rdsdata, redshiftdata, s3control, snowdevicemanagement, ssmincidents, transcribe, wisdom. - - Allow specifying the profile file and name used by the instance profile credentials provider. - - Improve resilience of instance profile credentials provider to short-term outages. Credentials that are close to expiration or expired can still be used to sign calls when the instance metadata service appears to be having issues. Services are now responsible for determining whether the credentials have actually expired. - - Include SDK user-agent in container credential provider calls. - - Use the client's profile file and name for instance profile credentials when the default credentials provider is not overridden. - - - ### Bugfixes - - Moved HttpCredentialsProvider (base class of ContainerCredentialsProvider and InstanceProfileCredentialsProvider) from private to public. This fixes an issue where public classes extended an internal class. Some components of this type were modified to allow it to be public. - -# __2.17.158__ __2022-03-28__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - Updating service name entities - -## __AWS Elemental MediaLive__ - - ### Features - - This release adds support for selecting a maintenance window. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.17.157__ __2022-03-25__ -## __AWS Batch__ - - ### Features - - Bug Fix: Fixed a bug where shapes were marked as unboxed and were not serialized and sent over the wire, causing an API error from the service. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This is release adds support for Amazon VPC Reachability Analyzer to analyze path through a Transit Gateway. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This Patch Manager release supports creating, updating, and deleting Patch Baselines for Rocky Linux OS. - -# __2.17.156__ __2022-03-24__ -## __AWS Config__ - - ### Features - - Added new APIs GetCustomRulePolicy and GetOrganizationCustomRulePolicy, and updated existing APIs PutConfigRule, DescribeConfigRule, DescribeConfigRuleEvaluationStatus, PutOrganizationConfigRule, DescribeConfigRule to support a new feature for building AWS Config rules with AWS CloudFormation Guard - -## __AWS Lambda__ - - ### Features - - Adds support for increased ephemeral storage (/tmp) up to 10GB for Lambda functions. Customers can now provision up to 10 GB of ephemeral storage per function instance, a 20x increase over the previous limit of 512 MB. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Transcribe Service__ - - ### Features - - This release adds an additional parameter for subtitling with Amazon Transcribe batch jobs: outputStartIndex. - -# __2.17.155__ __2022-03-23__ -## __AWS Audit Manager__ - - ### Features - - This release updates 1 API parameter, the SnsArn attribute. The character length and regex pattern for the SnsArn attribute have been updated, which enables you to deselect an SNS topic when using the UpdateSettings operation. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Transfer Family__ - - ### Features - - Documentation updates for AWS Transfer Family to describe how to remove an associated workflow from a server. - -## __Amazon ElastiCache__ - - ### Features - - Doc only update for ElastiCache - -## __Amazon Elastic Block Store__ - - ### Features - - Increased the maximum supported value for the Timeout parameter of the StartSnapshot API from 60 minutes to 4320 minutes. Changed the HTTP error code for ConflictException from 503 to 409. - -## __Amazon Redshift__ - - ### Features - - This release adds a new [--encrypted | --no-encrypted] field in restore-from-cluster-snapshot API. Customers can now restore an unencrypted snapshot to a cluster encrypted with AWS Managed Key or their own KMS key. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Update AddTagsToResource, ListTagsForResource, and RemoveTagsFromResource APIs to reflect the support for tagging Automation resources. Includes other minor documentation updates. - -## __GameSparks__ - - ### Features - - Released the preview of Amazon GameSparks, a fully managed AWS service that provides a multi-service backend for game developers. - -# __2.17.154__ __2022-03-22__ -## __AWS Cost Explorer Service__ - - ### Features - - Added three new APIs to support tagging and resource-level authorization on Cost Explorer resources: TagResource, UntagResource, ListTagsForResource. Added optional parameters to CreateCostCategoryDefinition, CreateAnomalySubscription and CreateAnomalyMonitor APIs to support Tag On Create. - -## __AWS Lake Formation__ - - ### Features - - The release fixes the incorrect permissions called out in the documentation - DESCRIBE_TAG, ASSOCIATE_TAG, DELETE_TAG, ALTER_TAG. This trebuchet release fixes the corresponding SDK and documentation. - -## __AWS SDK for Java v2__ - - ### Features - - Bump up jackson version 2.13.1 -> 2.13.2 - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation only update to address tickets - -## __Amazon Location Service__ - - ### Features - - Amazon Location Service now includes a MaxResults parameter for GetDevicePositionHistory requests. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new Catalan voice - Arlet. Arlet is available as Neural voice only. - -# __2.17.153__ __2022-03-21__ -## __AWS MediaConnect__ - - ### Features - - This release adds support for selecting a maintenance window. - -## __AWS Resource Access Manager__ - - ### Features - - Document improvements to the RAM API operations and parameter descriptions. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Add support for media replication to link multiple WebRTC media sessions together to reach larger and global audiences. Participants connected to a replica session can be granted access to join the primary session and can switch sessions with their existing WebRTC connection - -## __Amazon EC2 Container Registry__ - - ### Features - - This release includes a fix in the DescribeImageScanFindings paginated output. - -## __Amazon QuickSight__ - - ### Features - - AWS QuickSight Service Features - Expand public API support for group management. - -# __2.17.152__ __2022-03-18__ -## __AWS Glue__ - - ### Features - - Added 9 new APIs for AWS Glue Interactive Sessions: ListSessions, StopSession, CreateSession, GetSession, DeleteSession, RunStatement, GetStatement, ListStatements, CancelStatement - -# __2.17.151__ __2022-03-16__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - AWS Certificate Manager (ACM) Private Certificate Authority (CA) now supports customizable certificate subject names and extensions. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Removed incorrect validation pattern for IncidentRecordSource.invokedBy - -## __AWSBillingConductor__ - - ### Features - - This is the initial SDK release for AWS Billing Conductor. The AWS Billing Conductor is a customizable billing service, allowing you to customize your billing data to match your desired business structure. - -## __Amazon S3 on Outposts__ - - ### Features - - S3 on Outposts is releasing a new API, ListSharedEndpoints, that lists all endpoints associated with S3 on Outpost, that has been shared by Resource Access Manager (RAM). - -## __AmplifyBackend__ - - ### Features - - Adding the ability to customize Cognito verification messages for email and SMS in CreateBackendAuth and UpdateBackendAuth. Adding deprecation documentation for ForgotPassword in CreateBackendAuth and UpdateBackendAuth - -## __S3 Transfer Manager (Preview)__ - - ### Bugfixes - - Fixed the bug in the transfer manager where files were downloaded sequentially in downloadDirectory. See [#3092](https://github.com/aws/aws-sdk-java-v2/issues/3092) - -# __2.17.150__ __2022-03-15__ -## __AWS Data Exchange__ - - ### Features - - This feature enables data providers to use the RevokeRevision operation to revoke subscriber access to a given revision. Subscribers are unable to interact with assets within a revoked revision. - -## __AWS RoboMaker__ - - ### Features - - This release deprecates ROS, Ubuntu and Gazbeo from RoboMaker Simulation Service Software Suites in favor of user-supplied containers and Relaxed Software Suites. - -## __AWS SDK for Java v2__ - - ### Features - - Bump CRT version to `0.15.23`. - - - ### Bugfixes - - Fixed an issue where NPE could be thrown when a request failed before API call timer started - -## __Amazon Cognito Identity Provider__ - - ### Features - - Updated EmailConfigurationType and SmsConfigurationType to reflect that you can now choose Amazon SES and Amazon SNS resources in the same Region. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation only update to address tickets - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds the Cascade parameter to the DeleteIpam API. Customers can use this parameter to automatically delete their IPAM, including non-default scopes, pools, cidrs, and allocations. There mustn't be any pools provisioned in the default public scope to use this parameter. - -## __Amazon Keyspaces__ - - ### Features - - Fixing formatting issues in CLI and SDK documentation - -## __Amazon Location Service__ - - ### Features - - New HERE style "VectorHereExplore" and "VectorHereExploreTruck". - -## __Amazon Relational Database Service__ - - ### Features - - Various documentation improvements - -## __S3 Transfer Manager__ - - ### Features - - Add Copy support to S3 Transfer Manager - -# __2.17.149__ __2022-03-14__ -## __AWS Config__ - - ### Features - - Add resourceType enums for AWS::ECR::PublicRepository and AWS::EC2::LaunchTemplate - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now provides a data source connector for Slack. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-slack.html - -## __Amazon ElastiCache__ - - ### Features - - Doc only update for ElastiCache - -## __Amazon Timestream Query__ - - ### Features - - Amazon Timestream Scheduled Queries now support Timestamp datatype in a multi-measure record. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - The default tlsNegotiationTimeout is now 5 seconds instead of 2 seconds to account for potential startup latency. - -# __2.17.148__ __2022-03-11__ -## __AWS Lambda__ - - ### Features - - Adds PrincipalOrgID support to AddPermission API. Customers can use it to manage permissions to lambda functions at AWS Organizations level. - -## __AWS Outposts__ - - ### Features - - This release adds address filters for listSites - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager. - -## __Amazon Chime__ - - ### Features - - Chime VoiceConnector Logging APIs will now support MediaMetricLogs. Also CreateMeetingDialOut now returns AccessDeniedException. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for enabling Rich Messaging when starting a new chat session via the StartChatContact API. Rich Messaging enables the following formatting options: bold, italics, hyperlinks, bulleted lists, and numbered lists. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - Amazon Transcribe StartTranscription API now supports additional parameters for Language Identification feature: customVocabularies and customFilterVocabularies - -# __2.17.147__ __2022-03-10__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Transfer Family__ - - ### Features - - Adding more descriptive error types for managed workflows - -## __Amazon Lex Model Building V2__ - - ### Features - - This release makes slotTypeId an optional parameter in CreateSlot and UpdateSlot APIs in Amazon Lex V2 for model building. Customers can create and update slots without specifying a slot type id. - -## __Amazon Transcribe Service__ - - ### Features - - Documentation fix for API `StartMedicalTranscriptionJobRequest`, now showing min sample rate as 16khz - -# __2.17.146__ __2022-03-09__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now supports extracting the sentiment associated with entities such as brands, products and services from text documents. - -# __2.17.145__ __2022-03-08__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for reading timecode from AVCHD sources and now provides the ability to segment WebVTT at the same interval as the video and audio in HLS packages. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Introducing a new enum for NodeGroup error code: Ec2SubnetMissingIpv6Assignment - -## __Amazon Keyspaces__ - - ### Features - - Adding link to CloudTrail section in Amazon Keyspaces Developer Guide - -# __2.17.144__ __2022-03-07__ -## __AWS Migration Hub Refactor Spaces__ - - ### Features - - AWS Migration Hub Refactor Spaces documentation update. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Adds support for Transcribe language identification feature to the StartMeetingTranscription API. - -## __Amazon EC2 Container Service__ - - ### Features - - Amazon ECS UpdateService API now supports additional parameters: loadBalancers, propagateTags, enableECSManagedTags, and serviceRegistries - -# __2.17.143__ __2022-03-04__ -## __AWS Security Token Service__ - - ### Features - - Documentation updates for AWS Security Token Service. - -## __AWS Transfer Family__ - - ### Features - - Add waiters for server online and offline. - -## __Amazon Connect Service__ - - ### Features - - This release updates the *InstanceStorageConfig APIs so they support a new ResourceType: REAL_TIME_CONTACT_ANALYSIS_SEGMENTS. Use this resource type to enable streaming for real-time contact analysis and to associate the Kinesis stream where real-time contact analysis segments will be published. - -## __Amazon DevOps Guru__ - - ### Features - - Amazon DevOps Guru now integrates with Amazon CodeGuru Profiler. You can view CodeGuru Profiler recommendations for your AWS Lambda function in DevOps Guru. This feature is enabled by default for new customers as of 3/4/2022. Existing customers can enable this feature with UpdateEventSourcesConfig. - -## __Amazon DynamoDB Enhanced Client__ - - ### Bugfixes - - Bugfix for handling attribute names with `+` character - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Amazon EC2. - -## __Amazon Macie__ - - ### Features - - Amazon Macie Classic (macie) has been discontinued and is no longer available. A new Amazon Macie (macie2) is now available with significant design improvements and additional features. - -## __Synthetics__ - - ### Features - - Allow custom handler function. - -# __2.17.142__ __2022-03-03__ -## __AWS IoT Greengrass V2__ - - ### Features - - Doc only update that clarifies Create Deployment section. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now suggests spell corrections for a query. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/query-spell-check.html - -## __Amazon Appflow__ - - ### Features - - Launching Amazon AppFlow Marketo as a destination connector SDK. - -## __Amazon FSx__ - - ### Features - - This release adds support for data repository associations to use root ("/") as the file system path - -## __Amazon Timestream Query__ - - ### Features - - Documentation only update for SDK and CLI - -# __2.17.141__ __2022-03-02__ -## __AWS CloudTrail__ - - ### Features - - Add bytesScanned field into responses of DescribeQuery and GetQueryResults. - -## __Amazon Athena__ - - ### Features - - This release adds support for S3 Object Ownership by allowing the S3 bucket owner full control canned ACL to be set when Athena writes query results to S3 buckets. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release adds support for tracking images lastRecordedPullTime. - -## __Amazon GameLift__ - - ### Features - - Minor updates to address errors. - -## __Amazon Keyspaces__ - - ### Features - - This release adds support for data definition language (DDL) operations - -# __2.17.140__ __2022-03-01__ -## __AWS Elemental MediaPackage__ - - ### Features - - This release adds Hybridcast as an available profile option for Dash Origin Endpoints. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for Multi-AZ DB clusters. - -## __Application Migration Service__ - - ### Features - - Add support for GP3 and IO2 volume types. Add bootMode to LaunchConfiguration object (and as a parameter to UpdateLaunchConfigurationRequest). - -## __Managed Streaming for Kafka Connect__ - - ### Features - - Adds operation for custom plugin deletion (DeleteCustomPlugin) and adds new StateDescription field to DescribeCustomPlugin and DescribeConnector responses to return errors from asynchronous resource creation. - -# __2.17.139__ __2022-02-28__ -## __AWS Amplify__ - - ### Features - - Add repositoryCloneMethod field for hosting an Amplify app. This field shows what authorization method is used to clone the repo: SSH, TOKEN, or SIGV4. - -## __AWS Amplify UI Builder__ - - ### Features - - We are adding the ability to configure workflows and actions for components. - -## __AWS Fault Injection Simulator__ - - ### Features - - This release adds logging support for AWS Fault Injection Simulator experiments. Experiment templates can now be configured to send experiment activity logs to Amazon CloudWatch Logs or to an S3 bucket. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog App Registry__ - - ### Features - - AppRegistry is deprecating Application and Attribute-Group Name update feature. In this release, we are marking the name attributes for Update APIs as deprecated to give a heads up to our customers. - -## __Amazon Athena__ - - ### Features - - This release adds support for updating an existing named query. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for new AMI property 'lastLaunchedTime' - -## __Amazon FSx__ - - ### Features - - This release adds support for the following FSx for OpenZFS features: snapshot lifecycle transition messages, force flag for deleting file systems with child resources, LZ4 data compression, custom record sizes, and unsetting volume quotas and reservations. - -## __FinSpace Public API__ - - ### Features - - Add new APIs for managing Users and Permission Groups. - -## __Route53 Recovery Cluster__ - - ### Features - - This release adds a new API option to enable overriding safety rules to allow routing control state updates. - -# __2.17.138__ __2022-02-25__ -## __AWS Panorama__ - - ### Features - - Added NTP server configuration parameter to ProvisionDevice operation. Added alternate software fields to DescribeDevice response - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon ElastiCache__ - - ### Features - - Doc only update for ElastiCache - -# __2.17.137__ __2022-02-24__ -## __AWS Glue DataBrew__ - - ### Features - - This AWS Glue Databrew release adds feature to merge job outputs into a max number of files for S3 File output type. - -## __AWS S3 Control__ - - ### Features - - Amazon S3 Batch Operations adds support for new integrity checking capabilities in Amazon S3. - -## __AWS Transfer Family__ - - ### Features - - Support automatic pagination when listing AWS Transfer Family resources. - -## __Amazon Lightsail__ - - ### Features - - This release adds support to delete and create Lightsail default key pairs that you can use with Lightsail instances. - -## __Amazon Route 53__ - - ### Features - - SDK doc update for Route 53 to update some parameters with new information. - -## __Amazon Simple Storage Service__ - - ### Features - - This release adds support for new integrity checking capabilities in Amazon S3. You can choose from four supported checksum algorithms for data integrity checking on your upload and download requests. In addition, AWS SDK can automatically calculate a checksum as it streams data into S3 - -## __Auto Scaling__ - - ### Features - - You can now hibernate instances in a warm pool to stop instances without deleting their RAM contents. You can now also return instances to the warm pool on scale in, instead of always terminating capacity that you will need later. - -## __Firewall Management Service__ - - ### Features - - AWS Firewall Manager now supports the configuration of AWS Network Firewall policies with either centralized or distributed deployment models. This release also adds support for custom endpoint configuration, where you can choose which Availability Zones to create firewall endpoints in. - -# __2.17.136__ __2022-02-23__ -## __AWS Lambda__ - - ### Features - - Lambda releases .NET 6 managed runtime to be available in all commercial regions. - -## __AWS SDK for Java v2__ - - ### Features - - Add `ClientOverrideConfiguration` getter to `SdkClientBuilder`. Allows for changing multiple overrides on a client through the client builder alone. - - Contributed by: [@smswz](https://github.com/smswz) - - Updated service endpoint metadata. - -## __AWS Transfer Family__ - - ### Features - - The file input selection feature provides the ability to use either the originally uploaded file or the output file from the previous workflow step, enabling customers to make multiple copies of the original file while keeping the source file intact for file archival. - -## __Amazon Textract__ - - ### Features - - Added support for merged cells and column header for table response. - -## __URL Connection HTTP Client__ - - ### Bugfixes - - Fix "java.net.ProtocolException: Server rejected operation" when the HTTP response has no response content. If the response includes content, update the exception message to say that the Apache HTTP client may fix the problem. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@smswz](https://github.com/smswz) -# __2.17.135__ __2022-02-22__ -## __AWS App Runner__ - - ### Features - - AWS App Runner adds a Java platform (Corretto 8, Corretto 11 runtimes) and a Node.js 14 runtime. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAFV2__ - - ### Features - - Updated descriptions for logging configuration. - -## __Amazon Translate__ - - ### Features - - This release enables customers to use translation settings for formality customization in their synchronous translation output. - -## __S3 Transfer Manager__ - - ### Features - - Add support for filtering objects as part of S3 Transfer Manager's DownloadDirectory API - -# __2.17.134__ __2022-02-21__ -## __AWS SDK for Java v2__ - - ### Features - - Support adding http checksum for requests and validation of http checksum for responses based on HttpChecksum traits defined in the model. - - Updated service endpoint metadata. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release introduces apis CreateIntegrationWorkflow, DeleteWorkflow, ListWorkflows, GetWorkflow and GetWorkflowSteps. These apis are used to manage and view integration workflows. - -## __Amazon DynamoDB__ - - ### Features - - DynamoDB ExecuteStatement API now supports Limit as a request parameter to specify the maximum number of items to evaluate. If specified, the service will process up to the Limit and the results will include a LastEvaluatedKey value to continue the read in a subsequent operation. - -## __EC2 Image Builder__ - - ### Features - - This release adds support to enable faster launching for Windows AMIs created by EC2 Image Builder. - -# __2.17.133__ __2022-02-18__ -## __AWS Budgets__ - - ### Features - - This change introduces DescribeBudgetNotificationsForAccount API which returns budget notifications for the specified account - -## __AWS Transfer Family__ - - ### Features - - Properties for Transfer Family used with SFTP, FTP, and FTPS protocols. Display Banners are bodies of text that can be displayed before and/or after a user authenticates onto a server using one of the previously mentioned protocols. - -## __Amazon GameLift__ - - ### Features - - Increase string list limit from 10 to 100. - -# __2.17.132__ __2022-02-17__ -## __AWS Backup__ - - ### Features - - AWS Backup add new S3_BACKUP_OBJECT_FAILED and S3_RESTORE_OBJECT_FAILED event types in BackupVaultNotifications events list. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS SDK for Java v2__ - - ### Features - - Update SDK to be able to successfully build using JDK 17. - - Updated service endpoint metadata. - -## __Amazon CloudWatch Evidently__ - - ### Features - - Add support for filtering list of experiments and launches by status - -## __Amazon Redshift__ - - ### Features - - SDK release for Cross region datasharing and cost-control for cross region datasharing - -# __2.17.131__ __2022-02-16__ -## __AWS Budgets__ - - ### Features - - Adds support for auto-adjusting budgets, a new budget method alongside fixed and planned. Auto-adjusting budgets introduces new metadata to configure a budget limit baseline using a historical lookback average or current period forecast. - -## __AWS Cost Explorer Service__ - - ### Features - - AWS Cost Anomaly Detection now supports SNS FIFO topic subscribers. - -## __AWS Glue__ - - ### Features - - Support for optimistic locking in UpdateTable - -## __AWS SDK for Java v2__ - - ### Features - - Add support for setting the default `RegionScope` used by the Sigv4a signer implementations. If the region scope to use is not supplied to the signing methods, the signers will default to this scope first and then the normal signing region. - - - ### Removals - - Removed codegen-resources from service jars, which reduces SDK artifact size. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Assorted ticket fixes and updates for AWS Systems Manager. - -## __Netty NIO Async HTTP Client__ - - ### Bugfixes - - Fixed an issue in Netty async http client where NPE was thrown when the execution got cancelled before executionId was attached to the channel. - -## __S3 Transfer Manager__ - - ### Features - - Implement downloadDirectory API in the S3TransferManager - - - ### Bugfixes - - A couple of minor refactoring on the S3TransferManager. 1. `CompletedDirectoryUpload#failedTransfers` now returns `List` instead of `Collection`. 2. `UploadDirectoryOverrideConfiguration#uploadFileRequestTransformer` now returns `Consumer` instead of `Optional>` it will be no-op if no uploadFileRequestTransformer is provided - -# __2.17.130__ __2022-02-14__ -## __Amazon Appflow__ - - ### Features - - Launching Amazon AppFlow SAP as a destination connector SDK. - -## __Amazon Athena__ - - ### Features - - This release adds a subfield, ErrorType, to the AthenaError response object in the GetQueryExecution API when a query fails. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for determining which Aurora PostgreSQL versions support Babelfish. - -# __2.17.129__ __2022-02-11__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Always return an empty SDK bytes when services model their response payload as a blob. Previously, it would either return null, empty bytes or throw an exception depending on the protocol, HTTP client and whether the service was using chunked encoding for their responses. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Documentation updates for AWS Systems Manager. - -# __2.17.128__ __2022-02-10__ -## __AWS CloudFormation__ - - ### Features - - This SDK release adds AWS CloudFormation Hooks HandlerErrorCodes - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAFV2__ - - ### Features - - Adds support for AWS WAF Fraud Control account takeover prevention (ATP), with configuration options for the new managed rule group AWSManagedRulesATPRuleSet and support for application integration SDKs for Android and iOS mobile apps. - -## __Amazon Lookout for Vision__ - - ### Features - - This release makes CompilerOptions in Lookout for Vision's StartModelPackagingJob's Configuration object optional. - -## __Amazon Pinpoint__ - - ### Features - - This SDK release adds a new paramater creation date for GetApp and GetApps Api call - -## __Amazon Simple Notification Service__ - - ### Features - - Customer requested typo fix in API documentation. - -# __2.17.127__ __2022-02-09__ -## __AWS CloudFormation__ - - ### Features - - This SDK release is for the feature launch of AWS CloudFormation Hooks. - -# __2.17.126__ __2022-02-08__ -## __AWS App Runner__ - - ### Features - - This release adds support for App Runner to route outbound network traffic of a service through an Amazon VPC. New API: CreateVpcConnector, DescribeVpcConnector, ListVpcConnectors, and DeleteVpcConnector. Updated API: CreateService, DescribeService, and UpdateService. - -## __AWS S3 Control__ - - ### Features - - This release adds support for S3 Batch Replication. Batch Replication lets you replicate existing objects, already replicated objects to new destinations, and objects that previously failed to replicate. Customers will receive object-level visibility of progress and a detailed completion report. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now provides a data source connector for Amazon FSx. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-fsx.html - -## __Amazon DynamoDB Enhanced Client__ - - ### Features - - Added logging to 'software.amazon.awssdk.enhanced.dynamodb.beans', which will assist when debugging the behavior of BeanTableSchema and ImmutableTableSchema. - -## __Amazon SageMaker Service__ - - ### Features - - Autopilot now generates an additional report with information on the performance of the best model, such as a Confusion matrix and Area under the receiver operating characteristic (AUC-ROC). The path to the report can be found in CandidateArtifactLocations. - -# __2.17.125__ __2022-02-07__ -## __AWS Audit Manager__ - - ### Features - - This release updates 3 API parameters. UpdateAssessmentFrameworkControlSet now requires the controls attribute, and CreateAssessmentFrameworkControl requires the id attribute. Additionally, UpdateAssessmentFramework now has a minimum length constraint for the controlSets attribute. - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Update RelatedItem enum to support SSM Automation - -## __Amazon EventBridge__ - - ### Features - - Documentation updates for EventBridge - -## __Synthetics__ - - ### Features - - Adding names parameters to the Describe APIs. - -# __2.17.124__ __2022-02-04__ -## __AWS Lake Formation__ - - ### Features - - Add support for calling Update Table Objects without a TransactionId. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Athena__ - - ### Features - - You can now optionally specify the account ID that you expect to be the owner of your query results output location bucket in Athena. If the account ID of the query results bucket owner does not match the specified account ID, attempts to output to the bucket will fail with an S3 permissions error. - -## __Amazon Relational Database Service__ - - ### Features - - updates for RDS Custom for Oracle 12.1 support - -# __2.17.123__ __2022-02-03__ -## __AWS RoboMaker__ - - ### Features - - The release deprecates the use various APIs of RoboMaker Deployment Service in favor of AWS IoT GreenGrass v2.0. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSMarketplace Metering__ - - ### Features - - Add CustomerAWSAccountId to ResolveCustomer API response and increase UsageAllocation limit to 2500. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - adds support for AMIs in Recycle Bin - -## __Amazon Recycle Bin__ - - ### Features - - Add EC2 Image recycle bin support. - -# __2.17.122__ __2022-02-02__ -## __AWS Cost Explorer Service__ - - ### Features - - Doc-only update for Cost Explorer API that adds INVOICING_ENTITY dimensions - -## __AWS Fault Injection Simulator__ - - ### Features - - Added GetTargetResourceType and ListTargetResourceTypesAPI actions. These actions return additional details about resource types and parameters that can be targeted by FIS actions. Added a parameters field for the targets that can be specified in experiment templates. - -## __AWS Glue__ - - ### Features - - Launch Protobuf support for AWS Glue Schema Registry - -## __AWS IoT__ - - ### Features - - This release adds support for configuring AWS IoT logging level per client ID, source IP, or principal ID. - -## __AWS SDK for Java v2__ - - ### Features - - Add new AsyncResponseTransformer: toPublisher(). This transformer makes it more convenient for users to directly consume a streaming-response payload (i.e., S3 GetObject) with async clients. This also allows users of Reactor/RxJava to more easily consume a streaming response (e.g., via Flux#from(Publisher)). - - Only include non-null Extended Request IDs in exception messages - - - ### Documentations - - Improve documentation & add warnings for FUTURE_COMPLETION_EXECUTOR - -## __Amazon Appflow__ - - ### Features - - Launching Amazon AppFlow Custom Connector SDK. - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now supports sharing and importing custom trained models from one AWS account to another within the same region. - -## __Amazon DynamoDB__ - - ### Features - - Documentation update for DynamoDB Java SDK. - -## __Amazon EMR__ - - ### Features - - Documentation updates for Amazon EMR. - -## __Amazon ElastiCache__ - - ### Features - - Documentation update for AWS ElastiCache - -## __Amazon Elasticsearch Service__ - - ### Features - - Allows customers to get progress updates for blue/green deployments - -## __Amazon Personalize__ - - ### Features - - Adding minRecommendationRequestsPerSecond attribute to recommender APIs. - -# __2.17.121__ __2022-01-28__ -## __AWS AppConfig Data__ - - ### Features - - Documentation updates for AWS AppConfig Data. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Secrets Manager__ - - ### Features - - Feature are ready to release on Jan 28th - -## __Amazon AppConfig__ - - ### Features - - Documentation updates for AWS AppConfig - -## __Amazon Athena__ - - ### Features - - This release adds a field, AthenaError, to the GetQueryExecution response object when a query fails. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Doc updates for Cognito user pools API Reference. - -## __Amazon SageMaker Service__ - - ### Features - - This release added a new NNA accelerator compilation support for Sagemaker Neo. - -# __2.17.120__ __2022-01-27__ -## __AWS Amplify__ - - ### Features - - Doc only update to the description of basicauthcredentials to describe the required encoding and format. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for configuring a custom chat duration when starting a new chat session via the StartChatContact API. The default value for chat duration is 25 hours, minimum configurable value is 1 hour (60 minutes) and maximum configurable value is 7 days (10,080 minutes). - -## __Amazon Elastic Compute Cloud__ - - ### Features - - X2ezn instances are powered by Intel Cascade Lake CPUs that deliver turbo all core frequency of up to 4.5 GHz and up to 100 Gbps of networking bandwidth - -## __Amazon OpenSearch Service__ - - ### Features - - Allows customers to get progress updates for blue/green deployments - -## __Managed Streaming for Kafka__ - - ### Features - - Amazon MSK has updated the CreateCluster and UpdateBrokerStorage API that allows you to specify volume throughput during cluster creation and broker volume updates. - -# __2.17.119__ __2022-01-26__ -## __AWS SecurityHub__ - - ### Features - - Adding top level Sample boolean field - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Added failure state and adjusted timeout in waiter - -## __Amazon Elastic Block Store__ - - ### Features - - Documentation updates for Amazon EBS Direct APIs. - -## __Amazon Fraud Detector__ - - ### Features - - Added new APIs for viewing past predictions and obtaining prediction metadata including prediction explanations: ListEventPredictions and GetEventPredictionMetadata - -## __Amazon SageMaker Service__ - - ### Features - - API changes relating to Fail steps in model building pipeline and add PipelineExecutionFailureReason in PipelineExecutionSummary. - -# __2.17.118__ __2022-01-25__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for custom vocabularies to be used with Contact Lens. Custom vocabularies improve transcription accuracy for one or more specific words. - -## __Amazon Elastic File System__ - - ### Features - - Use Amazon EFS Replication to replicate your Amazon EFS file system in the AWS Region of your preference. - -## __Amazon FSx__ - - ### Features - - This release adds support for growing SSD storage capacity and growing/shrinking SSD IOPS for FSx for ONTAP file systems. - -## __Amazon GuardDuty__ - - ### Features - - Amazon GuardDuty expands threat detection coverage to protect Amazon Elastic Kubernetes Service (EKS) workloads. - -# __2.17.117__ __2022-01-24__ -## __AWS Route53 Recovery Readiness__ - - ### Features - - Updated documentation for Route53 Recovery Readiness APIs. - -# __2.17.116__ __2022-01-21__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for 4K AV1 output resolutions & 10-bit AV1 color, the ability to ingest sidecar Dolby Vision XML metadata files, and the ability to flag WebVTT and IMSC tracks for accessibility in HLS. - -## __Amazon Transcribe Service__ - - ### Features - - Add support for granular PIIEntityTypes when using Batch ContentRedaction. - -# __2.17.115__ __2022-01-20__ -## __AWS Fault Injection Simulator__ - - ### Features - - Added action startTime and action endTime timestamp fields to the ExperimentAction object - -## __AWS MediaTailor__ - - ### Features - - This release adds support for multiple Segment Delivery Configurations. Users can provide a list of names and URLs when creating or editing a source location. When retrieving content, users can send a header to choose which URL should be used to serve content. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Prevent duplicate ExecutionAttribute names and fix name for FIPS_ENDPOINT_ENABLED attribute - - sets tableSchema field when provisioning the extension context in ChainExtension#afterRead - - Contributed by: [@alvinsee](https://github.com/alvinsee) - -## __Amazon Connect Service__ - - ### Features - - This release adds tagging support for UserHierarchyGroups resource. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - C6i, M6i and R6i instances are powered by a third-generation Intel Xeon Scalable processor (Ice Lake) delivering all-core turbo frequency of 3.5 GHz - -## __Amazon GuardDuty__ - - ### Features - - Amazon GuardDuty findings now include remoteAccountDetails under AwsApiCallAction section if instance credential is exfiltrated. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Verify that the content-length header matches the content returned by the service. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@alvinsee](https://github.com/alvinsee) -# __2.17.114__ __2022-01-19__ -## __AWS EC2 Instance Connect__ - - ### Features - - Adds support for ED25519 keys. PushSSHPublicKey Availability Zone parameter is now optional. Adds EC2InstanceStateInvalidException for instances that are not running. This was previously a service exception, so this may require updating your code to handle this new exception. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed an issue where the clientName was not overridden if an SdkAsyncHttpClient instance was provided - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API introduces stricter validation of requests to create custom data identifiers. - -# __2.17.113__ __2022-01-18__ -## __AWS CloudTrail__ - - ### Features - - This release fixes a documentation bug in the description for the readOnly field selector in advanced event selectors. The description now clarifies that users omit the readOnly field selector to select both Read and Write management events. - -## __AWS Storage Gateway__ - - ### Features - - Documentation update for adding bandwidth throttling support for S3 File Gateways. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add support for AWS Client VPN client login banner and session timeout. - -## __Amazon Interactive Video Service__ - - ### Features - - This release adds support for the new Thumbnail Configuration property for Recording Configurations. For more information see https://docs.aws.amazon.com/ivs/latest/userguide/record-to-s3.html - -## __Amazon Location Service__ - - ### Features - - This release adds the CalculateRouteMatrix API which calculates routes for the provided departure and destination positions. The release also deprecates the use of pricing plan across all verticals. - -# __2.17.112__ __2022-01-14__ -## __AWS Config__ - - ### Features - - Update ResourceType enum with values for CodeDeploy, EC2 and Kinesis resources - -## __AWS Resource Access Manager__ - - ### Features - - This release adds the ListPermissionVersions API which lists the versions for a given permission. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Do not fail with a parsing error when receiving 0-length chunk-encoded responses for XML services. - -## __Amazon CloudWatch Application Insights__ - - ### Features - - Application Insights support for Active Directory and SharePoint - -## __Amazon Honeycode__ - - ### Features - - Added read and write api support for multi-select picklist. And added errorcode field to DescribeTableDataImportJob API output, when import job fails. - -## __Amazon Lookout for Metrics__ - - ### Features - - This release adds a new DeactivateAnomalyDetector API operation. - -# __2.17.111__ __2022-01-13__ -## __AWS Glue__ - - ### Features - - This SDK release adds support to pass run properties when starting a workflow run - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon ElastiCache__ - - ### Features - - AWS ElastiCache for Redis has added a new Engine Log LogType in LogDelivery feature. You can now publish the Engine Log from your Amazon ElastiCache for Redis clusters to Amazon CloudWatch Logs and Amazon Kinesis Data Firehose. - -## __Amazon Lex Runtime V2__ - - ### Features - - This release adds support for sending hints to Amazon Lex V2 runtime APIs. Bot developers can provide runtime hints to help improve the recognition of slot values. - -## __Amazon Pinpoint__ - - ### Features - - Adds JourneyChannelSettings to WriteJourneyRequest - -## __Amazon S3__ - - ### Bugfixes - - Retry on InternalError error code, which fixes an issue where 200s followed by a failure were not retried. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager adds category support for DescribeDocument API - -## __AmazonNimbleStudio__ - - ### Features - - Amazon Nimble Studio now supports validation for Launch Profiles. Launch Profiles now report static validation results after create/update to detect errors in network or active directory configuration. - -## __Apache HTTP Client__ - - ### Bugfixes - - Do not reuse connections that receive a 5xx service response. - -# __2.17.110__ __2022-01-12__ -## __AWS Performance Insights__ - - ### Features - - This release adds three Performance Insights APIs. Use ListAvailableResourceMetrics to get available metrics, GetResourceMetadata to get feature metadata, and ListAvailableResourceDimensions to list available dimensions. The AdditionalMetrics field in DescribeDimensionKeys retrieves per-SQL metrics. - -## __Amazon ElastiCache__ - - ### Features - - Doc only update for ElastiCache - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Hpc6a instances are powered by a third-generation AMD EPYC processors (Milan) delivering all-core turbo frequency of 3.4 GHz - -## __Amazon Honeycode__ - - ### Features - - Honeycode is releasing new APIs to allow user to create, delete and list tags on resources. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release adds support for Custom vocabulary in Amazon Lex V2 APIs for model building. Customers can give Amazon Lex V2 more information about how to process audio conversations with a bot by creating a custom vocabulary in a specific language. - -## __Firewall Management Service__ - - ### Features - - Shield Advanced policies for Amazon CloudFront resources now support automatic application layer DDoS mitigation. The max length for SecurityServicePolicyData ManagedServiceData is now 8192 characters, instead of 4096. - -# __2.17.109__ __2022-01-11__ -## __AWS Cost Explorer Service__ - - ### Features - - Doc only update for Cost Explorer API that fixes missing clarifications for MatchOptions definitions - -## __AWS IoT Events Data__ - - ### Features - - This release provides documentation updates for Timer.timestamp in the IoT Events API Reference Guide. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix an issue where the error response handler is not set for eventstream operations on XML services, for example `SelectObjectContent` for Amazon S3. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports advanced query language and query-less search. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EC2 Capacity Reservations now supports RHEL instance platforms (RHEL with SQL Server Standard, RHEL with SQL Server Enterprise, RHEL with SQL Server Web, RHEL with HA, RHEL with HA and SQL Server Standard, RHEL with HA and SQL Server Enterprise) - -## __Amazon Relational Database Service__ - - ### Features - - This release adds the db-proxy event type to support subscribing to RDS Proxy events. - -## __Amazon WorkSpaces__ - - ### Features - - Introducing new APIs for Workspaces audio optimization with Amazon Connect: CreateConnectClientAddIn, DescribeConnectClientAddIns, UpdateConnectClientAddIn and DeleteConnectClientAddIn. - -## __FinSpace Public API__ - - ### Features - - Documentation updates for FinSpace. - -# __2.17.108__ __2022-01-10__ -## __AWS Compute Optimizer__ - - ### Features - - Adds support for new Compute Optimizer capability that makes it easier for customers to optimize their EC2 instances by leveraging multiple CPU architectures. - -## __AWS Glue DataBrew__ - - ### Features - - This SDK release adds support for specifying a Bucket Owner for an S3 location. - -## __AWS SDK for Java v2__ - - ### Features - - Bump up jackson version `2.12.3` -> `2.13.1` - -## __Amazon Elastic Compute Cloud__ - - ### Features - - New feature: Updated EC2 API to support faster launching for Windows images. Optimized images are pre-provisioned, using snapshots to launch instances up to 65% faster. - -## __Amazon Lookout for Metrics__ - - ### Features - - This release adds FailureType in the response of DescribeAnomalyDetector. - -## __Amazon Transcribe Service__ - - ### Features - - Documentation updates for Amazon Transcribe. - -# __2.17.107__ __2022-01-07__ -## __AWS Elemental MediaLive__ - - ### Features - - This release adds support for selecting the Program Date Time (PDT) Clock source algorithm for HLS outputs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - Upgrade Netty version to 4.1.72 - -# __2.17.106__ __2022-01-06__ -## __AWS AppSync__ - - ### Features - - AppSync: AWS AppSync now supports configurable batching sizes for AWS Lambda resolvers, Direct AWS Lambda resolvers and pipeline functions - -## __AWS IoT Wireless__ - - ### Features - - Downlink Queue Management feature provides APIs for customers to manage the queued messages destined to device inside AWS IoT Core for LoRaWAN. Customer can view, delete or purge the queued message(s). It allows customer to preempt the queued messages and let more urgent messages go through. - -## __AWS MediaTailor__ - - ### Features - - This release adds support for filler slate when updating MediaTailor channels that use the linear playback mode. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release introduces On-Demand Capacity Reservation support for Cluster Placement Groups, adds Tags on instance Metadata, and includes documentation updates for Amazon EC2. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon OpenSearch Service adds support for Fine Grained Access Control for existing domains running Elasticsearch version 6.7 and above - -## __Amazon OpenSearch Service__ - - ### Features - - Amazon OpenSearch Service adds support for Fine Grained Access Control for existing domains running Elasticsearch version 6.7 and above - -## __AmazonMWAA__ - - ### Features - - This release adds a "Source" field that provides the initiator of an update, such as due to an automated patch from AWS or due to modification via Console or API. - -# __2.17.105__ __2022-01-05__ -## __AWS CloudTrail__ - - ### Features - - This release adds support for CloudTrail Lake, a new feature that lets you run SQL-based queries on events that you have aggregated into event data stores. New APIs have been added for creating and managing event data stores, and creating, running, and managing queries in CloudTrail Lake. - -## __AWS Glue__ - - ### Features - - Add Delta Lake target support for Glue Crawler and 3rd Party Support for Lake Formation - -## __AWS IoT__ - - ### Features - - This release adds an automatic retry mechanism for AWS IoT Jobs. You can now define a maximum number of retries for each Job rollout, along with the criteria to trigger the retry for FAILED/TIMED_OUT/ALL(both FAILED an TIMED_OUT) job. - -## __AWS Lake Formation__ - - ### Features - - Add new APIs for 3rd Party Support for Lake Formation - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Log request ID and extended request ID with the request logger and requestId logger. See [#2876](https://github.com/aws/aws-sdk-java-v2/issues/2876) - -## __Amazon AppStream__ - - ### Features - - Includes APIs for App Entitlement management regarding entitlement and entitled application association. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation update for ticket fixes. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new API called ModifyVpcEndpointServicePayerResponsibility which allows VPC endpoint service owners to take payer responsibility of their VPC Endpoint connections. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Amazon EKS now supports running applications using IPv6 address space - -## __Amazon Import/Export Snowball__ - - ### Features - - Updating validation rules for interfaces used in the Snowball API to tighten security of service. - -## __Amazon QuickSight__ - - ### Features - - Multiple Doc-only updates for Amazon QuickSight. - -## __Amazon S3__ - - ### Features - - Add support for `SelectObjectContent`. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker now supports running training jobs on ml.g5 instance types. - -# __2.17.104__ __2022-01-04__ -## __AWS S3 Control__ - - ### Features - - Documentation updates for the renaming of Glacier to Glacier Flexible Retrieval. - -## __Amazon Rekognition__ - - ### Features - - This release introduces a new field IndexFacesModelVersion, which is the version of the face detect and storage model that was used when indexing the face vector. - -## __Amazon Simple Storage Service__ - - ### Features - - Minor doc-based updates based on feedback bugs received. - -# __2.17.103__ __2022-01-03__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added strength levels to the Sharpness Filter and now permits OGG files to be specified as sidecar audio inputs. - -## __AWS IoT Greengrass V2__ - - ### Features - - This release adds the API operations to manage the Greengrass role associated with your account and to manage the core device connectivity information. Greengrass V2 customers can now depend solely on Greengrass V2 SDK for all the API operations needed to manage their fleets. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Add null check for nonProxyHosts in Apache HTTP Client ProxyConfiguration. - -## __Amazon Detective__ - - ### Features - - Added and updated API operations to support the Detective integration with AWS Organizations. New actions are used to manage the delegated administrator account and the integration configuration. - -## __Amazon Relational Database Service__ - - ### Features - - Multiple doc-only updates for Relational Database Service (RDS) - -## __Amazon SageMaker Service__ - - ### Features - - The release allows users to pass pipeline definitions as Amazon S3 locations and control the pipeline execution concurrency using ParallelismConfiguration. It also adds support of EMR jobs as pipeline steps. - -## __Apache HTTP Client__ - - ### Bugfixes - - Stop auto-enabling TLS protocol versions - -# __2.17.102__ __2021-12-21__ -## __AWS MediaConnect__ - - ### Features - - You can now use the Fujitsu-QoS protocol for your MediaConnect sources and outputs to transport content to and from Fujitsu devices. - -## __AWS SDK for Java v2__ - - ### Features - - Updated SDK default configurations. - - Updated service endpoint metadata. - -## __AWS Transfer Family__ - - ### Features - - Property for Transfer Family used with the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. - -## __Amazon Chime SDK Messaging__ - - ### Features - - The Amazon Chime SDK now supports updating message attributes via channel flows - -## __Amazon Lookout for Metrics__ - - ### Features - - This release adds support for Causal Relationships. Added new ListAnomalyGroupRelatedMetrics API operation and InterMetricImpactDetails API data type - -## __Amazon QLDB__ - - ### Features - - Amazon QLDB now supports journal exports in JSON and Ion Binary formats. This release adds an optional OutputFormat parameter to the ExportJournalToS3 API. - -## __Amazon WorkMail__ - - ### Features - - This release allows customers to change their email monitoring configuration in Amazon WorkMail. - -## __AmazonNimbleStudio__ - - ### Features - - Amazon Nimble Studio adds support for users to upload files during a streaming session using NICE DCV native client or browser. - -## __EC2 Image Builder__ - - ### Features - - Added a note to infrastructure configuration actions and data types concerning delivery of Image Builder event messages to encrypted SNS topics. The key that's used to encrypt the SNS topic must reside in the account that Image Builder runs under. - -# __2.17.101__ __2021-12-20__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now supports FSx Lustre Locations. - -## __AWS SDK for Java v2__ - - ### Features - - Introduce a defaults mode configuration that determines how certain default configuration options are resolved in the SDK. See `DefaultsMode` for more information. - - Updated SDK default configurations. - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Added new resource details objects to ASFF, including resources for Firewall, and RuleGroup, FirewallPolicy Added additional details for AutoScalingGroup, LaunchConfiguration, and S3 buckets. - -## __Amazon API Gateway__ - - ### Features - - Documentation updates for Amazon API Gateway - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release adds an optional parameter, ObjectTypeNames to the PutIntegration API to support multiple object types per integration option. Besides, this release introduces Standard Order Objects which contain data from third party systems and each order object belongs to a specific profile. - -## __Amazon DevOps Guru__ - - ### Features - - Adds Tags support to DescribeOrganizationResourceCollectionHealth - -## __Amazon Forecast Service__ - - ### Features - - Adds ForecastDimensions field to the DescribeAutoPredictorResponse - -## __Amazon Location Service__ - - ### Features - - Making PricingPlan optional as part of create resource API. - -## __Amazon Redshift__ - - ### Features - - This release adds API support for managed Redshift datashares. Customers can now interact with a Redshift datashare that is managed by a different service, such as AWS Data Exchange. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds a new ContentType field in AutoMLChannel for SageMaker CreateAutoMLJob InputDataConfig. - -## __Apache HTTP Client__ - - ### Features - - Add "ConcurrencyAcquireDuration" metric for apache-client - -## __EC2 Image Builder__ - - ### Features - - This release adds support for importing and exporting VM Images as part of the Image Creation workflow via EC2 VM Import/Export. - -## __FinSpace Public API__ - - ### Features - - Make dataset description optional and allow s3 export for dataviews - -## __Metrics__ - - ### Features - - Add pretty-format support to LoggingMetricPublisher - -## __Netty NIO HTTP Client__ - - ### Features - - If `tlsNegotiationTimeout` is not configured, it will be set to the resolved `connectionTimeout`. By default, `tlsNegotiationTimeout` is now 2s instead of 10s - - - ### Bugfixes - - Ensure in-use channels are not incorrectly closed - -# __2.17.100__ __2021-12-13__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Make `ProcessCredentialsProvider` closeable, so that the internal credentials cache (which may be async and need to be closed) can be closed. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __Netty NIO HTTP Client__ - - ### Features - - Add "ConcurrencyAcquireDuration" metric for netty-nio-client - -# __2.17.99__ __2021-12-09__ -## __AWS Network Firewall__ - - ### Features - - This release adds support for managed rule groups. - -## __AWS Route53 Recovery Control Config__ - - ### Features - - This release adds tagging supports to Route53 Recovery Control Configuration. New APIs: TagResource, UntagResource and ListTagsForResource. Updates: add optional field `tags` to support tagging while calling CreateCluster, CreateControlPanel and CreateSafetyRule. - -## __AWS Savings Plans__ - - ### Features - - Adds the ability to specify Savings Plans hourly commitments using five digits after the decimal point. - -## __AWS Server Migration Service__ - - ### Features - - This release adds SMS discontinuation information to the API and CLI references. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds waiters support for internet gateways. - -## __Amazon Lex Model Building V2__ - - ### Features - - Added support for grammar slot type in Amazon Lex. You can author your own grammar in the XML format per the SRGS specification to collect information in a conversation. - -## __Amazon Route 53 Domains__ - - ### Features - - Amazon Route 53 domain registration APIs now support filtering and sorting in the ListDomains API, deleting a domain by using the DeleteDomain API and getting domain pricing information by using the ListPrices API. - -# __2.17.98__ __2021-12-08__ -## __AWS Comprehend Medical__ - - ### Features - - This release adds a new set of APIs (synchronous and batch) to support the SNOMED-CT ontology. - -## __AWS Health APIs and Notifications__ - - ### Features - - Documentation updates for AWS Health - -## __AWS IoT__ - - ### Features - - This release allows customer to enable caching of custom authorizer on HTTP protocol for clients that use persistent or Keep-Alive connection in order to reduce the number of Lambda invocations. - -## __AWS Outposts__ - - ### Features - - This release adds the UpdateOutpost API. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Support__ - - ### Features - - Documentation updates for AWS Support. - -## __Amazon CloudWatch Logs__ - - ### Features - - This release adds AWS Organizations support as condition key in destination policy for cross account Subscriptions in CloudWatch Logs. - -## __Amazon Lookout for Vision__ - - ### Features - - This release adds new APIs for packaging an Amazon Lookout for Vision model as an AWS IoT Greengrass component. - -## __Amazon SageMaker Service__ - - ### Features - - This release added a new Ambarella device(amba_cv2) compilation support for Sagemaker Neo. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Ensure initial channel used for protocol detection is released before re-acquiring - -# __2.17.97__ __2021-12-06__ -## __AWS AppSync__ - - ### Features - - AWS AppSync now supports custom domain names, allowing you to associate a domain name that you own with an AppSync API in your account. - -## __Amazon Location Service__ - - ### Features - - This release adds support for Accuracy position filtering, position metadata and autocomplete for addresses and points of interest based on partial or misspelled free-form text. - -## __Amazon Route 53__ - - ### Features - - Add PriorRequestNotComplete exception to UpdateHostedZoneComment API - -## __Amazon S3__ - - ### Bugfixes - - Fixed an issue that resulted in a NullPointerException when an invalid or global region was used on an S3 client. Fixes [#2885](https://github.com/aws/aws-sdk-java-v2/issues/2885). - -## __URL Connection Http Client__ - - ### Features - - Lower memory consumption for HTTP requests by enabling fixed-length streaming mode. - - Contributed by: [@rtyley](https://github.com/rtyley) - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@rtyley](https://github.com/rtyley) -# __2.17.96__ __2021-12-03__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix to set TokenBucket capacity correctly when requested amount greater than capacity - -## __Amazon Rekognition__ - - ### Features - - This release added new KnownGender types for Celebrity Recognition. - -# __2.17.95__ __2021-12-02__ -## __AWS Amplify UI Builder__ - - ### Features - - This release introduces the actions and data types for the new Amplify UI Builder API. The Amplify UI Builder API provides a programmatic interface for creating and configuring user interface (UI) component libraries and themes for use in Amplify applications. - -## __AWS Network Manager__ - - ### Features - - This release adds API support for AWS Cloud WAN. - -## __AWS Resource Access Manager__ - - ### Features - - This release adds the ability to use the new ResourceRegionScope parameter on List operations that return lists of resources or resource types. This new parameter filters the results by letting you differentiate between global or regional resource types. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Complete the future returned by SdkPublisher.subscribe or filter exceptionally if the subscriber or predicate throws an exception. - -# __2.17.94__ __2021-12-01__ -## __AWS Direct Connect__ - - ### Features - - Adds SiteLink support to private and transit virtual interfaces. SiteLink is a new Direct Connect feature that allows routing between Direct Connect points of presence. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Shield__ - - ### Features - - This release adds API support for Automatic Application Layer DDoS Mitigation for AWS Shield Advanced. Customers can now enable automatic DDoS mitigation in count or block mode for layer 7 protected resources. - -## __AWSKendraFrontendService__ - - ### Features - - Experience Builder allows customers to build search applications without writing code. Analytics Dashboard provides quality and usability metrics for Kendra indexes. Custom Document Enrichment allows customers to build a custom ingestion pipeline to pre-process documents and generate metadata. - -## __Amazon DevOps Guru__ - - ### Features - - DevOps Guru now provides detailed, database-specific analyses of performance issues and recommends corrective actions for Amazon Aurora database instances with Performance Insights turned on. You can also use AWS tags to choose which resources to analyze and define your applications. - -## __Amazon DynamoDB__ - - ### Features - - Add support for Table Classes and introduce the Standard Infrequent Access table class. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Amazon VPC IP Address Manager (IPAM), which enables you to plan, track, and monitor IP addresses for your workloads. This release also adds support for VPC Network Access Analyzer, which enables you to analyze network access to resources in your Virtual Private Clouds. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release introduces a new feature, Automated Chatbot Designer, that helps customers automatically create a bot design from existing conversation transcripts. The feature uses machine learning to discover most common intents and the information needed to fulfill them. - -## __Amazon SageMaker Runtime__ - - ### Features - - Adding new exception types for InvokeEndpoint - -## __Amazon SageMaker Service__ - - ### Features - - This release enables - 1/ Inference endpoint configuration recommendations and ability to run custom load tests to meet performance needs. 2/ Deploy serverless inference endpoints. 3/ Query, filter and retrieve end-to-end ML lineage graph, and incorporate model quality/bias detection in ML workflow. - -# __2.17.93__ __2021-11-30__ -## __AWS Backup Gateway__ - - ### Features - - Initial release of AWS Backup gateway which enables you to centralize and automate protection of on-premises VMware and VMware Cloud on AWS workloads using AWS Backup. - -## __AWS Glue__ - - ### Features - - Support for DataLake transactions - -## __AWS IoT__ - - ### Features - - Added the ability to enable/disable IoT Fleet Indexing for Device Defender and Named Shadow information, and search them through IoT Fleet Indexing APIs. - -## __AWS IoT TwinMaker__ - - ### Features - - AWS IoT TwinMaker makes it faster and easier to create, visualize and monitor digital twins of real-world systems like buildings, factories and industrial equipment to optimize operations. Learn more: https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/Welcome.html (New Service) (Preview) - -## __AWS Lake Formation__ - - ### Features - - This release adds support for row and cell-based access control in Lake Formation. It also adds support for Lake Formation Governed Tables, which support ACID transactions and automatic storage optimizations. - -## __AWS Outposts__ - - ### Features - - This release adds the SupportedHardwareType parameter to CreateOutpost. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Storage Gateway__ - - ### Features - - Added gateway type VTL_SNOW. Added new SNOWBALL HostEnvironment for gateways running on a Snowball device. Added new field HostEnvironmentId to serve as an identifier for the HostEnvironment on which the gateway is running. - -## __Access Analyzer__ - - ### Features - - AWS IAM Access Analyzer now supports policy validation for resource policies attached to S3 buckets and access points. You can run additional policy checks by specifying the S3 resource type you want to attach to your resource policy. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Is4gen and Im4gn instances. This release also adds a new subnet attribute, enableLniAtDeviceIndex, to support local network interfaces, which are logical networking components that connect an EC2 instance to your on-premises network. - -## __Amazon FSx__ - - ### Features - - This release adds support for the FSx for OpenZFS file system type, FSx for Lustre file systems with the Persistent_2 deployment type, and FSx for Lustre file systems with Amazon S3 data repository associations and automatic export policies. - -## __Amazon Import/Export Snowball__ - - ### Features - - Tapeball is to integrate tape gateway onto snowball, it enables customer to transfer local data on the tape to snowball,and then ingest the data into tape gateway on the cloud. - -## __Amazon Kinesis__ - - ### Features - - Amazon Kinesis Data Streams now supports on demand streams. - -## __Amazon Simple Storage Service__ - - ### Features - - Introduce Amazon S3 Glacier Instant Retrieval storage class and a new setting in S3 Object Ownership to disable ACLs for bucket and the objects in it. - -## __Amazon WorkSpaces Web__ - - ### Features - - This is the initial SDK release for Amazon WorkSpaces Web. Amazon WorkSpaces Web is a low-cost, fully managed WorkSpace built to deliver secure web-based workloads and software-as-a-service (SaaS) application access to users within existing web browsers. - -## __Managed Streaming for Kafka__ - - ### Features - - This release adds three new V2 APIs. CreateClusterV2 for creating both provisioned and serverless clusters. DescribeClusterV2 for getting information about provisioned and serverless clusters and ListClustersV2 for listing all clusters (both provisioned and serverless) in your account. - -## __Redshift Data API Service__ - - ### Features - - Data API now supports serverless queries. - -# __2.17.92__ __2021-11-29__ -## __AWS Compute Optimizer__ - - ### Features - - Adds support for the enhanced infrastructure metrics paid feature. Also adds support for two new sets of resource efficiency metrics, including savings opportunity metrics and performance improvement opportunity metrics. - -## __AWS Data Exchange__ - - ### Features - - This release enables providers and subscribers to use Data Set, Job, and Asset operations to work with API assets from Amazon API Gateway. In addition, this release enables subscribers to use the SendApiAsset operation to invoke a provider's Amazon API Gateway API that they are entitled to. - -## __AWS IoT SiteWise__ - - ### Features - - AWS IoT SiteWise now supports retention configuration for the hot tier storage. - -## __AWS Well-Architected Tool__ - - ### Features - - This update provides support for Well-Architected API users to use custom lens features. - -## __Amazon CloudWatch Evidently__ - - ### Features - - Introducing Amazon CloudWatch Evidently. This is the first public release of Amazon CloudWatch Evidently. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release adds supports for pull through cache rules and enhanced scanning. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for G5g and M6a instances. This release also adds support for Amazon EBS Snapshots Archive, a feature that enables you to archive your EBS snapshots; and Recycle Bin, a feature that enables you to protect your EBS snapshots against accidental deletion. - -## __Amazon Recycle Bin__ - - ### Features - - This release adds support for Recycle Bin. - -## __Amazon Simple Storage Service__ - - ### Features - - Amazon S3 Event Notifications adds Amazon EventBridge as a destination and supports additional event types. The PutBucketNotificationConfiguration API can now skip validation of Amazon SQS, Amazon SNS and AWS Lambda destinations. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Added two new attributes to DescribeInstanceInformation called SourceId and SourceType along with new string filters SourceIds and SourceTypes to filter instance records. - -## __CloudWatch RUM__ - - ### Features - - This is the first public release of CloudWatch RUM - -## __Inspector2__ - - ### Features - - This release adds support for the new Amazon Inspector API. The new Amazon Inspector can automatically discover and scan Amazon EC2 instances and Amazon ECR container images for software vulnerabilities and unintended network exposure, and report centralized findings across multiple AWS accounts. - -# __2.17.91__ __2021-11-28__ -## __AWS Migration Hub Refactor Spaces__ - - ### Features - - This is the initial SDK release for AWS Migration Hub Refactor Spaces - -## __Amazon Personalize__ - - ### Features - - This release adds API support for Recommenders and BatchSegmentJobs. - -## __Amazon Personalize Runtime__ - - ### Features - - This release adds inference support for Recommenders. - -## __Amazon Textract__ - - ### Features - - This release adds support for synchronously analyzing identity documents through a new API: AnalyzeID - -# __2.17.90__ __2021-11-26__ -## __AWS IoT Core Device Advisor__ - - ### Features - - Documentation update for Device Advisor GetEndpoint API - -## __AWS Outposts__ - - ### Features - - This release adds new APIs for working with Outpost sites and orders. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2. - -## __Amazon Pinpoint__ - - ### Features - - Added a One-Time Password (OTP) management feature. You can use the Amazon Pinpoint API to generate OTP codes and send them to your users as SMS messages. Your apps can then call the API to verify the OTP codes that your users input - -## __Application Migration Service__ - - ### Features - - Application Migration Service now supports an additional replication method that does not require agent installation on each source server. This option is available for source servers running on VMware vCenter versions 6.7 and 7.0. - -## __Auto Scaling__ - - ### Features - - Documentation updates for Amazon EC2 Auto Scaling. - -# __2.17.89__ __2021-11-24__ -## __AWS IoT SiteWise__ - - ### Features - - AWS IoT SiteWise now accepts data streams that aren't associated with any asset properties. You can organize data by updating data stream associations. - -## __AWS Lambda__ - - ### Features - - Remove Lambda function url apis - -## __AWS Proton__ - - ### Features - - This release adds APIs for getting the outputs and provisioned stacks for Environments, Pipelines, and ServiceInstances. You can now add tags to EnvironmentAccountConnections. It also adds APIs for working with PR-based provisioning. Also, it adds APIs for syncing templates with a git repository. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release introduces a new auto-merging feature for profile matching. The auto-merging configurations can be set via CreateDomain API or UpdateDomain API. You can use GetIdentityResolutionJob API and ListIdentityResolutionJobs API to fetch job status. - -## __Amazon ElastiCache__ - - ### Features - - Doc only update for ElastiCache - -## __Amazon Timestream Query__ - - ### Features - - Releasing Amazon Timestream Scheduled Queries. It makes real-time analytics more performant and cost-effective for customers by calculating and storing frequently accessed aggregates, and other computations, typically used in operational dashboards, business reports, and other analytics applications - -## __Amazon Timestream Write__ - - ### Features - - This release adds support for multi-measure records and magnetic store writes. Multi-measure records allow customers to store multiple measures in a single table row. Magnetic store writes enable customers to write late arrival data (data with timestamp in the past) directly into the magnetic store. - -## __Amazon Translate__ - - ### Features - - This release enables customers to use translation settings to mask profane words and phrases in their translation output. - -## __Auto Scaling__ - - ### Features - - Customers can now configure predictive scaling policies to proactively scale EC2 Auto Scaling groups based on any CloudWatch metrics that more accurately represent the load on the group than the four predefined metrics. They can also use math expressions to further customize the metrics. - -## __EC2 Image Builder__ - - ### Features - - This release adds support for sharing AMIs with Organizations within an EC2 Image Builder Distribution Configuration. - -# __2.17.88__ __2021-11-23__ -## __AWS Backup__ - - ### Features - - This release adds new opt-in settings for advanced features for DynamoDB backups - -## __AWS IoT__ - - ### Features - - This release introduces a new feature, Managed Job Template, for AWS IoT Jobs Service. Customers can now use service provided managed job templates to easily create jobs for supported standard job actions. - -## __AWS IoT Core Device Advisor__ - - ### Features - - This release introduces a new feature for Device Advisor: ability to execute multiple test suites in parallel for given customer account. You can use GetEndpoint API to get the device-level test endpoint and call StartSuiteRun with "parallelRun=true" to run suites in parallel. - -## __AWS IoT Wireless__ - - ### Features - - Two new APIs, GetNetworkAnalyzerConfiguration and UpdateNetworkAnalyzerConfiguration, are added for the newly released Network Analyzer feature which enables customers to view real-time frame information and logs from LoRaWAN devices and gateways. - -## __AWS Lambda__ - - ### Features - - Release Lambda event source filtering for SQS, Kinesis Streams, and DynamoDB Streams. - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for AWS Security Token Service. - -## __Amazon DynamoDB__ - - ### Features - - DynamoDB PartiQL now supports ReturnConsumedCapacity, which returns capacity units consumed by PartiQL APIs if the request specified returnConsumedCapacity parameter. PartiQL APIs include ExecuteStatement, BatchExecuteStatement, and ExecuteTransaction. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation update for ARM support on Amazon ECS. - -## __Amazon ElastiCache__ - - ### Features - - Adding support for r6gd instances for Redis with data tiering. In a cluster with data tiering enabled, when available memory capacity is exhausted, the least recently used data is automatically tiered to solid state drives for cost-effective capacity scaling with minimal performance impact. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new parameter ipv6Native to the allow creation of IPv6-only subnets using the CreateSubnet operation, and the operation ModifySubnetAttribute includes new parameters to modify subnet attributes to use resource-based naming and enable DNS resolutions for Private DNS name. - -## __Amazon Macie 2__ - - ### Features - - Documentation updates for Amazon Macie - -## __Amazon OpenSearch Service__ - - ### Features - - This release adds an optional parameter dry-run for the UpdateDomainConfig API to perform basic validation checks, and detect the deployment type that will be required for the configuration change, without actually applying the change. - -## __Amazon Redshift__ - - ### Features - - This release adds support for reserved node exchange with restore/resize - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for Multi-AZ DB clusters for RDS for MySQL and RDS for PostgreSQL. - -## __Amazon Simple Queue Service__ - - ### Features - - Amazon SQS adds a new queue attribute, SqsManagedSseEnabled, which enables server-side queue encryption using SQS owned encryption keys. - -## __Amazon Simple Storage Service__ - - ### Features - - Introduce two new Filters to S3 Lifecycle configurations - ObjectSizeGreaterThan and ObjectSizeLessThan. Introduce a new way to trigger actions on noncurrent versions by providing the number of newer noncurrent versions along with noncurrent days. - -## __Amazon WorkSpaces__ - - ### Features - - Documentation updates for Amazon WorkSpaces - -## __Elastic Load Balancing__ - - ### Features - - This release allows you to create internal Application and Network Load Balancers in dualstack mode. This release also adds an attribute to block internet gateway (IGW) access to the load balancer, preventing unintended access to your internal load balancers through an internet gateway. - -## __FinSpace Public API__ - - ### Features - - Update documentation for createChangeset API. - -# __2.17.87__ __2021-11-22__ -## __AWS CloudFormation__ - - ### Features - - This release include SDK changes for the feature launch of Stack Import to Service Managed StackSet. - -## __AWS Database Migration Service__ - - ### Features - - Added new S3 endpoint settings to allow to convert the current UTC time into a specified time zone when a date partition folder is created. Using with 'DatePartitionedEnabled'. - -## __AWS S3 Control__ - - ### Features - - Added Amazon CloudWatch publishing option for S3 Storage Lens metrics. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Adds all fields in RequestOverrideConfiguration when a builder is created from an instance - -## __Amazon Chime SDK Meetings__ - - ### Features - - Added new APIs for enabling Echo Reduction with Voice Focus. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for UpdateContactFlowMetadata, DeleteContactFlow and module APIs. For details, see the Release Notes in the Amazon Connect Administrator Guide. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding missing exceptions to RegisterCluster operation - -## __Amazon Elasticsearch Service__ - - ### Features - - This release adds an optional parameter dry-run for the UpdateElasticsearchDomainConfig API to perform basic validation checks, and detect the deployment type that will be required for the configuration change, without actually applying the change. - -## __Amazon QuickSight__ - - ### Features - - Add support for Exasol data source, 1 click enterprise embedding and email customization. - -## __Amazon Relational Database Service__ - - ### Features - - Adds local backup support to Amazon RDS on AWS Outposts. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Adds new parameter to CreateActivation API . This parameter is for "internal use only". - -## __Amazon Transcribe Streaming Service__ - - ### Features - - This release adds language identification support for streaming transcription. - -## __Braket__ - - ### Features - - This release adds support for Amazon Braket Hybrid Jobs. - -## __FinSpace Public API__ - - ### Features - - Add new APIs for managing Datasets, Changesets, and Dataviews. - -# __2.17.86__ __2021-11-19__ -## __AWS Batch__ - - ### Features - - Documentation updates for AWS Batch. - -## __AWS CloudFormation__ - - ### Features - - The StackSets ManagedExecution feature will allow concurrency for non-conflicting StackSet operations and queuing the StackSet operations that conflict at a given time for later execution. - -## __AWS Elemental MediaLive__ - - ### Features - - This release adds support for specifying a SCTE-35 PID on input. MediaLive now supports SCTE-35 PID selection on inputs containing one or more active SCTE-35 PIDs. - -## __AWS Lambda__ - - ### Features - - Add support for Lambda Function URLs. Customers can use Function URLs to create built-in HTTPS endpoints on their functions. - -## __Amazon AppStream__ - - ### Features - - Includes APIs for managing resources for Elastic fleets: applications, app blocks, and application-fleet associations. - -## __Amazon CloudWatch Application Insights__ - - ### Features - - Application Insights now supports monitoring for HANA - -## __Amazon Lex Runtime V2__ - - ### Features - - Now supports styled slots in Lex V2 runtime. Customers can provide inputs like "a as in apple b for beta" which will be resolved to "ab" as slot value. - -## __Amazon Redshift__ - - ### Features - - Added support of default IAM role for CreateCluster, RestoreFromClusterSnapshot and ModifyClusterIamRoles APIs - -## __DynamoDB Enhanced Client__ - - ### Features - - Adds operation type labels to each operation and propagates to the extension write context - -# __2.17.85__ __2021-11-18__ -## __AWS Audit Manager__ - - ### Features - - This release introduces a new feature for Audit Manager: Dashboard views. You can now view insights data for your active assessments, and quickly identify non-compliant evidence that needs to be remediated. - -## __AWS Glue DataBrew__ - - ### Features - - This SDK release adds the following new features: 1) PII detection in profile jobs, 2) Data quality rules, enabling validation of data quality in profile jobs, 3) SQL query-based datasets for Amazon Redshift and Snowflake data sources, and 4) Connecting DataBrew datasets with Amazon AppFlow flows. - -## __AWS Lambda__ - - ### Features - - Added support for CLIENT_CERTIFICATE_TLS_AUTH and SERVER_ROOT_CA_CERTIFICATE as SourceAccessType for MSK and Kafka event source mappings. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon AppConfig__ - - ### Features - - Add Type to support feature flag configuration profiles - -## __Amazon Chime__ - - ### Features - - Adds new Transcribe API parameters to StartMeetingTranscription, including support for content identification and redaction (PII & PHI), partial results stabilization, and custom language models. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Adds new Transcribe API parameters to StartMeetingTranscription, including support for content identification and redaction (PII & PHI), partial results stabilization, and custom language models. - -## __Amazon CloudWatch__ - - ### Features - - CloudWatch Anomaly Detection now supports anomaly detectors that use metric math as input. - -## __Amazon Forecast Service__ - - ### Features - - NEW CreateExplanability API that helps you understand how attributes such as price, promotion, etc. contributes to your forecasted values; NEW CreateAutoPredictor API that trains up to 40% more accurate forecasting model, saves up to 50% of retraining time, and provides model level explainability. - -## __Amazon Interactive Video Service__ - - ### Features - - Add APIs for retrieving stream session information and support for filtering live streams by health. For more information, see https://docs.aws.amazon.com/ivs/latest/userguide/stream-health.html - -## __Amazon Lex Model Building V2__ - - ### Features - - Added support for Polly Neural TTS (NTTS) voices. Customers can choose between 'standard' and 'neural' for Polly Engine configuration per locale when creating or updating an Amazon Lex bot. - -## __Managed Streaming for Kafka__ - - ### Features - - Amazon MSK has added a new API that allows you to update the connectivity settings for an existing cluster to enable public accessibility. - -## __Redshift Data API Service__ - - ### Features - - Rolling back Data API serverless features until dependencies are live. - -# __2.17.84__ __2021-11-17__ -## __AWS AppConfig Data__ - - ### Features - - AWS AppConfig Data is a new service that allows you to retrieve configuration deployed by AWS AppConfig. See the AppConfig user guide for more details on getting started. https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon API Gateway__ - - ### Features - - Documentation updates for Amazon API Gateway. - -## __Amazon DevOps Guru__ - - ### Features - - Add paginator for DescribeResourceCollectionHealth - -## __Amazon Simple Notification Service__ - - ### Features - - Amazon SNS introduces the PublishBatch API, which enables customers to publish up to 10 messages per API request. The new API is valid for Standard and FIFO topics. - -## __AmplifyBackend__ - - ### Features - - New APIs to support the Amplify Storage category. Add and manage file storage in your Amplify app backend. - -## __Elastic Disaster Recovery Service__ - - ### Features - - Introducing AWS Elastic Disaster Recovery (AWS DRS), a new service that minimizes downtime and data loss with fast, reliable recovery of on-premises and cloud-based applications using affordable storage, minimal compute, and point-in-time recovery. - -## __Redshift Data API Service__ - - ### Features - - Data API now supports serverless requests. - -# __2.17.83__ __2021-11-16__ -## __AWS CloudTrail__ - - ### Features - - CloudTrail Insights now supports ApiErrorRateInsight, which enables customers to identify unusual activity in their AWS account based on API error codes and their rate. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Location Service__ - - ### Features - - This release adds the support for Relevance, Distance, Time Zone, Language and Interpolated Address for Geocoding and Reverse Geocoding. - -## __DynamoDB Enhanced Client__ - - ### Features - - Implement `DescribeTable` operation in `DynamoDbTable` and `DynamoDbAsyncTable` - -# __2.17.82__ __2021-11-15__ -## __AWS Database Migration Service__ - - ### Features - - Add Settings in JSON format for the source GCP MySQL endpoint - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - Use System Property Proxy Settings for Netty and AWS Common Runtime (CRT) HTTP Clients. See [#2321](https://github.com/aws/aws-sdk-java-v2/issues/2321), [#1793](https://github.com/aws/aws-sdk-java-v2/issues/1793) - - Contributed by: [@erin889](https://github.com/erin889) - - - ### Bugfixes - - Update the REST-JSON marshalling logic to conform to the standard expected behavior WRT to the `Content-Type` of the request. - -## __AWS Transfer Family__ - - ### Features - - AWS Transfer Family now supports integrating a custom identity provider using AWS Lambda - -## __AWS WAFV2__ - - ### Features - - Your options for logging web ACL traffic now include Amazon CloudWatch Logs log groups and Amazon S3 buckets. - -## __Amazon AppStream__ - - ### Features - - This release includes support for images of AmazonLinux2 platform type. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds a new VPC Subnet attribute "EnableDns64." When enabled on IPv6 Subnets, the Amazon-Provided DNS Resolver returns synthetic IPv6 addresses for IPv4-only destinations. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding Tags support to Cluster Registrations. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Adds support for Session Reason and Max Session Duration for Systems Manager Session Manager. - -## __Migration Hub Strategy Recommendations__ - - ### Features - - AWS SDK for Migration Hub Strategy Recommendations. It includes APIs to start the portfolio assessment, import portfolio data for assessment, and to retrieve recommendations. For more information, see the AWS Migration Hub documentation at https://docs.aws.amazon.com/migrationhub/index.html - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@erin889](https://github.com/erin889) -# __2.17.81__ __2021-11-12__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added automatic modes for GOP configuration and added the ability to ingest screen recordings generated by Safari on MacOS 12 Monterey. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - This release adds APIs for creating and managing scheduled tasks. Additionally, adds APIs to describe and update a contact and list associated references. - -## __Amazon DevOps Guru__ - - ### Features - - Add support for cross account APIs. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - C6i instances are powered by a third-generation Intel Xeon Scalable processor (Ice Lake) delivering all-core turbo frequency of 3.5 GHz. G5 instances feature up to 8 NVIDIA A10G Tensor Core GPUs and second generation AMD EPYC processors. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This Patch Manager release supports creating Patch Baselines for RaspberryPi OS (formerly Raspbian) - -# __2.17.80__ __2021-11-11__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DynamoDB__ - - ### Features - - Updated Help section for "dynamodb update-contributor-insights" API - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release provides an additional route target for the VPC route table. - -## __Amazon Translate__ - - ### Features - - This release enables customers to import Multi-Directional Custom Terminology and use Multi-Directional Custom Terminology in both real-time translation and asynchronous batch translation. - -# __2.17.79__ __2021-11-10__ -## __AWS Backup__ - - ### Features - - AWS Backup SDK provides new options when scheduling backups: select supported services and resources that are assigned to a particular tag, linked to a combination of tags, or can be identified by a partial tag value, and exclude resources from their assignments. - -## __AWS Resilience Hub__ - - ### Features - - Initial release of AWS Resilience Hub, a managed service that enables you to define, validate, and track the resilience of your applications on AWS - -## __AWS SDK for Java__ - - ### Features - - Added a new `dualstackEnabled` property to every client builder, which can be used to make calls be invoked against AWS endpoints which return IPv6 records. This can also be enabled via the `AWS_USE_DUALSTACK_ENDPOINT` environment variable, `aws.useDualstackEndpoint` system property, or the `use_dualstack_endpoint` profile file property. - -## __AWS SDK for Java v2__ - - ### Features - - Added a new `fipsEnabled` property to every client builder, which can be used to make calls be invoked against AWS endpoints which are FIPS compliant. This can also be enabled via the `AWS_USE_FIPS_ENDPOINT` environment variable, `aws.useFipsEndpoint` system property, or the `use_fips_endpoint` profile file property. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for container instance health. - -## __Amazon S3__ - - ### Deprecations - - Deprecated `S3Configuration.Builder`'s `dualstackEnabled` in favor of the new service-standard `S3ClientBuilder.dualstackEnabled`. - -## __Amazon S3 Control__ - - ### Deprecations - - Deprecated `S3ControlConfiguration.Builder`'s `dualstackEnabled` in favor of the new service-standard `S3ControlClientBuilder.dualstackEnabled`. - - Deprecated `S3ControlConfiguration.Builder`'s `fipsModeEnabled` in favor of the new service-standard `S3ControlClientBuilder.fipsEnabled`. - -## __Apache HTTP Client__ - - ### Features - - Add DNS resolver override support for Apache HTTP Client - -# __2.17.78__ __2021-11-09__ -## __AWS Batch__ - - ### Features - - Adds support for scheduling policy APIs. - -## __AWS Health APIs and Notifications__ - - ### Features - - Documentation updates for AWS Health. - -## __AWS IoT Greengrass V2__ - - ### Features - - This release adds support for Greengrass core devices running Windows. You can now specify name of a Windows user to run a component. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.17.77__ __2021-11-08__ -## __AWS WAFV2__ - - ### Features - - You can now configure rules to run a CAPTCHA check against web requests and, as needed, send a CAPTCHA challenge to the client. - -## __Amazon Chime SDK Meetings__ - - ### Features - - Updated format validation for ids and regions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds internal validation on the GatewayAssociationState field - -## __Amazon S3__ - - ### Features - - [Breaking Changes] Refactor S3TransferManager (PREVIEW) to support non-file-based transfers. This release refactors the S3TransferManager interface hierarchy and client API to differentiate between file-based and non-file-based transfers, allowing arbitrary object transfers. As a result, some S3TransferManager method signatures have changed in a backwards-incompatible way. Most notably, `Upload upload(UploadRequest)` becomes `FileUpload uploadFile(UploadFileRequest)`, and likewise for download variants. Please see https://github.com/aws/aws-sdk-java-v2/pull/2817 for a full list of changes. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker CreateEndpoint and UpdateEndpoint APIs now support additional deployment configuration to manage traffic shifting options and automatic rollback monitoring. DescribeEndpoint now shows new in-progress deployment details with stage status. - -# __2.17.76__ __2021-11-05__ -## __AWS Resource Groups Tagging API__ - - ### Features - - Documentation updates and improvements. - -## __AWS SDK for Java v2__ - - ### Features - - Added the profile key `duration_seconds` to class `ProfileProperty` - - Contributed by: [@abrooksv](https://github.com/abrooksv) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - DescribeInstances now returns customer-owned IP addresses for instances running on an AWS Outpost. - -## __Amazon Translate__ - - ### Features - - This release enable customers to use their own KMS keys to encrypt output files when they submit a batch transform job. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@abrooksv](https://github.com/abrooksv) -# __2.17.75__ __2021-11-04__ -## __AWS IoT Wireless__ - - ### Features - - Adding APIs for the FUOTA (firmware update over the air) and multicast for LoRaWAN devices and APIs to support event notification opt-in feature for Sidewalk related events. A few existing APIs need to be modified for this new feature. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime SDK Meetings__ - - ### Features - - The Amazon Chime SDK Meetings APIs allow software developers to create meetings and attendees for interactive audio, video, screen and content sharing in custom meeting applications which use the Amazon Chime SDK. - -## __Amazon Connect Service__ - - ### Features - - This release adds CRUD operation support for Security profile resource in Amazon Connect - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new instance replacement strategy for EC2 Fleet, Spot Fleet. Now you can select an action to perform when your instance gets a rebalance notification. EC2 Fleet, Spot Fleet can launch a replacement then terminate the instance that received notification after a termination delay - -## __Amazon SageMaker Service__ - - ### Features - - ListDevices and DescribeDevice now show Edge Manager agent version. - -# __2.17.74__ __2021-11-03__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now supports Hadoop Distributed File System (HDFS) Locations - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Participant Service__ - - ### Features - - This release adds a new boolean attribute - Connect Participant - to the CreateParticipantConnection API, which can be used to mark the participant as connected. - -## __Amazon Macie 2__ - - ### Features - - This release adds support for specifying the severity of findings that a custom data identifier produces, based on the number of occurrences of text that matches the detection criteria. - -## __FinSpace User Environment Management service__ - - ### Features - - Adds superuser and data-bundle parameters to CreateEnvironment API - -# __2.17.73__ __2021-11-02__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudFront__ - - ### Features - - CloudFront now supports response headers policies to add HTTP headers to the responses that CloudFront sends to viewers. You can use these policies to add CORS headers, control browser caching, and more, without modifying your origin or writing any code. - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect Chat now supports real-time message streaming. - -## __AmazonNimbleStudio__ - - ### Features - - Amazon Nimble Studio adds support for users to stop and start streaming sessions. - -## __Netty NIO HTTP Client__ - - ### Features - - Allow users to configure tlsNegotiationTimeout on NettyNioAsyncHttpClient - -# __2.17.72__ __2021-11-01__ -## __AWS Network Manager__ - - ### Features - - This release adds API support to aggregate resources, routes, and telemetry data across a Global Network. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Lightsail__ - - ### Features - - This release adds support to enable access logging for buckets in the Lightsail object storage service. - -## __Amazon Neptune__ - - ### Features - - Adds support for major version upgrades to ModifyDbCluster API - -## __Amazon Rekognition__ - - ### Features - - This Amazon Rekognition Custom Labels release introduces the management of datasets with projects - -# __2.17.71__ __2021-10-29__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch Application Insights__ - - ### Features - - Added Monitoring support for SQL Server Failover Cluster Instance. Additionally, added a new API to allow one-click monitoring of containers resources. - -## __Amazon Connect Service__ - - ### Features - - Amazon Connect Chat now supports real-time message streaming. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Support added for AMI sharing with organizations and organizational units in ModifyImageAttribute API - -## __Amazon Rekognition__ - - ### Features - - This release added new attributes to Rekognition Video GetCelebrityRecognition API operations. - -## __Amazon Transcribe Service__ - - ### Features - - Transcribe and Transcribe Call Analytics now support automatic language identification along with custom vocabulary, vocabulary filter, custom language model and PII redaction. - -## __S3TransferManager__ - - ### Bugfixes - - Fix potentially flaky S3TransferManagerListenerTests - -# __2.17.70__ __2021-10-28__ -## __AWS Systems Manager Incident Manager__ - - ### Features - - Updating documentation, adding new field to ConflictException to indicate earliest retry timestamp for some operations, increase maximum length of nextToken fields - -## __Amazon Connect Participant Service__ - - ### Features - - This release adds a new boolean attribute - Connect Participant - to the CreateParticipantConnection API, which can be used to mark the participant as connected. - -## __Amazon EC2 Container Service__ - - ### Features - - Amazon ECS now supports running Fargate tasks on Windows Operating Systems Families which includes Windows Server 2019 Core and Windows Server 2019 Full. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added new read-only DenyAllIGWTraffic network interface attribute. Added support for DL1 24xlarge instances powered by Habana Gaudi Accelerators for deep learning model training workloads - -## __Amazon GameLift__ - - ### Features - - Added support for Arm-based AWS Graviton2 instances, such as M6g, C6g, and R6g. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for RStudio on SageMaker. - -# __2.17.69__ __2021-10-27__ -## __AWS DynamoDB Enhanced Client__ - - ### Features - - Added support for @DynamoDBAutoGeneratedTimestamp that can be used for auto updated the last updated timestamp for a record. - -## __AWS SDK for Java v2__ - - ### Features - - Provide an error message if a AsyncRequestBody.fromFile source file changes length or update time while the SDK is reading from the file. - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds: attribute-based instance type selection for EC2 Fleet, Spot Fleet, a feature that lets customers express instance requirements as attributes like vCPU, memory, and storage; and Spot placement score, a feature that helps customers identify an optimal location to run Spot workloads. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - EKS managed node groups now support BOTTLEROCKET_x86_64 and BOTTLEROCKET_ARM_64 AMI types. - -## __Amazon SageMaker Service__ - - ### Features - - This release allows customers to describe one or more versioned model packages through BatchDescribeModelPackage, update project via UpdateProject, modify and read customer metadata properties using Create, Update and Describe ModelPackage and enables cross account registration of model packages. - -## __Amazon Textract__ - - ### Features - - This release adds support for asynchronously analyzing invoice and receipt documents through two new APIs: StartExpenseAnalysis and GetExpenseAnalysis - -## __Auto Scaling__ - - ### Features - - This release adds support for attribute-based instance type selection, a new EC2 Auto Scaling feature that lets customers express their instance requirements as a set of attributes, such as vCPU, memory, and storage. - -# __2.17.68__ __2021-10-26__ -## __Amazon Chime SDK Identity__ - - ### Features - - The Amazon Chime SDK now supports push notifications through Amazon Pinpoint - -## __Amazon Chime SDK Messaging__ - - ### Features - - The Amazon Chime SDK now supports push notifications through Amazon Pinpoint - -## __Amazon EMR Containers__ - - ### Features - - This feature enables auto-generation of certificate to secure the managed-endpoint and removes the need for customer provided certificate-arn during managed-endpoint setup. - -## __Amazon S3__ - - ### Bugfixes - - Raise an exception instead of hanging when a put-object content-length exceeds the data written by the async request body. - - Truncate the async request body when the content-length is shorter than the request body, instead of raising a "Data read has a different checksum" exception. - -# __2.17.67__ __2021-10-25__ -## __AWS Audit Manager__ - - ### Features - - This release introduces a new feature for Audit Manager: Custom framework sharing. You can now share your custom frameworks with another AWS account, or replicate them into another AWS Region under your own account. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support to create a VPN Connection that is not attached to a Gateway at the time of creation. Use this to create VPNs associated with Core Networks, or modify your VPN and attach a gateway using the modify API after creation. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for Amazon RDS Custom, which is a new RDS management type that gives you full access to your database and operating system. For more information, see https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html - -## __Amazon Route 53 Resolver__ - - ### Features - - New API for ResolverConfig, which allows autodefined rules for reverse DNS resolution to be disabled for a VPC - -# __2.17.66__ __2021-10-22__ -## __AWS Audit Manager__ - - ### Features - - This release introduces character restrictions for ControlSet names. We updated regex patterns for the following attributes: ControlSet, CreateAssessmentFrameworkControlSet, and UpdateAssessmentFrameworkControlSet. - -## __Amazon Chime__ - - ### Features - - Chime VoiceConnector and VoiceConnectorGroup APIs will now return an ARN. - -## __Amazon QuickSight__ - - ### Features - - Added QSearchBar option for GenerateEmbedUrlForRegisteredUser ExperienceConfiguration to support Q search bar embedding - -## __S3TransferManager__ - - ### Features - - Add support for S3TransferManager TransferListeners - -# __2.17.65__ __2021-10-21__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Update the REST-JSON marshalling logic to conform to the standard expected behavior WRT to the `Content-Type` of the request. - -## __Amazon Connect Service__ - - ### Features - - Released Amazon Connect hours of operation API for general availability (GA). This API also supports AWS CloudFormation. For more information, see Amazon Connect Resource Type Reference in the AWS CloudFormation User Guide. - -# __2.17.64__ __2021-10-20__ -## __AWS Direct Connect__ - - ### Features - - This release adds 4 new APIS, which needs to be public able - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for specifying caption time delta in milliseconds and the ability to apply color range legalization to source content other than AVC video. - -## __AWS Elemental MediaPackage__ - - ### Features - - When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output. - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - MediaPackage passes through digital video broadcasting (DVB) subtitles into the output. - -## __AWS Panorama__ - - ### Features - - General availability for AWS Panorama. AWS SDK for Panorama includes APIs to manage your devices and nodes, and deploy computer vision applications to the edge. For more information, see the AWS Panorama documentation at http://docs.aws.amazon.com/panorama - -## __AWS SDK for Java v2__ - - ### Features - - Add missing @Override annotations - -## __AWS SecurityHub__ - - ### Features - - Added support for cross-Region finding aggregation, which replicates findings from linked Regions to a single aggregation Region. Added operations to view, enable, update, and delete the finding aggregation. - -## __Amazon Appflow__ - - ### Features - - Feature to add support for JSON-L format for S3 as a source. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - This release adds custom language support for streaming transcription. - -# __2.17.63__ __2021-10-19__ -## __AWS Data Exchange__ - - ### Features - - This release adds support for our public preview of AWS Data Exchange for Amazon Redshift. This enables data providers to list products including AWS Data Exchange datashares for Amazon Redshift, giving subscribers read-only access to provider data in Amazon Redshift. - -## __Amazon Chime SDK Messaging__ - - ### Features - - The Amazon Chime SDK now allows developers to execute business logic on in-flight messages before they are delivered to members of a messaging channel with channel flows. - -# __2.17.62__ __2021-10-18__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Allow AwsErrorDetails to be serialized using Java serialization - -## __Amazon Interactive Video Service__ - - ### Features - - Bug fix: remove unsupported maxResults and nextToken pagination parameters from ListTagsForResource - -## __Amazon QuickSight__ - - ### Features - - AWS QuickSight Service Features - Add IP Restriction UI and public APIs support. - -# __2.17.61__ __2021-10-15__ -## __AWS Glue__ - - ### Features - - Enable S3 event base crawler API. - -## __Amazon Elastic File System__ - - ### Features - - EFS adds documentation for a new exception for short identifiers to be thrown after its migration to long resource identifiers. - -# __2.17.60__ __2021-10-14__ -## __AWS RoboMaker__ - - ### Features - - Adding support to GPU simulation jobs as well as non-ROS simulation jobs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixes a bug in XML error unmarshalling where error responses with empty body won't populate the requestId field. Affects Amazon S3 API calls such as Head object - -## __Amazon SageMaker Service__ - - ### Features - - This release updates the provisioning artifact ID to an optional parameter in CreateProject API. The provisioning artifact ID defaults to the latest provisioning artifact ID of the product if you don't provide one. - -## __Auto Scaling__ - - ### Features - - Amazon EC2 Auto Scaling now supports filtering describe Auto Scaling groups API using tags - -## __Elastic Load Balancing__ - - ### Features - - Adds new option to filter by availability on each type of load balancer when describing ssl policies. - -# __2.17.59__ __2021-10-13__ -## __AWS Config__ - - ### Features - - Adding Config support for AWS::OpenSearch::Domain - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Storage Gateway__ - - ### Features - - Adding support for Audit Logs on NFS shares and Force Closing Files on SMB shares. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for additional VPC Flow Logs delivery options to S3, such as Apache Parquet formatted files, Hourly partitions and Hive-compatible S3 prefixes - -## __Amazon Kinesis Analytics__ - - ### Features - - Support for Apache Flink 1.13 in Kinesis Data Analytics. Changed the required status of some Update properties to better fit the corresponding Create properties. - -## __Amazon WorkMail__ - - ### Features - - This release adds APIs for adding, removing and retrieving details of mail domains - -# __2.17.58__ __2021-10-12__ -## __AWS MediaTailor__ - - ### Features - - MediaTailor now supports ad prefetching. - -## __AWS SDK for Java v2__ - - ### Features - - Reduce base delay of STANDARD retry mode to 100ms for non-throttling responses. This reduces tail latency in the event of transient failures. - - Updated service endpoint metadata. - -## __Amazon CloudSearch__ - - ### Features - - Adds an additional validation exception for Amazon CloudSearch configuration APIs for better error handling. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation only update to address tickets. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EncryptionSupport for InstanceStorageInfo added to DescribeInstanceTypes API - -# __2.17.57__ __2021-10-11__ -## __AWS Elemental MediaLive__ - - ### Features - - This release adds support for Transport Stream files as an input type to MediaLive encoders. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation update for Amazon EC2. - -## __Amazon Fraud Detector__ - - ### Features - - New model type: Transaction Fraud Insights, which is optimized for online transaction fraud. Stored Events, which allows customers to send and store data directly within Amazon Fraud Detector. Batch Import, which allows customers to upload a CSV file of historic event data for processing and storage - -## __Elastic Load Balancing__ - - ### Features - - Enable support for ALB IPv6 Target Groups (IP Address Type) - -# __2.17.56__ __2021-10-08__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert has added the ability to set account policies which control access restrictions for HTTP, HTTPS, and S3 content sources. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Secrets Manager__ - - ### Features - - Documentation updates for Secrets Manager - -## __AWS SecurityHub__ - - ### Features - - Added new resource details objects to ASFF, including resources for WAF rate-based rules, EC2 VPC endpoints, ECR repositories, EKS clusters, X-Ray encryption, and OpenSearch domains. Added additional details for CloudFront distributions, CodeBuild projects, ELB V2 load balancers, and S3 buckets. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release removes a requirement for filters on SearchLocalGatewayRoutes operations. - -## __Amazon Lex Model Building V2__ - - ### Features - - Added configuration support for an Amazon Lex bot to provide fulfillment progress updates to users while their requests are being processed. See documentation for more details: https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html - -## __Amazon Lex Runtime V2__ - - ### Features - - Added configuration support for an Amazon Lex bot to provide fulfillment progress updates to users while their requests are being processed. See documentation for more details: https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - When executing a request, it's possible for multiple threads to interact and modify the channel pipeline without synchronizing which can cause issues. This commit fixes this issue by ensuring that code that modifies the pipeline all run within the context of the channel's event loop. - -# __2.17.55__ __2021-10-07__ -## __AWS Backup__ - - ### Features - - Launch of AWS Backup Vault Lock, which protects your backups from malicious and accidental actions, works with existing backup policies, and helps you meet compliance requirements. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports indexing and querying documents in different languages. - -## __Amazon Chime__ - - ### Features - - This release enables customers to configure Chime MediaCapturePipeline via API. - -## __Amazon Kinesis Firehose__ - - ### Features - - Allow support for Amazon Opensearch Service(successor to Amazon Elasticsearch Service) as a Kinesis Data Firehose delivery destination. - -## __Amazon Managed Grafana__ - - ### Features - - Initial release of the SDK for Amazon Managed Grafana API. - -## __Schemas__ - - ### Features - - Removing unused request/response objects. - -# __2.17.54__ __2021-10-06__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports integration with AWS SSO - -## __Amazon FSx__ - - ### Features - - This release adds support for Lustre 2.12 to FSx for Lustre. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds a new TrainingInputMode FastFile for SageMaker Training APIs. - -## __AmplifyBackend__ - - ### Features - - Adding a new field 'AmplifyFeatureFlags' to the response of the GetBackend operation. It will return a stringified version of the cli.json file for the given Amplify project. - -## __DynamoDB Enhanced Client__ - - ### Features - - This commit introduces DynamoDbTable#updateItemWithResponse() that allows customers to specify additional parameters on the request such as ReturnConsumedCapacity to get additional information the service response. - -# __2.17.53__ __2021-10-05__ -## __AWS Backup__ - - ### Features - - AWS Backup Audit Manager framework report. - -## __AWS Glue__ - - ### Features - - This release adds tag as an input of CreateConnection - -## __Amazon DynamoDB__ - - ### Features - - Allow parallel scan via DynamoDBEnhanced client and modify ScanEnhancedRequest to support totalSegments and segment parameters. - The corresponding github issue is https://github.com/aws/aws-sdk-java-v2/issues/1851 - - Contributed by: [@asanthan-amazon](https://github.com/asanthan-amazon) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Released Capacity Reservation Fleet, a feature of Amazon EC2 Capacity Reservations, which provides a way to manage reserved capacity across instance types. For more information: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-fleets.html - -## __Amazon Location Service__ - - ### Features - - Add support for PositionFiltering. - -## __Amazon WorkMail__ - - ### Features - - This release allows customers to change their inbound DMARC settings in Amazon WorkMail. - -## __Application Auto Scaling__ - - ### Features - - With this release, Application Auto Scaling adds support for Amazon Neptune. Customers can now automatically add or remove Read Replicas of their Neptune clusters to keep the average CPU Utilization at the target value specified by the customers. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@asanthan-amazon](https://github.com/asanthan-amazon) -# __2.17.52__ __2021-10-04__ -## __AWS CodeBuild__ - - ### Features - - CodeBuild now allows you to select how batch build statuses are sent to the source provider for a project. - -## __AWS Key Management Service__ - - ### Features - - Added SDK examples for ConnectCustomKeyStore, CreateCustomKeyStore, CreateKey, DeleteCustomKeyStore, DescribeCustomKeyStores, DisconnectCustomKeyStore, GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, GetPublicKey, ReplicateKey, Sign, UpdateCustomKeyStore and Verify APIs - -## __Amazon Elastic File System__ - - ### Features - - EFS adds a new exception for short identifiers to be thrown after its migration to long resource identifiers. - -# __2.17.51__ __2021-10-01__ -## __AWS App Runner__ - - ### Features - - This release contains several minor bug fixes. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - When "AutoApprovable" is true for a Change Template, then specifying --auto-approve (boolean) in Start-Change-Request-Execution will create a change request that bypasses approver review. (except for change calendar restrictions) - -## __Synthetics__ - - ### Features - - CloudWatch Synthetics now enables customers to choose a customer managed AWS KMS key or an Amazon S3-managed key instead of an AWS managed key (default) for the encryption of artifacts that the canary stores in Amazon S3. CloudWatch Synthetics also supports artifact S3 location updation now. - -# __2.17.50__ __2021-09-30__ -## __AWS Account__ - - ### Features - - This release of the Account Management API enables customers to manage the alternate contacts for their AWS accounts. For more information, see https://docs.aws.amazon.com/accounts/latest/reference/accounts-welcome.html - -## __AWS Cloud Control API__ - - ### Features - - Initial release of the SDK for AWS Cloud Control API - -## __AWS Data Exchange__ - - ### Features - - This release enables subscribers to set up automatic exports of newly published revisions using the new EventAction API. - -## __AWS Network Firewall__ - - ### Features - - This release adds support for strict ordering for stateful rule groups. Using strict ordering, stateful rules are evaluated in the exact order in which you provide them. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Macie 2__ - - ### Features - - Amazon S3 bucket metadata now indicates whether an error or a bucket's permissions settings prevented Amazon Macie from retrieving data about the bucket or the bucket's objects. - -## __Amazon WorkMail__ - - ### Features - - This release adds support for mobile device access overrides management in Amazon WorkMail. - -## __Amazon WorkSpaces__ - - ### Features - - Added CreateUpdatedWorkspaceImage API to update WorkSpace images with latest software and drivers. Updated DescribeWorkspaceImages API to display if there are updates available for WorkSpace images. - -# __2.17.49__ __2021-09-29__ -## __AWS Lambda__ - - ### Features - - Adds support for Lambda functions powered by AWS Graviton2 processors. Customers can now select the CPU architecture for their functions. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Prometheus Service__ - - ### Features - - This release adds alert manager and rule group namespace APIs - -## __Amazon Simple Email Service__ - - ### Features - - This release includes the ability to use 2048 bits RSA key pairs for DKIM in SES, either with Easy DKIM or Bring Your Own DKIM. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Update `netty-tcnative-boringssl-static` to `2.0.43.Final` to fix issues loading the native libraries on some platforms. - -# __2.17.48__ __2021-09-28__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Bug fix to handle DocumentType for Explicit payload members. - -## __AWS Transfer Family__ - - ### Features - - Added changes for managed workflows feature APIs. - -## __EC2 Image Builder__ - - ### Features - - Fix description for AmiDistributionConfiguration Name property, which actually refers to the output AMI name. Also updated for consistent terminology to use "base" image, and another update to fix description text. - -# __2.17.47__ __2021-09-27__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon AppIntegrations Service__ - - ### Features - - The Amazon AppIntegrations service enables you to configure and reuse connections to external applications. - -## __Amazon Connect Service__ - - ### Features - - This release updates a set of APIs: CreateIntegrationAssociation, ListIntegrationAssociations, CreateUseCase, and StartOutboundVoiceContact. You can use it to create integrations with Amazon Pinpoint for the Amazon Connect Campaigns use case, Amazon Connect Voice ID, and Amazon Connect Wisdom. - -## __Amazon Connect Wisdom Service__ - - ### Features - - Released Amazon Connect Wisdom, a feature of Amazon Connect, which provides real-time recommendations and search functionality in general availability (GA). For more information, see https://docs.aws.amazon.com/wisdom/latest/APIReference/Welcome.html. - -## __Amazon Pinpoint__ - - ### Features - - Added support for journey with contact center activity - -## __Amazon Voice ID__ - - ### Features - - Released the Amazon Voice ID SDK, for usage with the Amazon Connect Voice ID feature released for Amazon Connect. - -## __Elastic Load Balancing__ - - ### Features - - Adds new ALB-type target group to facilitate forwarding traffic from NLB to ALB - -# __2.17.46__ __2021-09-24__ -## __AWS License Manager__ - - ### Features - - AWS License Manager now allows customers to get the LicenseArn in the Checkout API Response. - -## __AWS SDK for Java v2__ - - ### Features - - Remove SDK usage of global execution.interceptors files. This reduces the need for customers to use a special transformer for execution.interceptors files when they are creating an uber-jar of all SDK modules. Customers should still consider using such an appender, in case other libraries rely on execution.interceptors files. - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - DescribeInstances now returns Platform Details, Usage Operation, and Usage Operation Update Time. - -## __DynamoDB Enhanced Client__ - - ### Features - - Annotated immutable class introspector now ignores 'toBuilder' method allowing easier integration with libraries that auto-generate this method on immutable data classes. - - Contributed by: [@bmaizels](https://github.com/bmaizels) - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@bmaizels](https://github.com/bmaizels) -# __2.17.45__ __2021-09-23__ -## __AWS AppSync__ - - ### Features - - Documented the new OpenSearchServiceDataSourceConfig data type. Added deprecation notes to the ElasticsearchDataSourceConfig data type. - -## __AWS Elemental MediaConvert__ - - ### Features - - This release adds style and positioning support for caption or subtitle burn-in from rich text sources such as TTML. This release also introduces configurable image-based trick play track generation. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Added cutoff behavior support for preventing new task invocations from starting when the maintenance window cutoff time is reached. - -# __2.17.44__ __2021-09-22__ -## __AWS Elemental MediaPackage VOD__ - - ### Features - - MediaPackage VOD will now return the current processing statuses of an asset's endpoints. The status can be QUEUED, PROCESSING, PLAYABLE, or FAILED. - -## __AWS Identity and Access Management__ - - ### Features - - Added changes to OIDC API about not using port numbers in the URL. - -## __AWS License Manager__ - - ### Features - - AWS License Manager now allows customers to change their Windows Server or SQL license types from Bring-Your-Own-License (BYOL) to License Included or vice-versa (using the customer's media). - -## __AWS MediaTailor__ - - ### Features - - This release adds support to configure logs for playback configuration. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAFV2__ - - ### Features - - Added the regex match rule statement, for matching web requests against a single regular expression. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release adds support for utterances statistics for bots built using Lex V2 console and APIs. For details, see: https://docs.aws.amazon.com/lexv2/latest/dg/monitoring-utterances.html - -## __EC2 Image Builder__ - - ### Features - - This feature adds support for specifying GP3 volume throughput and configuring instance metadata options for instances launched by EC2 Image Builder. - -# __2.17.43__ __2021-09-21__ -## __AWS IoT__ - - ### Features - - This release adds support for verifying, viewing and filtering AWS IoT Device Defender detect violations with four verification states. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Update Sigv4a signer to include the port in the Host header, when the port does not match the standard port for the protocol. This allows requests to endpoints with non-standard ports to succeed. - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now supports versioning of custom models, improved training with ONE_DOC_PER_FILE text documents for custom entity recognition, ability to provide specific test sets during training, and live migration to new model endpoints. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release adds additional support for repository replication - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This update adds support for downloading configuration templates using new APIs (GetVpnConnectionDeviceTypes and GetVpnConnectionDeviceSampleConfiguration) and Internet Key Exchange version 2 (IKEv2) parameters for many popular CGW devices. - -## __DynamoDB Enhanced Client__ - - ### Features - - This commit introduces DynamoDbTable#deleteItemWithResponse() that allows customers to specify additional parameters on the request such as ReturnConsumedCapacity to get additional information the service response. - -## __Managed Streaming for Kafka__ - - ### Features - - Added StateInfo to ClusterInfo - -## __S3 Transfer Manager__ - - ### Bugfixes - - Fix the NPE thrown when calling `S3TransferManager.create()` - -# __2.17.42__ __2021-09-17__ -## __AWS Database Migration Service__ - - ### Features - - Optional flag force-planned-failover added to reboot-replication-instance API call. This flag can be used to test a planned failover scenario used during some maintenance operations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elasticsearch Service__ - - ### Features - - This release adds an optional parameter in the ListDomainNames API to filter domains based on the engine type (OpenSearch/Elasticsearch). - -## __Amazon OpenSearch Service__ - - ### Features - - This release adds an optional parameter in the ListDomainNames API to filter domains based on the engine type (OpenSearch/Elasticsearch). - -# __2.17.41__ __2021-09-16__ -## __AWS RoboMaker__ - - ### Features - - Adding support to create container based Robot and Simulation applications by introducing an environment field - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Macie 2__ - - ### Features - - This release adds support for specifying which managed data identifiers are used by a classification job, and retrieving a list of managed data identifiers that are available. - -## __Amazon Pinpoint__ - - ### Features - - This SDK release adds a new feature for Pinpoint campaigns, in-app messaging. - -## __Amazon SageMaker Service__ - - ### Features - - Add API for users to retry a failed pipeline execution or resume a stopped one. - -## __Amazon Simple Storage Service__ - - ### Features - - Add support for access point arn filtering in S3 CW Request Metrics - -## __Amazon Transcribe Service__ - - ### Features - - This release adds support for subtitling with Amazon Transcribe batch jobs. - -## __DynamoDB Enhanced Client__ - - ### Features - - This commit introduces DynamoDbTable#putItemWithResponse() that allows customers to specify additional parameters on the request such as ReturnValues to get additional information the service response. - -## __Managed Streaming for Kafka Connect__ - - ### Features - - This is the initial SDK release for Amazon Managed Streaming for Apache Kafka Connect (MSK Connect). - -# __2.17.40__ __2021-09-14__ -## __AWS SDK for Java v2__ - - ### Features - - Upgrade Netty to 4.1.68 - -## __AWS WAFV2__ - - ### Features - - This release adds support for including rate based rules in a rule group. - -## __Amazon Chime__ - - ### Features - - Adds support for SipHeaders parameter for CreateSipMediaApplicationCall. - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now allows you to train and run PDF and Word documents for custom entity recognition. With PDF and Word formats, you can extract information from documents containing headers, lists and tables. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for vt1 3xlarge, 6xlarge and 24xlarge instances powered by Xilinx Alveo U30 Media Accelerators for video transcoding workloads - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for "Project Search" - -## __Amazon Transcribe Streaming Service__ - - ### Features - - Amazon Transcribe now supports PII Identification and Redaction for streaming transcription. - -# __2.17.39__ __2021-09-13__ -## __AWS IoT__ - - ### Features - - AWS IoT Rules Engine adds OpenSearch action. The OpenSearch rule action lets you stream data from IoT sensors and applications to Amazon OpenSearch Service which is a successor to Amazon Elasticsearch Service. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support for T3 instances on Amazon EC2 Dedicated Hosts. - -## __S3 Transfer Manager__ - - ### Features - - Now users can pass `File` to `DownloadRequest` and `UploadRequest` in `S3TransferManager`. - -# __2.17.38__ __2021-09-10__ -## __AWS CloudFormation__ - - ### Features - - Doc only update for CloudFormation that fixes several customer-reported issues. - -## __AWS SDK for Java v2__ - - ### Features - - Add support for authenticated corporate proxies - - Contributed by: [@guillepb10](https://github.com/guillepb10) - - Updated service endpoint metadata. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release updates terminology around KMS keys. - -## __Amazon QuickSight__ - - ### Features - - Add new data source type for Amazon OpenSearch (successor to Amazon ElasticSearch). - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for providing a custom timeout value for finding a scaling point during autoscaling in Aurora Serverless v1. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for "Lifecycle Configurations" to SageMaker Studio - -## __Amazon Transcribe Service__ - - ### Features - - This release adds an API option for startTranscriptionJob and startMedicalTranscriptionJob that allows the user to specify encryption context key value pairs for batch jobs. - -## __DynamoDB Enhanced Client__ - - ### Bugfixes - - Fix `PutItemEnhancedRequest` and `DeleteItemEnhancedRequest` to include `ConditionExpression` in their `equals()` and `hashCode()` calculations. - - Fixes for `UpdateItemEnhancedRequest`: - - Include `ConditionExpression` in `toBuilder()` - - Include `ConditionExpression` in `equals()` and `hashCode()` calculations - -## __S3 Transfer Manager__ - - ### Bugfixes - - Remove extra question mark when query parameters are provided in transfer manager - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@guillepb10](https://github.com/guillepb10) -# __2.17.37__ __2021-09-09__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - The Amazon CodeGuru Reviewer API now includes the RuleMetadata data object and a Severity attribute on a RecommendationSummary object. A RuleMetadata object contains information about a rule that generates a recommendation. Severity indicates how severe the issue associated with a recommendation is. - -## __Amazon EMR__ - - ### Features - - This release enables customers to login to EMR Studio using AWS Identity and Access Management (IAM) identities or identities in their Identity Provider (IdP) via IAM. - -## __Amazon Lookout for Equipment__ - - ### Features - - Added OffCondition parameter to CreateModel API - -# __2.17.36__ __2021-09-08__ -## __AWS Resource Access Manager__ - - ### Features - - A minor text-only update that fixes several customer issues. - -## __AWS SDK for Java v2__ - - ### Features - - Improve performance of generated enum methods - -## __Amazon OpenSearch Service__ - - ### Features - - Updated Configuration APIs for Amazon OpenSearch Service (successor to Amazon Elasticsearch Service) - -## __Managed Streaming for Kafka__ - - ### Features - - Amazon MSK has added a new API that allows you to update the encrypting and authentication settings for an existing cluster. - -# __2.17.35__ __2021-09-07__ -## __AWS Elemental MediaPackage__ - - ### Features - - SPEKE v2 support for live CMAF packaging type. SPEKE v2 is an upgrade to the existing SPEKE API to support multiple encryption keys, it supports live DASH currently. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Systems Manager Incident Manager Contacts__ - - ### Features - - Added SDK examples for SSM-Contacts. - -## __AWS X-Ray__ - - ### Features - - Updated references to AWS KMS keys and customer managed keys to reflect current terminology. - -## __Amazon ElastiCache__ - - ### Features - - Doc only update for ElastiCache - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding RegisterCluster and DeregisterCluster operations, to support connecting external clusters to EKS. - -## __Amazon Forecast Service__ - - ### Features - - Predictor creation now supports selecting an accuracy metric to optimize in AutoML and hyperparameter optimization. This release adds additional accuracy metrics for predictors - AverageWeightedQuantileLoss, MAPE and MASE. - -## __Amazon Prometheus Service__ - - ### Features - - This release adds tagging support for Amazon Managed Service for Prometheus workspace. - -## __DynamoDB Enhanced Client__ - - ### Features - - Allow customers to specify `ReturnValuesOnConditionCheckFailure` for `TransactWriteItems`. Addresses [#2283](https://github.com/aws/aws-sdk-java-v2/issues/2283). - -# __2.17.34__ __2021-09-03__ -## __AWS Outposts__ - - ### Features - - This release adds a new API CreateOrder. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime SDK Identity__ - - ### Features - - Documentation updates for Chime - -## __Amazon Chime SDK Messaging__ - - ### Features - - Documentation updates for Chime - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Added support for CodeInconsistencies detectors - -## __Amazon Fraud Detector__ - - ### Features - - Enhanced GetEventPrediction API response to include risk scores from imported SageMaker models - -## __Amazon S3__ - - ### Features - - Adds multi-region support for S3 access points as well as Sigv4 Asymmetric signing - -# __2.17.33__ __2021-09-02__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - Private Certificate Authority Service now allows customers to enable an online certificate status protocol (OCSP) responder service on their private certificate authorities. Customers can also optionally configure a custom CNAME for their OCSP responder. - -## __AWS S3 Control__ - - ### Features - - S3 Multi-Region Access Points provide a single global endpoint to access a data set that spans multiple S3 buckets in different AWS Regions. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - New ASFF Resources: AwsAutoScalingLaunchConfiguration, AwsEc2VpnConnection, AwsEcrContainerImage. Added KeyRotationStatus to AwsKmsKey. Added AccessControlList, BucketLoggingConfiguration,BucketNotificationConfiguration and BucketNotificationConfiguration to AwsS3Bucket. - -## __AWS Transfer Family__ - - ### Features - - AWS Transfer Family introduces Managed Workflows for creating, executing, monitoring, and standardizing post file transfer processing - -## __Access Analyzer__ - - ### Features - - Updates service API, documentation, and paginators to support multi-region access points from Amazon S3. - -## __Amazon Elastic Block Store__ - - ### Features - - Documentation updates for Amazon EBS direct APIs. - -## __Amazon Elastic File System__ - - ### Features - - Adds support for EFS Intelligent-Tiering, which uses EFS Lifecycle Management to monitor file access patterns and is designed to automatically transition files to and from your corresponding Infrequent Access (IA) storage classes. - -## __Amazon FSx__ - - ### Features - - Announcing Amazon FSx for NetApp ONTAP, a new service that provides fully managed shared storage in the AWS Cloud with the data access and management capabilities of ONTAP. - -## __Amazon Lex Model Building Service__ - - ### Features - - Lex now supports Korean (ko-KR) locale. - -## __Amazon QuickSight__ - - ### Features - - This release adds support for referencing parent datasets as sources in a child dataset. - -## __Schemas__ - - ### Features - - This update include the support for Schema Discoverer to discover the events sent to the bus from another account. The feature will be enabled by default when discoverer is created or updated but can also be opt-in or opt-out by specifying the value for crossAccount. - -# __2.17.32__ __2021-09-01__ -## __AWS CloudTrail__ - - ### Features - - Documentation updates for CloudTrail - -## __AWS Config__ - - ### Features - - Documentation updates for config - -## __AWS MediaTailor__ - - ### Features - - This release adds support for wall clock programs in LINEAR channels. - -## __AWS SDK for Java v2__ - - ### Features - - Added new convenience methods to SdkPublisher: doAfterOnError, doAfterOnComplete, and doAfterCancel. - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed an issue where event streams might fail with ClassCastException or NoSuchElementExceptions - -## __AWS Service Catalog App Registry__ - - ### Features - - Introduction of GetAssociatedResource API and GetApplication response extension for Resource Groups support. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added LaunchTemplate support for the IMDS IPv6 endpoint - -# __2.17.31__ __2021-08-31__ -## __AWS Compute Optimizer__ - - ### Features - - Documentation updates for Compute Optimizer - -## __AWS IoT__ - - ### Features - - Added Create/Update/Delete/Describe/List APIs for a new IoT resource named FleetMetric. Added a new Fleet Indexing query API named GetBucketsAggregation. Added a new field named DisconnectedReason in Fleet Indexing query response. Updated their related documentations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon MemoryDB__ - - ### Features - - Documentation updates for MemoryDB - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new South African English voice - Ayanda. Ayanda is available as Neural voice only. - -## __Amazon Simple Queue Service__ - - ### Features - - Amazon SQS adds a new queue attribute, RedriveAllowPolicy, which includes the dead-letter queue redrive permission parameters. It defines which source queues can specify dead-letter queues as a JSON object. - -# __2.17.30__ __2021-08-30__ -## __AWS CloudFormation__ - - ### Features - - AWS CloudFormation allows you to iteratively develop your applications when failures are encountered without rolling back successfully provisioned resources. By specifying stack failure options, you can troubleshoot resources in a CREATE_FAILED or UPDATE_FAILED status. - -## __AWS CodeBuild__ - - ### Features - - Documentation updates for CodeBuild - -## __AWS Key Management Service__ - - ### Features - - This release has changes to KMS nomenclature to remove the word master from both the "Customer master key" and "CMK" abbreviation and replace those naming conventions with "KMS key". - -## __Amazon Kinesis Firehose__ - - ### Features - - This release adds the Dynamic Partitioning feature to Kinesis Data Firehose service for S3 destinations. - -# __2.17.29__ __2021-08-27__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon EMR__ - - ### Features - - Amazon EMR now supports auto-terminating idle EMR clusters. You can specify the idle timeout value when enabling auto-termination for both running and new clusters and Amazon EMR automatically terminates the cluster when idle timeout kicks in. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds the BootMode flag to the ImportImage API and showing the detected BootMode of an ImportImage task. - -## __Amazon Simple Storage Service__ - - ### Features - - Documentation updates for Amazon S3. - -# __2.17.28__ __2021-08-26__ -## __AWS Compute Optimizer__ - - ### Features - - Adds support for 1) the AWS Graviton (AWS_ARM64) recommendation preference for Amazon EC2 instance and Auto Scaling group recommendations, and 2) the ability to get the enrollment statuses for all member accounts of an organization. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Support added for resizing VPC prefix lists - -## __Amazon Rekognition__ - - ### Features - - This release added new attributes to Rekognition RecognizeCelebities and GetCelebrityInfo API operations. - -## __Amazon Transcribe Service__ - - ### Features - - This release adds support for batch transcription in six new languages - Afrikaans, Danish, Mandarin Chinese (Taiwan), New Zealand English, South African English, and Thai. - -# __2.17.27__ __2021-08-25__ -## __AWS DataSync__ - - ### Features - - Added include filters to CreateTask and UpdateTask, and added exclude filters to StartTaskExecution, giving customers more granular control over how DataSync transfers files, folders, and objects. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch Events__ - - ### Features - - AWS CWEvents adds an enum of EXTERNAL for EcsParameters LaunchType for PutTargets API - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Support added for IMDS IPv6 endpoint - -## __Amazon EventBridge__ - - ### Features - - AWS EventBridge adds an enum of EXTERNAL for EcsParameters LaunchType for PutTargets API - -## __Firewall Management Service__ - - ### Features - - AWS Firewall Manager now supports triggering resource cleanup workflow when account or resource goes out of policy scope for AWS WAF, Security group, AWS Network Firewall, and Amazon Route 53 Resolver DNS Firewall policies. - -# __2.17.26__ __2021-08-24__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added MBAFF encoding support for AVC video and the ability to pass encryption context from the job settings to S3. - -## __AWS IoT Data Plane__ - - ### Features - - Updated Publish with support for new Retain flag and added two new API operations: GetRetainedMessage, ListRetainedMessages. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix `NullPointerException` in `RetryPolicy.hashCode()`. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new New Zealand English voice - Aria. Aria is available as Neural voice only. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Updated Parameter Store property for logging improvements. - -## __Amazon Transcribe Service__ - - ### Features - - This release adds support for feature tagging with Amazon Transcribe batch jobs. - -# __2.17.25__ __2021-08-23__ -## __AWS Backup__ - - ### Features - - AWS Backup - Features: Evaluate your backup activity and generate audit reports. - -## __AWS Database Migration Service__ - - ### Features - - Amazon AWS DMS service now support Redis target endpoint migration. Now S3 endpoint setting is capable to setup features which are used to be configurable only in extract connection attributes. - -## __AWS Glue__ - - ### Features - - Add support for Custom Blueprints - -## __AWS IoT SiteWise__ - - ### Features - - Documentation updates for AWS IoT SiteWise - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon API Gateway__ - - ### Features - - Adding some of the pending releases (1) Adding WAF Filter to GatewayResponseType enum (2) Ensuring consistent error model for all operations (3) Add missing BRE to GetVpcLink operation - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Added AMI deprecation support for Amazon Data Lifecycle Manager EBS-backed AMI policies. - -## __Amazon Fraud Detector__ - - ### Features - - Updated an element of the DescribeModelVersion API response (LogitMetrics -> logOddsMetrics) for clarity. Added new exceptions to several APIs to protect against unlikely scenarios. - -# __2.17.24__ __2021-08-20__ -## __AWS RoboMaker__ - - ### Features - - Documentation updates for RoboMaker - -## __Amazon Comprehend__ - - ### Features - - Add tagging support for Comprehend async inference job. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - encryptionInTransitSupported added to DescribeInstanceTypes API - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adds support for EKS add-ons "preserve" flag, which allows customers to maintain software on their EKS clusters after removing it from EKS add-ons management. - -# __2.17.23__ __2021-08-19__ -## __AWS SDK for Java v2__ - - ### Features - - Implement ADAPTIVE retry mode. ADAPTIVE mode builds on STANDARD retry mode and adds rate limiting of requests when the client is throttled. - - Adaptive retry mode dynamically limits the rate of AWS requests to maximize success rate. This may be at the expense of request latency. Adaptive retry mode is not recommended when predictable latency is important. - - Warning: Adaptive retry mode assumes that the client is working against a single resource (e.g. one DynamoDB Table or one S3 Bucket). If you use a single client for multiple resources, throttling or outages associated with one resource will result in increased latency and failures when accessing all other resources via the same client. When using adaptive retry mode, we recommend using a single client per resource. - - Updated service endpoint metadata. - -## __Amazon Appflow__ - - ### Features - - This release adds support for SAPOData connector and extends Veeva connector for document extraction. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - The ImportImage API now supports the ability to create AMIs with AWS-managed licenses for Microsoft SQL Server for both Windows and Linux. - -## __Amazon MemoryDB__ - - ### Features - - AWS MemoryDB SDK now supports all APIs for newly launched MemoryDB service. - -## __Application Auto Scaling__ - - ### Features - - This release extends Application Auto Scaling support for replication group of Amazon ElastiCache Redis clusters. Auto Scaling monitors and automatically expands node group count and number of replicas per node group when a critical usage threshold is met or according to customer-defined schedule. - -# __2.17.22__ __2021-08-18__ -## __AWS CodeBuild__ - - ### Features - - CodeBuild now allows you to make the build results for your build projects available to the public without requiring access to an AWS account. - -## __Amazon Route 53__ - - ### Features - - Documentation updates for route53 - -## __Amazon Route 53 Resolver__ - - ### Features - - Documentation updates for Route 53 Resolver - -## __Amazon SageMaker Runtime__ - - ### Features - - Amazon SageMaker Runtime now supports InvokeEndpointAsync to asynchronously invoke endpoints that were created with the AsyncInferenceConfig object in the EndpointConfig. Asynchronous invocations support larger payload sizes in Amazon S3 and longer processing times. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker now supports Asynchronous Inference endpoints. Adds PlatformIdentifier field that allows Notebook Instance creation with different platform selections. Increases the maximum number of containers in multi-container endpoints to 15. Adds more instance types to InstanceType field. - -# __2.17.21__ __2021-08-17__ -## __AWS Cloud9__ - - ### Features - - Added DryRun parameter to CreateEnvironmentEC2 API. Added ManagedCredentialsActions parameter to UpdateEnvironment API - -## __AWS Cost Explorer Service__ - - ### Features - - This release is a new feature for Cost Categories: Split charge rules. Split charge rules enable you to allocate shared costs between your cost category values. - -## __Amazon CloudDirectory__ - - ### Features - - Documentation updates for clouddirectory - -## __Amazon CloudWatch Logs__ - - ### Features - - Documentation-only update for CloudWatch Logs - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for EC2 ED25519 key pairs for authentication - -# __2.17.20__ __2021-08-16__ -## __AWS CodeBuild__ - - ### Features - - CodeBuild now allows you to select how batch build statuses are sent to the source provider for a project. - -## __AWS Config__ - - ### Features - - Update ResourceType enum with values for Backup Plan, Selection, Vault, RecoveryPoint; ECS Cluster, Service, TaskDefinition; EFS AccessPoint, FileSystem; EKS Cluster; ECR Repository resources - -## __AWS Directory Service__ - - ### Features - - This release adds support for describing client authentication settings. - -## __AWS IoT SiteWise__ - - ### Features - - AWS IoT SiteWise added query window for the interpolation interval. AWS IoT SiteWise computes each interpolated value by using data points from the timestamp of each interval minus the window to the timestamp of each interval plus the window. - -## __AWS License Manager__ - - ### Features - - AWS License Manager now allows end users to call CheckoutLicense API using new CheckoutType PERPETUAL. Perpetual checkouts allow sellers to check out a quantity of entitlements to be drawn down for consumption. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Simple Storage Service__ - - ### Features - - Documentation updates for Amazon S3 - -## __Netty NIO HTTP Client__ - - ### Features - - Upgrade Netty version to 4.1.66.Final - -# __2.17.19__ __2021-08-13__ -## __Amazon Connect Customer Profiles__ - - ### Features - - This release introduces Standard Profile Objects, namely Asset and Case which contain values populated by data from third party systems and belong to a specific profile. This release adds an optional parameter, ObjectFilter to the ListProfileObjects API in order to search for these Standard Objects. - -## __Amazon EMR__ - - ### Features - - Amazon EMR customers can now specify custom AMIs at the instance level in their clusters. This allows using custom AMIs in clusters that have instances with different instruction set architectures, e.g. m5.xlarge (x86) and m6g.xlarge (ARM). - -## __Amazon ElastiCache__ - - ### Features - - This release adds ReplicationGroupCreateTime field to ReplicationGroup which indicates the UTC time when ElastiCache ReplicationGroup is created - -## __Amazon QuickSight__ - - ### Features - - Documentation updates for QuickSight. - -## __URL Connection Http Client__ - - ### Bugfixes - - Fixed connection pooling for HTTPS endpoints. Previously, each request would create a new connection. - -# __2.17.18__ __2021-08-12__ -## __AWS Glue DataBrew__ - - ### Features - - This SDK release adds support for the output of a recipe job results to Tableau Hyper format. - -## __AWS Lambda__ - - ### Features - - Lambda Python 3.9 runtime launch - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed an issue where request-level overrides (e.g. credentials) were not applied to endpoint discovery calls. - -## __Amazon API Gateway__ - - ### Features - - Adding support for ACM imported or private CA certificates for mTLS enabled domain names - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Autopilot adds new metrics for all candidate models generated by Autopilot experiments. - -## __AmazonApiGatewayV2__ - - ### Features - - Adding support for ACM imported or private CA certificates for mTLS enabled domain names - -# __2.17.17__ __2021-08-11__ -## __AWS CodeBuild__ - - ### Features - - CodeBuild now allows you to make the build results for your build projects available to the public without requiring access to an AWS account. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Use "full jitter" & updated base delay for STANDARD retry mode defaults - - - ### Documentations - - Create a shared, project-level IntelliJ inspection profile - - Move IntelliJ code style & copyright configuration to project-level settings - -## __AWS Snow Device Management__ - - ### Features - - AWS Snow Family customers can remotely monitor and operate their connected AWS Snowcone devices. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation updates for ECS. - -## __Amazon Elastic Block Store__ - - ### Features - - Documentation updates for Amazon EBS direct APIs. - -## __Amazon Route 53__ - - ### Features - - Documentation updates for route53 - -## __AmazonNimbleStudio__ - - ### Features - - Add new attribute 'ownedBy' in Streaming Session APIs. 'ownedBy' represents the AWS SSO Identity Store User ID of the owner of the Streaming Session resource. - -# __2.17.16__ __2021-08-10__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fix issue in `FileAsyncRequestBody` where the underlying file channel would only be closed when enough requests are sent to read *past* the end of the file; if just enough requests are sent to read to the end of the file, the file is not closed, leaving an open file descriptor around longer than it needs to be. - -## __Amazon Chime__ - - ### Features - - Add support for "auto" in Region field of StartMeetingTranscription API request. - -## __Amazon S3 Transfer Manager [Preview]__ - - ### Features - - This release includes the preview release of the Amazon S3 Transfer Manager. Visit our [Developer Guide](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/transfer-manager.html) for more information. - -# __2.17.15__ __2021-08-09__ -## __AWS WAFV2__ - - ### Features - - This release adds APIs to support versioning feature of AWS WAF Managed rule groups - -## __Amazon Rekognition__ - - ### Features - - This release adds support for four new types of segments (opening credits, content segments, slates, and studio logos), improved accuracy for credits and shot detection and new filters to control black frame detection. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Documentation updates for AWS Systems Manager. - -# __2.17.14__ __2021-08-06__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Athena__ - - ### Features - - Documentation updates for Athena. - -## __Amazon Chime SDK Identity__ - - ### Features - - The Amazon Chime SDK Identity APIs allow software developers to create and manage unique instances of their messaging applications. - -## __Amazon Chime SDK Messaging__ - - ### Features - - The Amazon Chime SDK Messaging APIs allow software developers to send and receive messages in custom messaging applications. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for agent status and hours of operation. For details, see the Release Notes in the Amazon Connect Administrator Guide. - -## __Amazon Lightsail__ - - ### Features - - This release adds support to track when a bucket access key was last used. - -## __Amazon S3__ - - ### Bugfixes - - Fixed an issue where checksum validation only considered the first 4 bytes of the 16 byte checksum, creating the potential for corrupted downloads to go undetected. - -## __Synthetics__ - - ### Features - - Documentation updates for Visual Monitoring feature and other doc ticket fixes. - -# __2.17.13__ __2021-08-05__ -## __Amazon Lex Model Building V2__ - - ### Features - - Customers can now toggle the active field on prompts and responses. - -## __Auto Scaling__ - - ### Features - - EC2 Auto Scaling adds configuration checks and Launch Template validation to Instance Refresh. - -# __2.17.12__ __2021-08-04__ -## __AWS SDK for Java v2__ - - ### Features - - Add customization.config support for setting default RetryMode - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed an issue where a bean-based marshallers for request and response models would fail for fluent setters that happened to start with "set", like "settings". - -## __AWS Systems Manager Incident Manager__ - - ### Features - - Documentation updates for Incident Manager. - -## __Amazon EventBridge__ - - ### Features - - Documentation updates to add EC2 Image Builder as a target on PutTargets. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds AutomaticRestartTime to the DescribeDBInstances and DescribeDBClusters operations. AutomaticRestartTime indicates the time when a stopped DB instance or DB cluster is restarted automatically. - -## __Amazon Transcribe Service__ - - ### Features - - This release adds support for call analytics (batch) within Amazon Transcribe. - -## __EC2 Image Builder__ - - ### Features - - Updated list actions to include a list of valid filters that can be used in the request. - -# __2.17.11__ __2021-08-03__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added control over the passthrough of XDS captions metadata to outputs. - -## __AWS Glue__ - - ### Features - - Add ConcurrentModificationException to create-table, delete-table, create-database, update-database, delete-database - -## __AWS IoT SiteWise__ - - ### Features - - My AWS Service (placeholder) - This release introduces custom Intervals and offset for tumbling window in metric for AWS IoT SiteWise. - -## __AWS Proton__ - - ### Features - - Docs only add idempotent create apis - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Add IntelliJ .ipr files to gitignore - -## __Amazon Redshift__ - - ### Features - - API support for Redshift Data Sharing feature. - -# __2.17.10__ __2021-08-02__ -## __AWS IoT Greengrass V2__ - - ### Features - - This release adds support for component system resource limits and idempotent Create operations. You can now specify the maximum amount of CPU and memory resources that each component can use. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Don't attempt to use empty session tokens - -## __AWS Savings Plans__ - - ### Bugfixes - - Setting default content type to 'application/json' since the service does not accept 'x-amz-json-' - -## __AWS Systems Manager Incident Manager Contacts__ - - ### Features - - Added new attribute in AcceptCode API. AcceptCodeValidation takes in two values - ENFORCE, IGNORE. ENFORCE forces validation of accept code and IGNORE ignores it which is also the default behavior; Corrected TagKeyList length from 200 to 50 - -# __2.17.9__ __2021-07-30__ -## __AWS AppSync__ - - ### Features - - AWS AppSync now supports a new authorization mode allowing you to define your own authorization logic using an AWS Lambda function. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Secrets Manager__ - - ### Features - - Add support for KmsKeyIds in the ListSecretVersionIds API response - -## __Amazon SageMaker Service__ - - ### Features - - API changes with respect to Lambda steps in model building pipelines. Adds several waiters to async Sagemaker Image APIs. Add more instance types to AppInstanceType field - -## __Elastic Load Balancing__ - - ### Features - - Client Port Preservation ALB Attribute Launch - -# __2.17.8__ __2021-07-29__ -## __AWS IoT__ - - ### Features - - Increase maximum credential duration of role alias to 12 hours. - -## __AWS IoT SiteWise__ - - ### Features - - Added support for AWS IoT SiteWise Edge. You can now create an AWS IoT SiteWise gateway that runs on AWS IoT Greengrass V2. With the gateway, you can collect local server and equipment data, process the data, and export the selected data from the edge to the AWS Cloud. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Correctly handle multi-value headers in Aws4Signer - -## __AWS Savings Plans__ - - ### Features - - Documentation update for valid Savings Plans offering ID pattern - -## __Amazon Chime__ - - ### Features - - Adds support for live transcription of meetings with Amazon Transcribe and Amazon Transcribe Medical. The new APIs, StartMeetingTranscription and StopMeetingTranscription, control the generation of user-attributed transcriptions sent to meeting clients via Amazon Chime SDK data messages. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for G4ad xlarge and 2xlarge instances powered by AMD Radeon Pro V520 GPUs and AMD 2nd Generation EPYC processors - -# __2.17.7__ __2021-07-28__ -## __AWS CloudFormation__ - - ### Features - - SDK update to support Importing existing Stacks to new/existing Self Managed StackSet - Stack Import feature. - -## __AWS Single Sign-On Admin__ - - ### Features - - Documentation updates for arn:aws:trebuchet:::service:v1:03a2216d-1cda-4696-9ece-1387cb6f6952 - -# __2.17.6__ __2021-07-27__ -## __AWS Batch__ - - ### Features - - Add support for ListJob filters - -## __AWS IoT Analytics__ - - ### Features - - IoT Analytics now supports creating a dataset resource with IoT SiteWise MultiLayerStorage data stores, enabling customers to query industrial data within the service. This release includes adding JOIN functionality for customers to query multiple data sources in a dataset. - -## __AWS IoT Wireless__ - - ### Features - - Add SidewalkManufacturingSn as an identifier to allow Customer to query WirelessDevice, in the response, AmazonId is added in the case that Sidewalk device is return. - -## __AWS Route53 Recovery Control Config__ - - ### Features - - Amazon Route 53 Application Recovery Controller's routing control - Routing Control Configuration APIs help you create and delete clusters, control panels, routing controls and safety rules. State changes (On/Off) of routing controls are not part of configuration APIs. - -## __AWS Route53 Recovery Readiness__ - - ### Features - - Amazon Route 53 Application Recovery Controller's readiness check capability continually monitors resource quotas, capacity, and network routing policies to ensure that the recovery environment is scaled and configured to take over when needed. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Shield__ - - ### Features - - Change name of DDoS Response Team (DRT) to Shield Response Team (SRT) - -## __Amazon Lex Model Building V2__ - - ### Features - - Add waiters that automatically poll for resource status for asynchronous operations, such as building a bot - -## __Amazon QuickSight__ - - ### Features - - Add support to use row-level security with tags when embedding dashboards for users not provisioned in QuickSight - -## __Amazon Route 53__ - - ### Features - - This release adds support for the RECOVERY_CONTROL health check type to be used in conjunction with Route53 Application Recovery Controller. - -## __Redshift Data API Service__ - - ### Features - - Added structures to support new Data API operation BatchExecuteStatement, used to execute multiple SQL statements within a single transaction. - -## __Route53 Recovery Cluster__ - - ### Features - - Amazon Route 53 Application Recovery Controller's routing control - Routing Control Data Plane APIs help you update the state (On/Off) of the routing controls to reroute traffic across application replicas in a 100% available manner. - -# __2.17.5__ __2021-07-26__ -## __AWS Proton__ - - ### Features - - Documentation-only update links - -## __AWS S3 Control__ - - ### Features - - S3 Access Point aliases can be used anywhere you use S3 bucket names to access data in S3 - -## __AWS SDK for Java v2__ - - ### Features - - Annotate and document members that are modeled as deprecated - -## __AWS SSO Identity Store__ - - ### Features - - Documentation updates for SSO API Ref. - -## __Amazon CloudWatch__ - - ### Features - - SDK update to support creation of Cross-Account Metric Alarms and update API documentation. - -## __Amazon S3__ - - ### Documentations - - Deprecate S3 CopySource parameter for CopyObject & UploadPartCopy - -## __Amazon Textract__ - - ### Features - - Adds support for AnalyzeExpense, a new API to extract relevant data such as contact information, items purchased, and vendor name, from almost any invoice or receipt without the need for any templates or configuration. - -## __Synthetics__ - - ### Features - - CloudWatch Synthetics now supports visual testing in its canaries. - -# __2.17.4__ __2021-07-23__ -## __AWS SecurityHub__ - - ### Features - - Added product name, company name, and Region fields for security findings. Added details objects for RDS event subscriptions and AWS ECS services. Added fields to the details for AWS Elasticsearch domains. - -## __Amazon S3 on Outposts__ - - ### Features - - Add on-premise access type support for endpoints - -## __EC2 Image Builder__ - - ### Features - - Update to documentation to reapply missing change to SSM uninstall switch default value and improve description. - -# __2.17.3__ __2021-07-22__ -## __AWS Elemental MediaLive__ - - ### Features - - MediaLive now supports passing through style data on WebVTT caption outputs. - -## __AWS Glue DataBrew__ - - ### Features - - This SDK release adds two new features: 1) Output to Native JDBC destinations and 2) Adding configurations to profile jobs - -## __AWS S3 Control__ - - ### Features - - Documentation updates for Amazon S3-control - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release allows customers to assign prefixes to their elastic network interface and to reserve IP blocks in their subnet CIDRs. These reserved blocks can be used to assign prefixes to elastic network interfaces or be excluded from auto-assignment. - -## __Amazon QLDB__ - - ### Features - - Amazon QLDB now supports ledgers encrypted with customer managed KMS keys. Changes in CreateLedger, UpdateLedger and DescribeLedger APIs to support the changes. - -## __Amazon S3__ - - ### Features - - Add support for more user-friendly CopyObject source parameters - -## __Elastic Load Balancing__ - - ### Features - - Adds support for enabling TLS protocol version and cipher suite headers to be sent to backend targets for Application Load Balancers. - -# __2.17.2__ __2021-07-21__ -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild now allows you to set the access permissions for build artifacts, project artifacts, and log files that are uploaded to an Amazon S3 bucket that is owned by another account. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS Lambda__ - - ### Features - - New ResourceConflictException error code for PutFunctionEventInvokeConfig, UpdateFunctionEventInvokeConfig, and DeleteFunctionEventInvokeConfig operations. - -## __AWS Proton__ - - ### Features - - Documentation updates for AWS Proton - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now provides a data source connector for Amazon WorkDocs. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-workdocs.html - -## __Amazon Elastic MapReduce__ - - ### Features - - EMR now supports new DescribeReleaseLabel and ListReleaseLabel APIs. They can provide Amazon EMR release label details. You can programmatically list available releases and applications for a specific Amazon EMR release label. - -## __Amazon Personalize__ - - ### Features - - My AWS Service (placeholder) - Making minProvisionedTPS an optional parameter when creating a campaign. If not provided, it defaults to 1. - -## __Amazon Relational Database Service__ - - ### Features - - Adds the OriginalSnapshotCreateTime field to the DBSnapshot response object. This field timestamps the underlying data of a snapshot and doesn't change when the snapshot is copied. - -## __Elastic Load Balancing__ - - ### Features - - Adds support for enabling TLS protocol version and cipher suite headers to be sent to backend targets for Application Load Balancers. - -# __2.17.1__ __2021-07-20__ -## __AWS Compute Optimizer__ - - ### Features - - Documentation updates for Compute Optimizer - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added idempotency to the CreateVolume API using the ClientToken request parameter - -# __2.17.0__ __2021-07-19__ -## __AWS Direct Connect__ - - ### Features - - Documentation updates for directconnect - -## __AWS Health APIs and Notifications__ - - ### Features - - In the Health API, the maximum number of entities for the EventFilter and EntityFilter data types has changed from 100 to 99. This change is related to an internal optimization of the AWS Health service. - -## __AWS RoboMaker__ - - ### Features - - This release allows customers to create a new version of WorldTemplates with support for Doors. - -## __AWS SDK for Java v2__ - - ### Features - - Moved Jackson from an external SDK dependency to an internal dependency: https://aws.amazon.com/blogs/developer/the-aws-sdk-for-java-2-17-removes-its-external-dependency-on-jackson/ - -## __Amazon EMR Containers__ - - ### Features - - Updated DescribeManagedEndpoint and ListManagedEndpoints to return failureReason and stateDetails in API response. - -## __Amazon Location Service__ - - ### Features - - Add five new API operations: UpdateGeofenceCollection, UpdateMap, UpdatePlaceIndex, UpdateRouteCalculator, UpdateTracker. - -## __EC2 Image Builder__ - - ### Features - - Documentation updates for reversal of default value for additional instance configuration SSM switch, plus improved descriptions for semantic versioning. - -# __2.16.104__ __2021-07-16__ -## __AWS Audit Manager__ - - ### Features - - This release relaxes the S3 URL character restrictions in AWS Audit Manager. Regex patterns have been updated for the following attributes: s3RelativePath, destination, and s3ResourcePath. 'AWS' terms have also been replaced with entities to align with China Rebrand documentation efforts. - -## __AWS SDK for Java v2__ - - ### Features - - This changes implements support for the `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable and - `ec2_metadata_service_endpoint` profile file property. - - When no endpoint override is set using `AWS_EC2_METADATA_SERVICE_ENDPOINT`, this configuration controls which of the default - IMDS endpoints the client will use. Valid values are `IPv4` or `IPv6` - - Updated service endpoint metadata. - -## __Amazon AppIntegrations Service__ - - ### Features - - Documentation update for AppIntegrations Service - -## __Amazon Chime__ - - ### Features - - This SDK release adds Account Status as one of the attributes in Account API response - -# __2.16.103__ __2021-07-15__ -## __AWS IoT SiteWise__ - - ### Features - - Update the default endpoint for the APIs used to manage asset models, assets, gateways, tags, and account configurations. If you have firewalls with strict egress rules, configure the rules to grant you access to api.iotsitewise.[region].amazonaws.com or api.iotsitewise.[cn-region].amazonaws.com.cn. - -## __AWS SDK for Java v2__ - - ### Features - - Add support for marshalling lists of strings in HTTP headers - -## __Amazon Cognito Identity Provider__ - - ### Features - - Documentation updates for cognito-idp - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation updates for support of awsvpc mode on Windows. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This feature enables customers to specify weekly recurring time window(s) for scheduled events that reboot, stop or terminate EC2 instances. - -## __Amazon Lex Model Building Service__ - - ### Features - - Lex now supports the en-IN locale - -# __2.16.102__ __2021-07-14__ -## __AWS Certificate Manager__ - - ### Features - - Added support for RSA 3072 SSL certificate import - -## __AWS Database Migration Service__ - - ### Features - - Release of feature needed for ECA-Endpoint settings. This allows customer to delete a field in endpoint settings by using --exact-settings flag in modify-endpoint api. This also displays default values for certain required fields of endpoint settings in describe-endpoint-settings api. - -## __AWS Glue__ - - ### Features - - Add support for Event Driven Workflows - -## __AWS SDK for Java v2__ - - ### Documentations - - Update pull request template to place motivation before description - - Contributed by: [@Bennett-Lynch](https://github.com/Bennett-Lynch) - -## __AWS Well-Architected Tool__ - - ### Features - - This update provides support for Well-Architected API users to mark answer choices as not applicable. - -## __Amazon HealthLake__ - - ### Features - - General availability for Amazon HealthLake. StartFHIRImportJob and StartFHIRExportJob APIs now require AWS KMS parameter. For more information, see the Amazon HealthLake Documentation https://docs.aws.amazon.com/healthlake/index.html. - -## __Amazon Lightsail__ - - ### Features - - This release adds support for the Amazon Lightsail object storage service, which allows you to create buckets and store objects. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@Bennett-Lynch](https://github.com/Bennett-Lynch) -# __2.16.101__ __2021-07-13__ -## __AWS Direct Connect__ - - ### Features - - This release adds a new filed named awsLogicalDeviceId that it displays the AWS Direct Connect endpoint which terminates a physical connection's BGP Sessions. - -## __AWS Price List Service__ - - ### Features - - Documentation updates for api.pricing - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DevOps Guru__ - - ### Features - - Add paginator for GetCostEstimation - -## __Amazon Lex Model Building Service__ - - ### Features - - Customers can now migrate bots built with Lex V1 APIs to V2 APIs. This release adds APIs to initiate and manage the migration of a bot. - -## __Amazon Redshift__ - - ### Features - - Release new APIs to support new Redshift feature - Authentication Profile - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Changes to OpsCenter APIs to support a new feature, operational insights. - -## __AmplifyBackend__ - - ### Features - - Added Sign in with Apple OAuth provider. - -# __2.16.100__ __2021-07-12__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports Principal Store - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Documentation updates for Wesley to support the parallel node upgrade feature. - -# __2.16.99__ __2021-07-09__ -## __AWS Elemental MediaConvert__ - - ### Features - - MediaConvert now supports color, style and position information passthrough from 608 and Teletext to SRT and WebVTT subtitles. MediaConvert now also supports Automatic QVBR quality levels for QVBR RateControlMode. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - Use EnumMap where possible. - - Contributed by: [@Bennett-Lynch](https://github.com/Bennett-Lynch) - -## __Amazon Fraud Detector__ - - ### Features - - This release adds support for ML Explainability to display model variable importance value in Amazon Fraud Detector. - -## __Amazon SageMaker Service__ - - ### Features - - Releasing new APIs related to Tuning steps in model building pipelines. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@Bennett-Lynch](https://github.com/Bennett-Lynch) -# __2.16.98__ __2021-07-08__ -## __AWS MediaTailor__ - - ### Features - - Add ListAlerts for Channel, Program, Source Location, and VOD Source to return alerts for resources. - -## __AWS Outposts__ - - ### Features - - Added property filters for listOutposts - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Systems Manager Incident Manager Contacts__ - - ### Features - - Updated description for CreateContactChannel contactId. - -## __Amazon DevOps Guru__ - - ### Features - - Add AnomalyReportedTimeRange field to include open and close time of anomalies. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Added waiters for EKS FargateProfiles. - -## __Firewall Management Service__ - - ### Features - - AWS Firewall Manager now supports route table monitoring, and provides remediation action recommendations to security administrators for AWS Network Firewall policies with misconfigured routes. - -# __2.16.97__ __2021-07-07__ -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS IoT SiteWise__ - - ### Features - - This release add storage configuration APIs for AWS IoT SiteWise. - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for AWS Security Token Service. - -## __AWS Storage Gateway__ - - ### Features - - Adding support for oplocks for SMB file shares, S3 Access Point and S3 Private Link for all file shares and IP address support for file system associations - -## __Amazon Chime__ - - ### Features - - Releasing new APIs for AWS Chime MediaCapturePipeline - -## __Amazon CloudFront__ - - ### Features - - Amazon CloudFront now provides two new APIs, ListConflictingAliases and AssociateAlias, that help locate and move Alternate Domain Names (CNAMEs) if you encounter the CNAMEAlreadyExists error code. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds resource ids and tagging support for VPC security group rules. - -## __AmazonMQ__ - - ### Features - - adds support for modifying the maintenance window for brokers. - -# __2.16.96__ __2021-07-06__ -## __AWS Lambda__ - - ### Features - - Added support for AmazonMQRabbitMQ as an event source. Added support for VIRTUAL_HOST as SourceAccessType for streams event source mappings. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding new error code UnsupportedAddonModification for Addons in EKS - -## __Amazon Macie 2__ - - ### Features - - Sensitive data findings in Amazon Macie now include enhanced location data for JSON and JSON Lines files - -## __Amazon Simple Notification Service__ - - ### Features - - Documentation updates for Amazon SNS. - -## __Application Migration Service__ - - ### Features - - Bug fix: Remove not supported EBS encryption type "NONE" - -## __EC2 Image Builder__ - - ### Features - - Adds support for specifying parameters to customize components for recipes. Expands configuration of the Amazon EC2 instances that are used for building and testing images, including the ability to specify commands to run on launch, and more control over installation and removal of the SSM agent. - -# __2.16.95__ __2021-07-02__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - [UrlConnectionHttpClient] Wrap erroneous NPE from HttpURLConnection as IOException - - Contributed by: [@Bennett-Lynch](https://github.com/Bennett-Lynch) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release removes network-insights-boundary - -## __Elastic Load Balancing__ - - ### Features - - Documentation updates for elasticloadbalancingv2 - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@Bennett-Lynch](https://github.com/Bennett-Lynch) -# __2.16.94__ __2021-07-01__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adding a new reserved field to support future infrastructure improvements for Amazon EC2 Fleet. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker model registry now supports up to 5 containers and associated environment variables. - -## __Amazon Simple Queue Service__ - - ### Features - - Documentation updates for Amazon SQS. - -# __2.16.93__ __2021-06-30__ -## __AWS Cloud Map__ - - ### Features - - AWS Cloud Map now allows configuring the TTL of the SOA record for a hosted zone to control the negative caching for new services. - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - Add support for Widevine DRM on CMAF packaging configurations. Both Widevine and FairPlay DRMs can now be used simultaneously, with CBCS encryption. - -## __AWS Glue DataBrew__ - - ### Features - - Adds support for the output of job results to the AWS Glue Data Catalog. - -## __AWS Systems Manager Incident Manager Contacts__ - - ### Features - - Fixes the tag key length range to 128 chars, tag value length to 256 chars; Adds support for UTF-8 chars for contact and channel names, Allows users to unset name in UpdateContact API; Adds throttling exception to StopEngagement API, validation exception to APIs UntagResource, ListTagsForResource - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra Enterprise Edition now offered in smaller more granular units to enable customers with smaller workloads. Virtual Storage Capacity units now offer scaling in increments of 100,000 documents (up to 30GB) per unit and Virtual Query Units offer scaling increments of 8,000 queries per day. - -## __Auto Scaling__ - - ### Features - - Amazon EC2 Auto Scaling infrastructure improvements and optimizations. - -# __2.16.92__ __2021-06-28__ -## __AWS Elemental MediaConvert__ - - ### Features - - MediaConvert adds support for HDR10+, ProRes 4444, and XAVC outputs, ADM/DAMF support for Dolby Atmos ingest, and alternative audio and WebVTT caption ingest via HLS inputs. MediaConvert also now supports creating trickplay outputs for Roku devices for HLS, CMAF, and DASH output groups. - -## __AWS Glue__ - - ### Features - - Add JSON Support for Glue Schema Registry - -## __Amazon Redshift__ - - ### Features - - Added InvalidClusterStateFault to the DisableLogging API, thrown when calling the API on a non available cluster. - -## __Amazon SageMaker Service__ - - ### Features - - Sagemaker Neo now supports running compilation jobs using customer's Amazon VPC - -# __2.16.91__ __2021-06-25__ -## __AWS Proton__ - - ### Features - - Added waiters for template registration, service operations, and environment deployments. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Import/Export Snowball__ - - ### Features - - AWS Snow Family customers can remotely monitor and operate their connected AWS Snowcone devices. AWS Snowball Edge Storage Optimized customers can now import and export their data using NFS. - -## __AmplifyBackend__ - - ### Features - - Imports an existing backend authentication resource. - -# __2.16.90__ __2021-06-24__ -## __AWS Cloud9__ - - ### Features - - Minor update to AWS Cloud9 documentation to allow correct parsing of outputted text - -## __AWS CodeBuild__ - - ### Features - - BucketOwnerAccess is currently not supported - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Added new resource details for ECS clusters and ECS task definitions. Added additional information for S3 buckets, Elasticsearch domains, and API Gateway V2 stages. - -## __AWS Transfer Family__ - - ### Features - - Customers can successfully use legacy clients with Transfer Family endpoints enabled for FTPS and FTP behind routers, firewalls, and load balancers by providing a Custom IP address used for data channel communication. - -## __AWS WAFV2__ - - ### Features - - Added support for 15 new text transformation. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports SharePoint 2013 and SharePoint 2016 when using a SharePoint data source. - -## __Amazon Chime__ - - ### Features - - Adds EventIngestionUrl field to MediaPlacement - -## __Amazon Connect Service__ - - ### Features - - Released Amazon Connect quick connects management API for general availability (GA). For more information, see https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html - -## __Amazon DynamoDB Accelerator (DAX)__ - - ### Features - - Add support for encryption in transit to DAX clusters. - -# __2.16.89__ __2021-06-23__ -## __AWS Cloud9__ - - ### Features - - Updated documentation for CreateEnvironmentEC2 to explain that because Amazon Linux AMI has ended standard support as of December 31, 2020, we recommend you choose Amazon Linux 2--which includes long term support through 2023--for new AWS Cloud9 environments. - -## __AWS License Manager__ - - ### Features - - AWS License Manager now allows license administrators and end users to communicate to each other by setting custom status reasons when updating the status on a granted license. - -## __AWS MediaTailor__ - - ### Features - - Update GetChannelSchedule to return information on ad breaks. - -## __Amazon CloudFront__ - - ### Features - - Amazon CloudFront adds support for a new security policy, TLSv1.2_2021. - -## __Amazon CloudSearch__ - - ### Features - - This release replaces previous generation CloudSearch instances with equivalent new instances that provide better stability at the same price. - -## __Amazon CloudWatch Events__ - - ### Features - - Added the following parameters to ECS targets: CapacityProviderStrategy, EnableECSManagedTags, EnableExecuteCommand, PlacementConstraints, PlacementStrategy, PropagateTags, ReferenceId, and Tags - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Adds support for S3 based full repository analysis and changed lines scan. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - DocumentDB documentation-only edits - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for provisioning your own IP (BYOIP) range in multiple regions. This feature is in limited Preview for this release. Contact your account manager if you are interested in this feature. - -## __Amazon EventBridge__ - - ### Features - - Added the following parameters to ECS targets: CapacityProviderStrategy, EnableECSManagedTags, EnableExecuteCommand, PlacementConstraints, PlacementStrategy, PropagateTags, ReferenceId, and Tags - -## __Amazon QuickSight__ - - ### Features - - Releasing new APIs for AWS QuickSight Folders - -# __2.16.88__ __2021-06-21__ -## __AWS CloudFormation__ - - ### Features - - CloudFormation registry service now supports 3rd party public type sharing - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.16.87__ __2021-06-17__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports the indexing of web documents for search through the web crawler. - -## __Amazon Chime__ - - ### Features - - This release adds a new API UpdateSipMediaApplicationCall, to update an in-progress call for SipMediaApplication. - -## __Amazon Relational Database Service__ - - ### Features - - This release enables Database Activity Streams for RDS Oracle - -## __Amazon SageMaker Service__ - - ### Features - - Enable ml.g4dn instance types for SageMaker Batch Transform and SageMaker Processing - -# __2.16.86__ __2021-06-16__ -## __AWS Key Management Service__ - - ### Features - - Adds support for multi-Region keys - -## __AWS MediaTailor__ - - ### Features - - Adds AWS Secrets Manager Access Token Authentication for Source Locations - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for VLAN-tagged network traffic over an Elastic Network Interface (ENI). This feature is in limited Preview for this release. Contact your account manager if you are interested in this feature. - -## __Amazon Relational Database Service__ - - ### Features - - This release enables fast cloning in Aurora Serverless. You can now clone between Aurora Serverless clusters and Aurora Provisioned clusters. - -# __2.16.85__ __2021-06-15__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - This release adds new sets of APIs: AssociateBot, DisassociateBot, and ListBots. You can use it to programmatically add an Amazon Lex bot or Amazon Lex V2 bot on the specified Amazon Connect instance - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EC2 M5n, M5dn, R5n, R5dn metal instances with 100 Gbps network performance and Elastic Fabric Adapter (EFA) for ultra low latency - -## __Amazon Lex Model Building V2__ - - ### Features - - This release adds support for Multi Valued slots in Amazon Lex V2 APIs for model building - -## __Amazon Lex Runtime V2__ - - ### Features - - This release adds support for Multi Valued slots in Amazon Lex V2 APIs for runtime - -## __Redshift Data API Service__ - - ### Features - - Redshift Data API service now supports SQL parameterization. - -# __2.16.84__ __2021-06-14__ -## __AWS IoT Analytics__ - - ### Features - - Adds support for data store partitions. - -## __AWS IoT Greengrass V2__ - - ### Features - - We have verified the APIs being released here and are ready to release - -## __Amazon Lookout for Metrics__ - - ### Features - - Added "LEARNING" status for anomaly detector and updated description for "Offset" parameter in MetricSet APIs. - -# __2.16.83__ __2021-06-11__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS MediaLive now supports OCR-based conversion of DVB-Sub and SCTE-27 image-based source captions to WebVTT, and supports ingest of ad avail decorations in HLS input manifests. - -## __AWS MediaConnect__ - - ### Features - - When you enable source failover, you can now designate one of two sources as the primary source. You can choose between two failover modes to prevent any disruption to the video stream. Merge combines the sources into a single stream. Failover allows switching between a primary and a backup stream. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 adds new AMI property to flag outdated AMIs - -# __2.16.82__ __2021-06-10__ -## __AWS App Mesh__ - - ### Features - - AppMesh now supports additional routing capabilities in match and rewrites for Gateway Routes and Routes. Additionally, App Mesh also supports specifying DNS Response Types in Virtual Nodes. - -## __AWS Resource Access Manager__ - - ### Features - - AWS Resource Access Manager (RAM) is releasing new field isResourceTypeDefault in ListPermissions and GetPermission response, and adding permissionArn parameter to GetResourceShare request to filter by permission attached - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix for PR [#2510](https://github.com/aws/aws-sdk-java-v2/issues/2510) by adding Support for customization of contentType for Header ContentType for services like aws WellArchitected service. - -## __Amazon Appflow__ - - ### Features - - Adding MAP_ALL task type support. - -## __Amazon Chime__ - - ### Features - - This SDK release adds support for UpdateAccount API to allow users to update their default license on Chime account. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Amazon Cognito now supports targeted sign out through refresh token revocation - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new optional parameter connectivityType (public, private) for the CreateNatGateway API. Private NatGateway does not require customers to attach an InternetGateway to the VPC and can be used for communication with other VPCs and on-premise networks. - -## __Amazon Managed Blockchain__ - - ### Features - - This release supports KMS customer-managed Customer Master Keys (CMKs) on member-specific Hyperledger Fabric resources. - -## __Amazon Redshift__ - - ### Features - - Added InvalidClusterStateFault to the ModifyAquaConfiguration API, thrown when calling the API on a non available cluster. - -## __Amazon SageMaker Feature Store Runtime__ - - ### Features - - Release BatchGetRecord API for AWS SageMaker Feature Store Runtime. - -## __Amazon SageMaker Service__ - - ### Features - - Using SageMaker Edge Manager with AWS IoT Greengrass v2 simplifies accessing, maintaining, and deploying models to your devices. You can now create deployable IoT Greengrass components during edge packaging jobs. You can choose to create a device fleet with or without creating an AWS IoT role alias. - -# __2.16.81__ __2021-06-09__ -## __AWS Proton__ - - ### Features - - This is the initial SDK release for AWS Proton - -## __AWS Transfer Family__ - - ### Features - - Documentation updates for the AWS Transfer Family service. - -## __AWSKendraFrontendService__ - - ### Features - - AWS Kendra now supports checking document status. - -## __Amazon Personalize Events__ - - ### Features - - Support for unstructured text inputs in the items dataset to to automatically extract key information from product/content description as an input when creating solution versions. - -# __2.16.80__ __2021-06-08__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix for NullPointerException while Marshalling List/Map of TimeStamps - -## __AWS Service Catalog__ - - ### Features - - increase max pagesize for List/Search apis - -## __Amazon Cognito Identity Provider__ - - ### Features - - Documentation updates for cognito-idp - -## __Amazon FSx__ - - ### Features - - This release adds support for auditing end-user access to files, folders, and file shares using Windows event logs, enabling customers to meet their security and compliance needs. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API introduces stricter validation of S3 object criteria for classification jobs. - -# __2.16.79__ __2021-06-07__ -## __AWS Glue__ - - ### Features - - Add SampleSize variable to S3Target to enable s3-sampling feature through API. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Added updateConfig option that allows customers to control upgrade velocity in Managed Node Group. - -## __Amazon Personalize__ - - ### Features - - Update regex validation in kmsKeyArn and s3 path API parameters for AWS Personalize APIs - -## __Amazon SageMaker Service__ - - ### Features - - AWS SageMaker - Releasing new APIs related to Callback steps in model building pipelines. Adds experiment integration to model building pipelines. - -# __2.16.78__ __2021-06-04__ -## __AWS CloudTrail__ - - ### Features - - AWS CloudTrail supports data events on new service resources, including Amazon DynamoDB tables and S3 Object Lambda access points. - -## __AWS Elemental MediaLive__ - - ### Features - - Add support for automatically setting the H.264 adaptive quantization and GOP B-frame fields. - -## __AWS Performance Insights__ - - ### Features - - The new GetDimensionKeyDetails action retrieves the attributes of the specified dimension group for a DB instance or data source. - -## __Amazon QLDB__ - - ### Features - - Documentation updates for Amazon QLDB - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for RDS: fixing an outdated link to the RDS documentation in DBInstance$DBInstanceStatus - -## __Auto Scaling__ - - ### Features - - Documentation updates for Amazon EC2 Auto Scaling - -# __2.16.77__ __2021-06-03__ -## __AWS S3 Control__ - - ### Features - - Amazon S3 Batch Operations now supports S3 Bucket Keys. - -## __Amazon Forecast Service__ - - ### Features - - Added optional field AutoMLOverrideStrategy to CreatePredictor API that allows users to customize AutoML strategy. If provided in CreatePredictor request, this field is visible in DescribePredictor and GetAccuracyMetrics responses. - -## __Amazon Route 53 Resolver__ - - ### Features - - Documentation updates for Route 53 Resolver - -## __Amazon Simple Storage Service__ - - ### Features - - S3 Inventory now supports Bucket Key Status - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Documentation updates for ssm to fix customer reported issue - -# __2.16.76__ __2021-06-02__ -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - This SDK release adds support for DocDB global clusters. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation updates for Amazon ECS. - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Lightsail - -## __Auto Scaling__ - - ### Features - - You can now launch EC2 instances with GP3 volumes when using Auto Scaling groups with Launch Configurations - -## __Braket__ - - ### Features - - Introduction of a RETIRED status for devices. - -# __2.16.75__ __2021-06-01__ -## __AWS Cloud Map__ - - ### Features - - Bugfixes - The DiscoverInstances API operation now provides an option to return all instances for health-checked services when there are no healthy instances available. - -## __AWS IoT Wireless__ - - ### Features - - Added six new public customer logging APIs to allow customers to set/get/reset log levels at resource type and resource id level. The log level set from the APIs will be used to filter log messages that can be emitted to CloudWatch in customer accounts. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added idempotency to CreateNetworkInterface using the ClientToken parameter. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new Canadian French voice - Gabrielle. Gabrielle is available as Neural voice only. - -## __Amazon Simple Notification Service__ - - ### Features - - This release adds SMS sandbox in Amazon SNS and the ability to view all configured origination numbers. The SMS sandbox provides a safe environment for sending SMS messages, without risking your reputation as an SMS sender. - -# __2.16.74__ __2021-05-28__ -## __AWS DataSync__ - - ### Features - - Added SecurityDescriptorCopyFlags option that allows for control of which components of SMB security descriptors are copied from source to destination objects. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed the issue where the SDK failed to parse timestamps with offsets. See [#2477](https://github.com/aws/aws-sdk-java-v2/issues/2477) - -## __Amazon Location Service__ - - ### Features - - Adds support for calculation of routes, resource tagging and customer provided KMS keys. - -## __Amazon Lookout for Metrics__ - - ### Features - - Allowing dot(.) character in table name for RDS and Redshift as source connector. - -# __2.16.73__ __2021-05-27__ -## __AWS Device Farm__ - - ### Features - - Introduces support for using our desktop testing service with applications hosted within your Virtual Private Cloud (VPC). - -## __AWS IoT Events__ - - ### Features - - Releasing new APIs for AWS IoT Events Alarms - -## __AWS IoT Events Data__ - - ### Features - - Releasing new APIs for AWS IoT Events Alarms - -## __AWS IoT SiteWise__ - - ### Features - - IoT SiteWise Monitor Portal API updates to add alarms feature configuration. - -## __AWS Resource Groups__ - - ### Features - - Documentation updates for Resource Groups. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now suggests popular queries in order to help guide query typing and help overall accuracy. - -## __Amazon FSx__ - - ### Features - - This release adds LZ4 data compression support to FSx for Lustre to reduce storage consumption of both file system storage and file system backups. - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Lightsail - -## __Amazon Simple Queue Service__ - - ### Features - - Documentation updates for Amazon SQS for General Availability of high throughput for FIFO queues. - -# __2.16.72__ __2021-05-26__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release removes resource ids and tagging support for VPC security group rules. - -# __2.16.71__ __2021-05-26__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - This release enables customers to store CRLs in S3 buckets with Block Public Access enabled. The release adds the S3ObjectAcl parameter to the CreateCertificateAuthority and UpdateCertificateAuthority APIs to allow customers to choose whether their CRL will be publicly available. - -## __AWS Outposts__ - - ### Features - - Add ConflictException to DeleteOutpost, CreateOutpost - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudFront__ - - ### Features - - Documentation fix for CloudFront - -## __Amazon EC2 Container Service__ - - ### Features - - The release adds support for registering External instances to your Amazon ECS clusters. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds resource ids and tagging support for VPC security group rules. - -## __Amazon QLDB__ - - ### Features - - Support STANDARD permissions mode in CreateLedger and DescribeLedger. Add UpdateLedgerPermissionsMode to update permissions mode on existing ledgers. - -## __AmazonMWAA__ - - ### Features - - Adds scheduler count selection for Environments using Airflow version 2.0.2 or later. - -# __2.16.70__ __2021-05-25__ -## __AWS IoT__ - - ### Features - - This release includes support for a new feature: Job templates for AWS IoT Device Management Jobs. The release includes job templates as a new resource and APIs for managing job templates. - -## __AWS Transfer Family__ - - ### Features - - AWS Transfer Family customers can now use AWS Managed Active Directory or AD Connector to authenticate their end users, enabling seamless migration of file transfer workflows that rely on AD authentication, without changing end users' credentials or needing a custom authorizer. - -## __Amazon WorkSpaces__ - - ### Features - - Adds support for Linux device types in WorkspaceAccessProperties - -# __2.16.69__ __2021-05-24__ -## __AWS Compute Optimizer__ - - ### Features - - Adds support for 1) additional instance types, 2) additional instance metrics, 3) finding reasons for instance recommendations, and 4) platform differences between a current instance and a recommended instance type. - -## __AWS Cost Explorer Service__ - - ### Features - - Introduced FindingReasonCodes, PlatformDifferences, DiskResourceUtilization and NetworkResourceUtilization to GetRightsizingRecommendation action - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch Logs__ - - ### Features - - This release provides dimensions and unit support for metric filters. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for creating and managing EC2 On-Demand Capacity Reservations on Outposts. - -## __Amazon QuickSight__ - - ### Features - - Add new parameters on RegisterUser and UpdateUser APIs to assign or update external ID associated to QuickSight users federated through web identity. - -# __2.16.68__ __2021-05-21__ -## __AWS OpsWorks CM__ - - ### Features - - New PUPPET_API_CRL attribute returned by DescribeServers API; new EngineVersion of 2019 available for Puppet Enterprise servers. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic File System__ - - ### Features - - EFS now supports account preferences. Utilizing the new capability, users can customize some aspects of their experience using EFS APIs and the EFS Console. The first preference clients are able to set is whether to start using longer File System and Mount Target IDs before EFS migrates to such IDs. - -## __Amazon Forecast Service__ - - ### Features - - Updated attribute statistics in DescribeDatasetImportJob response to support Long values - -## __Amazon Simple Storage Service__ - - ### Features - - Documentation updates for Amazon S3 - -# __2.16.67__ __2021-05-20__ -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Lex Model Building V2__ - - ### Features - - Customers can now use resource-based policies to control access to their Lex V2 bots. This release adds APIs to attach and manage permissions for a bot or a bot alias. For details, see: https://docs.aws.amazon.com/lexv2/latest/dg/security_iam_service-with-iam.html - -## __Amazon Personalize__ - - ### Features - - Added new API to stop a solution version creation that is pending or in progress for Amazon Personalize - -## __Amazon QuickSight__ - - ### Features - - Add ARN based Row Level Security support to CreateDataSet/UpdateDataSet APIs. - -# __2.16.66__ __2021-05-19__ -## __AWS Identity and Access Management__ - - ### Features - - Add pagination to ListUserTags operation - -## __AWS S3__ - - ### Bugfixes - - Do not allow cross-region requests for S3 client with Fips Region. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Update the EKS AddonActive waiter. - -## __Amazon Kinesis Analytics__ - - ### Features - - Kinesis Data Analytics now allows rapid iteration on Apache Flink stream processing through the Kinesis Data Analytics Studio feature. - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Amazon Lightsail. - -## __Amazon Rekognition__ - - ### Features - - Amazon Rekognition Custom Labels adds support for customer managed encryption, using AWS Key Management Service, of image files copied into the service and files written back to the customer. - -## __Auto Scaling__ - - ### Features - - With this release, customers can easily use Predictive Scaling as a policy directly through Amazon EC2 Auto Scaling configurations to proactively scale their applications ahead of predicted demand. - -# __2.16.65__ __2021-05-18__ -## __AWS App Runner__ - - ### Features - - AWS App Runner is a service that provides a fast, simple, and cost-effective way to deploy from source code or a container image directly to a scalable and secure web application in the AWS Cloud. - -## __AWS Compute Optimizer__ - - ### Features - - This release enables compute optimizer to support exporting recommendations to Amazon S3 for EBS volumes and Lambda Functions. - -## __AWS IoT SiteWise__ - - ### Features - - Documentation updates for AWS IoT SiteWise. - -## __AWS License Manager__ - - ### Features - - AWS License Manager now supports periodic report generation. - -## __AWS Support__ - - ### Features - - Documentation updates for support - -## __Amazon Lex Model Building V2__ - - ### Features - - This release adds support for exporting and importing Lex V2 bots and bot locales. It also adds validations to enforce minimum number of tags on Lex V2 resources. For details, see https://docs.aws.amazon.com/lexv2/latest/dg/importing-exporting.html - -## __Amazon Personalize__ - - ### Features - - Amazon Personalize now supports the ability to optimize a solution for a custom objective in addition to maximizing relevance. - -# __2.16.64__ __2021-05-17__ -## __AWS Application Cost Profiler__ - - ### Features - - APIs for AWS Application Cost Profiler. - -## __AWS IoT Core Device Advisor__ - - ### Features - - AWS IoT Core Device Advisor is fully managed test capability for IoT devices. Device manufacturers can use Device Advisor to test their IoT devices for reliable and secure connectivity with AWS IoT. - -## __AWS MediaConnect__ - - ### Features - - MediaConnect now supports JPEG XS for AWS Cloud Digital Interface (AWS CDI) uncompressed workflows, allowing you to establish a bridge between your on-premises live video network and the AWS Cloud. - -## __Amazon Augmented AI Runtime__ - - ### Features - - Documentation updates for Amazon A2I Runtime model - -## __Amazon ElastiCache__ - - ### Features - - Documentation updates for elasticache - -## __Amazon Neptune__ - - ### Features - - Neptune support for CopyTagsToSnapshots - -# __2.16.63__ __2021-05-14__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Updated descriptions to add notes on array lengths. - -## __Amazon CloudWatch Events__ - - ### Features - - Update InputTransformer variable limit from 10 to 100 variables. - -## __Amazon Detective__ - - ### Features - - Updated descriptions of array parameters to add the restrictions on the array and value lengths. - -## __Amazon Elasticsearch Service__ - - ### Features - - Adds support for cold storage. - -## __Amazon EventBridge__ - - ### Features - - Update InputTransformer variable limit from 10 to 100 variables. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API adds support for defining run-time, S3 bucket criteria for classification jobs. It also adds resources for querying data about AWS resources that Macie monitors. - -## __Amazon Transcribe Service__ - - ### Features - - Transcribe Medical now supports identification of PHI entities within transcripts - -## __EC2 Image Builder__ - - ### Features - - Text-only updates for bundled documentation feedback tickets - spring 2021. - -# __2.16.62__ __2021-05-12__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - High Memory virtual instances are powered by Intel Sky Lake CPUs and offer up to 12TB of memory. - -## __Netty NIO Async HTTP Client__ - - ### Features - - Add `tcpKeepAlive` configuration. - -# __2.16.61__ __2021-05-11__ -## __AWS S3 Control__ - - ### Features - - Documentation updates for Amazon S3-control - -## __AWS Systems Manager Incident Manager__ - - ### Features - - AWS Systems Manager Incident Manager enables faster resolution of critical application availability and performance issues, management of contacts and post-incident analysis - -## __AWS Systems Manager Incident Manager Contacts__ - - ### Features - - AWS Systems Manager Incident Manager enables faster resolution of critical application availability and performance issues, management of contacts and post incident analysis - -## __Amazon Transcribe Streaming Service__ - - ### Features - - Amazon Transcribe supports partial results stabilization for streaming transcription. - -# __2.16.60__ __2021-05-10__ -## __AWS Config__ - - ### Features - - Adds paginator to multiple APIs: By default, the paginator allows user to iterate over the results and allows the CLI to return up to 1000 results. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for Kantar SNAP File Audio Watermarking with a Kantar Watermarking account, and Display Definition Segment(DDS) segment data controls for DVB-Sub caption outputs. - -## __AWS IoT Wireless__ - - ### Features - - Add three new optional fields to support filtering and configurable sub-band in WirelessGateway APIs. The filtering is for all the RF region supported. The sub-band configuration is only applicable to LoRa gateways of US915 or AU915 RF region. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DynamoDB__ - - ### Features - - Support delete-table operation in DDBEnhanced. - -## __Amazon EC2 Container Service__ - - ### Features - - This release contains updates for Amazon ECS. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - This release updates create-nodegroup and update-nodegroup-config APIs for adding/updating taints on managed nodegroups. - -## __Amazon Kinesis Analytics__ - - ### Features - - Amazon Kinesis Analytics now supports ListApplicationVersions and DescribeApplicationVersion API for Apache Flink applications - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release adds new APIs to associate, disassociate and list related items in SSM OpsCenter; and this release adds DisplayName as a version-level attribute for SSM Documents and introduces two new document types: ProblemAnalysis, ProblemAnalysisTemplate. - -## __CodeArtifact__ - - ### Features - - Documentation updates for CodeArtifact - -# __2.16.59__ __2021-05-07__ -## __AWS Lake Formation__ - - ### Features - - This release adds Tag Based Access Control to AWS Lake Formation service - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed an issue where an async waiter failed to match exception when the exception was wrapped with CompletionException. See [#2460](https://github.com/aws/aws-sdk-java-v2/issues/2460) - -## __Amazon Connect Service__ - - ### Features - - Adds tagging support for Connect APIs CreateIntegrationAssociation and CreateUseCase. - -## __Amazon Lookout for Metrics__ - - ### Features - - Enforcing UUID style for parameters that are already in UUID format today. Documentation specifying eventual consistency of lookoutmetrics resources. - -# __2.16.58__ __2021-05-06__ -## __AWS Cloud Map__ - - ### Features - - Bugfix: Improved input validation for RegisterInstance action, InstanceId field - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Import/Export Snowball__ - - ### Features - - AWS Snow Family adds APIs for ordering and managing Snow jobs with long term pricing - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - SSM feature release - ChangeCalendar integration with StateManager. - -## __Managed Streaming for Kafka__ - - ### Features - - IAM Access Control for Amazon MSK enables you to create clusters that use IAM to authenticate clients and to allow or deny Apache Kafka actions for those clients. - -# __2.16.57__ __2021-05-05__ -## __AWS Audit Manager__ - - ### Features - - This release updates the CreateAssessmentFrameworkControlSet and UpdateAssessmentFrameworkControlSet API data types. For both of these data types, the control set name is now a required attribute. - -## __Amazon Kinesis Analytics__ - - ### Features - - Amazon Kinesis Analytics now supports RollbackApplication for Apache Flink applications to revert the application to the previous running version - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Autopilot now provides the ability to automatically deploy the best model to an endpoint - -## __AmazonNimbleStudio__ - - ### Features - - Documentation Updates for Amazon Nimble Studio. - -# __2.16.56__ __2021-05-04__ -## __FinSpace Public API__ - - ### Features - - Documentation updates for FinSpaceData API. - -## __FinSpace User Environment Management service__ - - ### Features - - Documentation updates for FinSpace API. - -# __2.16.55__ __2021-05-04__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - This release adds the KeyStorageSecurityStandard parameter to the CreateCertificateAuthority API to allow customers to mandate a security standard to which the CA key will be stored within. - -## __AWS Health APIs and Notifications__ - - ### Features - - Documentation updates for health - -## __Amazon Chime__ - - ### Features - - This release adds the ability to search for and order international phone numbers for Amazon Chime SIP media applications. - -## __Amazon DevOps Guru__ - - ### Features - - Added GetCostEstimation and StartCostEstimation to get the monthly resource usage cost and added ability to view resource health by AWS service name and to search insights be AWS service name. - -## __Amazon SageMaker Service__ - - ### Features - - Enable retrying Training and Tuning Jobs that fail with InternalServerError by setting RetryStrategy. - -# __2.16.54__ __2021-05-03__ -## __FinSpace Public API__ - - ### Features - - This is the initial SDK release for the data APIs for Amazon FinSpace. Amazon FinSpace is a data management and analytics application for the financial services industry (FSI). - -## __FinSpace User Environment Management service__ - - ### Features - - This is the initial SDK release for the management APIs for Amazon FinSpace. Amazon FinSpace is a data management and analytics service for the financial services industry (FSI). - -# __2.16.53__ __2021-05-03__ -## __AWS SecurityHub__ - - ### Features - - Updated ASFF to add the following new resource details objects: AwsEc2NetworkAcl, AwsEc2Subnet, and AwsElasticBeanstalkEnvironment. - -## __Amazon Chime__ - - ### Features - - Added new BatchCreateChannelMembership API to support multiple membership creation for channels - -## __Amazon Mechanical Turk__ - - ### Features - - Documentation updates for Amazon Mechanical Turk, GetAccountBalanceOperation operation - -## __FinSpace Public API__ - - ### Features - - This is the initial SDK release for the data APIs for Amazon FinSpace. Amazon FinSpace is a data management and analytics application for the financial services industry (FSI). - -## __FinSpace User Environment Management service__ - - ### Features - - This is the initial SDK release for the management APIs for Amazon FinSpace. Amazon FinSpace is a data management and analytics service for the financial services industry (FSI). - -# __2.16.52__ __2021-04-30__ -## __AWS Marketplace Catalog Service__ - - ### Features - - Allows user defined names for Changes in a ChangeSet. Users can use ChangeNames to reference properties in another Change within a ChangeSet. This feature allows users to make changes to an entity when the entity identifier is not yet available while constructing the StartChangeSet request. - -## __AWS RoboMaker__ - - ### Features - - Adds ROS2 Foxy as a supported Robot Software Suite Version and Gazebo 11 as a supported Simulation Software Suite Version - -## __Amazon CloudFront__ - - ### Features - - CloudFront now supports CloudFront Functions, a native feature of CloudFront that enables you to write lightweight functions in JavaScript for high-scale, latency-sensitive CDN customizations. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release introduces GetMatches and MergeProfiles APIs to fetch and merge duplicate profiles - -## __Amazon Forecast Service__ - - ### Features - - Added new DeleteResourceTree operation that helps in deleting all the child resources of a given resource including the given resource. - -## __Amazon Personalize__ - - ### Features - - Update URL for dataset export job documentation. - -# __2.16.51__ __2021-04-29__ -## __AWS Organizations__ - - ### Features - - Minor text updates for AWS Organizations API Reference - -## __Amazon Chime__ - - ### Features - - Increase AppInstanceUserId length to 64 characters - -## __Amazon EC2 Container Service__ - - ### Features - - Add support for EphemeralStorage on TaskDefinition and TaskOverride - -## __Amazon Macie 2__ - - ### Features - - The Amazon Macie API now provides S3 bucket metadata that indicates whether a bucket policy requires server-side encryption of objects when objects are uploaded to the bucket. - -# __2.16.50__ __2021-04-28__ -## __AWS CloudFormation__ - - ### Features - - Add CallAs parameter to GetTemplateSummary to enable use with StackSets delegated administrator integration - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - MediaPackage now offers the option to place your Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) encoder metadata in every video segment instead of in the init fragment for DASH and CMAF endpoints. - -## __AWS IoT SiteWise__ - - ### Features - - AWS IoT SiteWise interpolation API will get interpolated values for an asset property per specified time interval during a period of time. - -## __Amazon Connect Service__ - - ### Features - - Updated max number of tags that can be attached from 200 to 50. MaxContacts is now an optional parameter for the UpdateQueueMaxContact API. - -## __AmazonNimbleStudio__ - - ### Features - - Amazon Nimble Studio is a virtual studio service that empowers visual effects, animation, and interactive content teams to create content securely within a scalable, private cloud service. - -# __2.16.49__ __2021-04-27__ -## __AWS Audit Manager__ - - ### Features - - This release restricts using backslashes in control, assessment, and framework names. The controlSetName field of the UpdateAssessmentFrameworkControlSet API now allows strings without backslashes. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.16.48__ __2021-04-26__ -## __AWS Elemental MediaConvert__ - - ### Features - - Documentation updates for mediaconvert - -## __AWS Glue__ - - ### Features - - Adding Kafka Client Auth Related Parameters - -## __AWS IoT Wireless__ - - ### Features - - Add a new optional field MessageType to support Sidewalk devices in SendDataToWirelessDevice API - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Include KMS Key Details in Repository Association APIs to enable usage of customer managed KMS Keys. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adding support for Red Hat Enterprise Linux with HA for Reserved Instances. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - This release updates existing Amazon EKS input validation so customers will see an InvalidParameterException instead of a ParamValidationError when they enter 0 for minSize and/or desiredSize. It also adds LaunchTemplate information to update responses and a new "CUSTOM" value for AMIType. - -## __Amazon Kinesis Analytics__ - - ### Features - - Amazon Kinesis Data Analytics now supports custom application maintenance configuration using UpdateApplicationMaintenanceConfiguration API for Apache Flink applications. Customers will have visibility when their application is under maintenance status using 'MAINTENANCE' application status. - -## __Amazon Personalize__ - - ### Features - - Added support for exporting data imported into an Amazon Personalize dataset to a specified data source (Amazon S3 bucket). - -# __2.16.47__ __2021-04-23__ -## __AWS Elemental MediaPackage__ - - ### Features - - Add support for Widevine DRM on CMAF origin endpoints. Both Widevine and FairPlay DRMs can now be used simultaneously, with CBCS encryption. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Simple Notification Service__ - - ### Features - - Amazon SNS adds two new attributes, TemplateId and EntityId, for using sender IDs to send SMS messages to destinations in India. - -# __2.16.46__ __2021-04-22__ -## __AWS SDK for Java v2__ - - ### Features - - This feature adds client and request overrides of execution attributes prior to request invocation. - - Contributed by: [@ndejaco2](https://github.com/ndejaco2) - -## __AWS SecurityHub__ - - ### Features - - Replaced the term "master" with "administrator". Added new actions to replace AcceptInvitation, GetMasterAccount, and DisassociateFromMasterAccount. In Member, replaced MasterId with AdministratorId. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Documentation updates for cognito-idp - -## __Amazon DynamoDB__ - - ### Bugfixes - - Fixed bean-based marshalling for model builder types containing complex collections. - -## __Amazon ElastiCache__ - - ### Features - - This release introduces log delivery of Redis slow log from Amazon ElastiCache. - -## __Amazon Forecast Service__ - - ### Features - - This release adds EstimatedTimeRemaining minutes field to the DescribeDatasetImportJob, DescribePredictor, DescribeForecast API response which denotes the time remaining to complete the job IN_PROGRESS. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@ndejaco2](https://github.com/ndejaco2) -# __2.16.45__ __2021-04-21__ -## __AWS CloudFormation__ - - ### Features - - Added support for creating and updating stack sets with self-managed permissions from templates that reference macros. - -## __AWS Ground Station__ - - ### Features - - Support new S3 Recording Config allowing customers to write downlink data directly to S3. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now enables users to override index-level boosting configurations for each query. - -## __Amazon Detective__ - - ### Features - - Added parameters to track the data volume in bytes for a member account. Deprecated the existing parameters that tracked the volume as a percentage of the allowed volume for a behavior graph. Changes reflected in MemberDetails object. - -## __Amazon Redshift__ - - ### Features - - Add operations: AddPartner, DescribePartners, DeletePartner, and UpdatePartnerStatus to support tracking integration status with data partners. - -## __DynamoDB Enhanced Client__ - - ### Features - - Added method to BatchGetItem results to retrieve unprocessed keys for a given table. - -# __2.16.44__ __2021-04-19__ -## __AWS Cost Explorer Service__ - - ### Features - - Adding support for Sagemaker savings plans in GetSavingsPlansPurchaseRecommendation API - -## __AWS SDK for Java v2__ - - ### Features - - Added support for short type in Code generator. - - Contributed by: [@duy310](https://github.com/duy310) - - Updated service endpoint metadata. - -## __AWS Savings Plans__ - - ### Features - - Added support for Amazon SageMaker in Machine Learning Savings Plans - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@duy310](https://github.com/duy310) -# __2.16.43__ __2021-04-15__ -## __AWS Database Migration Service__ - - ### Features - - AWS DMS added support of TLS for Kafka endpoint. Added Describe endpoint setting API for DMS endpoints. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Security Token Service__ - - ### Features - - STS now supports assume role with Web Identity using JWT token length upto 20000 characters - -## __Amazon DynamoDB__ - - ### Bugfixes - - Fixed an issue where structure builders containing List> could not be marshalled using bean-based serializers. - -# __2.16.42__ __2021-04-14__ -## __AWS CodeStar connections__ - - ### Features - - This release adds tagging support for CodeStar Connections Host resources - -## __AWS Config__ - - ### Features - - Add exception for DeleteRemediationConfiguration and DescribeRemediationExecutionStatus - -## __AWS MediaConnect__ - - ### Features - - For flows that use Listener protocols, you can now easily locate an output's outbound IP address for a private internet. Additionally, MediaConnect now supports the Waiters feature that makes it easier to poll for the status of a flow until it reaches its desired state. - -## __AWS SDK for Java v2__ - - ### Features - - Add a new Optional getter for the content length of RequestBody, also add a new fromContentProvider method allowing contentLength to be null. - -## __Amazon Route 53__ - - ### Features - - Documentation updates for route53 - -# __2.16.41__ __2021-04-13__ -## __AWS Comprehend Medical__ - - ### Features - - The InferICD10CM API now returns TIME_EXPRESSION entities that refer to medical conditions. - -## __AWS Security Token Service__ - - ### Features - - This release adds the SourceIdentity parameter that can be set when assuming a role. - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Amazon Lightsail. - -## __Amazon Redshift__ - - ### Features - - Added support to enable AQUA in Amazon Redshift clusters. - -## __Amazon Relational Database Service__ - - ### Features - - Clarify that enabling or disabling automated backups causes a brief downtime, not an outage. - -## __DynamoDB Enhanced Client__ - - ### Features - - Added `DynamoDbIgnoreNulls` attribute level annotation that specifies attributes with null values should be ignored. See [#2303](https://github.com/aws/aws-sdk-java-v2/issues/2303) - -# __2.16.40__ __2021-04-12__ -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild now allows you to set the access permissions for build artifacts, project artifacts, and log files that are uploaded to an Amazon S3 bucket that is owned by another account. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon FSx__ - - ### Features - - Support for cross-region and cross-account backup copies - -# __2.16.39__ __2021-04-09__ -## __AWS Shield__ - - ### Features - - CreateProtection now throws InvalidParameterException instead of InternalErrorException when system tags (tag with keys prefixed with "aws:") are passed in. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add paginator support to DescribeStoreImageTasks and update documentation. - -## __Amazon Redshift__ - - ### Features - - Add support for case sensitive table level restore - -## __DynamoDB Enhanced Client__ - - ### Features - - Added a new method annotation `DynamoDbPreserveEmptyObject` that specifies a class as empty class if all fields are null when mapping a DynamoDb record to a Java bean. See [#2280](https://github.com/aws/aws-sdk-java-v2/issues/2280). - - - ### Bugfixes - - Fixes a bug in issue [#2310](https://github.com/aws/aws-sdk-java-v2/issues/2310) where nested attributes aren't sanitized properly for projection expressions. - -# __2.16.38__ __2021-04-08__ -## __AWS Resource Access Manager__ - - ### Features - - Documentation updates for AWS RAM resource sharing - -## __AWS RoboMaker__ - - ### Features - - This release allows RoboMaker customers to specify custom tools to run with their simulation job - -## __AWS SDK for Java v2__ - - ### Features - - Add a configuration option to enable `TCP_KEEPALIVE` on the ApacheHttpClient. - - Contributed by: [@ajs139](https://github.com/ajs139) - - Updated service endpoint metadata. - -## __Amazon AppStream__ - - ### Features - - This release provides support for image updates - -## __Amazon Connect Customer Profiles__ - - ### Features - - Documentation updates for Put-Integration API - -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - Documentation updates for archived.kinesisvideo - -## __Amazon Lookout for Equipment__ - - ### Features - - This release introduces support for Amazon Lookout for Equipment. - -## __Auto Scaling__ - - ### Features - - Amazon EC2 Auto Scaling announces Warm Pools that help applications to scale out faster by pre-initializing EC2 instances and save money by requiring fewer continuously running instances - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@ajs139](https://github.com/ajs139) -# __2.16.37__ __2021-04-07__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fix leak of bytebuf on HTTP GoAway - -## __AWS Storage Gateway__ - - ### Features - - File Gateway APIs now support FSx for Windows as a cloud storage. - -## __Access Analyzer__ - - ### Features - - IAM Access Analyzer now analyzes your CloudTrail events to identify actions and services that have been used by an IAM entity (user or role) and generates an IAM policy that is based on that activity. - -## __Amazon ElastiCache__ - - ### Features - - This release adds tagging support for all AWS ElastiCache resources except Global Replication Groups. - -## __Amazon Interactive Video Service__ - - ### Features - - This release adds support for the Auto-Record to S3 feature. Amazon IVS now enables you to save your live video to Amazon S3. - -## __Application Migration Service__ - - ### Features - - Add new service - Application Migration Service. - -# __2.16.36__ __2021-04-06__ -## __AWS Cloud9__ - - ### Features - - Documentation updates for Cloud9 - -## __AWS Elemental MediaLive__ - - ### Features - - MediaLive VPC outputs update to include Availability Zones, Security groups, Elastic Network Interfaces, and Subnet Ids in channel response - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for storing EBS-backed AMIs in S3 and restoring them from S3 to enable cross-partition copying of AMIs - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Supports removing a label or labels from a parameter, enables ScheduledEndTime and ChangeDetails for StartChangeRequestExecution API, supports critical/security/other noncompliant count for patch API. - -## __Netty NIO HTTP Client__ - - ### Features - - Update Netty dependency to `4.1.61.Final`. - -# __2.16.35__ __2021-04-05__ -## __AWS Audit Manager__ - - ### Features - - AWS Audit Manager has updated the GetAssessment API operation to include a new response field called userRole. The userRole field indicates the role information and IAM ARN of the API caller. - -## __AWS Elemental MediaLive__ - - ### Features - - MediaLive now support HTML5 Motion Graphics overlay - -## __AWS SDK for Java v2__ - - ### Features - - This feature adds client and request overrides of execution attributes prior to request invocation. - - Contributed by: [@ndejaco2](https://github.com/ndejaco2) - - - ### Bugfixes - - Expose the metadata key on SDK client interfaces for use with `ServiceMetadataProvider` - -## __Amazon Appflow__ - - ### Features - - Added destination properties for Zendesk. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@ndejaco2](https://github.com/ndejaco2) -# __2.16.34__ __2021-04-02__ -## __AWS Elemental MediaPackage__ - - ### Features - - SPEKE v2 is an upgrade to the existing SPEKE API to support multiple encryption keys, based on an encryption contract selected by the customer. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Removal of `--report-unsupported-elements-at-runtime` option from SDK core's `native-image.properties` as the option is not meant to be used in production. - - Contributed by: [@zakkak](https://github.com/zakkak) - -## __EC2 Image Builder__ - - ### Features - - This release adds support for Block Device Mappings for container image builds, and adds distribution configuration support for EC2 launch templates in AMI builds. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@zakkak](https://github.com/zakkak) -# __2.16.33__ __2021-04-01__ -## __AWS Elemental MediaConvert__ - - ### Features - - MediaConvert now supports HLS ingest, sidecar WebVTT ingest, Teletext color & style passthrough to TTML subtitles, TTML to WebVTT subtitle conversion with style, & DRC profiles in AC3 audio. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAFV2__ - - ### Features - - Added support for ScopeDownStatement for ManagedRuleGroups, Labels, LabelMatchStatement, and LoggingFilter. For more information on these features, see the AWS WAF Developer Guide. - -## __AWSKendraFrontendService__ - - ### Features - - AWS Kendra's ServiceNow data source now supports OAuth 2.0 authentication and knowledge article filtering via a ServiceNow query. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - VPC Flow Logs Service adds a new API, GetFlowLogsIntegrationTemplate, which generates CloudFormation templates for Athena. For more info, see https://docs.aws.amazon.com/console/vpc/flow-logs/athena - -## __Amazon Lex Model Building Service__ - - ### Features - - Lex now supports the ja-JP locale - -## __Amazon Lex Runtime Service__ - - ### Features - - Amazon Lex now supports base64-encoded message and input transcript fields. - -## __Amazon Lightsail__ - - ### Features - - - This release adds support for state detail for Amazon Lightsail container services. - -## __Amazon Route 53 Resolver__ - - ### Features - - Route 53 Resolver DNS Firewall is a firewall service that allows you to filter and regulate outbound DNS traffic for your VPCs. - -## __Firewall Management Service__ - - ### Features - - Added Firewall Manager policy support for AWS Route 53 Resolver DNS Firewall. - -# __2.16.32__ __2021-03-31__ -## __AWS Batch__ - - ### Features - - AWS Batch adds support for Amazon EFS File System - -## __AWS Cloud9__ - - ### Features - - Add ImageId input parameter to CreateEnvironmentEC2 endpoint. New parameter enables creation of environments with different AMIs. - -## __AWS CloudFormation__ - - ### Features - - 1. Added a new parameter "RegionConcurrencyType" in OperationPreferences. 2. Changed the name of "AccountUrl" to "AccountsUrl" in "DeploymentTargets" parameter. - -## __AWS Data Pipeline__ - - ### Features - - Minor documentation updates and link updates. - -## __AWS Direct Connect__ - - ### Features - - This release adds MACsec support to AWS Direct Connect - -## __AWS IoT__ - - ### Features - - Added ability to prefix search on attribute value for ListThings API. - -## __AWS IoT Wireless__ - - ### Features - - Add Sidewalk support to APIs: GetWirelessDevice, ListWirelessDevices, GetWirelessDeviceStatistics. Add Gateway connection status in GetWirelessGatewayStatistics API. - -## __AWS Price List Service__ - - ### Features - - Minor documentation and link updates. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudHSM__ - - ### Features - - Minor documentation and link updates. - -## __Amazon Cognito Sync__ - - ### Features - - Minor documentation updates and link updates. - -## __Amazon Comprehend__ - - ### Features - - Support for customer managed KMS encryption of Comprehend custom models - -## __Amazon Detective__ - - ### Features - - Added the ability to assign tag values to Detective behavior graphs. Tag values can be used for attribute-based access control, and for cost allocation for billing. - -## __Amazon Machine Learning__ - - ### Features - - Minor documentation updates and link updates. - -## __Amazon Redshift__ - - ### Features - - Enable customers to share access to their Redshift clusters from other VPCs (including VPCs from other accounts). - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe now supports creating custom language models in the following languages: British English (en-GB), Australian English (en-AU), Indian Hindi (hi-IN), and US Spanish (es-US). - -## __Amazon WorkMail__ - - ### Features - - This release adds support for mobile device access rules management in Amazon WorkMail. - -# __2.16.31__ __2021-03-30__ -## __AWS Config__ - - ### Features - - Adding new APIs to support ConformancePack Compliance CI in Aggregators - -## __AWS EC2 Instance Connect__ - - ### Features - - Adding support to push SSH keys to the EC2 serial console in order to allow an SSH connection to your Amazon EC2 instance's serial port. - -## __AWS Glue DataBrew__ - - ### Features - - This SDK release adds two new dataset features: 1) support for specifying a database connection as a dataset input 2) support for dynamic datasets that accept configurable parameters in S3 path. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch__ - - ### Features - - SDK update for new Metric Streams feature - -## __Amazon Elastic Compute Cloud__ - - ### Features - - ReplaceRootVolume feature enables customers to replace the EBS root volume of a running instance to a previously known state. Add support to grant account-level access to the EC2 serial console - -## __Amazon Fraud Detector__ - - ### Features - - This release adds support for Batch Predictions in Amazon Fraud Detector. - -## __Amazon Pinpoint__ - - ### Features - - Added support for journey pause/resume, journey updatable import segment and journey quiet time wait. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Autopilot now supports 1) feature importance reports for AutoML jobs and 2) PartialFailures for AutoML jobs - -# __2.16.30__ __2021-03-29__ -## __AWS Glue__ - - ### Features - - Allow Dots in Registry and Schema Names for CreateRegistry, CreateSchema; Fixed issue when duplicate keys are present and not returned as part of QuerySchemaVersionMetadata. - -## __AWS Identity and Access Management__ - - ### Features - - AWS Identity and Access Management GetAccessKeyLastUsed API will throw a custom error if customer public key is not found for access keys. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAFV2__ - - ### Features - - Added custom request handling and custom response support in rule actions and default action; Added the option to inspect the web request body as parsed and filtered JSON. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - This release adds support for Event Subscriptions to DocumentDB. - -## __Amazon Location Service__ - - ### Features - - Amazon Location added support for specifying pricing plan information on resources in alignment with our cost model. - -# __2.16.29__ __2021-03-26__ -## __AWS IoT Wireless__ - - ### Features - - Support tag-on-create for WirelessDevice. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch Events__ - - ### Features - - Add support for SageMaker Model Builder Pipelines Targets to EventBridge - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release adds an optional parameter named FlowDefinition in PutIntegrationRequest. - -## __Amazon EventBridge__ - - ### Features - - Add support for SageMaker Model Builder Pipelines Targets to EventBridge - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe now supports tagging words that match your vocabulary filter for batch transcription. - -# __2.16.28__ __2021-03-25__ -## __Amazon Lookout for Metrics__ - - ### Features - - Allowing uppercase alphabets for RDS and Redshift database names. - -# __2.16.27__ __2021-03-25__ -## __AWS Elemental MediaLive__ - - ### Features - - EML now supports handling HDR10 and HLG 2020 color space from a Link input. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Removing Freemarker version 2.3.24 since this package is not used in the code. - -## __Alexa For Business__ - - ### Features - - Added support for enabling and disabling data retention in the CreateProfile and UpdateProfile APIs and retrieving the state of data retention for a profile in the GetProfile API. - -## __Amazon Lookout for Metrics__ - - ### Features - - Amazon Lookout for Metrics is now generally available. You can use Lookout for Metrics to monitor your data for anomalies. For more information, see the Amazon Lookout for Metrics Developer Guide. - -## __Amazon Rekognition__ - - ### Features - - "This release introduces AWS tagging support for Amazon Rekognition collections, stream processors, and Custom Label models." - -## __Amazon SageMaker Service__ - - ### Features - - This feature allows customer to specify the environment variables in their CreateTrainingJob requests. - -## __Amazon Simple Queue Service__ - - ### Features - - Documentation updates for Amazon SQS - -# __2.16.26__ __2021-03-24__ -## __AWS Greengrass__ - - ### Features - - Updated the parameters to make name required for CreateGroup API. - -## __AWS S3 Control__ - - ### Features - - Documentation updates for s3-control - -## __Amazon Elastic Compute Cloud__ - - ### Features - - maximumEfaInterfaces added to DescribeInstanceTypes API - -## __Amazon Route 53__ - - ### Features - - Documentation updates for route53 - -## __Amazon Simple Storage Service__ - - ### Features - - Documentation updates for Amazon S3 - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release allows SSM Explorer customers to enable OpsData sources across their organization when creating a resource data sync. - -# __2.16.25__ __2021-03-23__ -## __AWS Cost Explorer Service__ - - ### Features - - You can now create cost categories with inherited value rules and specify default values for any uncategorized costs. - -## __AWS Fault Injection Simulator__ - - ### Features - - Updated maximum allowed size of action parameter from 64 to 1024 - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for IAM operations and descriptions. - -## __Amazon GameLift__ - - ### Features - - GameLift adds support for using event notifications to monitor game session placements. Specify an SNS topic or use CloudWatch Events to track activity for a game session queue. - -## __Amazon Redshift__ - - ### Features - - Removed APIs to control AQUA on clusters. - -# __2.16.24__ __2021-03-22__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Use HTTPs for AWS API Documentation links in javadocs - - Contributed by: [@Carey-AWS](https://github.com/Carey-AWS) - - - ### Documentations - - Implements web metrics tracking and standard AWS footer for javadocs, and adds a link to submit feedback about the javadocs - - Contributed by: [@Carey-AWS](https://github.com/Carey-AWS) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for UEFI boot on selected AMD- and Intel-based EC2 instances. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API adds support for publishing sensitive data findings to AWS Security Hub and specifying which categories of findings to publish to Security Hub. - -## __Amazon Redshift__ - - ### Features - - Added support to enable AQUA in Amazon Redshift clusters. - -## __CodeArtifact__ - - ### Features - - Documentation updates for CodeArtifact - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@Carey-AWS](https://github.com/Carey-AWS) -# __2.16.23__ __2021-03-19__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - X2gd instances are the next generation of memory-optimized instances powered by AWS-designed, Arm-based AWS Graviton2 processors. - -## __Amazon SageMaker Service__ - - ### Features - - Adding authentication support for pulling images stored in private Docker registries to build containers for real-time inference. - -# __2.16.22__ __2021-03-18__ -## __AWS S3 Control__ - - ### Features - - S3 Object Lambda is a new S3 feature that enables users to apply their own custom code to process the output of a standard S3 GET request by automatically invoking a Lambda function with a GET request - -## __AWS SDK for Java v2__ - - ### Features - - Upgrade Netty version to 4.1.60 - -## __AWS SecurityHub__ - - ### Features - - New object for separate provider and customer values. New objects track S3 Public Access Block configuration and identify sensitive data. BatchImportFinding requests are limited to 100 findings. - -## __Amazon Redshift__ - - ### Features - - Add new fields for additional information about VPC endpoint for clusters with reallocation enabled, and a new field for total storage capacity for all clusters. - -## __Amazon Simple Storage Service__ - - ### Features - - S3 Object Lambda is a new S3 feature that enables users to apply their own custom code to process the output of a standard S3 GET request by automatically invoking a Lambda function with a GET request - -## __Auto Scaling__ - - ### Features - - Amazon EC2 Auto Scaling Instance Refresh now supports phased deployments. - -# __2.16.21__ __2021-03-17__ -## __AWS Batch__ - - ### Features - - Making serviceRole an optional parameter when creating a compute environment. If serviceRole is not provided then Service Linked Role will be created (or reused if it already exists). - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon SageMaker Service__ - - ### Features - - Support new target device ml_eia2 in SageMaker CreateCompilationJob API - -# __2.16.20__ __2021-03-16__ -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS Lambda__ - - ### Features - - Allow empty list for function response types - -## __AWS MediaConnect__ - - ### Features - - This release adds support for the SRT-listener protocol on sources and outputs. - -## __AWS MediaTailor__ - - ### Features - - MediaTailor channel assembly is a new manifest-only service that allows you to assemble linear streams using your existing VOD content. - -## __Access Analyzer__ - - ### Features - - This release adds support for the ValidatePolicy API. IAM Access Analyzer is adding over 100 policy checks and actionable recommendations that help you validate your policies during authoring. - -## __Amazon DynamoDB__ - - ### Features - - Change STANDARD mode retry count which was 2 for DynamoDB to match LEGACY retry count which is 8. - -## __Amazon GameLift__ - - ### Features - - GameLift expands to six new AWS Regions, adds support for multi-location fleets to streamline management of hosting resources, and lets you customize more of the game session placement process. - -## __AmazonMWAA__ - - ### Features - - This release adds UPDATE_FAILED and UNAVAILABLE MWAA environment states. - -# __2.16.19__ __2021-03-15__ -## __AWS CodeDeploy__ - - ### Features - - AWS CodeDeploy can now detect instances running an outdated revision of your application and automatically update them with the latest revision. - -## __AWS Fault Injection Simulator__ - - ### Features - - Initial release of AWS Fault Injection Simulator, a managed service that enables you to perform fault injection experiments on your AWS workloads - -## __Amazon EC2 Container Service__ - - ### Features - - This is for ecs exec feature release which includes two new APIs - execute-command and update-cluster and an AWS CLI customization for execute-command API - -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR customers can now specify Resource Group to target Capacity Reservations in their EMR clusters with instance fleets using allocation strategy. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - AWS Transcribe now supports real-time transcription for Chinese (zh-CN) and confidence scores in the transcription output. - -# __2.16.18__ __2021-03-12__ -## __AWS Cost and Usage Report Service__ - - ### Features - - - Added optional billingViewArn field for OSG. - -## __AWS MediaTailor__ - - ### Features - - MediaTailor channel assembly is a new manifest-only service that allows you to assemble linear streams using your existing VOD content. - -## __Amazon WorkSpaces__ - - ### Features - - Adds API support for WorkSpaces bundle management operations. - -# __2.16.17__ __2021-03-11__ -## __AWS Elemental MediaLive__ - - ### Features - - MediaLive supports the ability to apply a canned ACL to output sent to an AWS S3 bucket; supports ability to specify position for EBU-TT and TTML output captions converted from Teletext source. - -## __AWS Network Firewall__ - - ### Features - - Correct the documentation about how you can provide rule group rules - -## __AWS WAFV2__ - - ### Features - - Correct the documentation about JSON body parsing behavior and IP set update behavior - -## __Amazon Comprehend__ - - ### Features - - ContainsPiiEntities API analyzes the input text for the presence of personally identifiable information(PII) and returns the labels of identified PII entity types such as name, address etc. - -## __Amazon S3__ - - ### Bugfixes - - Fixed an issue where presigned URLs for access point objects could bypass encoding, causing an IllegalArgumentException. - -# __2.16.16__ __2021-03-10__ -## __AWS Backup__ - - ### Features - - Added support for enabling continuous backups. - -## __AWS SDK for Java v2__ - - ### Features - - Include the retry mode STANDARD or LEGACY in the user agents list. - -## __Access Analyzer__ - - ### Features - - This release adds support to preview IAM Access Analyzer findings for a resource before deploying resource permission changes. - -## __Amazon Simple Storage Service__ - - ### Features - - Adding ID element to the CORSRule schema - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Systems Manager support for tagging OpsMetadata. - -# __2.16.15__ __2021-03-09__ -## __AWS IoT Wireless__ - - ### Features - - Add max value to Seq in SendDataToWirelessDevice API" - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CodeGuru Profiler__ - - ### Features - - Update documentation to include Python. Add ConflictException for DeleteProfilingGroup. Add FrameMetricValue. - -## __Amazon Elastic File System__ - - ### Features - - AWS EFS is introducing one-zone file systems. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for Amazon RDS Proxy endpoints. - -## __Auto Scaling__ - - ### Features - - EC2 Auto Scaling now supports setting a local time zone for cron expressions in scheduled actions, removing the need to adjust for Daylight Saving Time (DST) - -# __2.16.14__ __2021-03-08__ -## __AWS Lambda__ - - ### Features - - Documentation updates for Lambda. Constraint updates to AddLayerVersionPermission's Action and OrganizationId parameters, and AddPermission's Principal and SourceAccount parameters. - -## __AWS S3 Control__ - - ### Features - - Documentation updates for Amazon S3 - -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR customers can now specify how EC2 On-Demand Capacity Reservations are used in their EMR clusters with instance fleets using allocation strategy. - -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - Increase the maximum HLS and MPEG-DASH manifest size from 1,000 to 5,000 fragments. - -## __Amazon Simple Storage Service__ - - ### Features - - Amazon S3 Documentation updates - -## __Auto Scaling__ - - ### Features - - Documentation updates for autoscaling for capacity-optimized-prioritized SpotAllocationStrategy - -# __2.16.13__ __2021-03-05__ -## __AWS CodePipeline__ - - ### Features - - Updated the parameters to make actionType required for UpdateActionType - -## __AWS Elemental MediaLive__ - - ### Features - - Medialive now supports the ability to transfer AWS Elemental Link devices to another region. - -## __AWS License Manager__ - - ### Features - - License Manager Automated Discovery now supports Exclusion Filters. - -## __AWS Network Firewall__ - - ### Features - - Added a new UpdateToken output field to the PerObjectStatus as part of firewall sync state. This is added to track which version of the object the firewall is in sync or pending synchronization. - -## __AWS Shield__ - - ### Features - - Add support for tagging of Shield protection and protection group resources. - -## __Amazon Appflow__ - - ### Features - - Documentation updates for arn:aws:trebuchet:::service:v1:decb008d-e0d8-44a4-b93c-092f0355d523 - -## __Amazon Athena__ - - ### Features - - Adds APIs to create, list, update, and delete prepared SQL statements that have optional placeholder parameters. A prepared statement can use different values for these parameters each time it is run. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Expands EC2/Spot Fleet capacity-optimized allocation strategy to allow users to prioritize instance pools. Fleet attempts to fulfill priorities on a best-effort basis but optimizes for capacity first. - -# __2.16.12__ __2021-03-04__ -## __AWS Cloud Map__ - - ### Features - - Supports creating API-only services under DNS namespace. Add namespace syntax validation. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch Events__ - - ### Features - - Introducing support for EventBridge Api Destinations - any HTTP APIs as Targets, with managed authorization via EventBridge Connections. - -## __Amazon EventBridge__ - - ### Features - - Introducing support for EventBridge Api Destinations - any HTTP APIs as Targets, with managed authorization via EventBridge Connections. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds the ResolvedOutputS3Uri to the DescribeFeatureGroup API to indicate the S3 prefix where offline data is stored in a feature group - -## __AmazonMWAA__ - - ### Features - - This release introduces a new MinWorker parameter to the CreateEnvironment and UpdateEnvironment APIs. MinWorker allows the users to set a minimum worker count for worker auto-scaling operations. - -# __2.16.11__ __2021-03-03__ -## __AWS Certificate Manager__ - - ### Features - - Adds 2 new APIs to add and retrieve account configuration in AWS Certificate Manager. - -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild now supports Session Manager debugging for batch builds. - -## __AWS Secrets Manager__ - - ### Features - - Added support for multi-Region secrets APIs ReplicateSecretToRegions, RemoveRegionsFromReplication, and StopReplicationToReplica - -## __AWS Well-Architected Tool__ - - ### Features - - This release supports tagging on AWS Well-Architected workloads. - -## __Amazon CloudWatch Events__ - - ### Features - - Adds TraceHeader to PutEventsRequestEntry to support AWS X-Ray trace-ids on events generated using the PutEvents operation. - -## __Amazon Elasticsearch Service__ - - ### Features - - AWS ElasticSearch Feature : Support for adding tags in elastic search domain during domain creation - -## __Amazon Forecast Service__ - - ### Features - - Added new StopResource operation that stops Amazon Forecast resource jobs that are in progress. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API includes miscellaneous updates and improvements to the documentation. - -# __2.16.10__ __2021-03-02__ -## __AWS Compute Optimizer__ - - ### Features - - Documentation updates for Compute Optimizer - -## __AWS DataSync__ - - ### Features - - Additional API Support to update NFS/SMB/ObjectStorage locations - -## __AWS Direct Connect__ - - ### Features - - Doc only update for AWS Direct Connect that fixes several customer-reported issues - -## __AWS IoT Wireless__ - - ### Features - - Add ARN & Tags for PartnerAccount related APIs and WirelessGatewayTaskDefinition related APIs - -## __Amazon EventBridge__ - - ### Features - - Adds TraceHeader to PutEventsRequestEntry to support AWS X-Ray trace-ids on events generated using the PutEvents operation. - -## __Amazon Managed Blockchain__ - - ### Features - - Updates for Ethereum general availability release. - -# __2.16.9__ __2021-03-01__ -## __AWS CodePipeline__ - - ### Features - - Added a new field to the ListPipelines API to allow maximum search results of 1000 - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Alexa For Business__ - - ### Features - - Added support for optional tags in CreateAddressBook, CreateConferenceProvider, CreateContact, CreateGatewayGroup, CreateNetworkProfile and RegisterAVSDevice APIs. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding new error code AdmissionRequestDenied for Addons in EKS - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Add Support for Patch Manger Baseline Override parameter. - -# __2.16.8__ __2021-02-26__ -## __AWS Single Sign-On Admin__ - - ### Features - - Relax constraint on List* API pagination tokens to include underscore character - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Amazon EKS now supports adding KMS envelope encryption to existing clusters to enhance security for secrets - -## __Amazon Elastic MapReduce__ - - ### Features - - Added UpdateStudio API that allows updating a few attributes of an EMR Studio. - -## __Amazon Simple Storage Service__ - - ### Features - - Add RequestPayer to GetObjectTagging and PutObjectTagging. - -# __2.16.7__ __2021-02-25__ -## __AWS Glue DataBrew__ - - ### Features - - This SDK release adds two new dataset features: 1) support for specifying the file format for a dataset, and 2) support for specifying whether the first row of a CSV or Excel file contains a header. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix for module-path tests failure reported in [#2240](https://github.com/aws/aws-sdk-java-v2/issues/2240) - -## __AWS Transfer Family__ - - ### Features - - Corrected the upper limit for TestIdentityProvider input lengths to 1024 characters - -## __Amazon Detective__ - - ### Features - - Changed "master account" to "administrator account." A new AdministratorId field replaces the deprecated MasterId field. Added an option to disable email notifications for member account invitations. - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Lightsail - -## __EC2 Image Builder__ - - ### Features - - This release introduces a new API (ListImagePackages) for listing packages installed on an image, and adds support for GP3 volume types, and for specifying a time zone in an image pipeline schedule. - -# __2.16.6__ __2021-02-24__ -## __AWS Compute Optimizer__ - - ### Features - - Documentation updates for Compute Optimizer - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - AWS Elemental MediaPackage provides access logs that capture detailed information about requests sent to a customer's MediaPackage VOD packaging group. - -## __Amazon Appflow__ - - ### Features - - # Adding 'Amazon Honeycode' , 'Amazon Lookout for Metrics' and 'Amazon Connect Customer Profiles' as Destinations. - -## __Amazon Elastic Container Registry Public__ - - ### Features - - This release adds support for AWS tags on Amazon ECR Public repositories. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon Elasticsearch Service now supports Auto-Tune, which monitors performance metrics and automatically optimizes domains - -# __2.16.5__ __2021-02-23__ -## __AWS Glue__ - - ### Features - - Updating the page size for Glue catalog getter APIs. - -## __AWS IoT Events__ - - ### Features - - This release adds an Analyze feature to AWS IoT Events that lets customers analyze their detector models for runtime issues. - -## __AWS S3 Control__ - - ### Features - - Documentation updates for s3-control - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - Documentation updates for AWS Connect (MediaConcurrency Limit). - -## __Amazon Pinpoint__ - - ### Features - - Enables AWS Pinpoint customers to use Entity Id and Template Id when sending SMS message. These parameters can be obtained from the regulatory body of the country where you are trying to send the SMS. - -## __Amazon QuickSight__ - - ### Features - - Documentation updates for QuickSight Row Level Security - -## __Auto Scaling__ - - ### Features - - Adds a new optional IncludeDeletedGroups parameter to the DescribeScalingActivities API. - -## __Redshift Data API Service__ - - ### Features - - This release adds an additional parameter 'ConnectedDatabase' into ListSchemasRequest, ListTablesRequest and DescribeTableRequest to support the metadata sharing across databases. - -# __2.16.4__ __2021-02-22__ -## __AWS S3__ - - ### Bugfixes - - Fix the bug that getUrl in S3Utilities ignores the overriding endpoint in the client. - -## __Amazon SageMaker Runtime__ - - ### Features - - SageMaker Runtime now supports a new TargetContainerHostname header to invoke a model in a specific container if the endpoint hosts multiple containers and is configured to use direct invocation. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker now supports core dump for SageMaker Endpoints and direct invocation of a single container in a SageMaker Endpoint that hosts multiple containers. - -# __2.16.3__ __2021-02-19__ -## __AWS RDS__ - - ### Features - - Add the ability to generate IAM auth tokens for RDS using `RdsUtilities` - - Contributed by: [@abrooksv](https://github.com/abrooksv) - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Relational Database Service__ - - ### Features - - Added awsBackupRecoveryPointArn in ModifyDBInstanceRequest and in the response of ModifyDBInstance. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@abrooksv](https://github.com/abrooksv) -# __2.16.2__ __2021-02-18__ -## __AWS CloudFormation__ - - ### Features - - Adding the 'callAs' parameter to all CloudFormation StackSets APIs except getTemplateSummary to support creating and managing service-managed StackSets with AWS Organizations Delegated Administrators - -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild now allows you to specify a separate bucket owner as part of the S3 destination in a report group. - -## __AWS Health APIs and Notifications__ - - ### Features - - Documentation updates for health - -## __Amazon SageMaker Service__ - - ### Features - - This release adds expires-in-seconds parameter to the CreatePresignedDomainUrl API for support of a configurable TTL. - -# __2.16.1__ __2021-02-17__ -## __AWS Config__ - - ### Features - - Added INSUFFICIENT_DATA in ConformancePackComplianceType. - -## __AWS SDK for Java v2__ - - ### Features - - Add GraalVM Native Image configurations for SDK classes - - Created a new archetype, `archetype-app-quickstart`, which allows you to create a simple application with SDK dependencies - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release includes a new filter for describe-vpc-endpoint-services. - -## __Amazon Lookout for Vision__ - - ### Features - - This release for Amazon Lookout for Vision includes documentation updates and a correction to the Status field returned in the response from StartModel and StopModel. - -# __2.16.0__ __2021-02-16__ -## __AWS CodeBuild__ - - ### Features - - This release provides per-project limits for the number of concurrent builds - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Upgrade Jackson dependencies to `2.12.1`. - -## __Amazon DevOps Guru__ - - ### Features - - Amazon DevOps Guru is GA ready. This API update added a describeFeedback Api allows users to view submitted insight feedback. The release date is 02/16/2021 - -# __2.15.82__ __2021-02-15__ -## __AWS Config__ - - ### Features - - Added option to provide KMS key to AWS Config DeliveryChannel - -## __AWS Elemental MediaLive__ - - ### Features - - AWS MediaLive now supports Automatic-Input-Failover for CDI Inputs. - -## __AWS MediaTailor__ - - ### Features - - MediaTailor now supports specifying aliases for dynamic variables. This allows use cases such as binding multiple origin domains to a single MediaTailor playback configuration. - -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - The ListFragments and GetMediaForFragmentList APIs now support StreamName or StreamARN as input parameters. - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Lightsail - -## __Amazon Pinpoint__ - - ### Features - - Lets customers use origination number when specifying SMS message configuration for Campaigns and Journeys. - -## __Amazon WorkMail Message Flow__ - - ### Features - - This release allows customers to update email messages as they flow in and out of Amazon WorkMail - -## __Redshift Data API Service__ - - ### Features - - This release enables fine grant access control in ListStatements, GetStatementResult, CancelStatement and DescribeStatement. - -# __2.15.81__ __2021-02-12__ -## __AWS AppSync__ - - ### Features - - Approve release for appsync local on pipeline resolver - -## __AWS CodePipeline__ - - ### Features - - The release provides new GetActionType and UpdateActionType APIs for viewing and editing action types in CodePipeline. - -## __AWS Identity and Access Management__ - - ### Features - - AWS Identity and Access Management now supports tagging for the following resources: customer managed policies, identity providers, instance profiles, server certificates, and virtual MFA devices. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAFV2__ - - ### Features - - Added the option to inspect the web request body as parsed and filtered JSON (new FieldToMatch type JsonBody), in addition to the existing option to inspect the web request body as plain text. - -## __Amazon Detective__ - - ### Features - - The API definition now indicates that the format for timestamps is an ISO 8601 date-time string - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Amazon EKS now supports OpenId Connect (OIDC) compatible identity providers as a user authentication option - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API replaces the term master account with the term administrator account, including deprecating APIs that use the previous term and adding APIs that use the new term. - -## __Amazon Personalize Events__ - - ### Features - - Increased maximum char size of PutUsers and PutItems properties. - -## __Amazon Relational Database Service__ - - ### Features - - EngineMode in the response of DescribeDBClusterSnapshots. SupportedEngineModes, SupportsParallelQuery and SupportsGlobalDatabases in ValidUpgradeTarget of DBEngineVersions in DescribeDBEngineVersions. - -## __Elastic Load Balancing__ - - ### Features - - Adds a target group attribute for application-based stickiness for Application Load Balancers and an update to the client IP preservation attribute for Network Load Balancers. - -# __2.15.80__ __2021-02-11__ -## __AWS Glue DataBrew__ - - ### Features - - This release adds support for profile job sampling, which determines the number of rows on which the profile job will be executed. - -## __Amazon Relational Database Service__ - - ### Features - - Adding support for RDS Aurora Global Database Failover - -# __2.15.79__ __2021-02-09__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for WMA audio only ingest, SMPTE-TT text and image caption ingest, and MPEG-2 video in MXF OP1a outputs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon GameLift__ - - ### Features - - GameLift FleetIQ users can now use AMD instance families in supported Regions. In addition, FlexMatch matchmaking notification now supports SNS FIFO topics. - -## __Amazon QLDB Session__ - - ### Features - - This release adds CapacityExceededException to the AWS QLDBSession API. - -## __Amazon QuickSight__ - - ### Features - - QuickSight now supports Python's paginators for Exploration APIs. - -## __Amazon SageMaker Service__ - - ### Features - - Add a new optional FrameworkVersion field to Sagemaker Neo CreateCompilationJob API - -# __2.15.78__ __2021-02-08__ -## __AWS CloudTrail__ - - ### Features - - ConflictException is now thrown when certain operations are called on resources before CloudTrail has time to load the resources. Two new exceptions have been added to the PutInsightSelectors API. - -## __AWS Data Exchange__ - - ### Features - - This release introduces the new ExportRevision job type, which allows for the export of an entire revision. - -## __AWS Global Accelerator__ - - ### Features - - Global Accelerator now supports bringing your own IP addresses for custom routing accelerators - -## __AWS IoT SiteWise__ - - ### Features - - Recall CreatePresignedPortalUrl API - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon ElastiCache__ - - ### Features - - Documentation updates for elasticache - -## __Amazon Interactive Video Service__ - - ### Features - - Fixed an issue where StreamStartTime could not be unmarshalled from response. Changed DeleteChannel and DeleteStreamKey response codes to 204. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API adds support for specifying a time range in queries for usage data. - -## __Elastic Load Balancing__ - - ### Features - - Adds a target group attribute for application-based stickiness for Application Load Balancers. - -# __2.15.77__ __2021-02-05__ -## __AWS Organizations__ - - ### Features - - Added support for a few additional exception codes for some AWS Organizations APIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Macie__ - - ### Features - - Documentation updates for Amazon Macie Classic. We replaced the term "master account" with the term "administrator account." An administrator account is used to centrally manage multiple accounts. - -## __Elastic Load Balancing__ - - ### Features - - Adds a target group attribute for client IP preservation for Network Load Balancers. - -# __2.15.76__ __2021-02-04__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Appflow__ - - ### Features - - Adding schedule offset as an input for scheduled flows in CreateFlow API. Also, adding data pull start time and data pull end time for DescribeFlowExecutionRecords API response. - -## __Amazon Athena__ - - ### Features - - Adds the Athena ListEngineVersions action and the EngineVersion data type. ListEngineVersions returns the available Athena engine versions, including Auto, as a list of EngineVersion objects. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Provide support for EBS Local Snapshots on AWS Outpost in Data Lifecycle Manager (DLM). - -## __Amazon EMR Containers__ - - ### Features - - This release is to correct the timestamp format to ISO8601 for the date parameters in the describe and list API response objects of Job Run and Virtual Clusters. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - AWS Outposts now supports EBS local snapshots on Outposts that allows customers to store snapshots of EBS volumes and AMIs locally on S3 on Outposts. - -## __Amazon QuickSight__ - - ### Features - - API release for field folders feature. - -# __2.15.75__ __2021-02-03__ -## __AWS Audit Manager__ - - ### Features - - This release adds AccessDeniedException to GetServicesInScope API. - -## __AWS CodeBuild__ - - ### Features - - Documentation updates for codebuild - -## __AWS Compute Optimizer__ - - ### Features - - Documentation updates for Compute Optimizer - -## __AWS Cost Explorer Service__ - - ### Features - - Clarify valid values for the filter parameter for certain APIs. - -## __AWS Glue DataBrew__ - - ### Features - - This release adds the DescribeJobRun API to allow customers retrieve details of a given job run - -## __AWS IoT SiteWise__ - - ### Features - - Update AccessPolicy API input to support IAM role for IAM mode. Iam role is added as part of accessPolicyIdentity. - -## __AWS Lambda__ - - ### Features - - Support for creating Lambda Functions using 'nodejs14.x' - -## __AWS SecurityHub__ - - ### Features - - Added a ProductArn parameter to DescribeProducts. ProductArn is used to identify the integration to return details for. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EC2 Public IP now supports API for setting PTR records on Elastic IP address. - -## __Amazon S3__ - - ### Features - - Amazon S3 now supports AWS PrivateLink, providing direct access to S3 via a private endpoint within your virtual private network. - -## __Amazon WorkMail__ - - ### Features - - Increased maximum length of ipRanges values for Access Control Rules from 10 to 1024. - -# __2.15.74__ __2021-02-02__ -## __AWS App Mesh__ - - ### Features - - App Mesh now supports mutual TLS with two-way peer authentication. You can specify client certificates, server-side TLS validation, and matching of Subject Alternative Names. - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports Image Media Playlists on HLS outputs, version 0.4 (trick-mode). - -## __AWS IoT Wireless__ - - ### Features - - Add enum value MqttTopic for Destination ExpressionType, add LoRaWANNetworkServerCertificateId for GetWirelessGatewayCertificate API - -## __AWS Organizations__ - - ### Features - - Documentation updates for AWS Organizations. - -## __AWS RDS DataService__ - - ### Features - - With the Data API, you can now use UUID and JSON data types as input to your database. Also with the Data API, you can now have a LONG type value returned from your database as a STRING value. - -## __AWS S3 Control__ - - ### Features - - Amazon S3 Batch Operations now supports Delete Object Tagging - -## __Amazon Location Service__ - - ### Features - - Doc only update for Amazon Location Maps that fixes a customer related issue regarding MapConfiguration - -## __Amazon Lookout for Vision__ - - ### Features - - This release includes the General Availability (GA) SDK for Amazon Lookout for Vision. New for GA is tagging support for Amazon Lookout for Vision models. - -## __Amazon Route 53__ - - ### Features - - Documentation updates for Route 53 - -## __Application Auto Scaling__ - - ### Features - - With this release, scheduled actions of Application Auto Scaling can be created in the local time zone and automatically adjusted according to daylight saving changes. - -# __2.15.73__ __2021-01-29__ -## __AWS Elemental MediaLive__ - - ### Features - - "AWS Elemental MediaLive now supports output to a private VPC. When this property is specified, the output will egress from a user specified VPC." - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - Added API to manage queues or get hours of operation for a queue programmatically, which can be used to create new/update queues, or take actions when skills are outside of their hours of operation. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API adds support for using object prefixes to refine the scope of a classification job. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - Amazon Transcribe Streaming Medical now supports Protected Health Information (PHI) identification which enables you to identify PHI entities based on HIPAA Privacy Rule. - -# __2.15.72__ __2021-01-28__ -## __AWS Glue DataBrew__ - - ### Features - - This SDK release adds support for specifying a custom delimiter for input CSV datasets and for CSV job outputs. - -## __AWS IoT__ - - ### Features - - Documentation updates for IoT DeleteOTAUpdate API - -## __AWS RoboMaker__ - - ### Features - - This release allows Robomaker customers to specify configuration for uploading logs and artifacts generated by their simulation jobs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Well-Architected Tool__ - - ### Features - - Documentation updates for AWS Well-Architected Tool - -## __Amazon CloudWatch__ - - ### Features - - Update to SDK to support label time zones in CloudWatch GetMetricData - -## __Amazon Managed Blockchain__ - - ### Features - - This release supports tagging on Amazon Managed Blockchain resources. - -# __2.15.71__ __2021-01-27__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Access Analyzer__ - - ### Features - - This release adds Secrets Manager secrets as a supported resource in IAM Access Analyzer to help you identify secrets that can be accessed from outside your account or AWS organization. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This release makes Uri a required parameter in GetIntegrationRequest and DeleteIntegrationRequest. - -## __Amazon ElastiCache__ - - ### Features - - Add support to pass ParameterGroup name as part updating Engine Version of Global Datastore. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon Elasticsearch Service adds support for node-to-node encryption and encryption at rest for existing domains running Elasticsearch version 6.7 and above - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for Lightsail - -## __Amazon Simple Email Service__ - - ### Features - - This release includes the ability to assign a configuration set to an email identity (a domain or email address), which allows the settings from the configuration set to be applied to the identity. - -# __2.15.70__ __2021-01-26__ -## __AWS Backup__ - - ### Features - - Documentation updates for AWS Backup - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Cross-Region Copying Pre-Signer for CopyDBClusterSnapshot and CreateDBCluster API of DocDB. - -## __Amazon Neptune__ - - ### Features - - Cross-Region Copying Pre-Signer for CopyDBClusterSnapshot and CreateDBCluster API of Neptune. - -## __DynamoDB Enhanced Client__ - - ### Bugfixes - - Converts string to NULL attribute if it's null. See [#2243](https://github.com/aws/aws-sdk-java-v2/issues/2243) - -# __2.15.69__ __2021-01-22__ -## __AWS IoT Greengrass V2__ - - ### Features - - Documentation updates that improve clarity and fix broken links. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Introducing startDate field for CapacityReservation object for the date and time which the reservation started and adding reserved parameter for ModifyCapacityReservation. - -## __Amazon Lex Model Building V2__ - - ### Features - - This release adds support for Amazon Lex V2 APIs for model building. - -## __Amazon Lex Runtime V2__ - - ### Features - - This release adds support for Amazon Lex V2 APIs for runtime, including Streaming APIs for conversation management. - -## __Amazon Redshift__ - - ### Features - - Update VPC endpoint field names. - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for Amazon RDS - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Documentation updates for the ListDocumentFilters API action. - -# __2.15.68__ __2021-01-21__ -## __AWS Resource Groups Tagging API__ - - ### Features - - This release adds a new parameter ResourceARNList to Resource Groups Tagging api GetResources api to allow customers retrieve tag data for specific resources. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Add support for content-type in AsyncRequestBody. - -## __AWS SecurityHub__ - - ### Features - - This release of ASFF adds a new Action object and a new resource details object - AwsSsmPatchCompliance. It also adds several new attributes for the AwsEc2NetworkInterface resource type. - -## __Managed Streaming for Kafka__ - - ### Features - - Amazon MSK has added a new API that allows you to update all the brokers in the cluster to the specified type. - -# __2.15.67__ __2021-01-19__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - ACM Private CA is launching additional certificate templates and API parameters. This allows customers to create custom certificates for their identity and secure communication use cases. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime__ - - ### Features - - Add support for specifying ChimeBearer header as part of the request for Amazon Chime SDK messaging APIs. Documentation updates. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support to include task definition metadata information such as registeredAt, deregisteredAt, registeredBy as part of DescribeTaskDefinition API. - -# __2.15.66__ __2021-01-15__ -## __Amazon Simple Notification Service__ - - ### Features - - Documentation updates for Amazon SNS. - -# __2.15.65__ __2021-01-14__ -## __AWS S3 Control__ - - ### Features - - Amazon S3 Batch Operations now supports restoring objects from the S3 Intelligent-Tiering Archive Access and Deep Archive Access tiers. - -## __Amazon Cognito Identity__ - - ### Features - - Add Attributes For Access Control support for Amazon Cognito Identity Pools to facilitate access to AWS resources based on attributes from social and corporate identity providers - -## __Amazon Pinpoint__ - - ### Features - - Customers can create segments using 5 new filters. Filters can check for the presence of a substring in attributes and can perform time-based comparisons formatted as ISO_INSTANT datetimes. - -## __Amazon SageMaker Service__ - - ### Features - - This feature allows customers to enable/disable model caching on Multi-Model endpoints. - -# __2.15.64__ __2021-01-13__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Reverting synchronization of eventsToDeliver Object in onComplete() [PR#1971](https://github.com/aws/aws-sdk-java-v2/pull/1971) since it was causing latency. - -## __Amazon Fraud Detector__ - - ### Features - - Added support for cancelling a model version that is TRAINING_IN_PROGRESS. - -## __Amazon Personalize__ - - ### Features - - Miscellaneous updates and improvements to the documentation - -# __2.15.63__ __2021-01-12__ -## __AWS Audit Manager__ - - ### Features - - This release introduces tag support for assessment frameworks. You can now add, remove, and get tags from existing frameworks, and specify the tags to apply when creating a custom framework. - -## __AWS Commont Runtime HTTP Client__ - - ### Features - - Upgrade `aws-crt` to version `0.9.3` - -## __Amazon AppStream__ - - ### Features - - Adds support for the Smart Card Redirection feature - -## __Amazon ElastiCache__ - - ### Features - - Documentation updates for elasticache - -## __Amazon Lightsail__ - - ### Features - - This release adds IPv6 support for Amazon Lightsail instances, container services, CDN distributions, and load balancers. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager adds pagination support for DescribeDocumentPermission API - -# __2.15.62__ __2021-01-11__ -## __AWS Key Management Service__ - - ### Features - - Adds support for filtering grants by grant ID and grantee principal in ListGrants requests to AWS KMS. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Relational Database Service__ - - ### Features - - This releases adds support for Major Version Upgrades on Aurora MySQL Global Clusters. Customers will be able to upgrade their whole Aurora MySQL Global Cluster to a new major engine version. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Correctly select the cipher suites based on the HTTP protocol. See [#2159](https://github.com/aws/aws-sdk-java-v2/issues/2159) - - Use `SystemPropretyTlsKeyManagersProvider` if no `KeyManger` is provided. - -# __2.15.61__ __2021-01-07__ -## __AWS CodePipeline__ - - ### Features - - Adding cancelled status and summary for executions aborted by pipeline updates. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for I-Frame-only HLS manifest generation in CMAF outputs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DevOps Guru__ - - ### Features - - Add resourceHours field in GetAccountHealth API to show total number of resource hours AWS Dev Ops Guru has done work for in the last hour. - -# __2.15.60__ __2021-01-06__ -## __AWS Auto Scaling Plans__ - - ### Features - - Documentation updates for AWS Auto Scaling - -## __AWS Transfer Family__ - - ### Features - - This release adds support for Amazon EFS, so customers can transfer files over SFTP, FTPS and FTP in and out of Amazon S3 as well as Amazon EFS. - -## __Auto Scaling__ - - ### Features - - This update increases the number of instance types that can be added to the overrides within an mixed instances group configuration. - -# __2.15.59__ __2021-01-05__ -## __AWS Cost Explorer Service__ - - ### Features - - - ### Features - Add new GetCostcategories API - Support filter for GetDimensions, GetTags and GetCostcategories api - Support sortBy metrics for GetDimensions, GetTags and GetCostcategories api - -## __Amazon S3__ - - ### Features - - `S3Utilities#getUrl` now supports versionId. See [#2224](https://github.com/aws/aws-sdk-java-v2/issues/2224) - -## __Application Auto Scaling__ - - ### Features - - Documentation updates for Application Auto Scaling - -# __2.15.58__ __2021-01-04__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix for [#1684](https://github.com/aws/aws-sdk-java-v2/issues/1684) Some of the Retry attempts which failed due to the API TimeOuts did not successfully retried but ended up with AbortedException. - -## __Amazon CloudSearch__ - - ### Features - - This release adds support for new Amazon CloudSearch instances. - -## __Amazon HealthLake__ - - ### Features - - Amazon HealthLake now supports exporting data from FHIR Data Stores in Preview. - -# __2.15.57__ __2020-12-31__ -## __AWS Service Catalog__ - - ### Features - - Enhanced Service Catalog DescribeProvisioningParameters API to return new parameter constraints, i.e., MinLength, MaxLength, MinValue, MaxValue, ConstraintDescription and AllowedPattern - -# __2.15.56__ __2020-12-30__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon ElastiCache__ - - ### Features - - Documentation updates for elasticache - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API includes miscellaneous updates and improvements to the documentation. - -# __2.15.55__ __2020-12-29__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - This release adds a new parameter "CsrExtensions" in the "CertificateAuthorityConfiguration" data structure, which allows customers to add the addition of KU and SIA into the CA CSR. - -## __AmazonApiGatewayV2__ - - ### Features - - Amazon API Gateway now supports data mapping for HTTP APIs which allows customers to modify HTTP Request before sending it to their integration and HTTP Response before sending it to the invoker. - -# __2.15.54__ __2020-12-28__ -## __Amazon CloudFront__ - - ### Features - - Amazon CloudFront has deprecated the CreateStreamingDistribution and CreateStreamingDistributionWithTags APIs as part of discontinuing support for Real-Time Messaging Protocol (RTMP) distributions. - -# __2.15.53__ __2020-12-23__ -## __AWS Compute Optimizer__ - - ### Features - - This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for lambda functions. - -## __AWS Database Migration Service__ - - ### Features - - AWS DMS launches support for AWS Secrets Manager to manage Oracle ASM Database credentials - -## __AWS Resource Groups__ - - ### Features - - Add operation `PutGroupConfiguration`. Support dedicated hosts and add `Pending` in operations `Un/GroupResources`. Add `Resources` in `ListGroupResources` and deprecate `ResourceIdentifiers`. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.15.52__ __2020-12-22__ -## __AWS Cost Explorer Service__ - - ### Features - - This release adds additional metadata that may be applicable to the Rightsizing Recommendations. - -## __AWS Glue__ - - ### Features - - AWS Glue Find Matches machine learning transforms now support column importance scores. - -## __AWS IoT Wireless__ - - ### Features - - Adding the ability to use Fingerprint in GetPartnerAccount and ListPartnerAccounts API responses to protect sensitive customer account information. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for quick connects. For details, see the Release Notes in the Amazon Connect Administrator Guide. - -## __Amazon ElastiCache__ - - ### Features - - Documentation updates for elasticache - -## __Amazon Relational Database Service__ - - ### Features - - Adds customer-owned IP address (CoIP) support to Amazon RDS on AWS Outposts. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - SSM Maintenance Window support for registering/updating maintenance window tasks without targets. - -# __2.15.51__ __2020-12-21__ -## __AWS Batch__ - - ### Features - - Documentation updates for batch - -## __AWS Config__ - - ### Features - - AWS Config adds support to save advanced queries. New API operations - GetStoredQuery, PutStoredQuery, ListStoredQueries, DeleteStoredQuery - -## __AWS Database Migration Service__ - - ### Features - - AWS DMS launches support for AWS Secrets Manager to manage source and target database credentials. - -## __AWS Glue__ - - ### Features - - Add 4 connection properties: SECRET_ID, CONNECTOR_URL, CONNECTOR_TYPE, CONNECTOR_CLASS_NAME. Add two connection types: MARKETPLACE, CUSTOM - -## __AWS Outposts__ - - ### Features - - In this release, AWS Outposts adds support for three new APIs: TagResource, UntagResource, and ListTagsForResource. Customers can now manage tags for their resources through the SDK. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Finding providers can now use BatchImportFindings to update Confidence, Criticality, RelatedFindings, Severity, and Types. - -## __AWS Service Catalog App Registry__ - - ### Features - - New API `SyncResouce` to update AppRegistry system tags. - -## __Amazon API Gateway__ - - ### Features - - Documentation updates for Amazon API Gateway. - -## __Amazon Connect Participant Service__ - - ### Features - - This release adds three new APIs: StartAttachmentUpload, CompleteAttachmentUpload, and GetAttachment. For Amazon Connect Chat, you can use these APIs to share files in chat conversations. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds Tag On Create feature support for the AllocateAddress API. - -## __Amazon Managed Blockchain__ - - ### Features - - Added support for provisioning and managing public Ethereum nodes on main and test networks supporting secure access using Sigv4 and standard open-source Ethereum APIs. - -## __Amazon QLDB Session__ - - ### Features - - Adds "TimingInformation" to all SendCommand API results and "IOUsage" to ExecuteStatementResult, FetchPageResult and CommitTransactionResult. - -## __Amazon Simple Storage Service__ - - ### Features - - Format GetObject's Expires header to be an http-date instead of iso8601 - -## __Service Quotas__ - - ### Features - - Added the ability to tag applied quotas. - -# __2.15.50__ __2020-12-18__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Upgrading jackson.databind.version to 2.10.5.1 - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EBS io2 volumes now supports Multi-Attach - -## __Amazon Personalize Runtime__ - - ### Features - - Updated FilterValues regex pattern to align with Filter Expression. - -## __Amazon Relational Database Service__ - - ### Features - - Adds IAM DB authentication information to the PendingModifiedValues output of the DescribeDBInstances API. Adds ClusterPendingModifiedValues information to the output of the DescribeDBClusters API. - -# __2.15.49__ __2020-12-17__ -## __AWS Config__ - - ### Features - - Adding PutExternalEvaluation API which grants permission to deliver evaluation result to AWS Config - -## __AWS Key Management Service__ - - ### Features - - Added CreationDate and LastUpdatedDate timestamps to ListAliases API response - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - This change fixes a bug in the code generation related to eventstreams that prevents multiple events to share the same shape. - -## __AWS Service Catalog__ - - ### Features - - Support TagOptions sharing with Service Catalog portfolio sharing. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Provide Cross-account copy event based policy support in DataLifecycleManager (DLM) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - C6gn instances are powered by AWS Graviton2 processors and offer 100 Gbps networking bandwidth. These instances deliver up to 40% better price-performance benefit versus comparable x86-based instances - -## __Amazon Route 53__ - - ### Features - - This release adds support for DNSSEC signing in Amazon Route 53. - -## __Amazon Route 53 Resolver__ - - ### Features - - Route 53 Resolver adds support for enabling resolver DNSSEC validation in virtual private cloud (VPC). - -## __Amazon Simple Queue Service__ - - ### Features - - Amazon SQS adds queue attributes to enable high throughput FIFO. - -## __EC2 Image Builder__ - - ### Features - - This release adds support for building and distributing container images within EC2 Image Builder. - -# __2.15.48__ __2020-12-16__ -## __AWS Cost Explorer Service__ - - ### Features - - This release updates the "MonitorArnList" from a list of String to be a list of Arn for both CreateAnomalySubscription and UpdateAnomalySubscription APIs - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Well-Architected Tool__ - - ### Features - - This is the first release of AWS Well-Architected Tool API support, use to review your workload and compare against the latest AWS architectural best practices. - -## __Amazon Location Service__ - - ### Features - - Initial release of Amazon Location Service. A new geospatial service providing capabilities to render maps, geocode/reverse geocode, track device locations, and detect geofence entry/exit events. - -## __Amazon Prometheus Service__ - - ### Features - - Documentation updates for Amazon Managed Service for Prometheus - -## __Amazon QuickSight__ - - ### Features - - QuickSight now supports connecting to federated data sources of Athena - -# __2.15.47__ __2020-12-15__ -## __AWS IoT__ - - ### Features - - AWS IoT Rules Engine adds Kafka Action that allows sending data to Apache Kafka clusters inside a VPC. AWS IoT Device Defender adds custom metrics and machine-learning based anomaly detection. - -## __AWS IoT Analytics__ - - ### Features - - FileFormatConfiguration enables data store to save data in JSON or Parquet format. S3Paths enables you to specify the S3 objects that save your channel messages when you reprocess the pipeline. - -## __AWS IoT Core Device Advisor__ - - ### Features - - AWS IoT Core Device Advisor is fully managed test capability for IoT devices. Device manufacturers can use Device Advisor to test their IoT devices for reliable and secure connectivity with AWS IoT. - -## __AWS IoT Fleet Hub__ - - ### Features - - AWS IoT Fleet Hub, a new feature of AWS IoT Device Management that provides a web application for monitoring and managing device fleets connected to AWS IoT at scale. - -## __AWS IoT Greengrass V2__ - - ### Features - - AWS IoT Greengrass V2 is a new major version of AWS IoT Greengrass. This release adds several updates such as modular components, continuous deployments, and improved ease of use. - -## __AWS IoT Wireless__ - - ### Features - - AWS IoT for LoRaWAN enables customers to setup a private LoRaWAN network by connecting their LoRaWAN devices and gateways to the AWS cloud without managing a LoRaWAN Network Server. - -## __AWS Lambda__ - - ### Features - - Added support for Apache Kafka as a event source. Added support for TumblingWindowInSeconds for streams event source mappings. Added support for FunctionResponseTypes for streams event source mappings - -## __Amazon Prometheus Service__ - - ### Features - - (New Service) Amazon Managed Service for Prometheus is a fully managed Prometheus-compatible monitoring service that makes it easy to monitor containerized applications securely and at scale. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Adding support for Change Manager API content - -# __2.15.46__ __2020-12-14__ -## __AWS Global Accelerator__ - - ### Features - - This release adds support for custom routing accelerators - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Treat zero-byte responses from async HTTP clients as not having a payload, regardless of the response content-length. This fixes an issue that could cause HEAD responses (e.g. s3's headObject responses) with a content-length specified from being treated as having a payload. This fixes issues like [#1216](https://github.com/aws/aws-sdk-java-v2/issues/1216) where the SDK attempts to read data from the response based on the content-length, not based on whether there was actually a payload. - -## __Amazon DevOps Guru__ - - ### Features - - Documentation updates for DevOps Guru. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add c5n.metal to ec2 instance types list - -# __2.15.45__ __2020-12-11__ -## __AWS CloudTrail__ - - ### Features - - CloudTrailInvalidClientTokenIdException is now thrown when a call results in the InvalidClientTokenId error code. The Name parameter of the AdvancedEventSelector data type is now optional. - -## __AWS IoT SiteWise__ - - ### Features - - Added the ListAssetRelationships operation and support for composite asset models, which represent structured sets of properties within asset models. - -## __AWS Performance Insights__ - - ### Features - - You can group DB load according to the dimension groups for database, application, and session type. Amazon RDS also supports the dimensions db.name, db.application.name, and db.session_type.name. - -## __Amazon CloudWatch__ - - ### Features - - Documentation updates for monitoring - -## __Amazon GuardDuty__ - - ### Features - - Documentation updates for GuardDuty - -## __Auto Scaling__ - - ### Features - - Documentation updates and corrections for Amazon EC2 Auto Scaling API Reference and SDKs. - -# __2.15.44__ __2020-12-10__ -## __AWS Network Manager__ - - ### Features - - This release adds API support for Transit Gateway Connect integration into AWS Network Manager. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports adding synonyms to an index through the new Thesaurus resource. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - TGW connect simplifies connectivity of SD-WAN appliances; IGMP support for TGW multicast; VPC Reachability Analyzer for VPC resources connectivity analysis. - -# __2.15.43__ __2020-12-09__ -## __AWS Global Accelerator__ - - ### Features - - This release adds support for custom routing accelerators - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for G4ad instances powered by AMD Radeon Pro V520 GPUs and AMD 2nd Generation EPYC processors - -## __Amazon Redshift__ - - ### Features - - Add support for availability zone relocation feature. - -# __2.15.42__ __2020-12-08__ -## __AWS Audit Manager__ - - ### Features - - AWS Audit Manager helps you continuously audit your AWS usage to simplify how you manage risk and compliance. This update releases the first version of the AWS Audit Manager APIs and SDK. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - The SDK will now retry on `TransactionInProgressException` error code. - -## __AWSKendraFrontendService__ - - ### Features - - 1. Amazon Kendra connector for Google Drive repositories 2. Amazon Kendra's relevance ranking models are regularly tuned for each customer by capturing end-user search patterns and feedback. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release adds support for configuring cross-region and cross-account replication of your Amazon ECR images. - -## __Amazon EMR Containers__ - - ### Features - - This release adds support for Amazon EMR on EKS, a simple way to run Spark on Kubernetes. - -## __Amazon Forecast Service__ - - ### Features - - This release adds support for the Amazon Forecast Weather Index which can increase forecasting accuracy by automatically including weather forecasts in demand forecasts. - -## __Amazon HealthLake__ - - ### Features - - This release introduces Amazon HealthLake (preview), a HIPAA-eligible service that enables healthcare and life sciences customers to store, transform, query, and analyze health data in the AWS Cloud. - -## __Amazon QuickSight__ - - ### Features - - Added new parameters for join optimization. - -## __Amazon SageMaker Runtime__ - - ### Features - - This feature allows customers to invoke their endpoint with an inference ID. If used and data capture for the endpoint is enabled, this ID will be captured along with request data. - -## __Amazon SageMaker Service__ - - ### Features - - This feature helps you monitor model performance characteristics such as accuracy, identify undesired bias in your ML models, and explain model decisions better with explainability drift detection. - -## __Amazon Sagemaker Edge Manager__ - - ### Features - - Amazon SageMaker Edge Manager makes it easy to optimize, secure, monitor, and maintain machine learning (ML) models across fleets of edge devices such as smart cameras, smart speakers, and robots. - -# __2.15.41__ __2020-12-07__ -## __AWS Common Runtime HTTP Client__ - - ### Features - - Bump up `aws-crt` version to `0.9.0` - -## __AWS Database Migration Service__ - - ### Features - - Added PreserveTransaction setting to preserve order of CDC for S3 as target. Added CsvNoSupValue setting to replace empty value for columns not included in the supplemental log for S3 as target. - -## __AWS SDK for Java v2__ - - ### Features - - Added amz-sdk-request and removed amz-sdk-retry header. The new header matches the behavior of the other SDKs. - - Updated service endpoint metadata. - -## __AWS Service Catalog App Registry__ - - ### Features - - AWS Service Catalog AppRegistry now supports adding, removing, and listing tags on resources after they are created. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fixed the issue where certain handshake errors manifested as acquire connection timeout error when using TLS1.3 and proxy. - -# __2.15.40__ __2020-12-04__ -## __AWS Directory Service__ - - ### Features - - Documentation updates for ds - updated descriptions - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports black video and audio silence as new conditions to trigger automatic input failover. - -## __AWS Lambda__ - - ### Features - - Added the additional enum InvalidImage to StateReasonCode and LastUpdateStatusReasonCode fields. - -## __AWS License Manager__ - - ### Features - - Automated Discovery now has support for custom tags, and detects software uninstalls. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Avoid costly metrics collection when metric collector is NoOpMetricCollector. - - Contributed by: [@croudet](https://github.com/croudet) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release introduces tag-on-create capability for the CreateImage API. A user can now specify tags that will be applied to the new resources (image, snapshots or both), during creation time. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for Amazon RDS Cross-Region Automated Backups, the ability to setup automatic replication of snapshots and transaction logs from a primary AWS Region to a secondary AWS Region. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager Patch Manager MAC OS Support and OpsMetadata Store APIs to store operational metadata for an Application. - -## __Amazon WorkSpaces__ - - ### Features - - Update the import-workspace-image API to have "BYOL_REGULAR_WSP" as a valid input string for ingestion-process. - -## __Managed Streaming for Kafka__ - - ### Features - - Adding HEALING to ClusterState. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@croudet](https://github.com/croudet) -# __2.15.39__ __2020-12-03__ -## __AWS Batch__ - - ### Features - - This release adds support for customer to run Batch Jobs on ECS Fargate, the serverless compute engine built for containers on AWS. Customer can also propagate Job and Job Definition Tags to ECS Task. - -## __AWS Compute Optimizer__ - - ### Features - - This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for EBS volumes that are attached to instances. - -## __AWS License Manager__ - - ### Features - - AWS License Manager enables managed entitlements for AWS customers and Software Vendors (ISV). You can track and distribute license entitlements from AWS Marketplace and supported ISVs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AmplifyBackend__ - - ### Features - - Regular documentation updates. - -# __2.15.38__ __2020-12-01__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Customer Profiles__ - - ### Features - - This is the first release of Amazon Connect Customer Profiles, a unified customer profile for your Amazon Connect contact center. - -# __2.15.37__ __2020-12-01__ -## __AWS Directory Service__ - - ### Features - - Adding client authentication feature for AWS AD Connector - -## __AWS Lambda__ - - ### Features - - This release includes support for a new feature: Container images support in AWS Lambda. This adds APIs for deploying functions as container images. AWS Lambda now supports memory up to 10240MB. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon AppIntegrations Service__ - - ### Features - - The Amazon AppIntegrations service (in preview release) enables you to configure and reuse connections to external applications. - -## __Amazon Connect Contact Lens__ - - ### Features - - Contact Lens for Amazon Connect analyzes conversations, both real-time and post-call. The ListRealtimeContactAnalysisSegments API returns a list of analysis segments for a real-time analysis session. - -## __Amazon Connect Service__ - - ### Features - - This release adds an Amazon Connect API that provides the ability to create tasks, and a set of APIs (in preview) to configure AppIntegrations associations with Amazon Connect instances. - -## __Amazon DevOps Guru__ - - ### Features - - (New Service) Amazon DevOps Guru is available in public preview. It's a fully managed service that uses machine learning to analyze your operational solutions to help you find and troubleshoot issues. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for: EBS gp3 volumes; and D3/D3en/R5b/M5zn instances powered by Intel Cascade Lake CPUs - -## __Amazon Elastic Container Registry Public__ - - ### Features - - Supports Amazon Elastic Container Registry (Amazon ECR) Public, a fully managed registry that makes it easy for a developer to publicly share container software worldwide for anyone to download. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Amazon EKS now allows you to define and manage the lifecycle for Kubernetes add-ons for your clusters. This release adds support for the AWS VPC CNI (vpc-cni). - -## __Amazon Honeycode__ - - ### Features - - Introducing APIs to read and write directly from Honeycode tables. Use APIs to pull table and column metadata, then use the read and write APIs to programmatically read and write from the tables. - -## __Amazon Lookout for Vision__ - - ### Features - - This release introduces support for Amazon Lookout for Vision. - -## __Amazon SageMaker Feature Store Runtime__ - - ### Features - - This release adds support for Amazon SageMaker Feature Store, which makes it easy for customers to create, version, share, and manage curated data for machine learning (ML) development. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Pipelines for ML workflows. Amazon SageMaker Feature Store, a fully managed repository for ML features. - -## __Amazon Simple Storage Service__ - - ### Features - - S3 adds support for multiple-destination replication, option to sync replica modifications; S3 Bucket Keys to reduce cost of S3 SSE with AWS KMS - -## __AmplifyBackend__ - - ### Features - - (New Service) The Amplify Admin UI offers an accessible way to develop app backends and manage app content. We recommend that you use the Amplify Admin UI to manage the backend of your Amplify app. - -# __2.15.36__ __2020-11-30__ -## __AWS SDK for Java v2__ - - ### Features - - Add LICENSE.txt and NOTICE.txt to META-INF directory of generated JARs - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed a resource leak that could occur when closing the default credentials provider (or a client using the default credentials provider), when `closeable` credentials like STS or SSO were in use. Fixes [#2149](https://github.com/aws/aws-sdk-java-v2/issues/2149). - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release introduces Amazon EC2 Mac1 instances, a new Amazon EC2 instance family built on Apple Mac mini computers, powered by AWS Nitro System, and support running macOS workloads on Amazon EC2 - -# __2.15.35__ __2020-11-24__ -## __AWS Batch__ - - ### Features - - Add Ec2Configuration in ComputeEnvironment.ComputeResources. Use in CreateComputeEnvironment API to enable AmazonLinux2 support. - -## __AWS CloudFormation__ - - ### Features - - Adds support for the new Modules feature for CloudFormation. A module encapsulates one or more resources and their respective configurations for reuse across your organization. - -## __AWS CloudTrail__ - - ### Features - - CloudTrail now includes advanced event selectors, which give you finer-grained control over the events that are logged to your trail. - -## __AWS CodeBuild__ - - ### Features - - Adding GetReportGroupTrend API for Test Reports. - -## __AWS Elastic Beanstalk__ - - ### Features - - Updates the Integer constraint of DescribeEnvironmentManagedActionHistory's MaxItems parameter to [1, 100]. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for Vorbis and Opus audio in OGG/OGA containers. - -## __AWS IoT SiteWise__ - - ### Features - - This release adds support for customer managed customer master key (CMK) based encryption in IoT SiteWise. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Step Functions__ - - ### Features - - This release of the AWS Step Functions SDK introduces support for Synchronous Express Workflows - -## __Amazon Appflow__ - - ### Features - - Upsolver as a destination connector and documentation update. - -## __Amazon Cognito Identity Provider__ - - ### Features - - This release adds ability to configure Cognito User Pools with third party sms and email providers for sending notifications to users. - -## __Amazon Comprehend__ - - ### Features - - Support Comprehend events detection APIs - -## __Amazon FSx__ - - ### Features - - This release adds the capability to increase storage capacity of Amazon FSx for Lustre file systems, providing the flexibility to meet evolving storage needs over time. - -## __Amazon GameLift__ - - ### Features - - GameLift FlexMatch is now available as a standalone matchmaking solution. FlexMatch now provides customizable matchmaking for games hosted peer-to-peer, on-premises, or on cloud compute primitives. - -## __Amazon Lex Model Building Service__ - - ### Features - - Lex now supports es-419, de-DE locales - -## __Amazon QuickSight__ - - ### Features - - Support for embedding without user registration. New enum EmbeddingIdentityType. A potential breaking change. Affects code that refers IdentityType enum type directly instead of literal string value. - -## __Amazon Timestream Write__ - - ### Features - - Adds support of upserts for idempotent updates to Timestream. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - Amazon Transcribe Medical streaming added medical specialties and HTTP/2 support. Amazon Transcribe streaming supports additional languages. Both support OGG/OPUS and FLAC codecs for streaming. - -## __AmazonMWAA__ - - ### Features - - (New Service) Amazon MWAA is a managed service for Apache Airflow that makes it easy for data engineers and data scientists to execute data processing workflows in the cloud. - -# __2.15.34__ __2020-11-23__ -## __AWS CodeStar connections__ - - ### Features - - Added support for the UpdateHost API. - -## __AWS Glue__ - - ### Features - - Feature1 - Glue crawler adds data lineage configuration option. Feature2 - AWS Glue Data Catalog adds APIs for PartitionIndex creation and deletion as part of Enhancement Partition Management feature. - -## __AWS IoT__ - - ### Features - - This release enables users to identify different file types in the over-the-air update (OTA) functionality using fileType parameter for CreateOTAUpdate API - -## __AWS Lambda__ - - ### Features - - This release includes support for new feature: Code Signing for AWS Lambda. This adds new resources and APIs to configure Lambda functions to accept and verify signed code artifacts at deployment. - -## __AWS License Manager__ - - ### Features - - AWS License Manager now provides the ability for license administrators to be able to associate license configurations to AMIs shared with their AWS account - -## __AWS Outposts__ - - ### Features - - Support specifying tags during the creation of the Outpost resource. Tags are now returned in the response body of Outpost APIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Updated the account management API to support the integration with AWS Organizations. Added new methods to allow users to view and manage the delegated administrator account for Security Hub. - -## __AWS Signer__ - - ### Features - - AWS Signer is launching code-signing for AWS Lambda. Now customers can cryptographically sign Lambda code to ensure trust, integrity, and functionality. - -## __AWS Single Sign-On Admin__ - - ### Features - - AWS Single Sign-On now enables attribute-based access control for workforce identities to simplify permissions in AWS - -## __Amazon CloudWatch Application Insights__ - - ### Features - - Add Detected Workload to ApplicationComponent which shows the workloads that installed in the component - -## __Amazon DynamoDB__ - - ### Features - - With this release, you can capture data changes in any Amazon DynamoDB table as an Amazon Kinesis data stream. You also can use PartiQL (SQL-compatible language) to manipulate data in DynamoDB tables. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for updating capacity providers, specifying custom instance warmup periods for capacity providers, and using deployment circuit breaker for your ECS Services. - -## __Amazon ElastiCache__ - - ### Features - - Documentation updates for elasticache - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Multiple Private DNS names to DescribeVpcEndpointServices response. - -## __Amazon Elastic MapReduce__ - - ### Features - - Add API support for EMR Studio, a new notebook-first IDE for data scientists and data engineers with single sign-on, Jupyter notebooks, automated infrastructure provisioning, and job diagnosis. - -## __Amazon Forecast Service__ - - ### Features - - Releasing the set of PredictorBacktestExportJob APIs which allow customers to export backtest values and item-level metrics data from Predictor training. - -## __Amazon Timestream Query__ - - ### Features - - Amazon Timestream now supports "QueryStatus" in Query API which has information about cumulative bytes scanned, metered, as well as progress percentage for the query. - -## __Amazon Translate__ - - ### Features - - This update adds new operations to create and manage parallel data in Amazon Translate. Parallel data is a resource that you can use to run Active Custom Translation jobs. - -## __Auto Scaling__ - - ### Features - - Documentation updates and corrections for Amazon EC2 Auto Scaling API Reference and SDKs. - -## __CodeArtifact__ - - ### Features - - Add support for the NuGet package format. - -## __Managed Streaming for Kafka__ - - ### Features - - Adding MAINTENANCE and REBOOTING_BROKER to Cluster states. - -# __2.15.33__ __2020-11-20__ -## __AWS App Mesh__ - - ### Features - - This release makes tag value a required attribute of the tag's key-value pair. - -## __AWS CloudHSM V2__ - - ### Features - - Added managed backup retention, a feature that enables customers to retain backups for a configurable period after which CloudHSM service will automatically delete them. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog App Registry__ - - ### Features - - AWS Service Catalog AppRegistry Documentation update - -## __AWS Single Sign-on__ - - ### Features - - Added support for retrieving SSO credentials: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html. - -## __Amazon Chime__ - - ### Features - - The Amazon Chime SDK for messaging provides the building blocks needed to build chat and other real-time collaboration features. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - This release supports tagging repository association resources in Amazon CodeGuru Reviewer. - -## __Amazon Cognito Identity__ - - ### Features - - Added SDK pagination support for ListIdentityPools - -## __Amazon Connect Service__ - - ### Features - - This release adds a set of Amazon Connect APIs to programmatically control instance creation, modification, description and deletion. - -## __Amazon Macie 2__ - - ### Features - - The Amazon Macie API now provides S3 bucket metadata that indicates whether any one-time or recurring classification jobs are configured to analyze data in a bucket. - -## __Amazon Simple Storage Service__ - - ### Features - - Add new documentation regarding automatically generated Content-MD5 headers when using the SDK or CLI. - -## __Managed Streaming for Kafka__ - - ### Features - - This release adds support for PER TOPIC PER PARTITION monitoring on AWS MSK clusters. - -# __2.15.32__ __2020-11-19__ -## __AWS Cost Explorer Service__ - - ### Features - - Additional metadata that may be applicable to the recommendation. - -## __AWS Directory Service__ - - ### Features - - Adding multi-region replication feature for AWS Managed Microsoft AD - -## __AWS Elemental MediaLive__ - - ### Features - - The AWS Elemental MediaLive APIs and SDKs now support the ability to see the software update status on Link devices - -## __AWS Glue__ - - ### Features - - Adding support for Glue Schema Registry. The AWS Glue Schema Registry is a new feature that allows you to centrally discover, control, and evolve data stream schemas. - -## __AWS Lambda__ - - ### Features - - Added the starting position and starting position timestamp to ESM Configuration. Now customers will be able to view these fields for their ESM. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch Events__ - - ### Features - - EventBridge now supports Resource-based policy authorization on event buses. This enables cross-account PutEvents API calls, creating cross-account rules, and simplifies permission management. - -## __Amazon EventBridge__ - - ### Features - - EventBridge now supports Resource-based policy authorization on event buses. This enables cross-account PutEvents API calls, creating cross-account rules, and simplifies permission management. - -## __Amazon Kinesis Analytics__ - - ### Features - - Amazon Kinesis Data Analytics now supports building and running streaming applications using Apache Flink 1.11 and provides a way to access the Apache Flink dashboard for supported Flink versions. - -## __Amazon Lex Model Building Service__ - - ### Features - - Amazon Lex supports managing input and output contexts as well as default values for slots. - -## __Amazon Lex Runtime Service__ - - ### Features - - Amazon Lex now supports the ability to view and manage active contexts associated with a user session. - -## __Amazon Redshift__ - - ### Features - - Amazon Redshift support for returning ClusterNamespaceArn in describeClusters - -## __Auto Scaling__ - - ### Features - - You can now create Auto Scaling groups with multiple launch templates using a mixed instances policy, making it easy to deploy an AMI with an architecture that is different from the rest of the group. - -# __2.15.31__ __2020-11-18__ -## __AWS Backup__ - - ### Features - - AWS Backup now supports cross-account backup, enabling AWS customers to securely copy their backups across their AWS accounts within their AWS organizations. - -## __AWS CloudFormation__ - - ### Features - - This release adds ChangeSets support for Nested Stacks. ChangeSets offer a preview of how proposed changes to a stack might impact existing resources or create new ones. - -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild - Adding Status field for Report Group - -## __AWS Outposts__ - - ### Features - - Mark the Name parameter in CreateOutpost as required. - -## __AWS S3 Control__ - - ### Features - - AWS S3 Storage Lens provides visibility into your storage usage and activity trends at the organization or account level, with aggregations by Region, storage class, bucket, and prefix. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon ElastiCache__ - - ### Features - - Adding Memcached 1.6 to parameter family - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EC2 Fleet adds support of DeleteFleets API for instant type fleets. Now you can delete an instant type fleet and terminate all associated instances with a single API call. - -# __2.15.30__ __2020-11-17__ -## __AWS Network Firewall__ - - ### Features - - (New Service) AWS Network Firewall is a managed network layer firewall service that makes it easy to secure your virtual private cloud (VPC) networks and block malicious traffic. - -## __Amazon Chime__ - - ### Features - - This release adds CRUD APIs for Amazon Chime SipMediaApplications and SipRules. It also adds the API for creating outbound PSTN calls for Amazon Chime meetings. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for user hierarchy group and user hierarchy structure. For details, see the Release Notes in the Amazon Connect Administrator Guide. - -## __Amazon Macie 2__ - - ### Features - - The Amazon Macie API now has a lastRunErrorStatus property to indicate if account- or bucket-level errors occurred during the run of a one-time classification job or the latest run of a recurring job. - -## __Amazon Relational Database Service__ - - ### Features - - Support copy-db-snapshot in the one region on cross clusters and local cluster for RDSonVmware. Add target-custom-availability-zone parameter to specify where a snapshot should be copied. - -## __Firewall Management Service__ - - ### Features - - Added Firewall Manager policy support for AWS Network Firewall resources. - -# __2.15.29__ __2020-11-16__ -## __AWS CodePipeline__ - - ### Features - - We show details about inbound executions and id of action executions in GetPipelineState API. We also add ConflictException to StartPipelineExecution, RetryStageExecution, StopPipelineExecution APIs. - -## __AWS Database Migration Service__ - - ### Features - - Adding MoveReplicationTask feature to move replication tasks between instances - -## __AWS IoT Secure Tunneling__ - - ### Features - - Support using multiple data streams per tunnel using the Secure Tunneling multiplexing feature. - -## __AWS IoT SiteWise__ - - ### Features - - This release supports Unicode characters for string operations in formulae computes in SiteWise. For more information, search for SiteWise in Amazon What's new or refer the SiteWise documentation. - -## __AWS Service Catalog__ - - ### Features - - Support import of CloudFormation stacks into Service Catalog provisioned products. - -## __Amazon QuickSight__ - - ### Features - - Adding new parameters for dashboard persistence - -## __Amazon SageMaker Service__ - - ### Features - - This feature enables customers to encrypt their Amazon SageMaker Studio storage volumes with customer master keys (CMKs) managed by them in AWS Key Management Service (KMS). - -## __Amazon Simple Notification Service__ - - ### Features - - Documentation updates for Amazon SNS. - -## __Synthetics__ - - ### Features - - AWS Synthetics now supports Environment Variables to assign runtime parameters in the canary scripts. - -# __2.15.28__ __2020-11-13__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Shield__ - - ### Features - - This release adds APIs for two new features: 1) Allow customers to bundle resources into protection groups and treat as a single unit. 2) Provide per-account event summaries to all AWS customers. - -## __Amazon Textract__ - - ### Features - - AWS Textract now allows customers to specify their own KMS key to be used for asynchronous jobs output results, AWS Textract now also recognizes handwritten text from English documents. - -## __Elastic Load Balancing__ - - ### Features - - Adds dualstack support for Network Load Balancers (TCP/TLS only), an attribute for WAF fail open for Application Load Balancers, and an attribute for connection draining for Network Load Balancers. - -# __2.15.27__ __2020-11-12__ -## __AWS IoT__ - - ### Features - - This release adds a batchMode parameter to the IotEvents, IotAnalytics, and Firehose actions which allows customers to send an array of messages to the corresponding services - -## __AWS RoboMaker__ - - ### Features - - This release introduces Robomaker Worldforge TagsOnCreate which allows customers to tag worlds as they are being generated by providing the tags while configuring a world generation job. - -## __AWS Service Catalog App Registry__ - - ### Features - - AWS Service Catalog AppRegistry provides a repository of your applications, their resources, and the application metadata that you use within your enterprise. - -## __Amazon Lex Model Building Service__ - - ### Features - - Lex now supports es-ES, it-IT, fr-FR and fr-CA locales - -## __Amazon Lightsail__ - - ### Features - - This release adds support for Amazon Lightsail container services. You can now create a Lightsail container service, and deploy Docker images to it. - -## __Amazon Personalize Runtime__ - - ### Features - - Adds support to use dynamic filters with Personalize. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new Australian English female voice - Olivia. Olivia is available as Neural voice only. - -# __2.15.26__ __2020-11-11__ -## __AWS Amplify__ - - ### Features - - Whereas previously custom headers were set via the app's buildspec, custom headers can now be set directly on the Amplify app for both ci/cd and manual deploy apps. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for Automated ABR encoding and improved the reliability of embedded captions in accelerated outputs. - -## __AWS Glue DataBrew__ - - ### Features - - This is the initial SDK release for AWS Glue DataBrew. DataBrew is a visual data preparation tool that enables users to clean and normalize data without writing any code. - -## __AWS Service Catalog__ - - ### Features - - Adding support to remove a Provisioned Product launch role via UpdateProvisionedProductProperties - -## __Amazon Forecast Service__ - - ### Features - - Providing support of custom quantiles in CreatePredictor API. - -## __Amazon QuickSight__ - - ### Features - - QuickSight now supports Column-level security and connecting to Oracle data source. - -## __Netty NIO HTTP Client__ - - ### Features - - Upgrade Netty libraries to `4.1.53.Final`, and `netty-tcnative-boringssl-static` to `2.0.34.Final`. - - - ### Bugfixes - - Fix a bug where the Netty HTTP client can leak memory when a response stream is cancelled prematurely but the upstream publisher continues to invoke onNext for some time before stopping. Fixes [#2051](https://github.com/aws/aws-sdk-java-v2/issues/2051). - -# __2.15.25__ __2020-11-10__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix default client error to have spaces between words. - - Contributed by: [@frosforever](https://github.com/frosforever) - - Replaced class loading from Thread.currentThread().getContextClassLoader() to ClassLoaderHelper in ProfileCredentialsUtils and WebIdentityCredentialsUtils, since it was causing Class not found error. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Gateway Load Balancer VPC endpoints and VPC endpoint services - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Add SessionId as a filter for DescribeSessions API - -## __Auto Scaling__ - - ### Features - - Documentation updates and corrections for Amazon EC2 Auto Scaling API Reference and SDKs. - -## __Elastic Load Balancing__ - - ### Features - - Added support for Gateway Load Balancers, which make it easy to deploy, scale, and run third-party virtual networking appliances. - -## __Contributors__ -Special thanks to the following contributors to this release: - -[@frosforever](https://github.com/frosforever) -# __2.15.24__ __2020-11-09__ -## __AWS DataSync__ - - ### Features - - DataSync now enables customers to adjust the network bandwidth used by a running AWS DataSync task. - -## __AWS IoT Analytics__ - - ### Features - - AWS IoT Analytics now supports Late Data Notifications for datasets, dataset content creation using previous version IDs, and includes the LastMessageArrivalTime attribute for channels and datastores. - -## __AWS Storage Gateway__ - - ### Features - - Added bandwidth rate limit schedule for Tape and Volume Gateways - -## __Amazon DynamoDB__ - - ### Features - - This release adds supports for exporting Amazon DynamoDB table data to Amazon S3 to perform analytics at any scale. - -## __Amazon EC2 Container Service__ - - ### Features - - This release provides native support for specifying Amazon FSx for Windows File Server file systems as volumes in your Amazon ECS task definitions. - -## __Amazon Elasticsearch Service__ - - ### Features - - Adding support for package versioning in Amazon Elasticsearch Service - -## __Amazon FSx__ - - ### Features - - This release adds support for creating DNS aliases for Amazon FSx for Windows File Server, and using AWS Backup to automate scheduled, policy-driven backup plans for Amazon FSx file systems. - -## __Amazon Macie 2__ - - ### Features - - Sensitive data findings in Amazon Macie now include enhanced location data for Apache Avro object containers and Apache Parquet files. - -## __Amazon Simple Storage Service__ - - ### Features - - S3 Intelligent-Tiering adds support for Archive and Deep Archive Access tiers; S3 Replication adds replication metrics and failure notifications, brings feature parity for delete marker replication - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - add a new filter to allow customer to filter automation executions by using resource-group which used for execute automation - -# __2.15.23__ __2020-11-06__ -## __AWS Elemental MediaLive__ - - ### Features - - Support for SCTE35 ad markers in OnCuePoint style in RTMP outputs. - -## __AWS IoT SiteWise__ - - ### Features - - Remove the CreatePresignedPortalUrl API - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Amazon Data Lifecycle Manager now supports the creation and retention of EBS-backed Amazon Machine Images - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Network card support with four new attributes: NetworkCardIndex, NetworkPerformance, DefaultNetworkCardIndex, and MaximumNetworkInterfaces, added to the DescribeInstanceTypes API. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Documentation updates for Systems Manager - -# __2.15.22__ __2020-11-05__ -## __AWS App Mesh__ - - ### Features - - This release adds circuit breaking capabilities to your mesh with connection pooling and outlier detection support. - -## __AWS Lambda__ - - ### Features - - Support Amazon MQ as an Event Source. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports providing user context in your query requests, Tokens can be JSON or JWT format. This release also introduces support for Confluence cloud datasources. - -## __Amazon CloudWatch Events__ - - ### Features - - With this release, customers can now reprocess past events by storing the events published on event bus in an encrypted archive. - -## __Amazon DynamoDB__ - - ### Features - - This release adds a new ReplicaStatus INACCESSIBLE_ENCRYPTION_CREDENTIALS for the Table description, indicating when a key used to encrypt a regional replica table is not accessible. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon Elasticsearch Service now provides the ability to define a custom endpoint for your domain and link an SSL certificate from ACM, making it easier to refer to Kibana and the domain endpoint. - -## __Amazon EventBridge__ - - ### Features - - With this release, customers can now reprocess past events by storing the events published on event bus in an encrypted archive. - -## __Amazon Fraud Detector__ - - ### Features - - Added support for deleting resources like Variables, ExternalModels, Outcomes, Models, ModelVersions, Labels, EventTypes and EntityTypes. Updated DeleteEvent operation to catch missing exceptions. - -## __Amazon Relational Database Service__ - - ### Features - - Supports a new parameter to set the max allocated storage in gigabytes for the CreateDBInstanceReadReplica API. - -# __2.15.21__ __2020-11-04__ -## __AWS IoT__ - - ### Features - - Updated API documentation and added paginator for AWS Iot Registry ListThingPrincipals API. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - Service Catalog API ListPortfolioAccess can now support a maximum PageSize of 100. - -## __AWS X-Ray__ - - ### Features - - Releasing new APIs GetInsightSummaries, GetInsightEvents, GetInsight, GetInsightImpactGraph and updating GetTimeSeriesServiceStatistics API for AWS X-Ray Insights feature - -## __AWSMarketplace Metering__ - - ### Features - - Adding Vendor Tagging Support in MeterUsage and BatchMeterUsage API. - -## __Amazon CloudWatch__ - - ### Features - - Documentation updates for monitoring - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added support for Client Connect Handler for AWS Client VPN. Fleet supports launching replacement instances in response to Capacity Rebalance recommendation. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon Elasticsearch Service now supports native SAML authentication that seamlessly integrates with the customers' existing SAML 2.0 Identity Provider (IdP). - -## __Amazon Transcribe Streaming Service__ - - ### Features - - With this release, Amazon Transcribe now supports real-time transcription from audio sources in Italian (it-IT) and German(de-DE). - -## __AmazonMQ__ - - ### Features - - Amazon MQ introduces support for RabbitMQ, a popular message-broker with native support for AMQP 0.9.1. You can now create fully-managed RabbitMQ brokers in the cloud. - -## __Auto Scaling__ - - ### Features - - Capacity Rebalance helps you manage and maintain workload availability during Spot interruptions by proactively augmenting your Auto Scaling group with a new instance before interrupting an old one. - -# __2.15.20__ __2020-11-02__ -## __AWS DynamoDB Enhanced Client__ - - ### Bugfixes - - Publisher streams returned by async resources in the DynamoDB Enhanced Client now correctly handle mapping errors when they are encountered in the stream by calling onError on the subscriber and then implicitly cancelling the subscription. Previously the stream would just permanently hang and never complete. - -## __AWS SDK for Java v2__ - - ### Features - - Added code generation validation that customer-visible identifiers are idiomatic (do not contain underscores). Services with underscores in their models can use rename customizations to fix these issues, or apply the 'underscoresInNameBehavior = ALLOW' customization. - - Upgrade `org.apache.httpcomponents:httpclient` version to `4.5.13` - - - ### Bugfixes - - Fixing race condition in EventStreamAsyncResponseTransformer. Field eventsToDeliver is a LinkedList, i.e., not thread-safe. Accesses to field eventsToDeliver are protected by synchronization on itself, but not in 1 location. - - The mapped publisher returned by SdkPublisher.map will now handle exceptions thrown by the mapping function by calling onError on its subscriber and then cancelling the subscription rather than throwing it back to the publishing process when it attempts to publish data. - -## __AWS SSO OIDC__ - - ### Deprecations - - Renamed/deprecated 'error_description' fields in exceptions in favor of 'errorDescription'. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for the following features: 1. P4d instances based on NVIDIA A100 GPUs. 2. NetworkCardIndex attribute to support multiple network cards. - -# __2.15.19__ __2020-10-30__ -## __AWS Database Migration Service__ - - ### Features - - Adding DocDbSettings to support DocumentDB as a source. - -## __AWS Elemental MediaLive__ - - ### Features - - Support for HLS discontinuity tags in the child manifests. Support for incomplete segment behavior in the media output. Support for automatic input failover condition settings. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixing FilteringSubscriber and LimitingSubscriber to complete when subscribing criteria is completed. - -## __Amazon ElastiCache__ - - ### Features - - Documentation updates for AWS ElastiCache - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API adds an eqExactMatch operator for filtering findings. With this operator you can increase the precision of your finding filters and suppression rules. - -## __Amazon Simple Notification Service__ - - ### Features - - Documentation updates for Amazon SNS - -## __Braket__ - - ### Features - - This release supports tagging for Amazon Braket quantum-task resources. It also supports tag-based access control for quantum-task APIs. - -## __EC2 Image Builder__ - - ### Features - - This feature increases the number of accounts that can be added to the Launch permissions within an Image Builder Distribution configuration. - -# __2.15.18__ __2020-10-29__ -## __AWS Marketplace Commerce Analytics__ - - ### Features - - Documentation updates for marketplacecommerceanalytics to specify four data sets which are deprecated. - -## __AWS Storage Gateway__ - - ### Features - - Adding support for access based enumeration on SMB file shares, file share visibility on SMB file shares, and file upload notifications for all file shares - -## __Amazon API Gateway__ - - ### Features - - Support disabling the default execute-api endpoint for REST APIs. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Support for Appliance mode on Transit Gateway that simplifies deployment of stateful network appliances. Added support for AWS Client VPN Self-Service Portal. - -## __Amazon Simple Email Service__ - - ### Features - - This release enables customers to manage their own contact lists and end-user subscription preferences. - -## __CodeArtifact__ - - ### Features - - Add support for tagging of CodeArtifact domain and repository resources. - -## __Elastic Load Balancing__ - - ### Features - - Application Load Balancer (ALB) now supports the gRPC protocol-version. With this release, customers can use ALB to route and load balance gRPC traffic between gRPC enabled clients and microservices. - -# __2.15.17__ __2020-10-28__ -## __AWS IoT__ - - ### Features - - This release adds support for GG-Managed Job Namespace - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed an issue where marshalling of a modeled object was not honoring the has* method on a list/map. - - Fixed an issue where the toString/equals/hashCode on a modeled object were not honoring the has* methods for lists and maps. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - AWS Nitro Enclaves general availability. Added support to RunInstances for creating enclave-enabled EC2 instances. New APIs to associate an ACM certificate with an IAM role, for enclave consumption. - -## __Amazon WorkMail__ - - ### Features - - Documentation update for Amazon WorkMail - -# __2.15.16__ __2020-10-27__ -## __AWS Glue__ - - ### Features - - AWS Glue machine learning transforms now support encryption-at-rest for labels and trained models. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.15.15__ __2020-10-26__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports indexing data from Confluence Server. - -## __Amazon Neptune__ - - ### Features - - This feature enables custom endpoints for Amazon Neptune clusters. Custom endpoints simplify connection management when clusters contain instances with different capacities and configuration settings. - -## __Amazon SageMaker Service__ - - ### Features - - This release enables customers to bring custom images for use with SageMaker Studio notebooks. - -# __2.15.14__ __2020-10-23__ -## __AWS MediaTailor__ - - ### Features - - MediaTailor now supports ad marker passthrough for HLS. Use AdMarkerPassthrough to pass EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 from origin manifests into personalized manifests. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API includes miscellaneous updates and improvements to the documentation. - -## __Amazon QuickSight__ - - ### Features - - Support description on columns. - -# __2.15.13__ __2020-10-22__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - Documentation updates for servicecatalog - -## __Access Analyzer__ - - ### Features - - API Documentation updates for IAM Access Analyzer. - -## __Amazon Appflow__ - - ### Features - - Salesforce connector creation with customer provided client id and client secret, incremental pull configuration, salesforce upsert write operations and execution ID when on-demand flows are executed. - -## __Amazon Simple Notification Service__ - - ### Features - - SNS now supports a new class of topics: FIFO (First-In-First-Out). FIFO topics provide strictly-ordered, deduplicated, filterable, encryptable, many-to-many messaging at scale. - -# __2.15.12__ __2020-10-21__ -## __AWS Global Accelerator__ - - ### Features - - This release adds support for specifying port overrides on AWS Global Accelerator endpoint groups. - -## __AWS Glue__ - - ### Features - - AWS Glue crawlers now support incremental crawls for the Amazon Simple Storage Service (Amazon S3) data source. - -## __AWS Organizations__ - - ### Features - - AWS Organizations renamed the 'master account' to 'management account'. - -## __AWSKendraFrontendService__ - - ### Features - - This release adds custom data sources: a new data source type that gives you full control of the documents added, modified or deleted during a data source sync while providing run history metrics. - -## __Amazon CloudFront__ - - ### Features - - CloudFront adds support for managing the public keys for signed URLs and signed cookies directly in CloudFront (it no longer requires the AWS root account). - -## __Amazon Elastic Compute Cloud__ - - ### Features - - instance-storage-info nvmeSupport added to DescribeInstanceTypes API - -# __2.15.11__ __2020-10-20__ -## __AWS AppSync__ - - ### Features - - Documentation updates to AppSync to correct several typos. - -## __AWS Batch__ - - ### Features - - Adding evaluateOnExit to job retry strategies. - -## __AWS Elastic Beanstalk__ - - ### Features - - EnvironmentStatus enum update to include Aborting, LinkingFrom and LinkingTo - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed an issue where requestBody and asyncRequestBody were not visible in ExecutionInterceptor.afterMarshalling. - -## __Amazon DynamoDB Enhanced Client__ - - ### Bugfixes - - Fix for handling special characters in attribute names with WRITE_IF_NOT_EXISTS update behavior - -## __Amazon S3__ - - ### Features - - Moved the logic for calculating the Content-MD5 checksums from s3 to sdk-core. As always, make sure to use a version of 'sdk-core' greater than or equal to your version of 's3'. If you use an old version of 'sdk-core' and a new version of 's3', you will receive errors that Content-MD5 is required. - - - ### Bugfixes - - Fixed an issue where metrics were not being collected for Amazon S3 (or other XML services) - -# __2.15.10__ __2020-10-19__ -## __AWS Backup__ - - ### Features - - Documentation updates for Cryo - -## __AWS Service Catalog__ - - ### Features - - An Admin can now update the launch role associated with a Provisioned Product. Admins and End Users can now view the launch role associated with a Provisioned Product. - -## __Amazon CloudFront__ - - ### Features - - Amazon CloudFront adds support for Origin Shield. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Documentation updates for docdb - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This Patch Manager release now supports Common Vulnerabilities and Exposure (CVE) Ids for missing packages via the DescribeInstancePatches API. - -## __HTTP Client SPI__ - - ### Features - - Calling the SdkHttpFullRequest uri() builder method, query parameters of the provided URI will be kept. - This can be useful in case you want to provide an already fully formed URI like a callback URI. - -# __2.15.9__ __2020-10-16__ -## __AWS Elemental MediaLive__ - - ### Features - - The AWS Elemental MediaLive APIs and SDKs now support the ability to transfer the ownership of MediaLive Link devices across AWS accounts. - -## __AWS Organizations__ - - ### Features - - Documentation updates for AWS Organizations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.15.8__ __2020-10-15__ -## __AWS Budgets__ - - ### Features - - This release introduces AWS Budgets Actions, allowing you to define an explicit response(or set of responses) to take when your budget exceeds it's action threshold. - -## __AWS Cost Explorer Service__ - - ### Features - - This release improves email validation for subscriptions on the SDK endpoints. - -## __AWS Database Migration Service__ - - ### Features - - When creating Endpoints, Replication Instances, and Replication Tasks, the feature provides you the option to specify friendly name to the resources. - -## __AWS Glue__ - - ### Features - - API Documentation updates for Glue Get-Plan API - -## __AWS Ground Station__ - - ### Features - - Adds error message attribute to DescribeContact DataflowDetails - -## __AWS IoT__ - - ### Features - - Add new variable, lastStatusChangeDate, to DescribeDomainConfiguration API - -## __AWS Lambda Maven Archetype__ - - ### Bugfixes - - Fixed an issue where archetype generation failed with latest maven-archetype-plugin. See [#1981](https://github.com/aws/aws-sdk-java-v2/issues/1981) - -## __AWS SDK for Java v2__ - - ### Features - - Add support for plus (+) character in profile names - - Updated service endpoint metadata. - -## __AWS Transfer Family__ - - ### Features - - Add support to associate VPC Security Groups at server creation. - -## __AWS X-Ray__ - - ### Features - - Enhancing CreateGroup, UpdateGroup, GetGroup and GetGroups APIs to support configuring X-Ray Insights Notifications. Adding TraceLimit information into X-Ray BatchGetTraces API response. - -## __Access Analyzer__ - - ### Features - - This release adds support for the ApplyArchiveRule api in IAM Access Analyzer. The ApplyArchiveRule api allows users to apply an archive rule retroactively to existing findings in an analyzer. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API adds support for pausing and resuming classification jobs. Also, sensitive data findings now include location data for up to 15 occurrences of sensitive data. - -## __Amazon Rekognition__ - - ### Features - - This SDK Release introduces new API (DetectProtectiveEquipment) for Amazon Rekognition. This release also adds ServiceQuotaExceeded exception to Amazon Rekognition IndexFaces API. - -## __Amazon Relational Database Service__ - - ### Features - - Return tags for all resources in the output of DescribeDBInstances, DescribeDBSnapshots, DescribeDBClusters, and DescribeDBClusterSnapshots API operations. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This Patch Manager release now supports searching for available packages from Amazon Linux and Amazon Linux 2 via the DescribeAvailablePatches API. - -## __Amazon WorkMail__ - - ### Features - - Add CreateOrganization and DeleteOrganization API operations. - -## __Amazon WorkSpaces__ - - ### Features - - Documentation updates for WorkSpaces - -# __2.15.7__ __2020-10-09__ -## __AWS Amplify__ - - ### Features - - Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval - enabling can make code changes can take up to 10 minutes to roll out. - -## __AWS Elemental MediaLive__ - - ### Features - - WAV audio output. Extracting ancillary captions in MP4 file inputs. Priority on channels feeding a multiplex (higher priority channels will tend to have higher video quality). - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - This new API takes either a ProvisonedProductId or a ProvisionedProductName, along with a list of 1 or more output keys and responds with the (key,value) pairs of those outputs. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - This release introduces a new Amazon EKS error code: "ClusterUnreachable" - -## __Amazon Import/Export Snowball__ - - ### Features - - We added new APIs to allow customers to better manage their device shipping. You can check if your shipping label expired, generate a new label, and tell us that you received or shipped your job. - -# __2.15.6__ __2020-10-08__ -## __AWS Cost Explorer Service__ - - ### Features - - You can now create hierarchical cost categories by choosing "Cost Category" as a dimension. You can also track the status of your cost category updates to your cost and usage information. - -## __Amazon CloudWatch Events__ - - ### Features - - Amazon EventBridge (formerly called CloudWatch Events) adds support for target Dead-letter Queues and custom retry policies. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - AWS EC2 RevokeSecurityGroupIngress and RevokeSecurityGroupEgress APIs will return IpPermissions which do not match with any existing IpPermissions for security groups in default VPC and EC2-Classic. - -## __Amazon EventBridge__ - - ### Features - - Amazon EventBridge adds support for target Dead Letter Queues (DLQs) and custom retry policies. - -## __Amazon Rekognition__ - - ### Features - - This release provides location information for the manifest validation files. - -## __Amazon Relational Database Service__ - - ### Features - - Supports a new parameter to set the max allocated storage in gigabytes for restore database instance from S3 and restore database instance to a point in time APIs. - -## __Amazon SageMaker Service__ - - ### Features - - This release enables Sagemaker customers to convert Tensorflow and PyTorch models to CoreML (ML Model) format. - -## __Amazon Simple Notification Service__ - - ### Features - - Documentation updates for SNS. - -# __2.15.5__ __2020-10-07__ -## __AWS Compute Optimizer__ - - ### Features - - This release enables AWS Compute Optimizer to analyze EC2 instance-level EBS read and write operations, and throughput when generating recommendations for your EC2 instances and Auto Scaling groups. - -## __AWS Cost Explorer Service__ - - ### Features - - Enables Rightsizing Recommendations to analyze and present EC2 instance-level EBS metrics when generating recommendations. Returns AccessDeniedException if the account is not opted into Rightsizing - -## __AWS Elemental MediaPackage__ - - ### Features - - AWS Elemental MediaPackage provides access logs that capture detailed information about requests sent to a customer's MediaPackage channel. - -## __Amazon ElastiCache__ - - ### Features - - This release introduces User and UserGroup to allow customers to have access control list of the Redis resources for AWS ElastiCache. This release also adds support for Outposts for AWS ElastiCache. - -# __2.15.4__ __2020-10-06__ -## __AWS Database Migration Service__ - - ### Features - - Added new S3 endpoint settings to allow partitioning CDC data by date for S3 as target. Exposed some Extra Connection Attributes as endpoint settings for relational databases as target. - -## __AWS Marketplace Catalog Service__ - - ### Features - - AWS Marketplace Catalog now supports FailureCode for change workflows to help differentiate client errors and server faults. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release supports returning additional information about local gateway virtual interfaces, and virtual interface groups. - -## __Amazon Kinesis Analytics__ - - ### Features - - Amazon Kinesis Analytics now supports StopApplication with 'force' option - -# __2.15.3__ __2020-10-05__ -## __AWS DynamoDB Enhanced Client__ - - ### Features - - Added support for attribute level custom update behaviors such as 'write if not exists'. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for AVC-I and VC3 encoding in the MXF OP1a container, Nielsen non-linear watermarking, and InSync FrameFormer frame rate conversion. - -## __AWS Glue__ - - ### Features - - AWS Glue crawlers now support Amazon DocumentDB (with MongoDB compatibility) and MongoDB collections. You can choose to crawl the entire data set or only a small sample to reduce crawl time. - -## __Amazon DynamoDB__ - - ### Features - - This release adds a new ReplicaStatus REGION DISABLED for the Table description. This state indicates that the AWS Region for the replica is inaccessible because the AWS Region is disabled. - -## __Amazon DynamoDB Streams__ - - ### Features - - Documentation updates for streams.dynamodb - -## __Amazon SageMaker Service__ - - ### Features - - This release adds support for launching Amazon SageMaker Studio in your VPC. Use AppNetworkAccessType in CreateDomain API to disable access to public internet and restrict the network traffic to VPC. - -# __2.15.2__ __2020-10-02__ -## __AWS Batch__ - - ### Features - - Support tagging for Batch resources (compute environment, job queue, job definition and job) and tag based access control on Batch APIs - -## __AWS Cloud Map__ - - ### Features - - Added support for optional parameters for DiscoverInstances API in AWS Cloud Map - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Personalize Events__ - - ### Features - - Adds new APIs to write item and user records to Datasets. - -## __Amazon Relational Database Service__ - - ### Features - - Adds the NCHAR Character Set ID parameter to the CreateDbInstance API for RDS Oracle. - -## __Amazon Simple Storage Service__ - - ### Features - - Amazon S3 Object Ownership is a new S3 feature that enables bucket owners to automatically assume ownership of objects that are uploaded to their buckets by other AWS Accounts. - -## __Apache HTTP Client__ - - ### Bugfixes - - Fixed an issue in Apache HTTP client where a request with path parameter as a single slash threw invalid host name error. - -## __Elastic Load Balancing__ - - ### Features - - This release adds support for tagging listeners, rules, and target groups on creation. This release also supported tagging operations through tagging api's for listeners and rules. - -# __2.15.1__ __2020-10-01__ -## __AWS AppSync__ - - ### Features - - Exposes the wafWebAclArn field on GraphQL api records. The wafWebAclArn field contains the amazon resource name of a WAF Web ACL if the AWS AppSync API is associated with one. - -## __AWS Glue__ - - ### Features - - Adding additional optional map parameter to get-plan api - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAFV2__ - - ### Features - - AWS WAF is now available for AWS AppSync GraphQL APIs. AWS WAF protects against malicious attacks with AWS Managed Rules or your own custom rules. For more information see the AWS WAF Developer Guide. - -## __Amazon Elastic MapReduce__ - - ### Features - - Documentation updates for elasticmapreduce - -## __Amazon QuickSight__ - - ### Features - - QuickSight now supports connecting to AWS Timestream data source - -## __Managed Streaming for Kafka__ - - ### Features - - Added support for Enabling Zookeeper Encryption in Transit for AWS MSK. - -# __2.15.0__ __2020-09-30__ -## __AWS DataSync__ - - ### Features - - This release enables customers to create s3 location for S3 bucket's located on an AWS Outpost. - -## __AWS Direct Connect__ - - ### Features - - Documentation updates for AWS Direct Connect. - -## __AWS IoT__ - - ### Features - - AWS IoT Rules Engine adds Timestream action. The Timestream rule action lets you stream time-series data from IoT sensors and applications to Amazon Timestream databases for time series analysis. - -## __AWS MediaConnect__ - - ### Features - - MediaConnect now supports reservations to provide a discounted rate for a specific outbound bandwidth over a period of time. - -## __AWS S3 Control__ - - ### Features - - Amazon S3 on Outposts expands object storage to on-premises AWS Outposts environments, enabling you to store and retrieve objects using S3 APIs and features. - -## __AWS SDK for Java v2__ - - ### Features - - This release introduces Waiters for the AWS SDK for Java v2! Waiters make it easier for customers to wait for a resource to transition into a desired state. It comes handy when customers are interacting with operations that are eventually consistent on the service side. For more information on Waiters, head on over to the [AWS Developer Blog](https://aws.amazon.com/blogs/developer/category/developer-tools/aws-sdk-for-java/) and check out the [Developer Guide](http://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/welcome.html). - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Added several new resource details objects. Added additional details for CloudFront distributions, IAM roles, and IAM access keys. Added a new ResourceRole attribute for resources. - -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR customers can now use EC2 placement group to influence the placement of master nodes in a high-availability (HA) cluster across distinct underlying hardware to improve cluster availability. - -## __Amazon Pinpoint__ - - ### Features - - Amazon Pinpoint - Features - Customers can start a journey based on an event being triggered by an endpoint or user. - -## __Amazon S3 on Outposts__ - - ### Features - - Amazon S3 on Outposts expands object storage to on-premises AWS Outposts environments, enabling you to store and retrieve objects using S3 APIs and features. - -## __Amazon Simple Storage Service__ - - ### Features - - Amazon S3 on Outposts expands object storage to on-premises AWS Outposts environments, enabling you to store and retrieve objects using S3 APIs and features. - -## __Application Auto Scaling__ - - ### Features - - This release extends Auto Scaling support for cluster storage of Managed Streaming for Kafka. Auto Scaling monitors and automatically expands storage capacity when a critical usage threshold is met. - -## __EC2 Image Builder__ - - ### Features - - EC2 Image Builder adds support for copying AMIs created by Image Builder to accounts specific to each Region. - -# __2.14.28__ __2020-09-29__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - Update TagResource API documentation to include Contact Flows and Routing Profiles as supported resources. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Client to Client routing for AWS Client VPN. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Simple update to description of ComplianceItemStatus. - -## __Amazon Timestream Query__ - - ### Features - - (New Service) Amazon Timestream is a fast, scalable, fully managed, purpose-built time series database that makes it easy to store and analyze trillions of time series data points per day. - -## __Amazon Timestream Write__ - - ### Features - - (New Service) Amazon Timestream is a fast, scalable, fully managed, purpose-built time series database that makes it easy to store and analyze trillions of time series data points per day. - -## __Schemas__ - - ### Features - - Added support for schemas of type JSONSchemaDraft4. Added ExportSchema API that converts schemas in AWS Events registry and Discovered schemas from OpenApi3 to JSONSchemaDraft4. - -# __2.14.27__ __2020-09-28__ -## __Amazon Relational Database Service__ - - ### Features - - This release adds the InsufficientAvailableIPsInSubnetFault error for RDS Proxy. - -## __Application Auto Scaling__ - - ### Features - - This release extends Application Auto Scaling support to AWS Comprehend Entity Recognizer endpoint, allowing automatic updates to provisioned Inference Units to maintain targeted utilization level. - -# __2.14.26__ __2020-09-25__ -## __AWS Batch__ - - ### Features - - Support custom logging, executionRole, secrets, and linuxParameters (initProcessEnabled, maxSwap, swappiness, sharedMemorySize, and tmpfs). Also, add new context keys for awslogs. - -## __AWS Config__ - - ### Features - - Make the delivery-s3-bucket as an optional parameter for conformance packs and organizational conformance packs - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Security Token Service__ - - ### Features - - Documentation update for AssumeRole error - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Documentation updates for docdb - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release supports returning additional information about local gateway resources, such as the local gateway route table. - -## __Amazon Fraud Detector__ - - ### Features - - Increased maximum length of eventVariables values for GetEventPrediction from 256 to 1024. - -# __2.14.25__ __2020-09-24__ -## __AWS Amplify__ - - ### Features - - Allow Oauth Token in CreateApp call to be a maximum of 1000 characters instead of 100 - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed an issue where successful JSON service responses were required to include a payload (fixes NullPointerException originating from JsonProtocolUnmarshaller). - - Fixed an issue with XML services, where the service responding with no payload would treat the payload as empty. Now, empty payloads will properly be populated within the XML response as "null". - -## __AWS Savings Plans__ - - ### Features - - Introducing Queued SavingsPlans that will enable customers to queue their purchase request of Savings Plans for future dates. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Amazon EKS now supports configuring your cluster's service CIDR during cluster creation. - -## __Amazon Textract__ - - ### Features - - AWS Textract now supports output results for asynchronous jobs to customer specified s3 bucket. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe now supports WebM, OGG, AMR and AMR-WB as input formats. You can also specify an output key as a location within your S3 buckets to store the output of your transcription jobs. - -## __Synthetics__ - - ### Features - - AWS Synthetics now supports AWS X-Ray Active Tracing feature. RunConfig is now an optional parameter with timeout updated from (60 - 900 seconds) to (3 - 840 seconds). - -# __2.14.24__ __2020-09-23__ -## __AWS Backup__ - - ### Features - - This release allows customers to enable or disable advanced backup settings in backup plan. As part of this feature AWS Backup added support for Windows VSS backup option for EC2 resources. - -## __AWS Cost Explorer Service__ - - ### Features - - This release provides access to Cost Anomaly Detection Public Preview APIs. Cost Anomaly Detection finds cost anomalies based on your historical cost and usage using Machine Learning models. - -## __AWS DynamoDB Enhanced Client__ - - ### Bugfixes - - Fixed incorrect 'duplicate key' error triggered when flattening a TableSchema that has key tags and more than one attribute. - -## __Amazon QuickSight__ - - ### Features - - Added Sheet information to DescribeDashboard, DescribeTemplate and DescribeAnalysis API response. - -## __Amazon Translate__ - - ### Features - - Improvements to DeleteTerminology API. - -# __2.14.23__ __2020-09-22__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Formal parameter names of sychronous streaming methods were aligned with their javadocs. - - This change makes the `FileStoreTlsKeyManagersProvider` and `SystemPropertyTlsKeyManagersProvider` respect the `ssl.KeyManagerFactory.algorithm` when instantiating the `KeyManagerFactory` rather than always using the hardcoded value of `SunX509`. - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend integrates with Amazon SageMaker GroundTruth to allow its customers to annotate their datasets using GroundTruth and train their models using Comprehend Custom APIs. - -## __Amazon DynamoDB Streams__ - - ### Features - - Documentation updates for streams.dynamodb - -## __Amazon Lex Model Building Service__ - - ### Features - - Lex now supports es-US locales - -## __Amazon WorkMail__ - - ### Features - - Adding support for Mailbox Export APIs - -# __2.14.22__ __2020-09-21__ -## __AWS Glue__ - - ### Features - - Adding support to update multiple partitions of a table in a single request - -## __AWS IoT SiteWise__ - - ### Features - - This release supports IAM mode for SiteWise Monitor portals - -## __AWS Resource Groups__ - - ### Features - - Documentation updates and corrections for Resource Groups API Reference and SDKs. - -## __AWS Resource Groups Tagging API__ - - ### Features - - Documentation updates for the Resource Groups Tagging API. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch Events__ - - ### Features - - Add support for Redshift Data API Targets - -## __Amazon EventBridge__ - - ### Features - - Add support for Redshift Data API Targets - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for the RDS DescribeExportTasks API - -# __2.14.21__ __2020-09-18__ -## __AWS CodeStar connections__ - - ### Features - - New integration with the GitHub provider type. - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports batch operations, which allow users to start, stop, and delete multiple MediaLive resources with a single request. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Single Sign-On Admin__ - - ### Features - - Documentation updates for AWS SSO APIs. - -# __2.14.20__ __2020-09-17__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports additional file formats and metadata for FAQs. - -## __Amazon API Gateway__ - - ### Features - - Adds support for mutual TLS authentication for public regional REST Apis - -## __Amazon CloudFront__ - - ### Features - - Documentation updates for CloudFront - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now supports detecting Personally Identifiable Information (PII) entities in a document. - -## __Amazon Elasticsearch Service__ - - ### Features - - Adds support for data plane audit logging in Amazon Elasticsearch Service. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - Amazon Transcribe now supports channel identification in real-time streaming, which enables you to transcribe multi-channel streaming audio. - -## __AmazonApiGatewayV2__ - - ### Features - - Adds support for mutual TLS authentication and disableAPIExecuteEndpoint for public regional HTTP Apis - -# __2.14.19__ __2020-09-16__ -## __AWS Greengrass__ - - ### Features - - This release includes the ability to set run-time configuration for a Greengrass core. The Telemetry feature, also included in this release, can be configured via run-time configuration per core. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - Enhance DescribeProvisionedProduct API to allow useProvisionedProduct Name as Input, so customer can provide ProvisionedProduct Name instead of ProvisionedProduct Id to describe a ProvisionedProduct. - -## __Amazon Connect Service__ - - ### Features - - This release adds support for contact flows and routing profiles. For details, see the Release Notes in the Amazon Connect Administrator Guide. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Customers can now provide multiple schedules within a single Data Lifecycle Manager (DLM) policy. Each schedule supports tagging, Fast Snapshot Restore (FSR) and cross region copy individually. - -## __Amazon STS__ - - ### Features - - Make the STSCredentialsProvider stale and prefetch times configurable so clients can control when session credentials are refreshed - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - The ComplianceItemEntry Status description was updated to address Windows patches that aren't applicable. - -# __2.14.18__ __2020-09-15__ -## __AWS Budgets__ - - ### Features - - Documentation updates for Daily Cost and Usage budgets - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports CDI (Cloud Digital Interface) inputs which enable uncompressed video from applications on Elastic Cloud Compute (EC2), AWS Media Services, and from AWS partners - -## __AWS Organizations__ - - ### Features - - AWS Organizations now enables you to add tags to the AWS accounts, organizational units, organization root, and policies in your organization. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now returns confidence scores for 'document' query responses. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - T4g instances are powered by AWS Graviton2 processors - -## __Amazon SageMaker Service__ - - ### Features - - Sagemaker Ground Truth: Added support for a new Streaming feature which helps to continuously feed data and receive labels in real time. This release adds a new input and output SNS data channel. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe now supports automatic language identification, which enables you to transcribe audio files without needing to know the language in advance. - -## __Managed Streaming for Kafka__ - - ### Features - - Added new API's to support SASL SCRAM Authentication with MSK Clusters. - -# __2.14.17__ __2020-09-14__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fix a bug in the SDK where the contents of the `AsyncRequestBody` is not included in the AWS Signature Version 4 calculation, which is required for some streaming operations such as Glacier `UploadArchive' and ClouSearch Domain `UploadDocuments`. - -## __AWS Step Functions__ - - ### Features - - This release of the AWS Step Functions SDK introduces support for AWS X-Ray. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Updated API documentation and added paginators for DescribeCertificates, DescribeDBClusterParameterGroups, DescribeDBClusterParameters, DescribeDBClusterSnapshots and DescribePendingMaintenanceActions - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for the T4G instance family to the EC2 ModifyDefaultCreditSpecification and GetDefaultCreditSpecification APIs. - -## __Amazon Managed Blockchain__ - - ### Features - - Introducing support for Hyperledger Fabric 1.4. When using framework version 1.4, the state database may optionally be specified when creating peer nodes (defaults to CouchDB). - -# __2.14.16__ __2020-09-11__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon WorkSpaces__ - - ### Features - - Adds API support for WorkSpaces Cross-Region Redirection feature. - -# __2.14.15__ __2020-09-10__ -## __AWS Single Sign-On Admin__ - - ### Features - - This is an initial release of AWS Single Sign-On (SSO) Access Management APIs. This release adds support for SSO operations which could be used for managing access to AWS accounts. - -## __Amazon CloudFront__ - - ### Features - - Cloudfront adds support for Brotli. You can enable brotli caching and compression support by enabling it in your Cache Policy. - -## __Amazon Elastic Block Store__ - - ### Features - - Documentation updates for Amazon EBS direct APIs. - -## __Amazon Pinpoint__ - - ### Features - - Update SMS message model description to clearly indicate that the MediaUrl field is reserved for future use and is not supported by Pinpoint as of today. - -## __Amazon Simple Storage Service__ - - ### Features - - Bucket owner verification feature added. This feature introduces the x-amz-expected-bucket-owner and x-amz-source-expected-bucket-owner headers. - -# __2.14.14__ __2020-09-09__ -## __AWS Glue__ - - ### Features - - Adding support for partitionIndexes to improve GetPartitions performance. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Kinesis Analytics__ - - ### Features - - Kinesis Data Analytics is adding new AUTOSCALING application status for applications during auto scaling and also adding FlinkRunConfigurationDescription in the ApplicationDetails. - -## __Redshift Data API Service__ - - ### Features - - The Amazon Redshift Data API is generally available. This release enables querying Amazon Redshift data and listing various database objects. - -# __2.14.13__ __2020-09-08__ -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild - Support keyword search for test cases in DecribeTestCases API . Allow deletion of reports in the report group, before deletion of report group using the deleteReports flag. - -## __AWS Common Runtime HTTP Client__ - - ### Features - - This release includes the preview release of the AWS Common Runtime HTTP client for the AWS SDK for Java v2. The code can be found in the `aws-crt-client` module. - -## __Amazon DynamoDB Enhanced Client__ - - ### Bugfixes - - Fix for stack overflow caused by using self-referencing DynamoDB annotated classes. - -## __Amazon Lex Model Building Service__ - - ### Features - - Amazon Lex supports en-AU locale - -## __Amazon QuickSight__ - - ### Features - - Adds tagging support for QuickSight customization resources. A user can now specify a list of tags when creating a customization resource and use a customization ARN in QuickSight's tagging APIs. - -## __AmazonApiGatewayV2__ - - ### Features - - You can now secure HTTP APIs using Lambda authorizers and IAM authorizers. These options enable you to make flexible auth decisions using a Lambda function, or using IAM policies, respectively. - -## __Elastic Load Balancing__ - - ### Features - - Adds support for Application Load Balancers on Outposts. - -# __2.14.12__ __2020-09-04__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS X-Ray__ - - ### Features - - Enhancing CreateGroup, UpdateGroup, GetGroup and GetGroups APIs to support configuring X-Ray Insights - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Documentation-only updates for AWS Systems Manager - -## __Amazon WorkSpaces__ - - ### Features - - Adding support for Microsoft Office 2016 and Microsoft Office 2019 in BYOL Images - -# __2.14.11__ __2020-09-03__ -## __AWS Elemental MediaPackage__ - - ### Features - - Enables inserting a UTCTiming XML tag in the output manifest of a DASH endpoint which a media player will use to help with time synchronization. - -## __AWS Step Functions__ - - ### Features - - This release of the AWS Step Functions SDK introduces support for payloads up to 256KB for Standard and Express workflows - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now returns confidence scores for both 'answer' and 'question and answer' query responses. - -## __Amazon GuardDuty__ - - ### Features - - GuardDuty findings triggered by failed events now include the error code name within the AwsApiCallAction section. - -# __2.14.10__ __2020-09-02__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new transit gateway attachment state and resource type. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API introduces additional statistics for the size and count of Amazon S3 objects that Macie can analyze as part of a classification job. - -## __DynamoDB Enhanced Client__ - - ### Features - - Support for mapping to and from immutable Java objects using ImmutableTableSchema and StaticImmutableTableSchema. - -# __2.14.9__ __2020-09-01__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Code Generator test failures on Windows systems were fixed. - -## __AWS SecurityHub__ - - ### Features - - Added a PatchSummary object for security findings. The PatchSummary object provides details about the patch compliance status of an instance. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Add support for repository analysis based code reviews - -# __2.14.8__ __2020-08-31__ -## __AWS Backup__ - - ### Features - - Documentation updates for Cryo - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudFront__ - - ### Features - - CloudFront now supports real-time logging for CloudFront distributions. CloudFront real-time logs are more detailed, configurable, and are available in real time. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 and Spot Fleet now support modification of launch template configs for a running fleet enabling instance type, instance weight, AZ, and AMI updates without losing the current fleet ID. - -## __Amazon Simple Queue Service__ - - ### Features - - Documentation updates for SQS. - -# __2.14.7__ __2020-08-28__ -## __AWS Cost and Usage Report Service__ - - ### Features - - This release add MONTHLY as the new supported TimeUnit for ReportDefinition. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudFront__ - - ### Features - - You can now manage CloudFront's additional, real-time metrics with the CloudFront API. - -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR adds support for ICMP, port -1, in Block Public Access Exceptions and API access for EMR Notebooks execution. You can now non-interactively execute EMR Notebooks and pass input parameters. - -## __Amazon Route 53__ - - ### Features - - Documentation updates for Route 53 - -# __2.14.6__ __2020-08-27__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for WebM DASH outputs as well as H.264 4:2:2 10-bit output in MOV and MP4. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Introduces support to initiate Internet Key Exchange (IKE) negotiations for VPN connections from AWS. A user can now send the initial IKE message to their Customer Gateway (CGW) from VPN endpoints. - -## __Amazon GameLift__ - - ### Features - - GameLift FleetIQ as a standalone feature is now generally available. FleetIQ makes low-cost Spot instances viable for game hosting. Use GameLift FleetIQ with your EC2 Auto Scaling groups. - -## __Amazon Redshift__ - - ### Features - - Documentation updates for Amazon Redshift. - -# __2.14.5__ __2020-08-26__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Appflow__ - - ### Features - - Amazon AppFlow is a fully managed integration service that securely transfers data between AWS services and SaaS applications. This update releases the first version of Amazon AppFlow APIs and SDK. - -## __Amazon Route 53 Resolver__ - - ### Features - - Route 53 Resolver adds support for resolver query logs - -# __2.14.4__ __2020-08-24__ -## __AWS Database Migration Service__ - - ### Features - - Added new endpoint settings to include columns with Null and Empty value when using Kinesis and Kafka as target. Added a new endpoint setting to set maximum message size when using Kafka as target. - -## __AWS IoT SiteWise__ - - ### Features - - Add traversalDirection to ListAssociatedAssetsRequest and add portal status to ListPortalsResponse - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - For JSON protocols, when unmarshalling a response, if a member is declared to be located in the URI, the member is treated as being located in the payload instead. - -## __AWS X-Ray__ - - ### Features - - AWS X-Ray now supports tagging on sampling rules and groups. - -## __Amazon CloudWatch Logs__ - - ### Features - - Documentation updates for CloudWatch Logs - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release enables customers to use VPC prefix lists in their transit gateway route tables, and it adds support for Provisioned IOPS SSD (io2) EBS volumes. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Add string length constraints to OpsDataAttributeName and OpsFilterValue. - -## __Managed Streaming for Kafka__ - - ### Features - - Add UpdateConfiguration and DeleteConfiguration operations. - -# __2.14.3__ __2020-08-20__ -## __Amazon Chime__ - - ### Features - - Documentation updates for chime - -## __Amazon DynamoDB Streaming Client__ - - ### Bugfixes - - Fix for CRC not working correctly for compressed responses - -## __Amazon FSx__ - - ### Features - - Documentation updates for Amazon FSx - -## __AmazonApiGatewayV2__ - - ### Features - - Customers can now create Amazon API Gateway HTTP APIs that route requests to AWS AppConfig, Amazon EventBridge, Amazon Kinesis Data Streams, Amazon SQS, and AWS Step Functions. - -# __2.14.2__ __2020-08-19__ -## __AWS Lake Formation__ - - ### Features - - Adding additional field in ListPermissions API response to return RAM resource share ARN if a resource were shared through AWS RAM service. - -## __AWS Organizations__ - - ### Features - - Minor documentation updates for AWS Organizations - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - Enhance SearchProvisionedProducts API to allow queries using productName and provisioningArtifactName. Added lastProvisioningRecordId and lastSuccessfulRecordId to Read ProvisionedProduct APIs - -## __AWS Storage Gateway__ - - ### Features - - Added WORM, tape retention lock, and custom pool features for virtual tapes. - -## __Amazon Interactive Video Service__ - - ### Features - - Amazon Interactive Video Service (IVS) now offers customers the ability to create private channels, allowing customers to restrict their streams by channel or viewer. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - Amazon Transcribe and Amazon Transcribe Medical now enable you to identify different speakers in your real-time streams with speaker identification. - -# __2.14.1__ __2020-08-18__ -## __AWS CodeBuild__ - - ### Features - - Documentation updates for codebuild - -## __AWS DataSync__ - - ### Features - - DataSync support for filters as input arguments to the ListTasks and ListLocations API calls. - -## __AWS SSO Identity Store__ - - ### Features - - AWS Single Sign-On (SSO) Identity Store service provides an interface to retrieve all of your users and groups. It enables entitlement management per user or group for AWS SSO and other IDPs. - -## __AWS SecurityHub__ - - ### Features - - New details for DynamoDB tables, Elastic IP addresses, IAM policies and users, RDS DB clusters and snapshots, and Secrets Manager secrets. Added details for AWS KMS keys and RDS DB instances. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Adding the option to use a service linked role to publish events to Pinpoint. - -## __Amazon Simple Email Service__ - - ### Features - - This release includes new APIs to allow customers to add or remove email addresses from their account-level suppression list in bulk. - -# __2.14.0__ __2020-08-17__ -## __AWS Certificate Manager__ - - ### Features - - ACM provides support for the new Private CA feature Cross-account CA sharing. ACM users can issue certificates signed by a private CA belonging to another account where the CA was shared with them. - -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - ACM Private CA is launching cross-account support. This allows customers to share their private CAs with other accounts, AWS Organizations, and organizational units to issue end-entity certificates. - -## __AWS RoboMaker__ - - ### Features - - This release introduces RoboMaker Simulation WorldForge, a capability that automatically generates one or more simulation worlds. - -## __AWS SDK for Java v2__ - - ### Features - - The client-side metrics feature is out of developer preview and is now generaly available. - -## __Amazon EC2 Container Registry__ - - ### Features - - This feature adds support for pushing and pulling Open Container Initiative (OCI) artifacts. - -## __Amazon Kinesis__ - - ### Features - - Introducing ShardFilter for ListShards API to filter the shards using a position in the stream, and ChildShards support for GetRecords and SubscribeToShard API to discover children shards on shard end - -## __Amazon QuickSight__ - - ### Features - - Amazon QuickSight now supports programmatic creation and management of analyses with new APIs. - -## __Elastic Load Balancing__ - - ### Features - - Adds support for HTTP Desync Mitigation in Application Load Balancers. - - Adds support for HTTP Desync Mitigation in Classic Load Balancers. - -# __2.13.76__ __2020-08-14__ -## __AWS License Manager__ - - ### Features - - This release includes ability to enforce license assignment rules with EC2 Dedicated Hosts. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon AppStream__ - - ### Features - - Adds support for the Desktop View feature - -## __Amazon Elastic Compute Cloud__ - - ### Features - - New C5ad instances featuring AMD's 2nd Generation EPYC processors, offering up to 96 vCPUs, 192 GiB of instance memory, 3.8 TB of NVMe based SSD instance storage, and 20 Gbps in Network bandwidth - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker now supports 1) creating real-time inference endpoints using model container images from Docker registries in customers' VPC 2) AUC(Area under the curve) as AutoPilot objective metric - -## __Braket__ - - ### Features - - Fixing bug in our SDK model where device status and device type had been flipped. - -# __2.13.75__ __2020-08-13__ -## __AWS AppSync__ - - ### Features - - Documentation update for AWS AppSync support for Direct Lambda Resolvers. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Adding ability to customize expiry for Refresh, Access and ID tokens. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added MapCustomerOwnedIpOnLaunch and CustomerOwnedIpv4Pool to ModifySubnetAttribute to allow CoIP auto assign. Fields are returned in DescribeSubnets and DescribeNetworkInterfaces responses. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding support for customer provided EC2 launch templates and AMIs to EKS Managed Nodegroups. Also adds support for Arm-based instances to EKS Managed Nodegroups. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API includes miscellaneous updates and improvements to the documentation. - -## __Amazon Relational Database Service__ - - ### Features - - This release allows customers to specify a replica mode when creating or modifying a Read Replica, for DB engines which support this feature. - -## __Braket__ - - ### Features - - Amazon Braket general availability with Device and Quantum Task operations. - -## __CloudWatch Metrics Publisher__ - - ### Bugfixes - - Fixed a bug where `CloudWatchPublisher#close` would not always complete flushing pending metrics before returning. - -# __2.13.74__ __2020-08-12__ -## __AWS Cloud9__ - - ### Features - - Add ConnectionType input parameter to CreateEnvironmentEC2 endpoint. New parameter enables creation of environments with SSM connection. - -## __AWS IoT__ - - ### Features - - Audit finding suppressions: Device Defender enables customers to turn off non-compliant findings for specific resources on a per check basis. - -## __AWS Lambda__ - - ### Features - - Support for creating Lambda Functions using 'java8.al2' and 'provided.al2' - -## __AWS SDK for Java v2__ - - ### Features - - Added an "unsafe" way to retrieve a byte array from `SdkBytes` and `ResponseBytes` without copying the data. - -## __AWS Transfer Family__ - - ### Features - - Adds security policies to control cryptographic algorithms advertised by your server, additional characters in usernames and length increase, and FIPS compliant endpoints in the US and Canada regions. - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend Custom Entity Recognition now supports Spanish, German, French, Italian and Portuguese and up to 25 entity types per model. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Introduces support for IPv6-in-IPv4 IPsec tunnels. A user can now send traffic from their on-premise IPv6 network to AWS VPCs that have IPv6 support enabled. - -## __Amazon FSx__ - - ### Features - - This release adds the capability to create persistent file systems for throughput-intensive workloads using Hard Disk Drive (HDD) storage and an optional read-only Solid-State Drive (SSD) cache. - -## __Amazon WorkSpaces__ - - ### Features - - Adds optional EnableWorkDocs property to WorkspaceCreationProperties in the ModifyWorkspaceCreationProperties API - -# __2.13.73__ __2020-08-11__ -## __AWS Lambda__ - - ### Features - - Support Managed Streaming for Kafka as an Event Source. Support retry until record expiration for Kinesis and Dynamodb streams event source mappings. - -## __AWS Organizations__ - - ### Features - - Minor documentation update for AWS Organizations - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release rolls back the EC2 On-Demand Capacity Reservations (ODCRs) release 1.11.831 published on 2020-07-30, which was deployed in error. - -## __Amazon Simple Storage Service__ - - ### Features - - Add support for in-region CopyObject and UploadPartCopy through S3 Access Points - -# __2.13.72__ __2020-08-10__ -## __AWS Glue__ - - ### Features - - Starting today, you can further control orchestration of your ETL workloads in AWS Glue by specifying the maximum number of concurrent runs for a Glue workflow. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Savings Plans__ - - ### Features - - Updates to the list of services supported by this API. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Remove CoIP Auto-Assign feature references. - -# __2.13.71__ __2020-08-07__ -## __AWS Glue__ - - ### Features - - AWS Glue now adds support for Network connection type enabling you to access resources inside your VPC using Glue crawlers and Glue ETL jobs. - -## __AWS Organizations__ - - ### Features - - Documentation updates for some new error reasons. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Server Migration Service__ - - ### Features - - In this release, AWS Server Migration Service (SMS) has added new features: 1. APIs to work with application and instance level validation 2. Import application catalog from AWS Application Discovery Service 3. For an application you can start on-demand replication - -## __Amazon Simple Storage Service__ - - ### Features - - Updates Amazon S3 API reference documentation. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fixed the issue where `connectionTimeToLive` was not allowed to set to zero. See [#1976](https://github.com/aws/aws-sdk-java-v2/issues/1976) - -# __2.13.70__ __2020-08-06__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release supports Wavelength resources, including carrier gateways, and carrier IP addresses. - -## __Amazon Lex Model Building Service__ - - ### Features - - Amazon Lex supports the option to enable accuracy improvements and specify an intent classification confidence score threshold. - -## __Amazon Lex Runtime Service__ - - ### Features - - Amazon Lex supports intent classification confidence scores along with a list of the top five intents. - -## __Amazon Personalize__ - - ### Features - - Add 'exploration' functionality - -## __Amazon Personalize Events__ - - ### Features - - Adds support implicit and explicit impression input - -## __Amazon Personalize Runtime__ - - ### Features - - Adds support for implicit impressions - -# __2.13.69__ __2020-08-05__ -## __AWS AppSync__ - - ### Features - - AWS AppSync releases support for Direct Lambda Resolvers. - -## __AWS Resource Groups Tagging API__ - - ### Features - - Documentation updates for the Resource Group Tagging API namespace. - -## __Amazon FSx__ - - ### Features - - Documentation updates for StorageCapacity input value format. - -## __Amazon Simple Notification Service__ - - ### Features - - Documentation updates for SNS. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe now supports custom language models, which can improve transcription accuracy for your specific use case. - -# __2.13.68__ __2020-08-04__ -## __AWS Health APIs and Notifications__ - - ### Features - - Documentation updates for health - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.13.67__ __2020-08-03__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon S3__ - - ### Bugfixes - - Fixed an issue that could cause "Data read has a different checksum than expected" errors. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Adds a waiter for CommandExecuted and paginators for various other APIs. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fixed an issue where, under rare circumstances, streaming request bytes could be misordered. - -# __2.13.66__ __2020-07-31__ -## __AWS Resource Groups Tagging API__ - - ### Features - - Updates to the list of services supported by this API. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Storage Gateway__ - - ### Features - - Add support for gateway VM deprecation dates - -## __AWS WAFV2__ - - ### Features - - Add ManagedByFirewallManager flag to the logging configuration, which indicates whether AWS Firewall Manager controls the configuration. - -## __Amazon Chime__ - - ### Features - - This release increases the CreateMeetingWithAttendee max attendee limit to 10. - -## __Amazon Personalize Runtime__ - - ### Features - - Adds support to use filters with Personalized Ranking recipe - -# __2.13.65__ __2020-07-30__ -## __AWS CodeBuild__ - - ### Features - - Adding support for BuildBatch, and CodeCoverage APIs. BuildBatch allows you to model your project environment in source, and helps start multiple builds with a single API call. CodeCoverage allows you to track your code coverage using AWS CodeBuild. - -## __AWS Organizations__ - - ### Features - - Documentation updates for AWS Organizations - -## __AWS Resource Groups__ - - ### Features - - Improved documentation for Resource Groups API operations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - This release adds support for ProvisionProduct, UpdateProvisionedProduct & DescribeProvisioningParameters by product name, provisioning artifact name and path name. In addition DescribeProvisioningParameters now returns a list of provisioning artifact outputs. - -## __Amazon CloudFront__ - - ### Features - - Documentation updates for CloudFront - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EC2 On-Demand Capacity Reservations now adds support to bring your own licenses (BYOL) of Windows operating system to launch EC2 instances. - -## __Amazon GuardDuty__ - - ### Features - - GuardDuty can now provide detailed cost metrics broken down by account, data source, and S3 resources, based on the past 30 days of usage. This new feature also supports viewing cost metrics for all member accounts as a GuardDuty master. - -## __Amazon Simple Email Service__ - - ### Features - - This release makes more API operations available to customers in version 2 of the Amazon SES API. With these additions, customers can now access sending authorization, custom verification email, and template API operations. With this release, Amazon SES is also providing new and updated APIs to allow customers to request production access. - -## __Managed Streaming for Kafka__ - - ### Features - - Amazon MSK has added a new API that allows you to reboot brokers within a cluster. - -# __2.13.64__ __2020-07-29__ -## __AWS Cloud Map__ - - ### Features - - Added new attribute AWS_EC2_INSTANCE_ID for RegisterInstance API - -## __AWS Resource Groups__ - - ### Features - - Resource Groups released a new feature that enables you to create a group with an associated configuration that specifies how other AWS services interact with the group. There are two new operations `GroupResources` and `UngroupResources` to work on a group with a configuration. In this release, you can associate EC2 Capacity Reservations with a resource group. Resource Groups also added a new request parameter `Group` to replace `GroupName` for all existing operations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release adds support for encrypting the contents of your Amazon ECR repository with customer master keys (CMKs) stored in AWS Key Management Service. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adding support to target EC2 On-Demand Capacity Reservations within an AWS Resource Group to launch EC2 instances. - -## __Amazon GuardDuty__ - - ### Features - - GuardDuty now supports S3 Data Events as a configurable data source type. This feature expands GuardDuty's monitoring scope to include S3 data plane operations, such as GetObject and PutObject. This data source is optional and can be enabled or disabled at anytime. Accounts already using GuardDuty must first enable the new feature to use it; new accounts will be enabled by default. GuardDuty masters can configure this data source for individual member accounts and GuardDuty masters associated through AWS Organizations can automatically enable the data source in member accounts. - -## __Amazon Kinesis Firehose__ - - ### Features - - This release includes a new Kinesis Data Firehose feature that supports data delivery to Https endpoint and to partners. You can now use Kinesis Data Firehose to ingest real-time data and deliver to Https endpoint and partners in a serverless, reliable, and salable manner. - -# __2.13.63__ __2020-07-28__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports several new features: EBU-TT-D captions in Microsoft Smooth outputs; interlaced video in HEVC outputs; video noise reduction (using temporal filtering) in HEVC outputs. - -## __AWS SDK for Java v2__ - - ### Features - - Slight performance improvement when metrics are disabled. - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed an issue where HTTP status code metrics were not always published for async clients. - -## __AWS SecurityHub__ - - ### Features - - Added UpdateSecurityHubConfiguration API. Security Hub now allows customers to choose whether to automatically enable new controls that are added to an existing standard that the customer enabled. For example, if you enabled Foundational Security Best Practices for an account, you can automatically enable new controls as we add them to that standard. By default, new controls are enabled. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Introduces support for tag-on-create capability for the following APIs: CreateVpnConnection, CreateVpnGateway, and CreateCustomerGateway. A user can now add tags while creating these resources. For further detail, please see AWS Tagging Strategies. - -## __Amazon Interactive Video Service__ - - ### Features - - Added a new error code, PendingVerification, to differentiate between errors caused by insufficient IAM permissions and errors caused by account verification. - -## __Amazon Relational Database Service__ - - ### Features - - Adds reporting of manual cluster snapshot quota to DescribeAccountAttributes API - -## __Auto Scaling__ - - ### Features - - Now you can enable Instance Metadata Service Version 2 (IMDSv2) or disable the instance metadata endpoint with Launch Configurations. - -## __EC2 Image Builder__ - - ### Features - - This release updates distribution configurations to allow periods in AMI names. - -# __2.13.62__ __2020-07-27__ -## __AWS DataSync__ - - ### Features - - Today AWS DataSync releases support for self-managed object storage Locations and the new TransferMode Option. - -## __AWS Database Migration Service__ - - ### Features - - Basic endpoint settings for relational databases, Preflight validation API. - -## __AWS Glue__ - - ### Features - - Add ability to manually resume workflows in AWS Glue providing customers further control over the orchestration of ETL workloads. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - m6gd, c6gd, r6gd instances are powered by AWS Graviton2 processors and support local NVMe instance storage - -## __Amazon Fraud Detector__ - - ### Features - - Moved the eventTypeName attribute for PutExternalModel API to inputConfiguration. Model ID's no longer allow hyphens. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Assorted doc ticket-fix updates for Systems Manager. - -# __2.13.61__ __2020-07-24__ -## __AWS Elemental MediaPackage__ - - ### Features - - The release adds daterange as a new ad marker option. This option enables MediaPackage to insert EXT-X-DATERANGE tags in HLS and CMAF manifests. The EXT-X-DATERANGE tag is used to signal ad and program transition events. - -## __AWS MediaConnect__ - - ### Features - - You can now disable an entitlement to stop streaming content to the subscriber's flow temporarily. When you are ready to allow content to start streaming to the subscriber's flow again, you can enable the entitlement. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra now supports sorting query results based on document attributes. Amazon Kendra also introduced an option to enclose table and column names with double quotes for database data sources. - -## __Amazon CloudWatch__ - - ### Features - - AWS CloudWatch ListMetrics now supports an optional parameter (RecentlyActive) to filter results by only metrics that have received new datapoints in the past 3 hours. This enables more targeted metric data retrieval through the Get APIs - -## __Amazon FSx__ - - ### Features - - Documentation update for FSx for Lustre - -## __Amazon Fraud Detector__ - - ### Features - - GetPrediction has been replaced with GetEventPrediction. PutExternalModel has been simplified to accept a role ARN. - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API introduces additional criteria for sorting and filtering query results for account quotas and usage statistics. - -## __Amazon SageMaker Service__ - - ### Features - - Sagemaker Ground Truth:Added support for OIDC (OpenID Connect) to authenticate workers via their own identity provider instead of through Amazon Cognito. This release adds new APIs (CreateWorkforce, DeleteWorkforce, and ListWorkforces) to SageMaker Ground Truth service. Sagemaker Neo: Added support for detailed target device description by using TargetPlatform fields - OS, architecture, and accelerator. Added support for additional compilation parameters by using JSON field CompilerOptions. Sagemaker Search: SageMaker Search supports transform job details in trial components. - -## __AmazonMQ__ - - ### Features - - Amazon MQ now supports LDAP (Lightweight Directory Access Protocol), providing authentication and authorization of Amazon MQ users via a customer designated LDAP server. - -# __2.13.60__ __2020-07-23__ -## __AWS Config__ - - ### Features - - Adding service linked configuration aggregation support along with new enums for config resource coverage - -## __AWS Direct Connect__ - - ### Features - - Documentation updates for AWS Direct Connect - -## __AWS Glue__ - - ### Features - - Added new ConnectionProperties: "KAFKA_SSL_ENABLED" (to toggle SSL connections) and "KAFKA_CUSTOM_CERT" (import CA certificate file) - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon FSx__ - - ### Features - - Adds support for AutoImport, a new FSx for Lustre feature that allows customers to configure their FSx file system to automatically update its contents when new objects are added to S3 or existing objects are overwritten. - -## __Amazon Lightsail__ - - ### Features - - This release adds support for Amazon Lightsail content delivery network (CDN) distributions and SSL/TLS certificates. - -## __Amazon WorkSpaces__ - - ### Features - - Added UpdateWorkspaceImagePermission API to share Amazon WorkSpaces images across AWS accounts. - -# __2.13.59__ __2020-07-22__ -## __AWS Elemental MediaLive__ - - ### Features - - The AWS Elemental MediaLive APIs and SDKs now support the ability to get thumbnails for MediaLive devices that are attached or not attached to a channel. Previously, this thumbnail feature was available only on the console. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon QuickSight__ - - ### Features - - New API operations - GetSessionEmbedUrl, CreateNamespace, DescribeNamespace, ListNamespaces, DeleteNamespace, DescribeAccountSettings, UpdateAccountSettings, CreateAccountCustomization, DescribeAccountCustomization, UpdateAccountCustomization, DeleteAccountCustomization. Modified API operations to support custom permissions restrictions - RegisterUser, UpdateUser, UpdateDashboardPermissions - -# __2.13.58__ __2020-07-21__ -## __Amazon CodeGuru Profiler__ - - ### Features - - Amazon CodeGuru Profiler now supports resource tagging APIs, tags-on-create and tag-based access control features. You can now tag profiling groups for better resource and access control management. - -# __2.13.57__ __2020-07-20__ -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild adds support for Session Manager and Windows 2019 Environment type - -## __AWS Ground Station__ - - ### Features - - Adds optional MTU property to DataflowEndpoint and adds contact source and destination details to DescribeContact response. - -## __Amazon CloudFront__ - - ### Features - - CloudFront adds support for cache policies and origin request policies. With these new policies, you can now more granularly control the query string, header, and cookie values that are included in the cache key and in requests that CloudFront sends to your origin. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added support for tag-on-create for CreateVpcPeeringConnection and CreateRouteTable. You can now specify tags when creating any of these resources. For more information about tagging, see AWS Tagging Strategies. Add poolArn to the response of DescribeCoipPools. - -## __Amazon Fraud Detector__ - - ### Features - - Introduced flexible model training dataset requirements for Online Fraud Insights so that customers can choose any two inputs to train a model instead of being required to use 'email' and 'IP address' at minimum. Added support for resource ARNs, resource tags, resource-based IAM policies and identity-based policies that limit access to a resource based on tags. Added support for customer-managed customer master key (CMK) data encryption. Added new Event Type, Entity Type, and Label APIs. An event type defines the structure for an event sent to Amazon Fraud Detector, including the variables sent as part of the event, the entity performing the event, and the labels that classify the event. Introduced the GetEventPrediction API. - -## __Amazon Relational Database Service__ - - ### Features - - Add a new SupportsParallelQuery output field to DescribeDBEngineVersions. This field shows whether the engine version supports parallelquery. Add a new SupportsGlobalDatabases output field to DescribeDBEngineVersions and DescribeOrderableDBInstanceOptions. This field shows whether global database is supported by engine version or the combination of engine version and instance class. - -## __Firewall Management Service__ - - ### Features - - Added managed policies for auditing security group rules, including the use of managed application and protocol lists. - -# __2.13.56__ __2020-07-17__ -## __AWS AppSync__ - - ### Features - - Documentation update to Cachingconfig.cachingKeys to include $context.source as a valid value. - -## __AWS Elastic Beanstalk__ - - ### Features - - Add waiters for `EnvironmentExists`, `EnvironmentUpdated`, and `EnvironmentTerminated`. Add paginators for `DescribeEnvironmentManagedActionHistory` and `ListPlatformVersions`. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - This release adds a set of Amazon Connect APIs to programmatically control call recording with start, stop, pause and resume functions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2 - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API includes miscellaneous updates and improvements to the documentation. - -## __Application Auto Scaling__ - - ### Features - - Documentation updates for Application Auto Scaling - -# __2.13.55__ __2020-07-15__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Interactive Video Service__ - - ### Features - - Introducing Amazon Interactive Video Service - a managed live streaming solution that is quick and easy to set up, and ideal for creating interactive video experiences. - -# __2.13.54__ __2020-07-09__ -## __AWS Amplify__ - - ### Features - - Documentation update to the introduction text to specify that this is the Amplify Console API. - -## __AWS App Mesh__ - - ### Features - - AppMesh now supports Ingress which allows resources outside a mesh to communicate to resources that are inside the mesh. See https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html - -## __AWS CloudHSM V2__ - - ### Features - - Documentation updates for cloudhsmv2 - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Secrets Manager__ - - ### Features - - Adds support for filters on the ListSecrets API to allow filtering results by name, tag key, tag value, or description. Adds support for the BlockPublicPolicy option on the PutResourcePolicy API to block resource policies which grant a wide range of IAM principals access to secrets. Adds support for the ValidateResourcePolicy API to validate resource policies for syntax and prevent lockout error scenarios and wide access to secrets. - -## __AWS WAFV2__ - - ### Features - - Added the option to use IP addresses from an HTTP header that you specify, instead of using the web request origin. Available for IP set matching, geo matching, and rate-based rule count aggregation. - -## __Alexa For Business__ - - ### Features - - Added support for registering an AVS device directly to a room using RegisterAVSDevice with a room ARN - -## __Amazon CloudWatch Events__ - - ### Features - - Amazon CloudWatch Events/EventBridge adds support for API Gateway as a target. - -## __Amazon Comprehend__ - - ### Features - - AWS Comprehend now supports Real-time Analysis with Custom Entity Recognition. - -## __Amazon DynamoDB Enhanced Client__ - - ### Features - - Support converting "0" and "1" numbers read from DynamoDB to Boolean and AtomicBoolean. - -## __Amazon Elastic Block Store__ - - ### Features - - This release introduces the following set of actions for the EBS direct APIs: 1. StartSnapshot, which creates a new Amazon EBS snapshot. 2. PutSnapshotBlock, which writes a block of data to a snapshot. 3. CompleteSnapshot, which seals and completes a snapshot after blocks of data have been written to it. - -## __Amazon EventBridge__ - - ### Features - - Amazon EventBridge adds support for API Gateway as a target. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds the DeleteHumanTaskUi API to Amazon Augmented AI - -## __Amazon Simple Notification Service__ - - ### Features - - This release adds support for SMS origination number as an attribute in the MessageAttributes parameter for the SNS Publish API. - -# __2.13.53__ __2020-07-08__ -## __AWS Cost Explorer Service__ - - ### Features - - Customers can now see Instance Name alongside each rightsizing recommendation. - -## __AWS Organizations__ - - ### Features - - We have launched a self-service option to make it easier for customers to manage the use of their content by AI services. Certain AI services (Amazon CodeGuru Profiler, Amazon Comprehend, Amazon Lex, Amazon Polly, Amazon Rekognition, Amazon Textract, Amazon Transcribe, and Amazon Translate), may use content to improve the service. Customers have been able to opt out of this use by contacting AWS Support, and now they can opt out on a self-service basis by setting an Organizations policy for all or an individual AI service as listed above. Please refer to the technical documentation for more details. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - EC2 Spot now enables customers to tag their Spot Instances Requests on creation. - -## __Amazon Forecast Service__ - - ### Features - - With this release, Amazon Forecast now supports the ability to add a tag to any resource via the launch of three new APIs: TagResouce, UntagResource and ListTagsForResource. A tag is a simple label consisting of a customer-defined key and an optional value allowing for easier resource management. - -# __2.13.52__ __2020-07-07__ -## __AWS Glue__ - - ### Features - - AWS Glue Data Catalog supports cross account sharing of tables through AWS Lake Formation - -## __AWS Lake Formation__ - - ### Features - - AWS Lake Formation supports sharing tables with other AWS accounts and organizations - -## __AWS SDK for Java v2__ - - ### Features - - This release includes the preview release of the client-side metrics for the AWS SDK for Java v2. The SPI can be found in the `metrics-spi` module, and this release also includes a metric publisher for CloudWatch in `cloudwatch-metric-publisher`. See our post over at the [AWS Developer Blog](https://aws.amazon.com/blogs/developer/category/developer-tools/aws-sdk-for-java/) for additional information. - - Updated service endpoint metadata. - -## __AWS Storage Gateway__ - - ### Features - - Adding support for file-system driven directory refresh, Case Sensitivity toggle for SMB File Shares, and S3 Prefixes and custom File Share names - -## __Amazon CloudFront__ - - ### Features - - Amazon CloudFront adds support for a new security policy, TLSv1.2_2019. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - DescribeAvailabilityZones now returns additional data about Availability Zones and Local Zones. - -## __Amazon Elastic File System__ - - ### Features - - This release adds support for automatic backups of Amazon EFS file systems to further simplify backup management. - -# __2.13.51__ __2020-07-06__ -## __AWS IoT SiteWise__ - - ### Features - - This release supports optional start date and end date parameters for the GetAssetPropertyValueHistory API. - -## __Amazon QuickSight__ - - ### Features - - Add Theme APIs and update Dashboard APIs to support theme overrides. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for Amazon RDS on AWS Outposts. - -# __2.13.50__ __2020-07-02__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Connect Service__ - - ### Features - - Documentation updates for Amazon Connect. - -## __Amazon ElastiCache__ - - ### Features - - Documentation updates for elasticache - -# __2.13.49__ __2020-07-01__ -## __AWS AppSync__ - - ### Features - - AWS AppSync supports new 12xlarge instance for server-side API caching - -## __AWS CodeBuild__ - - ### Features - - Support build status config in project source - -## __AWS SecurityHub__ - - ### Features - - This release adds additional details for findings. There are now finding details for auto scaling groups, EC2 volumes, and EC2 VPCs. You can identify detected vulnerabilities and provide related network paths. - -## __Amazon Chime__ - - ### Features - - This release supports third party emergency call routing configuration for Amazon Chime Voice Connectors. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds the exceptions KMSKeyNotAccessibleFault and InvalidDBClusterStateFault to the Amazon RDS ModifyDBInstance API. - -## __EC2 Image Builder__ - - ### Features - - EC2 Image Builder adds support for encrypted AMI distribution. - -# __2.13.48__ __2020-06-30__ -## __AWS Comprehend Medical__ - - ### Features - - This release adds the relationships between MedicalCondition and Anatomy in DetectEntitiesV2 API. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix marshaller binding for input event streams when member name and shape name are not equal. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Release GitHub Enterprise Server source provider integration - -## __Amazon EC2 Container Registry__ - - ### Features - - Add a new parameter (ImageDigest) and a new exception (ImageDigestDoesNotMatchException) to PutImage API to support pushing image by digest. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added support for tag-on-create for CreateVpc, CreateEgressOnlyInternetGateway, CreateSecurityGroup, CreateSubnet, CreateNetworkInterface, CreateNetworkAcl, CreateDhcpOptions and CreateInternetGateway. You can now specify tags when creating any of these resources. For more information about tagging, see AWS Tagging Strategies. - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for rds - -# __2.13.47__ __2020-06-29__ -## __AWS CodeStar connections__ - - ### Features - - Updated and new APIs in support of hosts for connections to installed provider types. New integration with the GitHub Enterprise Server provider type. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CodeGuru Profiler__ - - ### Features - - Amazon CodeGuru Profiler is now generally available. The Profiler helps developers to optimize their software, troubleshoot issues in production, and identify their most expensive lines of code. As part of general availability, we are launching: Profiling of AWS Lambda functions, Anomaly detection in CPU profiles, Color My Code on flame graphs, Expanding presence to 10 AWS regions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Virtual Private Cloud (VPC) customers can now create and manage their own Prefix Lists to simplify VPC configurations. - -## __Auto Scaling__ - - ### Features - - Documentation updates for Amazon EC2 Auto Scaling. - -# __2.13.46__ __2020-06-26__ -## __AWS CloudFormation__ - - ### Features - - ListStackInstances and DescribeStackInstance now return a new `StackInstanceStatus` object that contains `DetailedStatus` values: a disambiguation of the more generic `Status` value. ListStackInstances output can now be filtered on `DetailedStatus` using the new `Filters` parameter. - -## __AWS Database Migration Service__ - - ### Features - - This release contains miscellaneous API documentation updates for AWS DMS in response to several customer reported issues. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Don't require Authorization for InitiateAuth and RespondToAuthChallenge. - -## __Amazon QuickSight__ - - ### Features - - Added support for cross-region DataSource credentials copying. - -## __Amazon SageMaker Service__ - - ### Features - - The new 'ModelClientConfig' parameter being added for CreateTransformJob and DescribeTransformJob api actions enable customers to configure model invocation related parameters such as timeout and retry. - -# __2.13.45__ __2020-06-25__ -## __AWS DynamoDB Enhanced Client__ - - ### Bugfixes - - Fixed a bug causing a NullPointerException to be thrown in the enhanced DeleteItem operation if a conditionExpression was given with null attributeNames or null attributeValues. - -## __AWS Glue__ - - ### Features - - This release adds new APIs to support column level statistics in AWS Glue Data Catalog - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Added support for tag-on-create for Host Reservations in Dedicated Hosts. You can now specify tags when you create a Host Reservation for a Dedicated Host. For more information about tagging, see AWS Tagging Strategies. - -# __2.13.44__ __2020-06-24__ -## __AWS Amplify__ - - ### Features - - This release of AWS Amplify Console introduces support for automatically creating custom subdomains for branches based on user-defined glob patterns, as well as automatically cleaning up Amplify branches when their corresponding git branches are deleted. - -## __AWS Backup__ - - ### Features - - Customers can now manage and monitor their backups in a policied manner across their AWS accounts, via an integration between AWS Backup and AWS Organizations - -## __AWS CodeCommit__ - - ### Features - - This release introduces support for reactions to CodeCommit comments. Users will be able to select from a pre-defined list of emojis to express their reaction to any comments. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for iam - -## __AWS Organizations__ - - ### Features - - This release adds support for a new backup policy type for AWS Organizations. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR customers can now set allocation strategies for On-Demand and Spot instances in their EMR clusters with instance fleets. These allocation strategies use real-time capacity insights to provision clusters faster and make the most efficient use of available spare capacity to allocate Spot instances to reduce interruptions. - -## __Amazon FSx__ - - ### Features - - This release adds the capability to take highly-durable, incremental backups of your FSx for Lustre persistent file systems. This capability makes it easy to further protect your file system data and to meet business and regulatory compliance requirements. - -## __Amazon Honeycode__ - - ### Features - - Introducing Amazon Honeycode - a fully managed service that allows you to quickly build mobile and web apps for teams without programming. - -## __Auto Scaling__ - - ### Features - - Documentation updates for Amazon EC2 Auto Scaling. - -# __2.13.43__ __2020-06-23__ -## __AWS MediaTailor__ - - ### Features - - AWS Elemental MediaTailor SDK now allows configuration of Bumper. - -## __AWS Organizations__ - - ### Features - - Added a new error message to support the requirement for a Business License on AWS accounts in China to create an organization. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.13.42__ __2020-06-22__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds Tag On Create feature support for the ImportImage, ImportSnapshot, ExportImage and CreateInstanceExportTask APIs. - -## __Amazon Elastic MapReduce__ - - ### Features - - Adding support for MaximumCoreCapacityUnits parameter for EMR Managed Scaling. It allows users to control how many units/nodes are added to the CORE group/fleet. Remaining units/nodes are added to the TASK groups/fleet in the cluster. - -## __Amazon Rekognition__ - - ### Features - - This update adds the ability to detect black frames, end credits, shots, and color bars in stored videos - -## __Amazon Relational Database Service__ - - ### Features - - Added paginators for various APIs. - -## __Amazon Simple Queue Service__ - - ### Features - - AWS SQS adds pagination support for ListQueues and ListDeadLetterSourceQueues APIs - -# __2.13.41__ __2020-06-19__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports Input Prepare schedule actions. This feature improves existing input switching by allowing users to prepare an input prior to switching to it. - -## __AWS OpsWorks CM__ - - ### Features - - Documentation updates for AWS OpsWorks CM. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon ElastiCache__ - - ### Features - - Documentation updates for elasticache - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support to tag elastic-gpu on the RunInstances api - -# __2.13.40__ __2020-06-18__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for NexGuard FileMarker SDK, which allows NexGuard partners to watermark proprietary content in mezzanine and OTT streaming contexts. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Support__ - - ### Features - - Documentation updates for support - -## __AWSMarketplace Metering__ - - ### Features - - Documentation updates for meteringmarketplace - -## __Amazon Relational Database Service__ - - ### Features - - Adding support for global write forwarding on secondary clusters in an Aurora global database. - -## __Amazon Route 53__ - - ### Features - - Added a new ListHostedZonesByVPC API for customers to list all the private hosted zones that a specified VPC is associated with. - -## __Amazon Simple Email Service__ - - ### Features - - You can now configure Amazon SES to send event notifications when the delivery of an email is delayed because of a temporary issue. For example, you can receive a notification if the recipient's inbox is full, or if there's a temporary problem with the receiving email server. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Added offset support for specifying the number of days to wait after the date and time specified by a CRON expression before running the maintenance window. - -# __2.13.39__ __2020-06-17__ -## __AWS App Mesh__ - - ### Features - - Adds support for route and virtual node listener timeouts. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - nvmeSupport added to DescribeInstanceTypes API - -## __Amazon Import/Export Snowball__ - - ### Features - - AWS Snowcone is a portable, rugged and secure device for edge computing and data transfer. You can use Snowcone to collect, process, and move data to AWS, either offline by shipping the device to AWS or online by using AWS DataSync. With 2 CPUs and 4 GB RAM of compute and 8 TB of storage, Snowcone can run edge computing workloads and store data securely. Snowcone's small size (8.94" x 5.85" x 3.25" / 227 mm x 148.6 mm x 82.65 mm) allows you to set it next to machinery in a factory. Snowcone weighs about 4.5 lbs. (2 kg), so you can carry one in a backpack, use it with battery-based operation, and use the Wi-Fi interface to gather sensor data. Snowcone supports a file interface with NFS support. - -## __Amazon Macie 2__ - - ### Features - - This is a documentation-only update to the Amazon Macie API. This update contains miscellaneous editorial improvements to various API descriptions. - -## __Amazon Route 53__ - - ### Features - - Add PriorRequestNotComplete exception to AssociateVPCWithHostedZone API - -# __2.13.38__ __2020-06-16__ -## __AWS Data Exchange__ - - ### Features - - This release fixes a bug in the AWS Data Exchange Python and NodeJS SDKs. The 'KmsKeyArn' field in the create-job API was configured to be required instead of optional. We updated this field to be optional in this release. - -## __AWS Lambda__ - - ### Features - - Adds support for using Amazon Elastic File System (persistent storage) with AWS Lambda. This enables customers to share data across function invocations, read large reference data files, and write function output to a persistent and shared store. - -## __Amazon CloudFront__ - - ### Features - - Documentation updates for CloudFront - -## __Amazon DynamoDB Enhanced Client__ - - ### Bugfixes - - Fix an NPE in `OptionalAttributeConverter` that can happen the if the `nul()` property of the `AttributeValue` is `null`. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new US English child voice - Kevin. Kevin is available as Neural voice only. - -## __Amazon QLDB__ - - ### Features - - Documentation updates for Amazon QLDB - -## __Auto Scaling__ - - ### Features - - Introducing instance refresh, a feature that helps you update all instances in an Auto Scaling group in a rolling fashion (for example, to apply a new AMI or instance type). You can control the pace of the refresh by defining the percentage of the group that must remain running/healthy during the replacement process and the time for new instances to warm up between replacements. - -# __2.13.37__ __2020-06-15__ -## __AWS IoT__ - - ### Features - - Added support for job executions rollout configuration, job abort configuration, and job executions timeout configuration for AWS IoT Over-the-Air (OTA) Update Feature. - -## __Alexa For Business__ - - ### Features - - Adding support for optional tags in CreateBusinessReportSchedule, CreateProfile and CreateSkillGroup APIs - -## __Amazon AppConfig__ - - ### Features - - This release adds a hosted configuration source provider. Customers can now store their application configurations directly in AppConfig, without the need for an external configuration source. - -## __Amazon Chime__ - - ### Features - - feature: Chime: This release introduces the ability to create an AWS Chime SDK meeting with attendees. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Updated all AuthParameters to be sensitive. - -# __2.13.36__ __2020-06-12__ -## __AWS CloudFormation__ - - ### Features - - The following parameters now return the organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets: the OrganizationalUnitIds parameter on StackSet and the OrganizationalUnitId parameter on StackInstance, StackInstanceSummary, and StackSetOperationResultSummary - -## __AWS Glue__ - - ### Features - - You can now choose to crawl the entire table or just a sample of records in DynamoDB when using AWS Glue crawlers. Additionally, you can also specify a scanning rate for crawling DynamoDB tables. - -## __AWS SDK for Java v2 DynamoDB Enhanced Client__ - - ### Bugfixes - - Added ClientRequestToken in class TransactWriteItemsEnhancedRequest. - -## __AWS Storage Gateway__ - - ### Features - - Display EndpointType in DescribeGatewayInformation - -## __Amazon API Gateway__ - - ### Features - - Documentation updates for Amazon API Gateway - -# __2.13.35__ __2020-06-11__ -## __AWS IoT Data Plane__ - - ### Features - - As part of this release, we are introducing a new feature called named shadow, which extends the capability of AWS IoT Device Shadow to support multiple shadows for a single IoT device. With this release, customers can store different device state data into different shadows, and as a result access only the required state data when needed and reduce individual shadow size. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Avoid unnecessary copying in `AsyncRequestBody.fromBytes()` - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for deleting capacity providers. - -## __Amazon Lex Model Building Service__ - - ### Features - - This change adds the built-in AMAZON.KendraSearchIntent that enables integration with Amazon Kendra. - -## __EC2 Image Builder__ - - ### Features - - EC2 Image Builder now supports specifying a custom working directory for your build and test workflows. In addition, Image Builder now supports defining tags that are applied to ephemeral resources created by EC2 Image Builder as part of the image creation workflow. - -# __2.13.34__ __2020-06-10__ -## __AWS Compute Optimizer__ - - ### Features - - Compute Optimizer supports exporting recommendations to Amazon S3. - -## __AWS Service Catalog__ - - ### Features - - Service Catalog Documentation Update for Integration with AWS Organizations Delegated Administrator feature - -## __AWS Shield__ - - ### Features - - Corrections to the supported format for contact phone numbers and to the description for the create subscription action. - -## __Amazon AppConfig__ - - ### Features - - This release allows customers to choose from a list of predefined deployment strategies while starting deployments. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Reducing the schedule name of DLM Lifecycle policy from 500 to 120 characters. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - New C6g instances powered by AWS Graviton2 processors and ideal for running advanced, compute-intensive workloads; New R6g instances powered by AWS Graviton2 processors and ideal for running memory-intensive workloads. - -## __Amazon Lightsail__ - - ### Features - - Documentation updates for lightsail - -## __Amazon Macie 2__ - - ### Features - - This release of the Amazon Macie API removes support for the ArchiveFindings and UnarchiveFindings operations. This release also adds UNKNOWN as an encryption type for S3 bucket metadata. - -## __CodeArtifact__ - - ### Features - - Added support for AWS CodeArtifact. - -# __2.13.33__ __2020-06-09__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Transfer Family__ - - ### Features - - This release updates the API so customers can test use of Source IP to allow, deny or limit access to data in their S3 buckets after integrating their identity provider. - -# __2.13.32__ __2020-06-08__ -## __AWS Cloud Map__ - - ### Features - - Added support for tagging Service and Namespace type resources in Cloud Map - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Update javadoc annotation for AwsBasicCredentials - -## __AWS Shield__ - - ### Features - - This release adds the option for customers to identify a contact name and method that the DDoS Response Team can proactively engage when a Route 53 Health Check that is associated with a Shield protected resource fails. - -# __2.13.31__ __2020-06-05__ -## __AWS Elastic Beanstalk__ - - ### Features - - These API changes enable an IAM user to associate an operations role with an Elastic Beanstalk environment, so that the IAM user can call Elastic Beanstalk actions without having access to underlying downstream AWS services that these actions call. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - This release adds support for DescribeProduct and DescribeProductAsAdmin by product name, DescribeProvisioningArtifact by product name or provisioning artifact name, returning launch paths as part of DescribeProduct output and adds maximum length for provisioning artifact name and provisioning artifact description. - -## __Amazon API Gateway__ - - ### Features - - Amazon API Gateway now allows customers of REST APIs to skip trust chain validation for backend server certificates for HTTP and VPC Link Integration. This feature enables customers to configure their REST APIs to integrate with backends that are secured with certificates vended from private certificate authorities (CA) or certificates that are self-signed. - -## __Amazon CloudFront__ - - ### Features - - Amazon CloudFront adds support for configurable origin connection attempts and origin connection timeout. - -## __Amazon Personalize__ - - ### Features - - [Personalize] Adds ability to create and apply filters. - -## __Amazon Personalize Runtime__ - - ### Features - - [Personalize] Adds ability to apply filter to real-time recommendations - -## __Amazon Pinpoint__ - - ### Features - - This release enables additional functionality for the Amazon Pinpoint journeys feature. With this release, you can send messages through additional channels, including SMS, push notifications, and custom channels. - -## __Amazon SageMaker Runtime__ - - ### Features - - You can now specify the production variant to send the inference request to, when invoking a SageMaker Endpoint that is running two or more variants. - -# __2.13.30__ __2020-06-04__ -## __AWS Elemental MediaPackage VOD__ - - ### Features - - You can now restrict direct access to AWS Elemental MediaPackage by securing requests for VOD content using CDN authorization. With CDN authorization, content requests require a specific HTTP header and authorization code. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSMarketplace Metering__ - - ### Features - - Documentation updates for meteringmarketplace - -## __Amazon Elastic Compute Cloud__ - - ### Features - - New C5a instances, the latest generation of EC2's compute-optimized instances featuring AMD's 2nd Generation EPYC processors. C5a instances offer up to 96 vCPUs, 192 GiB of instance memory, 20 Gbps in Network bandwidth; New G4dn.metal bare metal instance with 8 NVIDIA T4 GPUs. - -## __Amazon Lightsail__ - - ### Features - - This release adds the BurstCapacityPercentage and BurstCapacityTime instance metrics, which allow you to track the burst capacity available to your instance. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - SSM State Manager support for executing an association only at specified CRON schedule after creating/updating an association. - -# __2.13.29__ __2020-06-03__ -## __AWS Direct Connect__ - - ### Features - - This release supports the virtual interface failover test, which allows you to verify that traffic routes over redundant virtual interfaces when you bring your primary virtual interface out of service. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for the encoding of VP8 or VP9 video in WebM container with Vorbis or Opus audio. - -## __AWS Glue__ - - ### Features - - Adding databaseName in the response for GetUserDefinedFunctions() API. - -## __AWS Identity and Access Management__ - - ### Features - - GenerateServiceLastAccessedDetails will now return ActionLastAccessed details for certain S3 control plane actions - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon ElastiCache__ - - ### Features - - This release improves the Multi-AZ feature in ElastiCache by adding a separate flag and proper validations. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon Elasticsearch Service now offers support for cross-cluster search, enabling you to perform searches, aggregations, and visualizations across multiple Amazon Elasticsearch Service domains with a single query or from a single Kibana interface. New feature includes the ability to setup connection, required to perform cross-cluster search, between domains using an approval workflow. - -# __2.13.28__ __2020-06-02__ -## __Amazon GuardDuty__ - - ### Features - - Amazon GuardDuty findings now include S3 bucket details under the resource section if an S3 Bucket was one of the affected resources - -# __2.13.27__ __2020-06-01__ -## __AWS Key Management Service__ - - ### Features - - AWS Key Management Service (AWS KMS): If the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext APIs are called on a CMK in a custom key store (origin == AWS_CLOUDHSM), they return an UnsupportedOperationException. If a call to UpdateAlias causes a customer to exceed the Alias resource quota, the UpdateAlias API returns a LimitExceededException. - -## __AWS Maven Lambda Archetype__ - - ### Features - - Updated the `archetype-lambda` to generate SDK client that uses region from environment variable. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Athena__ - - ### Features - - This release adds support for connecting Athena to your own Apache Hive Metastores in addition to the AWS Glue Data Catalog. For more information, please see https://docs.aws.amazon.com/athena/latest/ug/connect-to-data-source-hive.html - -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR now supports encrypting log files with AWS Key Management Service (KMS) customer managed keys. - -## __Amazon FSx__ - - ### Features - - New capabilities to update storage capacity and throughput capacity of your file systems, providing the flexibility to grow file storage and to scale up or down the available performance as needed to meet evolving storage needs over time. - -## __Amazon SageMaker Service__ - - ### Features - - We are releasing HumanTaskUiArn as a new parameter in CreateLabelingJob and RenderUiTemplate which can take an ARN for a system managed UI to render a task. - -## __Amazon WorkLink__ - - ### Features - - Amazon WorkLink now supports resource tagging for fleets. - -# __2.13.26__ __2020-05-28__ -## __AWS Marketplace Catalog Service__ - - ### Features - - AWS Marketplace Catalog now supports accessing initial change payloads with DescribeChangeSet operation. - -## __Amazon QLDB Session__ - - ### Features - - Documentation updates for Amazon QLDB Session - -## __Amazon WorkMail__ - - ### Features - - This release adds support for Amazon WorkMail organization-level retention policies. - -## __Managed Streaming for Kafka__ - - ### Features - - New APIs for upgrading the Apache Kafka version of a cluster and to find out compatible upgrade paths - -# __2.13.25__ __2020-05-27__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon GuardDuty__ - - ### Features - - Documentation updates for GuardDuty - -## __Amazon S3__ - - ### Bugfixes - - Check the `x-amz-content-range` header for `GetObject` responses when the `Content-Range` header is not returned by the service. Fixes [#1209](https://github.com/aws/aws-sdk-java-v2/issues/1209). - -## __Elastic Load Balancing__ - - ### Features - - This release added support for HTTP/2 ALPN preference lists for Network Load Balancers - -# __2.13.24__ __2020-05-26__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Allowing cron expression in the DLM policy creation schedule. - -## __Amazon ElastiCache__ - - ### Features - - Amazon ElastiCache now allows you to use resource based policies to manage access to operations performed on ElastiCache resources. Also, Amazon ElastiCache now exposes ARN (Amazon Resource Names) for ElastiCache resources such as Cache Clusters and Parameter Groups. ARNs can be used to apply IAM policies to ElastiCache resources. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - ebsOptimizedInfo, efaSupported and supportedVirtualizationTypes added to DescribeInstanceTypes API - -## __Amazon Macie__ - - ### Features - - This is a documentation-only update to the Amazon Macie Classic API. This update corrects out-of-date references to the service name. - -## __Amazon QuickSight__ - - ### Features - - Add DataSetArns to QuickSight DescribeDashboard API response. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - The AWS Systems Manager GetOpsSummary API action now supports multiple OpsResultAttributes in the request. Currently, this feature only supports OpsResultAttributes with the following TypeNames: [AWS:EC2InstanceComputeOptimizer] or [AWS:EC2InstanceInformation, AWS:EC2InstanceComputeOptimizer]. These TypeNames can be used along with either or both of the following: [AWS:EC2InstanceRecommendation, AWS:RecommendationSource] - -# __2.13.23__ __2020-05-22__ -## __AWS IoT SiteWise__ - - ### Features - - This release adds support for the standard deviation auto-computed aggregate and improved support for portal logo images in SiteWise. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Auto Scaling__ - - ### Features - - Documentation updates for Amazon EC2 Auto Scaling - -# __2.13.22__ __2020-05-21__ -## __AWS CodeBuild__ - - ### Features - - CodeBuild adds support for tagging with report groups - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed an issue where a service returning an unknown response event type would cause a failure. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - From this release onwards ProvisionByoipCidr publicly supports IPv6. Updated ProvisionByoipCidr API to support tags for public IPv4 and IPv6 pools. Added NetworkBorderGroup to the DescribePublicIpv4Pools response. - -## __Amazon Simple Storage Service__ - - ### Features - - Deprecates unusable input members bound to Content-MD5 header. Updates example and documentation. - -## __Synthetics__ - - ### Features - - AWS CloudWatch Synthetics now supports configuration of allocated memory for a canary. - -# __2.13.21__ __2020-05-20__ -## __AWS App Mesh__ - - ### Features - - List APIs for all resources now contain additional information: when a resource was created, last updated, and its current version number. - -## __AWS Backup__ - - ### Features - - This release allows customers to enable or disable AWS Backup support for an AWS resource type. This release also includes new APIs, update-region-settings and describe-region-settings, which can be used to opt in to a specific resource type. For all current AWS Backup customers, the default settings enable support for EBS, EC2, StorageGateway, EFS, DDB and RDS resource types. - -## __AWS CodeDeploy__ - - ### Features - - Amazon ECS customers using application and network load balancers can use CodeDeploy BlueGreen hook to invoke a CloudFormation stack update. With this update you can view CloudFormation deployment and target details via existing APIs and use your stack Id to list or delete all deployments associated with the stack. - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports the ability to ingest the content that is streaming from an AWS Elemental Link device: https://aws.amazon.com/medialive/features/link/. This release also adds support for SMPTE-2038 and input state waiters. - -## __AWS SecurityHub__ - - ### Features - - For findings related to controls, the finding information now includes the reason behind the current status of the control. A new field for the findings original severity allows finding providers to use the severity values from the system they use to assign severity. - -## __Amazon Chime__ - - ### Features - - Amazon Chime enterprise account administrators can now set custom retention policies on chat data in the Amazon Chime application. - -## __Amazon Transcribe Streaming Service__ - - ### Features - - This release adds support for vocabulary filtering in streaming with which you can filter unwanted words from the real-time transcription results. Visit https://docs.aws.amazon.com/transcribe/latest/dg/how-it-works.html to learn more. - -## __Application Auto Scaling__ - - ### Features - - Documentation updates for Application Auto Scaling - -# __2.13.20__ __2020-05-19__ -## __AWS Health APIs and Notifications__ - - ### Features - - Feature: Health: AWS Health added a new field to differentiate Public events from Account-Specific events in the API request and response. Visit https://docs.aws.amazon.com/health/latest/APIReference/API_Event.html to learn more. - -## __AWS SDK for Java v2__ - - ### Features - - Endpoint discovery is now enabled by default for future services that will require it. A new method 'endpointDiscoveryEnabled' has been added to client builders that support endpoint discovery allowing a true or false value to be set. 'enableEndpointDiscovery' has been deprecated on the client builders as it is now superseded by 'endpointDiscoveryEnabled'. - - Updated service endpoint metadata. - -## __Amazon Chime__ - - ### Features - - You can now receive Voice Connector call events through SNS or SQS. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Federated Authentication via SAML-2.0 in AWS ClientVPN. - -## __Amazon Transcribe Service__ - - ### Features - - Documentation updates for Amazon Transcribe. - -# __2.13.19__ __2020-05-18__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime__ - - ### Features - - Amazon Chime now supports redacting chat messages. - -## __Amazon DynamoDB__ - - ### Features - - Documentation updates for dynamodb - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds support for specifying environment files to add environment variables to your containers. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release changes the RunInstances CLI and SDK's so that if you do not specify a client token, a randomly generated token is used for the request to ensure idempotency. - -## __Amazon Macie 2__ - - ### Features - - Documentation updates for Amazon Macie - -## __Amazon QLDB__ - - ### Features - - Amazon QLDB now supports Amazon Kinesis data streams. You can now emit QLDB journal data, via the new QLDB Streams feature, directly to Amazon Kinesis supporting event processing and analytics among related use cases. - -# __2.13.18__ __2020-05-15__ -## __AWS CloudFormation__ - - ### Features - - This release adds support for the following features: 1. DescribeType and ListTypeVersions APIs now output a field IsDefaultVersion, indicating if a version is the default version for its type; 2. Add StackRollbackComplete waiter feature to wait until stack status is UPDATE_ROLLBACK_COMPLETE; 3. Add paginators in DescribeAccountLimits, ListChangeSets, ListStackInstances, ListStackSetOperationResults, ListStackSetOperations, ListStackSets APIs. - -## __AWS Glue__ - - ### Features - - Starting today, you can stop the execution of Glue workflows that are running. AWS Glue workflows are directed acyclic graphs (DAGs) of Glue triggers, crawlers and jobs. Using a workflow, you can design a complex multi-job extract, transform, and load (ETL) activity that AWS Glue can execute and track as single entity. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Allow event structures to be used as operation outputs outside of streaming contexts. - - Fix generation for services that contain operations with the same name as the service. - -## __AWS Security Token Service__ - - ### Features - - API updates for STS - -## __Amazon EC2 Container Registry__ - - ### Features - - This release adds support for specifying an image manifest media type when pushing a manifest to Amazon ECR. - -# __2.13.17__ __2020-05-14__ -## __AWS SDK for Java v2__ - - ### Features - - Expose the `extendedRequestId` from `SdkServiceException`, so it can be provided to support to investigate issues. - - Updated service endpoint metadata. - - - ### Bugfixes - - Fix generation for operations that share an output shape. - - Fix unmarshalling of events when structure member name and shape name mismatch. - - Support event streams that are shared between two operations. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 now supports adding AWS resource tags for associations between VPCs and local gateways, at creation time. - -## __Amazon RDS__ - - ### Features - - Add SourceRegion to CopyDBClusterSnapshot and CreateDBCluster operations. As with CopyDBSnapshot and CreateDBInstanceReadReplica, specifying this field will automatically populate the PresignedURL field with a valid value. - -## __EC2 Image Builder__ - - ### Features - - This release adds a new parameter (SupportedOsVersions) to the Components API. This parameter lists the OS versions supported by a component. - -# __2.13.16__ __2020-05-13__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix a race condition in `FileAsyncResponseTransformer` where the future fails to complete when onComplete event is dispatched on the same thread that executed request - -## __Amazon ElastiCache__ - - ### Features - - Amazon ElastiCache now supports auto-update of ElastiCache clusters after the "recommended apply by date" of service update has passed. ElastiCache will use your maintenance window to schedule the auto-update of applicable clusters. For more information, see https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/Self-Service-Updates.html and https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Self-Service-Updates.html - -## __Amazon Macie 2__ - - ### Features - - This release introduces a new major version of the Amazon Macie API. You can use this version of the API to develop tools and applications that interact with the new Amazon Macie. - -# __2.13.15__ __2020-05-12__ -## __AWS IoT SiteWise__ - - ### Features - - Documentation updates for iot-bifrost - -## __Amazon WorkMail__ - - ### Features - - Minor API fixes and updates to the documentation. - -# __2.13.14__ __2020-05-11__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWSKendraFrontendService__ - - ### Features - - Amazon Kendra is now generally available. As part of general availability, we are launching Metrics for query & storage utilization - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Add Bitbucket integration APIs - -## __Amazon Elastic Compute Cloud__ - - ### Features - - M6g instances are our next-generation general purpose instances powered by AWS Graviton2 processors - -# __2.13.13__ __2020-05-08__ -## __AWS Resource Groups Tagging API__ - - ### Features - - Documentation updates for resourcegroupstaggingapi - -## __AWS SDK for Java v2__ - - ### Features - - A helpful error message is now raised when an obviously-invalid region name is given to the SDK, instead of the previous NullPointerException. Fixes [#1642](https://github.com/aws/aws-sdk-java-v2/issues/1642). - - Updated service endpoint metadata. - -## __Amazon GuardDuty__ - - ### Features - - Documentation updates for GuardDuty - -## __Amazon SageMaker Service__ - - ### Features - - This release adds a new parameter (EnableInterContainerTrafficEncryption) to CreateProcessingJob API to allow for enabling inter-container traffic encryption on processing jobs. - -# __2.13.12__ __2020-05-07__ -## __AWS CodeBuild__ - - ### Features - - Add COMMIT_MESSAGE enum for webhook filter types - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon AppConfig__ - - ### Features - - The description of the AWS AppConfig GetConfiguration API action was amended to include important information about calling ClientConfigurationVersion when you configure clients to call GetConfiguration. - -## __Amazon CloudWatch Logs__ - - ### Features - - Amazon CloudWatch Logs now offers the ability to interact with Logs Insights queries via the new PutQueryDefinition, DescribeQueryDefinitions, and DeleteQueryDefinition APIs. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 now adds warnings to identify issues when creating a launch template or launch template version. - -## __Amazon Lightsail__ - - ### Features - - This release adds support for the following options in instance public ports: Specify source IP addresses, specify ICMP protocol like PING, and enable/disable the Lightsail browser-based SSH and RDP clients' access to your instance. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the EU (Milan) Region (eu-south-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This Patch Manager release supports creating patch baselines for Oracle Linux and Debian - -# __2.13.11__ __2020-05-06__ -## __AWS CodeStar connections__ - - ### Features - - Added support for tagging resources in AWS CodeStar Connections - -## __AWS Comprehend Medical__ - - ### Features - - New Batch Ontology APIs for ICD-10 and RxNorm will provide batch capability of linking the information extracted by Comprehend Medical to medical ontologies. The new ontology linking APIs make it easy to detect medications and medical conditions in unstructured clinical text and link them to RxNorm and ICD-10-CM codes respectively. This new feature can help you reduce the cost, time and effort of processing large amounts of unstructured medical text with high accuracy. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.13.10__ __2020-05-05__ -## __AWS SDJ for Java v2__ - - ### Features - - Updating dependency version: Jackson 2.10.3 -> 2.10.4, and combine dependency Jackson-annotations with Jackson. - -## __AWS Support__ - - ### Features - - Documentation updates for support - -## __Amazon DynamoDB__ - - ### Bugfixes - - Tweaked the javadocs for Get/Update, since it was previously wrongfully copied over from Delete and mentions the "delete operation". - -## __Amazon Elastic Compute Cloud__ - - ### Features - - With this release, you can call ModifySubnetAttribute with two new parameters: MapCustomerOwnedIpOnLaunch and CustomerOwnedIpv4Pool, to map a customerOwnedIpv4Pool to a subnet. You will also see these two new fields in the DescribeSubnets response. If your subnet has a customerOwnedIpv4Pool mapped, your network interface will get an auto assigned customerOwnedIpv4 address when placed onto an instance. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager Parameter Store launches new data type to support aliases in EC2 APIs - -# __2.13.9__ __2020-05-04__ -## __AWS S3 Control__ - - ### Features - - Amazon S3 Batch Operations now supports Object Lock. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon API Gateway__ - - ### Features - - Documentation updates for Amazon API Gateway - -## __Amazon DynamoDB Enhanced Client__ - - ### Bugfixes - - Bugfix for handling special characters ':' and '#' in attribute names - -## __Amazon Elastic Compute Cloud__ - - ### Features - - With this release, you can include enriched metadata in Amazon Virtual Private Cloud (Amazon VPC) flow logs published to Amazon CloudWatch Logs or Amazon Simple Storage Service (S3). Prior to this, custom format VPC flow logs enriched with additional metadata could be published only to S3. With this launch, we are also adding additional metadata fields that provide insights about the location such as AWS Region, AWS Availability Zone, AWS Local Zone, AWS Wavelength Zone, or AWS Outpost where the network interface where flow logs are captured exists. - -# __2.13.8__ __2020-05-01__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic File System__ - - ### Features - - Change the TagKeys argument for UntagResource to a URL parameter to address an issue with the Java and .NET SDKs. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Added TimeoutSeconds as part of ListCommands API response. - -# __2.13.7__ __2020-04-30__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for including AFD signaling in MXF wrapper. - -## __AWS IoT__ - - ### Features - - AWS IoT Core released Fleet Provisioning for scalable onboarding of IoT devices to the cloud. This release includes support for customer's Lambda functions to validate devices during onboarding. Fleet Provisioning also allows devices to send Certificate Signing Requests (CSR) to AWS IoT Core for signing and getting a unique certificate. Lastly, AWS IoT Core added a feature to register the same certificate for multiple accounts in the same region without needing to register the certificate authority (CA). - -## __AWS IoT Events__ - - ### Features - - Doc only update to correct APIs and related descriptions - -## __AWS Lambda__ - - ### Features - - Documentation updates for Lambda - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Storage Gateway__ - - ### Features - - Adding support for S3_INTELLIGENT_TIERING as a storage class option - -## __Amazon DynamoDB Enhanced Client__ - - ### Bugfixes - - Made OperationContext a public interface and moved it into public namespace as it was already exposed through another public interface. This will only impact extensions that have been written to reference the old internal-only class that should now switch to the approved stable public interface. - -## __Schemas__ - - ### Features - - Add support for resource policies for Amazon EventBridge Schema Registry, which is now generally available. - -# __2.13.6__ __2020-04-29__ -## __AWS Cloud Map__ - - ### Features - - Documentation updates for servicediscovery - -## __AWS IoT SiteWise__ - - ### Features - - AWS IoT SiteWise is a managed service that makes it easy to collect, store, organize and monitor data from industrial equipment at scale. You can use AWS IoT SiteWise to model your physical assets, processes and facilities, quickly compute common industrial performance metrics, and create fully managed web applications to help analyze industrial equipment data, prevent costly equipment issues, and reduce production inefficiencies. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS WAF__ - - ### Features - - This release add migration API for AWS WAF Classic ("waf" and "waf-regional"). The migration API will parse through your web ACL and generate a CloudFormation template into your S3 bucket. Deploying this template will create equivalent web ACL under new AWS WAF ("wafv2"). - -## __AWS WAF Regional__ - - ### Features - - This release add migration API for AWS WAF Classic ("waf" and "waf-regional"). The migration API will parse through your web ACL and generate a CloudFormation template into your S3 bucket. Deploying this template will create equivalent web ACL under new AWS WAF ("wafv2"). - -## __Amazon Transcribe Service__ - - ### Features - - With this release, you can now use Amazon Transcribe to create medical custom vocabularies and use them in both medical real-time streaming and medical batch transcription jobs. - -# __2.13.5__ __2020-04-28__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports several new features: enhanced VQ for H.264 (AVC) output encodes; passthrough of timed metadata and of Nielsen ID3 metadata in fMP4 containers in HLS outputs; the ability to generate a SCTE-35 sparse track without additional segmentation, in Microsoft Smooth outputs; the ability to select the audio from a TS input by specifying the audio track; and conversion of HDR colorspace in the input to an SDR colorspace in the output. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DynamoDB Enhacned__ - - ### Bugfixes - - Fix NPE on EnhancedType, created with documentOf, when calling innerToString - -## __Amazon EC2 Container Registry__ - - ### Features - - This release adds support for multi-architecture images also known as a manifest list - -## __Amazon Kinesis Video Streams__ - - ### Features - - Add "GET_CLIP" to the list of supported API names for the GetDataEndpoint API. - -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - Add support for the GetClip API for retrieving media from a video stream in the MP4 format. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Africa (Cape Town) Region (af-south-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - SSM State Manager support for adding list association filter for Resource Group and manual mode of managing compliance for an association. - -# __2.13.4__ __2020-04-27__ -## __AWS Data Exchange__ - - ### Features - - This release introduces AWS Data Exchange support for configurable encryption parameters when exporting data sets to Amazon S3. - -## __AWS Database Migration Service__ - - ### Features - - Adding minimum replication engine version for describe-endpoint-types api. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - Various performance improvements. - -## __Access Analyzer__ - - ### Features - - This release adds support for inclusion of S3 Access Point policies in IAM Access Analyzer evaluation of S3 bucket access. IAM Access Analyzer now reports findings for buckets shared through access points and identifies the access point that permits access. - -## __Amazon SageMaker Service__ - - ### Features - - Change to the input, ResourceSpec, changing EnvironmentArn to SageMakerImageArn. This affects the following preview APIs: CreateDomain, DescribeDomain, UpdateDomain, CreateUserProfile, DescribeUserProfile, UpdateUserProfile, CreateApp and DescribeApp. - -# __2.13.3__ __2020-04-24__ -## __AWS IoT__ - - ### Features - - This release adds a new exception type to the AWS IoT SetV2LoggingLevel API. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fixed bean-style setter names on serializable builders to match bean-style getter names. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Enable 1hour frequency in the schedule creation for Data LifeCycle Manager. - -## __Amazon Elastic Inference__ - - ### Features - - This feature allows customers to describe the accelerator types and offerings on any region where Elastic Inference is available. - -# __2.13.2__ __2020-04-23__ -## __AWS Elemental MediaPackage VOD__ - - ### Features - - Adds tagging support for PackagingGroups, PackagingConfigurations, and Assets - -## __AWS Resource Access Manager__ - - ### Features - - AWS Resource Access Manager (RAM) provides a new ListResourceTypes action. This action lets you list the resource types that can be shared using AWS RAM. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Storage Gateway__ - - ### Features - - Added AutomaticTapeCreation APIs - -## __AWS Transfer Family__ - - ### Features - - This release adds support for transfers over FTPS and FTP in and out of Amazon S3, which makes it easy to migrate File Transfer Protocol over SSL (FTPS) and FTP workloads to AWS, in addition to the existing support for Secure File Transfer Protocol (SFTP). - -## __Amazon Kinesis Firehose__ - - ### Features - - You can now deliver streaming data to an Amazon Elasticsearch Service domain in an Amazon VPC. You can now compress streaming data delivered to S3 using Hadoop-Snappy in addition to Gzip, Zip and Snappy formats. - -## __Amazon Pinpoint__ - - ### Features - - This release of the Amazon Pinpoint API enhances support for sending campaigns through custom channels to locations such as AWS Lambda functions or web applications. Campaigns can now use CustomDeliveryConfiguration and CampaignCustomMessage to configure custom channel settings for a campaign. - -## __Amazon Relational Database Service__ - - ### Features - - Adds support for AWS Local Zones, including a new optional parameter AvailabilityZoneGroup for the DescribeOrderableDBInstanceOptions operation. - -## __Application Auto Scaling__ - - ### Features - - This release supports Auto Scaling in Amazon Keyspaces for Apache Cassandra. - -# __2.13.1__ __2020-04-22__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - Add support for code review and recommendation feedback APIs. - -## __Amazon Elasticsearch Service__ - - ### Features - - This change adds a new field 'OptionalDeployment' to ServiceSoftwareOptions to indicate whether a service software update is optional or mandatory. If True, it indicates that the update is optional, and the service software is not automatically updated. If False, the service software is automatically updated after AutomatedUpdateDate. - -## __Amazon Redshift__ - - ### Features - - Amazon Redshift support for usage limits - -## __Amazon Transcribe Streaming Service__ - - ### Features - - Adding ServiceUnavailableException as one of the expected exceptions - -## __Firewall Management Service__ - - ### Features - - This release is to support AWS Firewall Manager policy with Organizational Unit scope. - -# __2.13.0__ __2020-04-21__ -## __AWS Cost Explorer Service__ - - ### Features - - Cost Explorer Rightsizing Recommendations integrates with Compute Optimizer and begins offering across instance family rightsizing recommendations, adding to existing support for within instance family rightsizing recommendations. - -## __AWS SDK for Java v2__ - - ### Features - - Bump minor version to '2.13.0-SNAPSHOT' because of upgrade of Jackson version. - - Updated service endpoint metadata. - - Updating dependency version: Jackson 2.10.0 -> 2.10.3, Jackson-annotations 2.9.0 -> 2.10.0. - -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR adds support for configuring a managed scaling policy for an Amazon EMR cluster. This enables automatic resizing of a cluster to optimize for job execution speed and reduced cluster cost. - -## __Amazon GuardDuty__ - - ### Features - - AWS GuardDuty now supports using AWS Organizations delegated administrators to create and manage GuardDuty master and member accounts. The feature also allows GuardDuty to be automatically enabled on associated organization accounts. - -## __Amazon Route 53 Domains__ - - ### Features - - You can now programmatically transfer domains between AWS accounts without having to contact AWS Support - -# __2.12.0__ __2020-04-20__ -## __AWS Cost Explorer Service__ - - ### Features - - Cost Categories API is now General Available with new dimensions and operations support. You can map costs by account name, service, and charge type dimensions as well as use contains, starts with, and ends with operations. Cost Categories can also be used in RI and SP coverage reports. - -## __AWS Glue__ - - ### Features - - Added a new ConnectionType "KAFKA" and a ConnectionProperty "KAFKA_BOOTSTRAP_SERVERS" to support Kafka connection. - -## __AWS IoT Events__ - - ### Features - - API update that allows users to add AWS Iot SiteWise actions while creating Detector Model in AWS Iot Events - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DynamoDB Enhanced Client__ - - ### Features - - The Amazon DynamoDB Enhanced Client is now generally available and provides a natural and intuitive interface for developers to integrate their applications with Amazon DynamoDB by means of an adaptive API that will map inputs and results to and from Java objects modeled by the application, rather than requiring the developers to implement that transformation themselves. - -## __AmazonApiGatewayV2__ - - ### Features - - You can now export an OpenAPI 3.0 compliant API definition file for Amazon API Gateway HTTP APIs using the Export API. - -## __Synthetics__ - - ### Features - - Introducing CloudWatch Synthetics. This is the first public release of CloudWatch Synthetics. - -# __2.11.14__ __2020-04-17__ -## __AWS OpsWorks CM__ - - ### Features - - Documentation updates for opsworkscm - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Fraud Detector__ - - ### Features - - Added support for a new rule engine execution mode. Customers will be able to configure their detector versions to evaluate all rules and return outcomes from all 'matched' rules in the GetPrediction API response. Added support for deleting Detectors (DeleteDetector) and Rule Versions (DeleteRuleVersion). - -# __2.11.13__ __2020-04-16__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert now allows you to specify your input captions frame rate for SCC captions sources. - -## __AWS Glue__ - - ### Features - - This release adds support for querying GetUserDefinedFunctions API without databaseName. - -## __AWS IoT Events__ - - ### Features - - API update that allows users to customize event action payloads, and adds support for Amazon DynamoDB actions. - -## __AWS Lambda__ - - ### Features - - Sample code for AWS Lambda operations - -## __AWS MediaTailor__ - - ### Features - - AWS Elemental MediaTailor SDK now allows configuration of Avail Suppression. - -## __AWS Migration Hub__ - - ### Features - - Adding ThrottlingException - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Added a new BatchUpdateFindings action, which allows customers to update selected information about their findings. Security Hub customers use BatchUpdateFindings to track their investigation into a finding. BatchUpdateFindings is intended to replace the UpdateFindings action, which is deprecated. - -## __Amazon Augmented AI Runtime__ - - ### Features - - This release updates Amazon Augmented AI ListHumanLoops and StartHumanLoop APIs. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 now supports adding AWS resource tags for placement groups and key pairs, at creation time. The CreatePlacementGroup API will now return placement group information when created successfully. The DeleteKeyPair API now supports deletion by resource ID. - -## __Amazon Import/Export Snowball__ - - ### Features - - An update to the Snowball Edge Storage Optimized device has been launched. Like the previous version, it has 80 TB of capacity for data transfer. Now it has 40 vCPUs, 80 GiB, and a 1 TiB SATA SSD of memory for EC2 compatible compute. The 80 TB of capacity can also be used for EBS-like volumes for AMIs. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for Amazon RDS Proxy with PostgreSQL compatibility. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker now supports running training jobs on ml.g4dn and ml.c5n instance types. Amazon SageMaker supports in "IN" operation for Search now. - -## __EC2 Image Builder__ - - ### Features - - This release includes support for additional OS Versions within EC2 Image Builder. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Mark a connection as unreusable if there was a 5xx server error so that a new request will establish a new connection. - -# __2.11.12__ __2020-04-08__ -## __AWS CloudFormation__ - - ### Features - - The OrganizationalUnitIds parameter on StackSet and the OrganizationalUnitId parameter on StackInstance, StackInstanceSummary, and StackSetOperationResultSummary are now reserved for internal use. No data is returned for this parameter. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK adds support for queue hopping. Jobs can now hop from their original queue to a specified alternate queue, based on the maximum wait time that you specify in the job settings. - -## __AWS Migration Hub Config__ - - ### Features - - Adding ThrottlingException - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime__ - - ### Features - - feature: Chime: This release introduces the ability to tag Amazon Chime SDK meeting resources. You can use tags to organize and identify your resources for cost allocation. - -## __Amazon CodeGuru Profiler__ - - ### Features - - CodeGuruProfiler adds support for resource based authorization to submit profile data. - -## __Amazon EC2 Container Service__ - - ### Features - - This release provides native support for specifying Amazon EFS file systems as volumes in your Amazon ECS task definitions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release provides the ability to include tags in EC2 event notifications. - -# __2.11.11__ __2020-04-07__ -## __AWS MediaConnect__ - - ### Features - - You can now send content from your MediaConnect flow to your virtual private cloud (VPC) without going over the public internet. - -## __Amazon API Gateway__ - - ### Features - - Documentation updates for Amazon API Gateway. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - API updates for CodeGuruReviewer - -# __2.11.10__ __2020-04-06__ -## __AWS Elastic Beanstalk__ - - ### Features - - This release adds a new action, ListPlatformBranches, and updates two actions, ListPlatformVersions and DescribePlatformVersion, to support the concept of Elastic Beanstalk platform branches. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for AWS Identity and Access Management (IAM). - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Chime__ - - ### Features - - Amazon Chime proxy phone sessions let you provide two users with a shared phone number to communicate via voice or text for up to 12 hours without revealing personal phone numbers. When users call or message the provided phone number, they are connected to the other party and their private phone numbers are replaced with the shared number in Caller ID. - -## __Amazon Transcribe Service__ - - ### Features - - This release adds support for batch transcription jobs within Amazon Transcribe Medical. - -# __2.11.9__ __2020-04-03__ -## __AWS RoboMaker__ - - ### Features - - Added support for limiting simulation unit usage, giving more predictable control over simulation cost - -## __AWS S3__ - - ### Features - - Allow DefaultS3Presigner.Builder to take a custom S3Configuration - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Personalize Runtime__ - - ### Features - - Amazon Personalize: Add new response field "score" to each item returned by GetRecommendations and GetPersonalizedRanking (HRNN-based recipes only) - -# __2.11.8__ __2020-04-02__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports Automatic Input Failover. This feature provides resiliency upstream of the channel, before ingest starts. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch__ - - ### Features - - Amazon CloudWatch Contributor Insights adds support for tags and tagging on resource creation. - -## __Amazon GameLift__ - - ### Features - - Public preview of GameLift FleetIQ as a standalone feature. GameLift FleetIQ makes it possible to use low-cost Spot instances by limiting the chance of interruptions affecting game sessions. FleetIQ is a feature of the managed GameLift service, and can now be used with game hosting in EC2 Auto Scaling groups that you manage in your own account. - -## __Amazon Redshift__ - - ### Features - - Documentation updates for redshift - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for RDS: creating read replicas is now supported for SQL Server DB instances - -# __2.11.7__ __2020-04-01__ -## __AWS IoT__ - - ### Features - - This release introduces Dimensions for AWS IoT Device Defender. Dimensions can be used in Security Profiles to collect and monitor fine-grained metrics. - -## __AWS MediaConnect__ - - ### Features - - You can now send content from your virtual private cloud (VPC) to your MediaConnect flow without going over the public internet. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -# __2.11.6__ __2020-03-31__ -## __AWS Elemental MediaStore__ - - ### Features - - This release adds support for CloudWatch Metrics. You can now set a policy on your container to dictate which metrics MediaStore sends to CloudWatch. - -## __AWS Glue__ - - ### Features - - Add two enums for MongoDB connection: Added "CONNECTION_URL" to "ConnectionPropertyKey" and added "MONGODB" to "ConnectionType" - -## __AWS Lambda__ - - ### Features - - AWS Lambda now supports .NET Core 3.1 - -## __AWS OpsWorks CM__ - - ### Features - - Documentation updates for OpsWorks-CM CreateServer values. - -## __AWS Organizations__ - - ### Features - - Documentation updates for AWS Organizations - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Storage Gateway__ - - ### Features - - Adding audit logging support for SMB File Shares - -## __AWS WAFV2__ - - ### Features - - Added support for AWS Firewall Manager for WAFv2 and PermissionPolicy APIs for WAFv2. - -## __Amazon AppConfig__ - - ### Features - - This release adds an event log to deployments. In the case of a deployment rollback, the event log details the rollback reason. - -## __Amazon Detective__ - - ### Features - - Removing the notes that Detective is in preview, in preparation for the Detective GA release. - -## __Amazon Elastic Inference__ - - ### Features - - This release includes improvements for the Amazon Elastic Inference service. - -## __Amazon Pinpoint__ - - ### Features - - This release of the Amazon Pinpoint API introduces MMS support for SMS messages. - -## __Amazon Rekognition__ - - ### Features - - This release adds DeleteProject and DeleteProjectVersion APIs to Amazon Rekognition Custom Labels. - -## __Firewall Management Service__ - - ### Features - - This release contains FMS wafv2 support. - -# __2.11.5__ __2020-03-30__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Access Analyzer__ - - ### Features - - This release adds support for the creation and management of IAM Access Analyzer analyzers with type organization. An analyzer with type organization continuously monitors all supported resources within the AWS organization and reports findings when they allow access from outside the organization. - -# __2.11.4__ __2020-03-27__ -## __AWS Global Accelerator__ - - ### Features - - This update adds an event history to the ListByoipCidr API call. This enables you to see the changes that you've made for an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP). - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Remove the `LimitExceededException` as a throttling error as it seems many services don't treat it as a throttling error. - -## __AWS Service Catalog__ - - ### Features - - Added "LocalRoleName" as an acceptable Parameter for Launch type in CreateConstraint and UpdateConstraint APIs - -## __AWSKendraFrontendService__ - - ### Features - - The Amazon Kendra Microsoft SharePoint data source now supports include and exclude regular expressions and change log features. Include and exclude regular expressions enable you to provide a list of regular expressions to match the display URL of SharePoint documents to either include or exclude documents respectively. When you enable the changelog feature it enables Amazon Kendra to use the SharePoint change log to determine which documents to update in the index. - -# __2.11.3__ __2020-03-26__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Security Hub has now made it easier to opt out of default standards when you enable Security Hub. We added a new Boolean parameter to EnableSecurityHub called EnableDefaultStandards. If that parameter is true, Security Hub's default standards are enabled. A new Boolean parameter for standards, EnabledByDefault, indicates whether a standard is a default standard. Today, the only default standard is CIS AWS Foundations Benchmark v1.2. Additional default standards will be added in the future.To learn more, visit our documentation on the EnableSecurityHub API action. - -## __Amazon FSx__ - - ### Features - - This release includes two changes: a new lower-cost, storage type called HDD (Hard Disk Drive), and a new generation of the Single-AZ deployment type called Single AZ 2. The HDD storage type can be selected on Multi AZ 1 and Single AZ 2 deployment types. - -## __Amazon SageMaker Service__ - - ### Features - - This release updates Amazon Augmented AI CreateFlowDefinition API and DescribeFlowDefinition response. - -# __2.11.2__ __2020-03-25__ -## __AWS Cost Explorer Service__ - - ### Features - - Customers can now receive Savings Plans recommendations at the member (linked) account level. - -## __AWS SDK for Java v2__ - - ### Features - - Added a `defaultProfileFile` and `defaultProfileName` option to the client override configuration. Setting this configuration value is equivalent to setting the environment or system properties for the profile file and profile name. Specifically, it sets the default profile file and profile name used by the client. - - Reduced the number of times the profile file configuration is read from disk on client creation from 3-5 to 1. - - Updated service endpoint metadata. - -## __AWS X-Ray__ - - ### Features - - GetTraceSummaries - Now provides additional root cause attribute ClientImpacting which indicates whether root cause impacted trace client. - -## __Amazon CloudWatch Application Insights__ - - ### Features - - Amazon CloudWatch Application Insights for .NET and SQL Server now integrates with Amazon CloudWatch Events (AWS CodeDeploy, AWS Health and Amazon EC2 state changes). This feature enables customers to view events related to problems detected by CloudWatch Application Insights, and reduce mean-time-to-resolution (MTTR). - -## __Amazon Detective__ - - ### Features - - The new ACCEPTED_BUT_DISABLED member account status indicates that a member account that accepted the invitation is blocked from contributing data to the behavior graph. The reason is provided in the new DISABLED_REASON property. The new StartMonitoringMember operation enables a blocked member account. - -## __Amazon DynamoDB__ - - ### Features - - When endpoint discovery is enabled, the endpoint discovery process is now initialized with the first request, instead of 60 seconds after the first request. - - - ### Bugfixes - - Fixed an issue that could cause a null-pointer-exception when using anonymous credentials with endpoint discovery enabled. - - Fixed an issue where endpoint discovery configuration specified in the profile file was being ignored. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Bugfixes - - Performance improvements. - -## __Amazon Elasticsearch Service__ - - ### Features - - Adding support for customer packages (dictionary files) to Amazon Elasticsearch Service - -## __Amazon Managed Blockchain__ - - ### Features - - Amazon Managed Blockchain now has support to publish Hyperledger Fabric peer node, chaincode, and certificate authority (CA) logs to Amazon CloudWatch Logs. - -## __Amazon S3__ - - ### Bugfixes - - Fixed a bug where explicitly disabling use-arn-region on S3Configuration would have lower priority than the environment variable, system property or profile property. - -# __2.11.1__ __2020-03-24__ -## __AWS Organizations__ - - ### Features - - Introduces actions for giving a member account administrative Organizations permissions for an AWS service. You can run this action only for AWS services that support this feature. - -## __AWS RDS DataService__ - - ### Features - - Documentation updates for rds-data - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Athena__ - - ### Features - - Documentation updates for Athena, including QueryExecutionStatus QUEUED and RUNNING states. QUEUED now indicates that the query has been submitted to the service. RUNNING indicates that the query is in execution phase. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding new error codes: Ec2SubnetInvalidConfiguration and NodeCreationFailure for Nodegroups in EKS - -# __2.11.0__ __2020-03-23__ -## __AWS SDK for Java v2__ - - ### Features - - Bump minor version to '2.11.0-SNAPSHOT' because of [#1692](https://github.com/aws/aws-sdk-java-v2/issues/1692) - - Updating dependency version: netty 4.1.42.Final -> 4.1.46.Final (contains the fix for reducing heap usage for netty client) - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding new error code IamLimitExceeded for Nodegroups in EKS - -## __Amazon Route 53__ - - ### Features - - Documentation updates for Route 53. - -## __AmazonApiGatewayV2__ - - ### Features - - Documentation updates to reflect that the default timeout for integrations is now 30 seconds for HTTP APIs. - -# __2.10.91__ __2020-03-20__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - Added "productId" and "portfolioId" to responses from CreateConstraint, UpdateConstraint, ListConstraintsForPortfolio, and DescribeConstraint APIs - -# __2.10.90__ __2020-03-19__ -## __AWS Certificate Manager__ - - ### Features - - AWS Certificate Manager documentation updated on API calls ImportCertificate and ListCertificate. Specific updates included input constraints, private key size for import and next token size for list. - -## __AWS Outposts__ - - ### Features - - Documentation updates for AWS Outposts. - -# __2.10.89__ __2020-03-18__ -## __AWS MediaConnect__ - - ### Features - - Feature adds the ability for a flow to have multiple redundant sources that provides resiliency to a source failing. The new APIs added to enable the feature are, AddFlowSources, RemoveFlowSource and UpdateFlow. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Personalize__ - - ### Features - - [Personalize] Adds support for returning hyperparameter values of the best performing model in a HPO job. - -## __Amazon Relational Database Service__ - - ### Features - - Updated the MaxRecords type in DescribeExportTasks to Integer. - -# __2.10.88__ __2020-03-17__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for: AV1 encoding in File Group MP4, DASH and CMAF DASH outputs; PCM/WAV audio output in MPEG2-TS containers; and Opus audio in Webm inputs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - - ### Bugfixes - - Fix an issue where the signing key is created only once at the start of the request for event streaming requests. This causes requests that span two or more days to have signing errors once the date changes because the signing key was derived only once using the date at the beginning of the request. - -# __2.10.87__ __2020-03-16__ -## __AWS S3 Control__ - - ### Features - - Amazon S3 now supports Batch Operations job tagging. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Additional response field "CompromisedCredentialsDetected" added to AdminListUserAuthEvents. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - The enhanced DDB client table schema now supports custom AttributeConverterProviders, and StaticAttribute can take individual AttributeConverter to override default attribute converter behavior. - -## __Amazon EC2 Container Service__ - - ### Features - - This release adds the ability to update the task placement strategy and constraints for Amazon ECS services. - -## __Amazon ElastiCache__ - - ### Features - - Amazon ElastiCache now supports Global Datastore for Redis. Global Datastore for Redis offers fully managed, fast, reliable and secure cross-region replication. Using Global Datastore for Redis, you can create cross-region read replica clusters for ElastiCache for Redis to enable low-latency reads and disaster recovery across regions. You can create, modify and describe a Global Datastore, as well as add or remove regions from your Global Datastore and promote a region as primary in Global Datastore. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Resource data sync for AWS Systems Manager Inventory now includes destination data sharing. This feature enables you to synchronize inventory data from multiple AWS accounts into a central Amazon S3 bucket. To use this feature, all AWS accounts must be listed in AWS Organizations. - -# __2.10.86__ __2020-03-13__ -## __Amazon AppConfig__ - - ### Features - - This release adds S3 as a configuration source provider. - -# __2.10.85__ __2020-03-12__ -## __AWS IoT__ - - ### Features - - As part of this release, we are extending capability of AWS IoT Rules Engine to support IoT Cloudwatch log action. The IoT Cloudwatch log rule action lets you send messages from IoT sensors and applications to Cloudwatch logs for troubleshooting and debugging. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - The AWS Security Finding Format is being augmented with the following changes. 21 new resource types without corresponding details objects are added. Another new resource type, AwsS3Object, has an accompanying details object. Severity.Label is a new string field that indicates the severity of a finding. The available values are: INFORMATIONAL, LOW, MEDIUM, HIGH, CRITICAL. The new string field Workflow.Status indicates the status of the investigation into a finding. The available values are: NEW, NOTIFIED, RESOLVED, SUPPRESSED. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2 - -## __Amazon Lex Model Building Service__ - - ### Features - - Amazon Lex now supports tagging for bots, bot aliases and bot channels. - -## __AmazonApiGatewayV2__ - - ### Features - - Amazon API Gateway HTTP APIs is now generally available. HTTP APIs offer the core functionality of REST API at up to 71% lower price compared to REST API, 60% lower p99 latency, and is significantly easier to use. As part of general availability, we added new features to route requests to private backends such as private ALBs, NLBs, and IP/ports. We also brought over a set of features from REST API such as Stage Variables, and Stage/Route level throttling. Custom domain names can also now be used with both REST And HTTP APIs. - -# __2.10.84__ __2020-03-11__ -## __Amazon Elastic File System__ - - ### Features - - Documentation updates for elasticfilesystem - -## __Amazon Redshift__ - - ### Features - - Amazon Redshift now supports operations to pause and resume a cluster on demand or on a schedule. - -# __2.10.83__ __2020-03-10__ -## __AWS IoT Events__ - - ### Features - - API update that adds a new parameter, durationExpression, to SetTimerAction, and deprecates seconds - -## __AWS Marketplace Commerce Analytics__ - - ### Features - - Change the disbursement data set to look past 31 days instead until the beginning of the month. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Reverts a recent change from 2.10.70 where the json protocol type was changed to application/json, this is now back to application/x-amz-json-1.1. - -## __AWSServerlessApplicationRepository__ - - ### Features - - AWS Serverless Application Repository now supports sharing applications privately with AWS Organizations. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2 - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe's Automatic Content Redaction feature enables you to automatically redact sensitive personally identifiable information (PII) from transcription results. It replaces each instance of an identified PII utterance with a [PII] tag in the transcript. - -# __2.10.82__ __2020-03-09__ -## __AWS Database Migration Service__ - - ### Features - - Added new settings for Kinesis target to include detailed transaction info; to capture table DDL details; to use single-line unformatted json, which can be directly queried by AWS Athena if data is streamed into S3 through AWS Kinesis Firehose. Added CdcInsertsAndUpdates in S3 target settings to allow capture ongoing insertions and updates only. - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports the ability to configure the Preferred Channel Pipeline for channels contributing to a Multiplex. - -## __AWS SDK for Java v2__ - - ### Features - - Added support for "retry modes". A retry mode allows configuring multiple SDK parameters at once using default retry profiles, some of which are standardized between AWS SDK languages. See RetryMode javadoc for more information. - - Added the ability to configure or disable the default retry throttling behavior of the SDK that 'kicks in' during a large volume of retriable service call errors. This behavior can now be configured via `RetryPolicy.retryCapacityCondition`. - - - ### Bugfixes - - Fixed an issue where specifying your own retry policy would override AWS and service-specific retry conditions. By default, all retry policies now have AWS and service-specific retry conditions added. This can be disabled via the new `RetryPolicy.furtherRefinementsAllowed(false)`. - - Fixed an issue where the retry condition returned by `RetryPolicy.retryCondition` differed from the one specified by `RetryPolicy.Builder.retryCondition`. The old value can be accessed via the new `RetryPolicy.aggregateRetryCondition`. - - Use the last seen HTTP/1.1 header value for headers defined to only appear once in an HTTP message instead of merging them all into a list. The order in which header values are inspected is: headers set by the request marshaller, overridden headers set on the client, then finally overridden headers set on the SDK request object. See https://tools.ietf.org/html/rfc2616#section-4.2 for more information. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon Virtual Private Cloud (VPC) NAT Gateway adds support for tagging on resource creation. - -# __2.10.81__ __2020-03-06__ -## __AWS App Mesh__ - - ### Features - - App Mesh now supports sharing a Mesh with other AWS accounts. Customers can use AWS Resource Access Manager to share their Mesh with other accounts in their organization to connection applications within a single service mesh. See https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html for details. - -## __AWS RoboMaker__ - - ### Features - - Added support for streaming a GUI from robot and simulation applications - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Signer__ - - ### Features - - This release enables signing image format override in PutSigningProfile requests, adding two more enum fields, JSONEmbedded and JSONDetached. This release also extends the length limit of SigningProfile name from 20 to 64. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release provides customers with a self-service option to enable Local Zones. - -## __Amazon GuardDuty__ - - ### Features - - Amazon GuardDuty findings now include the OutpostArn if the finding is generated for an AWS Outposts EC2 host. - -## __Netty NIO Http Client__ - - ### Bugfixes - - Expand Http2 connection-level flow control window when a new stream is acquired on that connection so that the connection-level window size is proportional to the number of streams. - -# __2.10.80__ __2020-03-05__ -## __AWS OpsWorks CM__ - - ### Features - - Updated the Tag regex pattern to align with AWS tagging APIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - Adds javadoc to operation methods and request/response objects. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - You can now create AWS Client VPN Endpoints with a specified VPC and Security Group. Additionally, you can modify these attributes when modifying the endpoint. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Amazon EKS now supports adding a KMS key to your cluster for envelope encryption of Kubernetes secrets. - -## __Amazon GuardDuty__ - - ### Features - - Add a new finding field for EC2 findings indicating the instance's local IP address involved in the threat. - -# __2.10.79__ __2020-03-04__ -## __Amazon Pinpoint__ - - ### Features - - This release of the Amazon Pinpoint API introduces support for integrating recommender models with email, push notification, and SMS message templates. You can now use these types of templates to connect to recommender models and add personalized recommendations to messages that you send from campaigns and journeys. - -# __2.10.78__ __2020-03-03__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon VPC Flow Logs adds support for tags and tagging on resource creation. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix an issue where the Netty client was prematurely considering an HTTP/2 request body as sent, but was still in the process of being transferred to the remote endpoint. - -# __2.10.77__ __2020-03-02__ -## __AWS Comprehend Medical__ - - ### Features - - New Time Expression feature, part of DetectEntitiesV2 API will provide temporal relations to existing NERe entities such as Medication, Test, Treatment, Procedure and Medical conditions. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon CloudWatch__ - - ### Features - - Introducing Amazon CloudWatch Composite Alarms - -# __2.10.76__ __2020-02-28__ -## __AWS Config__ - - ### Features - - Correcting list of supported resource types. - -# __2.10.75__ __2020-02-28__ -## __AWS App Mesh__ - - ### Features - - App Mesh now supports Transport Layer Security (TLS) between Virtual Nodes in a Mesh. Customers can use managed certificates from an AWS Certificate Manager Private Certificate Authority or bring their own certificates from the local file system to encrypt traffic between their workloads. See https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual-node-tls.html for details. - -## __AWS Config__ - - ### Features - - Accepts a structured query language (SQL) SELECT command and an aggregator name, performs the corresponding search on resources aggregated by the aggregator, and returns resource configurations matching the properties. - -## __AWS Glue__ - - ### Features - - AWS Glue adds resource tagging support for Machine Learning Transforms and adds a new API, ListMLTransforms to support tag filtering. With this feature, customers can use tags in AWS Glue to organize and control access to Machine Learning Transforms. - -## __Access Analyzer__ - - ### Features - - This release includes improvements and fixes bugs for the IAM Access Analyzer feature. - -## __Amazon Augmented AI Runtime__ - - ### Features - - This release updates Amazon Augmented AI ListHumanLoops API, DescribeHumanLoop response, StartHumanLoop response and type names of SDK fields. - -## __Amazon CodeGuru Profiler__ - - ### Features - - Documentation updates for Amazon CodeGuru Profiler - -## __Amazon QuickSight__ - - ### Features - - Added SearchDashboards API that allows listing of dashboards that a specific user has access to. - -## __Amazon WorkDocs__ - - ### Features - - Documentation updates for workdocs - -## __Elastic Load Balancing__ - - ### Features - - Added a target group attribute to support sticky sessions for Network Load Balancers. - -# __2.10.74__ __2020-02-27__ -## __AWS Global Accelerator__ - - ### Features - - This release adds support for adding tags to accelerators and bringing your own IP address to AWS Global Accelerator (BYOIP). - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Lightsail__ - - ### Features - - Adds support to create notification contacts in Amazon Lightsail, and to create instance, database, and load balancer metric alarms that notify you based on the value of a metric relative to a threshold that you specify. - -# __2.10.73__ __2020-02-26__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Security Hub has added to the DescribeProducts API operation a new response field called IntegrationTypes. The IntegrationTypes field lists the types of actions that a product performs relative to Security Hub such as send findings to Security Hub and receive findings from Security Hub. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - Added the BeanTableSchema implementation of TableSchema that allows a TableSchema to be instantiated from an annotated Java bean class which can then be used with the DynamoDB Enhanced Client. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release changes the RunInstances CLI and SDK's so that if you do not specify a client token, a randomly generated token is used for the request to ensure idempotency. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker UpdateEndpoint API now supports retained variant properties, e.g., instance count, variant weight. SageMaker ListTrials API filter by TrialComponentName. Make ExperimentConfig name length limits consistent with CreateExperiment, CreateTrial, and CreateTrialComponent APIs. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe's Automatic Content Redaction feature enables you to automatically redact sensitive personally identifiable information (PII) from transcription results. It replaces each instance of an identified PII utterance with a [PII] tag in the transcript. - -# __2.10.72__ __2020-02-25__ -## __AWS Outposts__ - - ### Features - - This release adds DeleteSite and DeleteOutpost. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Secrets Manager__ - - ### Features - - This release increases the maximum allowed size of SecretString or SecretBinary from 10KB to 64KB in the CreateSecret, UpdateSecret, PutSecretValue and GetSecretValue APIs. - -## __AWS Step Functions__ - - ### Features - - This release adds support for CloudWatch Logs for Standard Workflows. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - Improves discoverability by adding consumer-style methods for all client, table and index operations. - -## __Managed Streaming for Kafka__ - - ### Features - - Amazon MSK has added support for Broker Log delivery to CloudWatch, S3, and Firehose. - -# __2.10.71__ __2020-02-24__ -## __AWS IoT Events__ - - ### Features - - Documentation updates for iotcolumbo - -## __Amazon CloudWatch Events__ - - ### Features - - This release allows you to create and manage tags for event buses. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Documentation updates for docdb - -## __Amazon EventBridge__ - - ### Features - - This release allows you to create and manage tags for event buses. - -## __Amazon FSx__ - - ### Features - - Announcing persistent file systems for Amazon FSx for Lustre that are ideal for longer-term storage and workloads, and a new generation of scratch file systems that offer higher burst throughput for spiky workloads. - -## __Amazon Import/Export Snowball__ - - ### Features - - AWS Snowball adds a field for entering your GSTIN when creating AWS Snowball jobs in the Asia Pacific (Mumbai) region. - -# __2.10.70__ __2020-02-21__ -## __AWS WAFV2__ - - ### Features - - Documentation updates for AWS WAF (wafv2) to correct the guidance for associating a web ACL to a CloudFront distribution. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - Improves discoverability by adding consumer-style methods for all client, table and index operations. - -## __Amazon Redshift__ - - ### Features - - Extend elastic resize to support resizing clusters to different instance types. - -## __EC2 Image Builder__ - - ### Features - - This release of EC2 Image Builder increases the maximum policy document size for Image Builder resource-based policy APIs. - -# __2.10.69__ __2020-02-20__ -## __AWS Savings Plans__ - - ### Features - - Added support for AWS Lambda in Compute Savings Plans - -## __Amazon AppConfig__ - - ### Features - - This release adds exponential growth type support for deployment strategies. - -## __Amazon Pinpoint__ - - ### Features - - As of this release of the Amazon Pinpoint API, the Title property is optional for the CampaignEmailMessage object. - -# __2.10.68__ __2020-02-19__ -## __AWS Lambda__ - - ### Features - - AWS Lambda now supports Ruby 2.7 - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Service Catalog__ - - ### Features - - "ListPortfolioAccess" API now has a new optional parameter "OrganizationParentId". When it is provided and if the portfolio with the "PortfolioId" given was shared with an organization or organizational unit with "OrganizationParentId", all accounts in the organization sub-tree under parent which inherit an organizational portfolio share will be listed, rather than all accounts with external shares. To accommodate long lists returned from the new option, the API now supports pagination. - -## __Auto Scaling__ - - ### Features - - Doc update for EC2 Auto Scaling: Add Enabled parameter for PutScalingPolicy - -# __2.10.67__ __2020-02-18__ -## __Amazon Chime__ - - ### Features - - Added AudioFallbackUrl to support Chime SDK client. - -## __Amazon Relational Database Service__ - - ### Features - - This release supports Microsoft Active Directory authentication for Amazon Aurora. - -## __Auto Scaling__ - - ### Features - - Amazon EC2 Auto Scaling now supports the ability to enable/disable target tracking, step scaling, and simple scaling policies. - -# __2.10.66__ __2020-02-17__ -## __AWS Cloud9__ - - ### Features - - AWS Cloud9 now supports the ability to tag Cloud9 development environments. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DynamoDB__ - - ### Features - - Amazon DynamoDB enables you to restore your DynamoDB backup or table data across AWS Regions such that the restored table is created in a different AWS Region from where the source table or backup resides. You can do cross-region restores between AWS commercial Regions, AWS China Regions, and AWS GovCloud (US) Regions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for EC2 - -## __Amazon Rekognition__ - - ### Features - - This update adds the ability to detect text in videos and adds filters to image and video text detection. - -# __2.10.65__ __2020-02-14__ -## __AWS MediaTailor__ - - ### Features - - AWS Elemental MediaTailor SDK now allows configuration of Personalization Threshold for HLS and DASH streams. - -## __AWS SecurityHub__ - - ### Features - - Security Hub has released a new DescribeStandards API action. This API action allows a customer to list all of the standards available in an account. For each standard, the list provides the customer with the standard name, description, and ARN. Customers can use the ARN as an input to the BatchEnableStandards API action. To learn more, visit our API documentation. - -## __AWS Shield__ - - ### Features - - This release adds support for associating Amazon Route 53 health checks to AWS Shield Advanced protected resources. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - You can now enable Multi-Attach on Provisioned IOPS io1 volumes through the create-volume API. - -## __Amazon S3__ - - ### Features - - Added support for presigning `CreateMultipartUpload`, `UploadPart`, `CompleteMultipartUpload`, and `AbortMultipartUpload` requests. - -# __2.10.64__ __2020-02-13__ -## __AWS Elemental MediaPackage VOD__ - - ### Features - - Adds support for DASH with multiple media presentation description periods triggered by presence of SCTE-35 ad markers in the manifest.Also adds optional configuration for DASH SegmentTemplateFormat to refer to segments by Number with Duration, Number with Timeline or Time with Timeline and compact the manifest by combining duplicate SegmentTemplate tags. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - Improves discoverability by adding operation methods for deleteItem(), getItem(), putItem and updateItem(), as applicable. These methods take a request object as parameter. Execute() methods for the table interface is removed since they are no longer needed. - -## __Netty NIO HTTP Client__ - - ### Features - - When there is an I/O error on an http2 request, the SDK will start shutting down the connection - stopping using the http2 connection for new requests and closing it after all streams are finished. - -# __2.10.63__ __2020-02-12__ -## __AWS Directory Service__ - - ### Features - - Release to add the ExpirationDateTime as an output to ListCertificates so as to ease customers to look into their certificate lifetime and make timely decisions about renewing them. - -## __AWS Glue__ - - ### Features - - Adding ability to add arguments that cannot be overridden to AWS Glue jobs - -## __Amazon Chime__ - - ### Features - - Documentation updates for Amazon Chime - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for tagging public IPv4 pools. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon Elasticsearch Service now offers fine-grained access control, which adds multiple capabilities to give tighter control over data. New features include the ability to use roles to define granular permissions for indices, documents, or fields and to extend Kibana with read-only views and secure multi-tenant support. - -## __Amazon Neptune__ - - ### Features - - This launch enables Neptune start-db-cluster and stop-db-cluster. Stopping and starting Amazon Neptune clusters helps you manage costs for development and test environments. You can temporarily stop all the DB instances in your cluster, instead of setting up and tearing down all the DB instances each time that you use the cluster. - -## __Amazon WorkMail__ - - ### Features - - This release adds support for access control rules management in Amazon WorkMail. - -# __2.10.62__ __2020-02-11__ -## __AWS CloudFormation__ - - ### Features - - This release of AWS CloudFormation StackSets allows you to centrally manage deployments to all the accounts in your organization or specific organizational units (OUs) in AWS Organizations. You will also be able to enable automatic deployments to any new accounts added to your organization or OUs. The permissions needed to deploy across accounts will automatically be taken care of by the StackSets service. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Features:This release adds a new setting for a user pool to allow if customer wants their user signup/signin with case insensitive username. The current default setting is case sensitive, and for our next release we will change it to case insensitive. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 Now Supports Tagging Spot Fleet. - -# __2.10.61__ __2020-02-10__ -## __AWS Key Management Service__ - - ### Features - - The ConnectCustomKeyStore API now provides a new error code (SUBNET_NOT_FOUND) for customers to better troubleshoot if their "connect-custom-key-store" operation fails. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - Added clarifying information that Amazon DocumentDB shares operational technology with Amazon RDS and Amazon Neptune. - -# __2.10.60__ __2020-02-07__ -## __AWS RoboMaker__ - - ### Features - - This release adds support for simulation job batches - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - Improves discoverability by renaming the table and index interfaces to be consistent with the client interface naming, and by adding operation methods for createTable(), scan() and query(), as applicable. These methods take a request object as parameter. Execute() methods for the index interface is removed since they are no longer needed. - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for RDS: when restoring a DB cluster from a snapshot, must create DB instances - -## __EC2 Image Builder__ - - ### Features - - This version of the SDK includes bug fixes and documentation updates. - -# __2.10.59__ __2020-02-06__ -## __AWS AppSync__ - - ### Features - - AWS AppSync now supports X-Ray - -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild adds support for Amazon Elastic File Systems - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - In order to make operations more easily discoverable by an IDE, specific operation methods have been added to the enhanced client interface. An operation method takes a corresponding request object as parameter. Meanwhile, the generic execute() method is removed. This change affects only batch and transcribe operations at the database level. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release contains updated text for the GetAuthorizationToken API. - -## __Amazon Elastic Block Store__ - - ### Features - - Documentation updates for EBS direct APIs. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds platform details and billing info to the DescribeImages API. - -## __Amazon Lex Model Building Service__ - - ### Features - - Amazon Lex now supports AMAZON.AlphaNumeric with regular expressions. - -# __2.10.58__ __2020-02-05__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for fine-tuned QVBR quality level. - -## __AWS Ground Station__ - - ### Features - - Adds dataflowEndpointRegion property to DataflowEndpointConfig. The dateCreated, lastUpdated, and tags properties on GetSatellite have been deprecated. - -## __AWS Resource Groups Tagging API__ - - ### Features - - Documentation-only update that adds services to the list of supported services. - -## __AWS SecurityHub__ - - ### Features - - Additional resource types are now supported in the AWS Security Finding Format (ASFF). The following new resource types are added, each having an accompanying resource details object with fields for security finding providers to populate: AwsCodeBuildProject, AwsEc2NetworkInterface, AwsEc2SecurityGroup, AwsElasticsearchDomain, AwsLambdaLayerVersion, AwsRdsDbInstance, and AwsWafWebAcl. The following resource types are added without an accompanying details object: AutoscalingAutoscalingGroup, AwsDynamoDbTable, AwsEc2Eip, AwsEc2Snapshot, AwsEc2Volume, AwsRdsDbSnapshot, AwsRedshiftCluster, and AwsS3Object. The number of allowed resources per finding is increased from 10 to 32. A new field is added in the Compliance object, RelatedRequirements. To learn more, visit our documentation on the ASFF. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Updated the maximum number of tags that can be added to a snapshot using DLM to 45. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release provides support for tagging when you create a VPC endpoint, or VPC endpoint service. - -## __Amazon Forecast Query Service__ - - ### Features - - Documentation updates for Amazon Forecast. - -# __2.10.57__ __2020-02-04__ -## __AWS IoT__ - - ### Features - - Updated ThrottlingException documentation to report that the error code is 400, and not 429, to reflect actual system behaviour. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Storage Gateway__ - - ### Features - - Adding KVM as a support hypervisor - -## __Amazon CloudFront__ - - ### Features - - Documentation updates for CloudFront - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - Changing usage of typed builders for PutItem, UpdateItem and StaticTableSchema to explicitly provide class type. - - Renames top level sync/async MappedDatabase interfaces as DynamoDbEnhancedClient interfaces. Also adds builder definitions to the interfaces together with a static method that returns the default implementation of the builder. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon VPC Flow Logs adds support for 1-minute aggregation intervals. - -## __Amazon S3__ - - ### Bugfixes - - Fixed an issue where fields in `ListObjectVersionsResponse` and `ListMultipartUploadsResponse` are not decoded correctly when encodingType is specified as url. See [#1601](https://github.com/aws/aws-sdk-java-v2/issues/1601) - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This feature ensures that an instance is patched up to the available patches on a particular date. It can be enabled by selecting the 'ApproveUntilDate' option as the auto-approval rule while creating the patch baseline. ApproveUntilDate - The cutoff date for auto approval of released patches. Any patches released on or before this date will be installed automatically. - -## __Amazon WorkMail__ - - ### Features - - This release adds support for tagging Amazon WorkMail organizations. - -## __Managed Streaming for Kafka__ - - ### Features - - This release enables AWS MSK customers to list Apache Kafka versions that are supported on AWS MSK clusters. Also includes changes to expose additional details of a cluster's state in DescribeCluster and ListClusters APIs. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Deliver exceptions to stream channels correctly if there's an exception thrown on connection. This also fixes a bug where publisher signals onComplete if the stream is closed as a result of outbound GOAWAY. - - Throws `IOException` for the race condition where an HTTP2 connection gets reused at the same time it gets inactive so that failed requests can be retried - -# __2.10.56__ __2020-01-24__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now supports FSx for Windows File Server Locations - -## __AWS OpsWorks CM__ - - ### Features - - AWS OpsWorks for Chef Automate now supports in-place upgrade to Chef Automate 2. Eligible servers can be updated through the management console, CLI and APIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon EC2__ - - ### Features - - Adds EC2ThrottledException as a recognized throttling exception to be retried - -## __Amazon EC2 Container Service__ - - ### Features - - This release provides support for tagging Amazon ECS task sets for services using external deployment controllers. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Adding new error codes for Nodegroups in EKS - -## __Amazon WorkSpaces__ - - ### Features - - Documentation updates for WorkSpaces - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix issue where DNS resolution for a host is only made once for the initial request to the host. If the DNS entries change for a hostname, the client will resolve the new address until the client is closed and recreated. - -# __2.10.55__ __2020-01-23__ -## __AWS Identity and Access Management__ - - ### Features - - This release enables the Identity and Access Management policy simulator to simulate permissions boundary policies. - -## __AWS SDK for Java v2__ - - ### Features - - Added ServiceMetadata.servicePartitions() to get partition metadata for a specific service - - Improved error messages on UnknownHostExceptions - - Updated service endpoint metadata. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - Support for non-blocking asynchronous calling of all mapper operations - -## __Amazon Relational Database Service__ - - ### Features - - This SDK release introduces APIs that automate the export of Amazon RDS snapshot data to Amazon S3. The new APIs include: StartExportTask, CancelExportTask, DescribeExportTasks. These APIs automate the extraction of data from an RDS snapshot and export it to an Amazon S3 bucket. The data is stored in a compressed, consistent, and query-able format. After the data is exported, you can query it directly using tools such as Amazon Athena or Redshift Spectrum. You can also consume the data as part of a data lake solution. If you archive the data in S3 Infrequent Access or Glacier, you can reduce long term data storage costs by applying data lifecycle policies. - -# __2.10.54__ __2020-01-21__ -## __AWS Application Discovery Service__ - - ### Features - - Documentation updates for the AWS Application Discovery Service. - -## __AWS CodePipeline__ - - ### Features - - AWS CodePipeline enables an ability to stop pipeline executions. - -## __AWS IoT Events__ - - ### Features - - Documentation updates for iotcolumbo - -## __AWS Marketplace Commerce Analytics__ - - ### Features - - Remove 4 deprecated data sets, change some data sets available dates to 2017-09-15 - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add an enum value to the result of DescribeByoipCidrs to support CIDRs that are not publicly advertisable. - -## __Netty NIO Http Client__ - - ### Bugfixes - - Fixed a bug where an inactive http2 connection without `GOAWAY` frame received might get reused in a new request, causing `ClosedChannelException` - -# __2.10.53__ __2020-01-20__ -## __AWS Key Management Service__ - - ### Features - - The ConnectCustomKeyStore operation now provides new error codes (USER_LOGGED_IN and USER_NOT_FOUND) for customers to better troubleshoot if their connect custom key store operation fails. Password length validation during CreateCustomKeyStore now also occurs on the client side. - -## __AWS Lambda__ - - ### Features - - Added reason codes to StateReasonCode (InvalidSubnet, InvalidSecurityGroup) and LastUpdateStatusReasonCode (SubnetOutOfIPAddresses, InvalidSubnet, InvalidSecurityGroup) for functions that connect to a VPC. - -## __Alexa For Business__ - - ### Features - - Add support for CreatedTime and ConnectionStatusUpdatedTime in response of SearchDevices API. - -## __Amazon CloudWatch__ - - ### Features - - Updating DescribeAnomalyDetectors API to return AnomalyDetector Status value in response. - -## __Amazon CloudWatch Application Insights__ - - ### Features - - This release adds support for a list API to retrieve the configuration events logged during periodic updates to an application by Amazon CloudWatch Application Insights. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release provides support for a preview of bringing your own IPv6 addresses (BYOIP for IPv6) for use in AWS. - -# __2.10.52__ __2020-01-17__ -## __AWS Batch__ - - ### Features - - This release ensures INACTIVE job definitions are permanently deleted after 180 days. - -## __AWS CloudHSM V2__ - - ### Features - - This release introduces resource-level and tag-based access control for AWS CloudHSM resources. You can now tag CloudHSM backups, tag CloudHSM clusters on creation, and tag a backup as you copy it to another region. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for MP3 audio only outputs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon EC2 Container Service__ - - ### Features - - This release provides a public preview for specifying Amazon EFS file systems as volumes in your Amazon ECS task definitions. - -## __Amazon Neptune__ - - ### Features - - This release includes Deletion Protection for Amazon Neptune databases. - -## __Amazon Redshift__ - - ### Features - - Documentation updates for redshift - -# __2.10.51__ __2020-01-16__ -## __AWS Directory Service__ - - ### Features - - To reduce the number of errors our customers are facing, we have modified the requirements of input parameters for two of Directory Service APIs. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Client VPN now supports Port Configuration for VPN Endpoints, allowing usage of either port 443 or port 1194. - -## __Amazon SageMaker Service__ - - ### Features - - This release adds two new APIs (UpdateWorkforce and DescribeWorkforce) to SageMaker Ground Truth service for workforce IP whitelisting. - -# __2.10.50__ __2020-01-15__ -## __AWS Organizations__ - - ### Features - - Updated description for PolicyID parameter and ConstraintViolationException. - -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS SecurityHub__ - - ### Features - - Add support for DescribeStandardsControls and UpdateStandardsControl. These new Security Hub API operations are used to track and manage whether a compliance standards control is enabled. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - General Update to EC2 Docs and SDKs - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Document updates for Patch Manager 'NoReboot' feature. - -## __Amazon Transcribe Service__ - - ### Bugfixes - - Fixed an issue where streaming transcriptions would fail with signature validation errors if the date changed during the request. - -# __2.10.49__ __2020-01-14__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for partition placement groups and instance metadata option in Launch Templates - -# __2.10.48__ __2020-01-13__ -## __AWS Backup__ - - ### Features - - Cross-region backup is a new AWS Backup feature that allows enterprises to copy backups across multiple AWS services to different regions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for the StopInstances API. You can now stop and start an Amazon EBS-backed Spot Instance at will, instead of relying on the Stop interruption behavior to stop your Spot Instances when interrupted. - -## __Amazon Elastic File System__ - - ### Features - - This release adds support for managing EFS file system policies and EFS Access Points. - -## __Amazon S3__ - - ### Bugfixes - - Fixed bug prevent GetBucketBolicy from ever being successful using the asynchronous S3 client. - -# __2.10.47__ __2020-01-10__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - - Updated service endpoints and added global endpoints for iso and iso-b. - -## __AWS Transfer for SFTP__ - - ### Features - - This release introduces a new endpoint type that allows you to attach Elastic IP addresses from your AWS account with your server's endpoint directly and whitelist access to your server by client's internet IP address(es) using VPC Security Groups. - -## __Amazon Chime__ - - ### Features - - Add shared profile support to new and existing users - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release introduces the ability to tag egress only internet gateways, local gateways, local gateway route tables, local gateway virtual interfaces, local gateway virtual interface groups, local gateway route table VPC association and local gateway route table virtual interface group association. You can use tags to organize and identify your resources for cost allocation. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds an operation that enables users to override the system-default SSL/TLS certificate for new Amazon RDS DB instances temporarily, or remove the customer override. - -## __Amazon S3__ - - ### Bugfixes - - Fix an issue where s3#listObjects incorrectly decoded marker field. See [#1574](https://github.com/aws/aws-sdk-java-v2/issues/1574). - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker ListTrialComponents API filter by TrialName and ExperimentName. - -## __Amazon WorkSpaces__ - - ### Features - - Added the migrate feature to Amazon WorkSpaces. - -# __2.10.46__ __2020-01-09__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Increase the priority of the AWS_WEB_IDENTITY_TOKEN_FILE/AWS_ROLE_ARN/AWS_ROLE_SESSION_NAME environment variables when loading credentials so that they are considered before web_identity_token_file/role_arn/role_session_name profile properties. This is consistent with the other AWS SDKs, including the CLI. - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for sts - -## __Amazon CloudWatch Logs__ - - ### Features - - Documentation updates for logs - -## __Amazon S3__ - - ### Features - - Add support for Tagging builder in `CreateMultipartUploadRequest`. See [#1440](https://github.com/aws/aws-sdk-java-v2/issues/1440) - -# __2.10.45__ __2020-01-08__ -## __AWS Cost Explorer Service__ - - ### Features - - Documentation updates for CreateCostCategoryDefinition and UpdateCostCategoryDefinition API - -## __AWS Step Functions__ - - ### Features - - Add sfn specific http configurations. See [#1325](https://github.com/aws/aws-sdk-java-v2/issues/1325) - -## __Amazon EC2__ - - ### Bugfixes - - Fix NPE when calling `CopySnapshot`. Fixes [#1564](https://github.com/aws/aws-sdk-java-v2/issues/1564) - -## __Amazon Translate__ - - ### Features - - This release adds a new family of APIs for asynchronous batch translation service that provides option to translate large collection of text or HTML documents stored in Amazon S3 folder. This service accepts a batch of up to 5 GB in size per API call with each document not exceeding 1 MB size and the number of documents not exceeding 1 million per batch. See documentation for more information. - -## __Firewall Management Service__ - - ### Features - - AWS Firewall Manager now supports tagging, and tag-based access control, of policies. - -# __2.10.44__ __2020-01-07__ -## __AWS CodeBuild__ - - ### Features - - Add encryption key override to StartBuild API in AWS CodeBuild. - -## __AWS Migration Hub__ - - ### Features - - ListApplicationStates API provides a list of all application migration states - -## __AWS X-Ray__ - - ### Features - - Documentation updates for xray - -# __2.10.43__ __2020-01-06__ -## __AWS Elemental MediaPackage__ - - ### Features - - You can now restrict direct access to AWS Elemental MediaPackage by securing requests for live content using CDN authorization. With CDN authorization, content requests require a specific HTTP header and authorization code. - -## __AWS SDK for Java v2__ - - ### Features - - Add `RequestBody.fromRemainingByteBuffer(ByteBuffer)` that copies only the remaining readable bytes of the buffer. See [#1534](https://github.com/aws/aws-sdk-java-v2/issues/1534) - - - ### Bugfixes - - Reduce ReadTimeout and ConnectTimeout for accessing EC2 metadata instance service - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now supports Multilabel document classification - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release supports service providers configuring a private DNS name for services other than AWS services and services available in the AWS marketplace. This feature allows consumers to access the service using an existing DNS name without making changes to their applications. - -## __Amazon S3__ - - ### Bugfixes - - Requests that return an error response in the body of the HTTP response with a successful (200) status code will now correctly be handled as a failed request by the SDK. - -# __2.10.42__ __2020-01-02__ -## __AWS Cost Explorer Service__ - - ### Features - - Documentation updates for GetReservationUtilization for the Cost Explorer API. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix unmarshalling for models with xml attributes. See [#1488](https://github.com/aws/aws-sdk-java-v2/issues/1488). - -## __Amazon EC2 Container Registry__ - - ### Features - - Adds waiters for ImageScanComplete and LifecyclePolicyPreviewComplete - -## __Amazon Lex Model Building Service__ - - ### Features - - Documentation updates for Amazon Lex. - -## __Amazon Lightsail__ - - ### Features - - This release adds support for Certificate Authority (CA) certificate identifier to managed databases in Amazon Lightsail. - -## __Netty NIO Http Client__ - - ### Bugfixes - - Propagate exception properly when an exception is thrown from protocol initialization. - -# __2.10.41__ __2019-12-23__ -## __AWS Health APIs and Notifications__ - - ### Features - - With this release, you can now centrally aggregate AWS Health events from all accounts in your AWS organization. Visit AWS Health documentation to learn more about enabling and using this feature: https://docs.aws.amazon.com/health/latest/ug/organizational-view-health.html. - -## __Amazon Detective__ - - ### Features - - Updated the documentation for Amazon Detective. - -## __Amazon FSx__ - - ### Features - - This release adds a new family of APIs (create-data-repository-task, describe-data-repository-task, and cancel-data-repository-task) that allow users to perform operations between their file system and its linked data repository. - -# __2.10.40__ __2019-12-20__ -## __AWS Device Farm__ - - ### Features - - Introduced browser testing support through AWS Device Farm - -## __AWS SecurityHub__ - - ### Features - - Additional resource types are now fully supported in the AWS Security Finding Format (ASFF). These resources include AwsElbv2LoadBalancer, AwsKmsKey, AwsIamRole, AwsSqsQueue, AwsLambdaFunction, AwsSnsTopic, and AwsCloudFrontDistribution. Each of these resource types includes an accompanying resource details object with fields for security finding providers to populate. Updates were made to the AwsIamAccessKey resource details object to include information on principal ID and name. To learn more, visit our documentation on the ASFF. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release introduces the ability to tag key pairs, placement groups, export tasks, import image tasks, import snapshot tasks and export image tasks. You can use tags to organize and identify your resources for cost allocation. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Amazon EKS now supports restricting access to the API server public endpoint by applying CIDR blocks - -## __Amazon Pinpoint__ - - ### Features - - This release of the Amazon Pinpoint API introduces versioning support for message templates. - -## __Amazon Redshift__ - - ### Features - - Documentation updates for Amazon Redshift RA3 node types. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds an operation that enables users to specify whether a database is restarted when its SSL/TLS certificate is rotated. Only customers who do not use SSL/TLS should use this operation. - -## __Amazon S3__ - - ### Bugfixes - - Fixed an issue where the SDK would attempt to validate the checksum on a PutObjectRequest when S3 was returning invalid checksums. This would cause all requests to buckets with customer-managed-key service-side encryption to fail. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release updates the attachments support to include AttachmentReference source for Automation documents. - -## __Amazon Transcribe Service__ - - ### Features - - AWS Transcribe now supports vocabulary filtering that allows customers to input words to the service that they don't want to see in the output transcript. - -# __2.10.39__ __2019-12-19__ -## __AWS CodeStar connections__ - - ### Features - - Public beta for Bitbucket Cloud support in AWS CodePipeline through integration with AWS CodeStar connections. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - You can now copy snapshots across regions using Data Lifecycle Manager (DLM). You can enable policies which, along with create, can now also copy snapshots to one or more AWS region(s). Copies can be scheduled for up to three regions from a single policy and retention periods are set for each region separately. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - We are updating the supportedRootDevices field to supportedRootDeviceTypes for DescribeInstanceTypes API to ensure that the actual value is returned, correcting a previous error in the model. - -## __Amazon GameLift__ - - ### Features - - Amazon GameLift now supports ARNs for all key GameLift resources, tagging for GameLift resource authorization management, and updated documentation that articulates GameLift's resource authorization strategy. - -## __Amazon Lex Model Building Service__ - - ### Features - - Amazon Lex now supports conversation logs and slot obfuscation. - -## __Amazon Personalize Runtime__ - - ### Features - - Add context map to get-recommendations and get-personalized-ranking request objects to provide contextual metadata at inference time - -## __Amazon S3__ - - ### Bugfixes - - Fixed an issue where a 'checksum mismatch' error is raised whenever a PutObject request is retried while using an async client. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release allows customers to add tags to Automation execution, enabling them to sort and filter executions in different ways, such as by resource, purpose, owner, or environment. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe supports job queuing for the StartTranscriptionJob API. - -## __Netty NIO HTTP Client__ - - ### Features - - `SETTINGS_INITIAL_WINDOW_SIZE` is now configurable on HTTP/2 connections opened by the Netty client using `Http2Configuration#initialWindowSize(Integer)` along with `NettyNioAsyncHttpClient.Builder#http2Configuration(Http2Configuration)`. See https://tools.ietf.org/html/rfc7540#section-6.5.2 for more information. - -# __2.10.38__ __2019-12-18__ -## __AWS OpsWorks CM__ - - ### Features - - AWS OpsWorks CM now supports tagging, and tag-based access control, of servers and backups. - -## __AWS Resource Groups Tagging API__ - - ### Features - - Documentation updates for resourcegroupstaggingapi - -## __Amazon CloudFront__ - - ### Features - - Documentation updates for CloudFront - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release introduces the ability to tag Elastic Graphics accelerators. You can use tags to organize and identify your accelerators for cost allocation. - -## __Amazon Simple Storage Service__ - - ### Features - - Updates Amazon S3 endpoints allowing you to configure your client to opt-in to using S3 with the us-east-1 regional endpoint, instead of global. - -# __2.10.37__ __2019-12-17__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports HLS ID3 segment tagging, HLS redundant manifests for CDNs that support different publishing/viewing endpoints, fragmented MP4 (fMP4), and frame capture intervals specified in milliseconds. - -## __AWS IoT__ - - ### Features - - Added a new Over-the-Air (OTA) Update feature that allows you to use different, or multiple, protocols to transfer an image from the AWS cloud to IoT devices. - -## __Amazon EC2 Container Service__ - - ### Features - - Documentation updates for Amazon ECS. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for Amazon EC2 - -## __Amazon Kinesis Analytics__ - - ### Features - - Kinesis Data Analytics service now supports running Java applications using Flink 1.8. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Added support for Cloud Watch Output and Document Version to the Run Command tasks in Maintenance Windows. - -# __2.10.36__ __2019-12-16__ -## __AWS Comprehend Medical__ - - ### Features - - New Ontology linking APIs will provides medication concepts normalization and Diagnoses codes from input text. In this release we will provide two APIs - RxNorm and ICD10-CM. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - You can now configure your EC2 Fleet to preferentially use EC2 Capacity Reservations for launching On-Demand instances, enabling you to fully utilize the available (and unused) Capacity Reservations before launching On-Demand instances on net new capacity. - -## __Amazon S3__ - - ### Features - - CopyObjectRequest now has `destinationBucket` and `destinationKey` properties for clarity. - The existing names, `bucket` and `key`, are deprecated. - -## __AmazonMQ__ - - ### Features - - Amazon MQ now supports throughput-optimized message brokers, backed by Amazon EBS. - -# __2.10.35__ __2019-12-13__ -## __AWS CodeBuild__ - - ### Features - - CodeBuild adds support for cross account - -## __Amazon Detective__ - - ### Features - - This is the initial release of Amazon Detective. - -## __Amazon Simple Email Service__ - - ### Features - - Added the ability to use your own public-private key pair to configure DKIM authentication for a domain identity. - -# __2.10.34__ __2019-12-12__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixing exception using `RequestBody.fromInputStream` on non-resettable `InputStreams` by making `reset` conditional on `markSupported`. See [#1544](https://github.com/aws/aws-sdk-java-v2/issues/1544) / [#1545](https://github.com/aws/aws-sdk-java-v2/issues/1545) - -## __Access Analyzer__ - - ### Features - - This release includes improvements and fixes bugs for the IAM Access Analyzer feature. - -# __2.10.33__ __2019-12-11__ -## __AWS SDK for Java v2__ - - ### Features - - Adds a `has*` method to requests and responses that have a List or Map property. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release allows customers to attach multiple Elastic Inference Accelerators to a single EC2 instance. It adds support for a Count parameter for each Elastic Inference Accelerator type you specify on the RunInstances and LaunchTemplate APIs. - -# __2.10.32__ __2019-12-10__ -## __AWSKendraFrontendService__ - - ### Features - - 1. Adding DocumentTitleFieldName as an optional configuration for SharePoint. 2. updating s3 object pattern to support all s3 keys. - -# __2.10.31__ __2019-12-09__ -## __AWS Key Management Service__ - - ### Features - - The Verify operation now returns KMSInvalidSignatureException on invalid signatures. The Sign and Verify operations now return KMSInvalidStateException when a request is made against a CMK pending deletion. - -## __Amazon QuickSight__ - - ### Features - - Documentation updates for QuickSight - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Adds the SSM GetCalendarState API and ChangeCalendar SSM Document type. These features enable the forthcoming Systems Manager Change Calendar feature, which will allow you to schedule events during which actions should (or should not) be performed. - -## __Managed Streaming for Kafka__ - - ### Features - - AWS MSK has added support for Open Monitoring with Prometheus. - -## __Netty NIO HTTP Client__ - - ### Features - - Close HTTP/2 connections if they have had 0 streams for 5 seconds. This can be disabled using `useIdleConnectionReaper(false)` or have the time period adjusted using `connectionMaxIdleTime(...)` on the `NettyNioAsyncHttpClient.Builder`. - - Periodically ping HTTP/2 connections and close them if the service does not respond. The ping periodicity and timeout time is not currently configurable. - -# __2.10.30__ __2019-12-04__ -## __Amazon Kinesis Video Signaling Channels__ - - ### Features - - Announcing support for WebRTC in Kinesis Video Streams, as fully managed capability. You can now use simple APIs to enable your connected devices, web, and mobile apps with real-time two-way media streaming capabilities. - -## __Amazon Kinesis Video Streams__ - - ### Features - - Introduces management of signaling channels for Kinesis Video Streams. - -## __AmazonApiGatewayV2__ - - ### Features - - Amazon API Gateway now supports HTTP APIs (beta), enabling customers to quickly build high performance RESTful APIs that are up to 71% cheaper than REST APIs also available from API Gateway. HTTP APIs are optimized for building APIs that proxy to AWS Lambda functions or HTTP backends, making them ideal for serverless workloads. Using HTTP APIs, you can secure your APIs using OIDC and OAuth 2 out of box, quickly build web applications using a simple CORS experience, and get started immediately with automatic deployment and simple create workflows. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fixed an issue where closing the last stream on a connection that had been closed or received a GOAWAY did not close the connection. - - Fixed an issue where receiving a GOAWAY that would cause the closing of all streams could cause all outstanding streams to be completed successfully instead of exceptionally. - -# __2.10.29__ __2019-12-03__ -## __AWS Lambda__ - - ### Features - - - Added the ProvisionedConcurrency type and operations. Allocate provisioned concurrency to enable your function to scale up without fluctuations in latency. Use PutProvisionedConcurrencyConfig to configure provisioned concurrency on a version of a function, or on an alias. - -## __AWS Step Functions__ - - ### Features - - This release of the AWS Step Functions SDK introduces support for Express Workflows. - -## __Amazon Elastic Block Store__ - - ### Features - - This release introduces the EBS direct APIs for Snapshots: 1. ListSnapshotBlocks, which lists the block indexes and block tokens for blocks in an Amazon EBS snapshot. 2. ListChangedBlocks, which lists the block indexes and block tokens for blocks that are different between two snapshots of the same volume/snapshot lineage. 3. GetSnapshotBlock, which returns the data in a block of an Amazon EBS snapshot. - -## __Amazon Rekognition__ - - ### Features - - This SDK Release introduces APIs for Amazon Rekognition Custom Labels feature (CreateProjects, CreateProjectVersion,DescribeProjects, DescribeProjectVersions, StartProjectVersion, StopProjectVersion and DetectCustomLabels). Also new is AugmentedAI (Human In The Loop) Support for DetectModerationLabels in Amazon Rekognition. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for the Amazon RDS Proxy - -## __Amazon S3__ - - ### Bugfixes - - Interacting with an access point in a different region to the one the S3 client is configured for will no longer result in the request being signed for the wrong region and rejected by S3. - -## __Amazon SageMaker Service__ - - ### Features - - You can now use SageMaker Autopilot for automatically training and tuning candidate models using a combination of various feature engineering, ML algorithms, and hyperparameters determined from the user's input data. SageMaker Automatic Model Tuning now supports tuning across multiple algorithms. With Amazon SageMaker Experiments users can create Experiments, ExperimentTrials, and ExperimentTrialComponents to track, organize, and evaluate their ML training jobs. With Amazon SageMaker Debugger, users can easily debug training jobs using a number of pre-built rules provided by Amazon SageMaker, or build custom rules. With Amazon SageMaker Processing, users can run on-demand, distributed, and fully managed jobs for data pre- or post- processing or model evaluation. With Amazon SageMaker Model Monitor, a user can create MonitoringSchedules to automatically monitor endpoints to detect data drift and other issues and get alerted on them. This release also includes the preview version of Amazon SageMaker Studio with Domains, UserProfiles, and Apps. This release also includes the preview version of Amazon Augmented AI to easily implement human review of machine learning predictions by creating FlowDefinitions, HumanTaskUis, and HumanLoops. - -## __Application Auto Scaling__ - - ### Features - - This release supports auto scaling of provisioned concurrency for AWS Lambda. - -# __2.10.28__ __2019-12-03__ -## __AWS Compute Optimizer__ - - ### Features - - Initial release of AWS Compute Optimizer. AWS Compute Optimizer recommends optimal AWS Compute resources to reduce costs and improve performance for your workloads. - -## __AWS Network Manager__ - - ### Features - - This is the initial SDK release for AWS Network Manager. - -## __AWS Outposts__ - - ### Features - - This is the initial release for AWS Outposts, a fully managed service that extends AWS infrastructure, services, APIs, and tools to customer sites. AWS Outposts enables you to launch and run EC2 instances and EBS volumes locally at your on-premises location. This release introduces new APIs for creating and viewing Outposts. - -## __AWS S3 Control__ - - ### Features - - Amazon S3 Access Points is a new S3 feature that simplifies managing data access at scale for shared data sets on Amazon S3. Access Points provide a customizable way to access the objects in a bucket, with a unique hostname and access policy that enforces the specific permissions and network controls for any request made through the access point. This represents a new way of provisioning access to shared data sets. - -## __AWSKendraFrontendService__ - - ### Features - - It is a preview launch of Amazon Kendra. Amazon Kendra is a managed, highly accurate and easy to use enterprise search service that is powered by machine learning. - -## __Amazon Augmented AI Runtime__ - - ### Features - - This release adds support for Amazon Augmented AI, which makes it easy to build workflows for human review of machine learning predictions. - -## __Amazon CodeGuru Profiler__ - - ### Features - - (New Service) Amazon CodeGuru Profiler analyzes application CPU utilization and latency characteristics to show you where you are spending the most cycles in your application. This analysis is presented in an interactive flame graph that helps you easily understand which paths consume the most resources, verify that your application is performing as expected, and uncover areas that can be optimized further. - -## __Amazon CodeGuru Reviewer__ - - ### Features - - This is the preview release of Amazon CodeGuru Reviewer. - -## __Amazon EC2 Container Service__ - - ### Features - - This release supports ECS Capacity Providers, Fargate Spot, and ECS Cluster Auto Scaling. These features enable new ways for ECS to manage compute capacity used by tasks. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for the following features: 1. An option to enable acceleration for Site-to-Site VPN connections; 2. Inf1 instances featuring up to 16 AWS Inferentia chips; 3. The ability to associate route tables with internet gateways and virtual private gateways; 4. AWS Local Zones that place compute, storage, database, and other select services; 5. Launching and viewing EC2 instances and EBS volumes running locally in Outposts; 6. Peering Transit Gateways between regions simplifying creation of secure and private global networks on AWS; 7. Transit Gateway Multicast, enabling multicast routing within and between VPCs using Transit Gateway as a multicast router. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Introducing Amazon EKS with Fargate. Customers can now use Amazon EKS to launch pods directly onto AWS Fargate, the serverless compute engine built for containers on AWS. - -## __Amazon Elasticsearch Service__ - - ### Features - - UltraWarm storage provides a cost-effective way to store large amounts of read-only data on Amazon Elasticsearch Service. Rather than attached storage, UltraWarm nodes use Amazon S3 and a sophisticated caching solution to improve performance. For indices that you are not actively writing to and query less frequently, UltraWarm storage offers significantly lower costs per GiB. In Elasticsearch, these warm indices behave just like any other index. You can query them using the same APIs or use them to create dashboards in Kibana. - -## __Amazon Fraud Detector__ - - ### Features - - Amazon Fraud Detector is a fully managed service that makes it easy to identify potentially fraudulent online activities such as online payment fraud and the creation of fake accounts. Amazon Fraud Detector uses your data, machine learning (ML), and more than 20 years of fraud detection expertise from Amazon to automatically identify potentially fraudulent online activity so you can catch more fraud faster. - -## __Amazon Simple Storage Service__ - - ### Features - - Amazon S3 Access Points is a new S3 feature that simplifies managing data access at scale for shared data sets on Amazon S3. Access Points provide a customizable way to access the objects in a bucket, with a unique hostname and access policy that enforces the specific permissions and network controls for any request made through the access point. This represents a new way of provisioning access to shared data sets. - -## __Amazon Textract__ - - ### Features - - This SDK Release introduces Amazon Augmented AI support for Amazon Textract AnalyzeDocument API. Image byte payloads for synchronous operations have increased from 5 MB to 10 MB. - -# __2.10.27__ __2019-12-02__ -## __Access Analyzer__ - - ### Features - - Introducing AWS IAM Access Analyzer, an IAM feature that makes it easy for AWS customers to ensure that their resource-based policies provide only the intended access to resources outside their AWS accounts. - -# __2.10.26__ __2019-12-02__ -## __AWS License Manager__ - - ### Features - - AWS License Manager now automates discovery of bring-your-own-license usage across the customers organization. With few simple settings, customers can add bring your own license product information along with licensing rules, which would enable License Manager to automatically track the instances that have the specified products installed. If License Manager detects any violation of licensing rules, it would notify the customers designated license administrator to take corrective action. - -## __Amazon DynamoDB Enhanced Client [Preview]__ - - ### Features - - Write operations (put, get, delete) now support 'conditionExpression' - -## __Amazon Elastic Compute Cloud__ - - ### Features - - AWS now provides a new BYOL experience for software licenses, such as Windows and SQL Server, that require a dedicated physical server. You can now enjoy the flexibility and cost effectiveness of using your own licenses on Amazon EC2 Dedicated Hosts, but with the simplicity, resiliency, and elasticity of AWS. You can specify your Dedicated Host management preferences, such as host allocation, host capacity utilization, and instance placement in AWS License Manager. Once set up, AWS takes care of these administrative tasks on your behalf, so that you can seamlessly launch virtual machines (instances) on Dedicated Hosts just like you would launch an EC2 instance with AWS provided licenses. - -## __EC2 Image Builder__ - - ### Features - - This is the first release of EC2 Image Builder, a service that provides a managed experience for automating the creation of EC2 AMIs. - -## __Schemas__ - - ### Features - - This release introduces support for Amazon EventBridge schema registry, making it easy to discover and write code for events in EventBridge. - -# __2.10.25__ __2019-11-26__ -## __AWS Directory Service__ - - ### Features - - This release will introduce optional encryption over LDAP network traffic using SSL certificates between customer's self-managed AD and AWS Directory Services instances. The release also provides APIs for Certificate management. - -## __AWS Kinesis__ - - ### Bugfixes - - Reducing default read timeout and write timeout to 10 seconds for Kinesis client. - -## __AWS MediaTailor__ - - ### Features - - AWS Elemental MediaTailor SDK now allows configuration of the Live Pre-Roll feature for HLS and DASH streams. - -## __AWS Organizations__ - - ### Features - - Introduces the DescribeEffectivePolicy action, which returns the contents of the policy that's in effect for the account. - -## __AWS RDS DataService__ - - ### Features - - Type hints to improve handling of some specific parameter types (date/time, decimal etc) for ExecuteStatement and BatchExecuteStatement APIs - -## __AWS Resource Groups Tagging API__ - - ### Features - - You can use tag policies to help standardize on tags across your organization's resources. - -## __AWSServerlessApplicationRepository__ - - ### Features - - AWS Serverless Application Repository now supports verified authors. Verified means that AWS has made a good faith review, as a reasonable and prudent service provider, of the information provided by the requester and has confirmed that the requester's identity is as claimed. - -## __Amazon Cognito Identity Provider__ - - ### Features - - This release adds a new setting for a user pool to configure which recovery methods a user can use to recover their account via the forgot password operation. - -## __Amazon DynamoDB__ - - ### Features - - 1) Amazon Contributor Insights for Amazon DynamoDB is a diagnostic tool for identifying frequently accessed keys and understanding database traffic trends. 2) Support for displaying new fields when a table's encryption state is Inaccessible or the table have been Archived. - -## __Amazon Elastic Inference__ - - ### Features - - Amazon Elastic Inference allows customers to attach Elastic Inference Accelerators to Amazon EC2 and Amazon ECS tasks, thus providing low-cost GPU-powered acceleration and reducing the cost of running deep learning inference. This release allows customers to add or remove tags for their Elastic Inference Accelerators. - -## __Amazon QuickSight__ - - ### Features - - Documentation updates for QuickSight - -## __Amazon WorkSpaces__ - - ### Features - - For the WorkspaceBundle API, added the image identifier and the time of the last update. - -## __Netty NIO HTTP Client__ - - ### Features - - Detect unhealthy http2 connections when read or write times out by sending PING frames - -# __2.10.24__ __2019-11-25__ -## __AWS CodeBuild__ - - ### Features - - CodeBuild adds support for test reporting - -## __AWS Cost Explorer Service__ - - ### Features - - This launch provides customers with access to Cost Category Public Beta APIs. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for 8K outputs and support for QuickTime Animation Codec (RLE) inputs. - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports the ability to create a multiple program transport stream (MPTS). - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - Adds a domain name to PackagingGroups, representing the fully qualified domain name for Assets created in the group. - -## __AWS Greengrass__ - - ### Features - - IoT Greengrass supports machine learning resources in 'No container' mode. - -## __AWS IoT__ - - ### Features - - This release adds: 1) APIs for fleet provisioning claim and template, 2) endpoint configuration and custom domains, 3) support for enhanced custom authentication, d) support for 4 additional audit checks: Device and CA certificate key quality checks, IoT role alias over-permissive check and IoT role alias access to unused services check, 5) extended capability of AWS IoT Rules Engine to support IoT SiteWise rule action. The IoT SiteWise rule action lets you send messages from IoT sensors and applications to IoT SiteWise asset properties - -## __AWS IoT Secure Tunneling__ - - ### Features - - This release adds support for IoT Secure Tunneling to remote access devices behind restricted firewalls. - -## __AWS Key Management Service__ - - ### Features - - AWS Key Management Service (KMS) now enables creation and use of asymmetric Customer Master Keys (CMKs) and the generation of asymmetric data key pairs. - -## __AWS Lambda__ - - ### Features - - Added the function state and update status to the output of GetFunctionConfiguration and other actions. Check the state information to ensure that a function is ready before you perform operations on it. Functions take time to become ready when you connect them to a VPC.Added the EventInvokeConfig type and operations to configure error handling options for asynchronous invocation. Use PutFunctionEventInvokeConfig to configure the number of retries and the maximum age of events when you invoke the function asynchronously.Added on-failure and on-success destination settings for asynchronous invocation. Configure destinations to send an invocation record to an SNS topic, an SQS queue, an EventBridge event bus, or a Lambda function.Added error handling options to event source mappings. This enables you to configure the number of retries, configure the maximum age of records, or retry with smaller batches when an error occurs when a function processes a Kinesis or DynamoDB stream.Added the on-failure destination setting to event source mappings. This enables you to send discarded events to an SNS topic or SQS queue when all retries fail or when the maximum record age is exceeded when a function processes a Kinesis or DynamoDB stream.Added the ParallelizationFactor option to event source mappings to increase concurrency per shard when a function processes a Kinesis or DynamoDB stream. - -## __AWS Resource Access Manager__ - - ### Features - - AWS RAM provides new APIs to view the permissions granted to principals in a resource share. This release also creates corresponding resource shares for supported services that use resource policies, as well as an API to promote them to standard shares that can be managed in RAM. - -## __AWS WAFV2__ - - ### Features - - This release introduces new set of APIs ("wafv2") for AWS WAF. Major changes include single set of APIs for creating/updating resources in global and regional scope, and rules are configured directly into web ACL instead of being referenced. The previous APIs ("waf" and "waf-regional") are now referred as AWS WAF Classic. For more information visit: https://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html - -## __Alexa For Business__ - - ### Features - - API update for Alexa for Business: This update enables the use of meeting room configuration that can be applied to a room profile. These settings help improve and measure utilization on Alexa for Business enabled rooms. New features include end meeting reminders, intelligent room release and room utilization analytics report. - -## __Amazon AppConfig__ - - ### Features - - Introducing AWS AppConfig, a new service that enables customers to quickly deploy validated configurations to applications of any size in a controlled and monitored fashion. - -## __Amazon Athena__ - - ### Features - - This release adds additional query lifecycle metrics to the QueryExecutionStatistics object in GetQueryExecution response. - -## __Amazon CloudWatch__ - - ### Features - - This release adds a new feature called "Contributor Insights". "Contributor Insights" supports the following 6 new APIs (PutInsightRule, DeleteInsightRules, EnableInsightRules, DisableInsightRules, DescribeInsightRules and GetInsightRuleReport). - -## __Amazon CloudWatch Application Insights__ - - ### Features - - CloudWatch Application Insights for .NET and SQL Server includes the follwing features: -Tagging Create and manage tags for your applications.-Custom log pattern matching. Define custom log patterns to be detected and monitored.-Resource-level permissions. Specify applications users can access. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Amazon Cognito Userpools now supports Sign in with Apple as an Identity Provider. - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now supports real-time analysis with Custom Classification - -## __Amazon Data Lifecycle Manager__ - - ### Features - - You can now set time based retention policies on Data Lifecycle Manager. With this launch, DLM allows you to set snapshot retention period in the following interval units: days, weeks, months and years. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds two new APIs: 1. ModifyDefaultCreditSpecification, which allows you to set default credit specification at the account level per AWS Region, per burstable performance instance family, so that all new burstable performance instances in the account launch using the new default credit specification. 2. GetDefaultCreditSpecification, which allows you to get current default credit specification per AWS Region, per burstable performance instance family. This release also adds new client exceptions for StartInstances and StopInstances. - -## __Amazon Kinesis Analytics__ - - ### Features - - Kinesis Data Analytics service adds support to configure Java applications to access resources in a VPC. Also releasing support to configure Java applications to set allowNonRestoreState flag through the service APIs. - -## __Amazon Lex Runtime Service__ - - ### Features - - Amazon Lex adds "sessionId" attribute to the PostText and PostContent response. - -## __Amazon Redshift__ - - ### Features - - This release contains changes for 1. Redshift Scheduler 2. Update to the DescribeNodeConfigurationOptions to include a new action type recommend-node-config - -## __Amazon Relational Database Service__ - - ### Features - - Cluster Endpoints can now be tagged by using --tags in the create-db-cluster-endpoint API - -## __Amazon Simple Email Service__ - - ### Features - - This release includes support for automatically suppressing email addresses that result in hard bounce or complaint events at the account level, and for managing addresses on this account-level suppression list. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager Documents now supports more Document Types: ApplicationConfiguration, ApplicationConfigurationSchema and DeploymentStrategy. This release also extends Document Permissions capabilities and introduces a new Force flag for DeleteDocument API. - -## __Application Auto Scaling__ - - ### Features - - This release supports auto scaling of document classifier endpoints for Comprehend; and supports target tracking based on the average capacity utilization metric for AppStream 2.0 fleets. - -## __Elastic Load Balancing__ - - ### Features - - This release of Elastic Load Balancing V2 adds new subnet features for Network Load Balancers and a new routing algorithm for Application Load Balancers. - -# __2.10.23__ __2019-11-22__ -## __AWS Auto Scaling Plans__ - - ### Features - - Update default endpoint for AWS Auto Scaling. - -## __AWS Certificate Manager__ - - ### Features - - This release adds support for Tag-Based IAM for AWS Certificate Manager and adding tags to certificates upon creation. - -## __AWS CodeBuild__ - - ### Features - - Add Canonical ARN to LogsLocation. - -## __AWS Elemental MediaPackage VOD__ - - ### Features - - Includes the submission time of Asset ingestion request in the API response for Create/List/Describe Assets. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - The ProcessCredentialsProvider now supports credential files up to 64 KB by default through an increase of the processOutputLimit from 1024 bytes to 64000 bytes. - -## __AWS Security Token Service__ - - ### Features - - Support tagging for STS sessions and tag based access control for the STS APIs - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds two new APIs (DescribeInstanceTypes and DescribeInstanceTypeOfferings) that give customers access to instance type attributes and regional and zonal offerings. - -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR adds support for concurrent step execution and cancelling running steps. Amazon EMR has added a new Outpost ARN field in the ListCluster and DescribeCluster API responses that is populated for clusters launched in an AWS Outpost subnet. - -## __Amazon Forecast Service__ - - ### Features - - This release adds two key updates to existing APIs. 1. Amazon Forecast can now generate forecasts in any quantile using the optional parameter forecastTypes in the CreateForecast API and 2. You can get additional details (metrics and relevant error messages) on your AutoML runs using the DescribePredictor and GetAccuracyMetrics APIs. - -## __Amazon Rekognition__ - - ### Features - - This release adds enhanced face filtering support to the IndexFaces API operation, and introduces face filtering for CompareFaces and SearchFacesByImage API operations. - -## __Amazon Simple Notification Service__ - - ### Features - - Added documentation for the dead-letter queue feature. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Add RebootOption and LastNoRebootInstallOperationTime for DescribeInstancePatchStates and DescribeInstancePatchStatesForPatchGroup API - -## __Application Auto Scaling__ - - ### Features - - Update default endpoint for Application Auto Scaling. - -# __2.10.22__ __2019-11-21__ -## __AWS Amplify__ - - ### Features - - This release of AWS Amplify Console introduces support for backend environments. Backend environments are containers for AWS deployments. Each environment is a collection of AWS resources. - -## __AWS AppSync__ - - ### Features - - AppSync: AWS AppSync now supports the ability to add, configure, and maintain caching for your AWS AppSync GraphQL API. - -## __AWS Config__ - - ### Features - - AWS Config launches Custom Configuration Items. A new feature which allows customers to publish resource configuration for third-party resources, custom, or on-premises servers. - -## __AWS Glue__ - - ### Features - - This release adds support for Glue 1.0 compatible ML Transforms. - -## __AWSMarketplace Metering__ - - ### Features - - Documentation updates for the AWS Marketplace Metering Service. - -## __Amazon Connect Participant Service__ - - ### Features - - This release adds 5 new APIs: CreateParticipantConnection, DisconnectParticipant, GetTranscript, SendEvent, and SendMessage. For Amazon Connect chat, you can use them to programmatically perform participant actions on the configured Amazon Connect instance. Learn more here: https://docs.aws.amazon.com/connect-participant/latest/APIReference/Welcome.html - -## __Amazon Connect Service__ - - ### Features - - This release adds a new API: StartChatContact. You can use it to programmatically start a chat on the specified Amazon Connect instance. Learn more here: https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html - -## __Amazon DynamoDB__ - - ### Features - - With this release, you can convert an existing Amazon DynamoDB table to a global table by adding replicas in other AWS Regions. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for attaching AWS License Manager Configurations to Amazon Machine Image (AMI) using ImportImage API; and adds support for running different instance sizes on EC2 Dedicated Hosts - -## __Amazon Lex Model Building Service__ - - ### Features - - Amazon Lex now supports Sentiment Analysis - -## __Amazon Lex Runtime Service__ - - ### Features - - Amazon Lex now supports Sentiment Analysis - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - The release contains new API and API changes for AWS Systems Manager Explorer product. - -## __Amazon Transcribe Service__ - - ### Features - - With this release, Amazon Transcribe now supports transcriptions from audio sources in Hebrew (he-IL), Swiss German (de-CH), Japanese (ja-JP), Turkish (tr-TR), Arabic-Gulf (ar-AE), Malay (ms-MY), Telugu (te-IN) - -# __2.10.21__ __2019-11-20__ -## __AWS Application Discovery Service__ - - ### Features - - New exception type for use with Migration Hub home region - -## __AWS CloudTrail__ - - ### Features - - 1. This release adds two new APIs, GetInsightSelectors and PutInsightSelectors, which let you configure CloudTrail Insights event delivery on a trail. An Insights event is a new type of event that is generated when CloudTrail detects unusual activity in your AWS account. In this release, only "ApiCallRateInsight" is a supported Insights event type. 2. This release also adds the new "ExcludeManagementEventSource" option to the existing PutEventSelectors API. This field currently supports only AWS Key Management Services. - -## __AWS CodeCommit__ - - ### Features - - This release adds support for creating pull request approval rules and pull request approval rule templates in AWS CodeCommit. This allows developers to block merges of pull requests, contingent on the approval rules being satisfiied. - -## __AWS DataSync__ - - ### Features - - Update to configure task to run periodically on a schedule - -## __AWS Elemental MediaStore__ - - ### Features - - This release fixes a broken link in the SDK documentation. - -## __AWS Migration Hub__ - - ### Features - - New exception type for use with Migration Hub home region - -## __AWS Migration Hub Config__ - - ### Features - - AWS Migration Hub Config Service allows you to get and set the Migration Hub home region for use with AWS Migration Hub and Application Discovery Service - -## __AWS Storage Gateway__ - - ### Features - - The new DescribeAvailabilityMonitorTest API provides the results of the most recent High Availability monitoring test. The new StartAvailabilityMonitorTest API verifies the storage gateway is configured for High Availability monitoring. The new ActiveDirectoryStatus response element has been added to the DescribeSMBSettings and JoinDomain APIs to indicate the status of the gateway after the most recent JoinDomain operation. The new TimeoutInSeconds parameter of the JoinDomain API allows for the configuration of the timeout in which the JoinDomain operation must complete. - -## __Amazon Chime__ - - ### Features - - Adds APIs to create and manage meeting session resources for the Amazon Chime SDK - -## __Amazon Data Lifecycle Manager__ - - ### Features - - DLM now supports Fast Snapshot Restore. You can enable Fast Restore on snapshots created by DLM, provide the AZs and the number of snapshots to be enabled with this capability. - -## __Amazon EC2 Container Service__ - - ### Features - - Added support for CPU and memory task-level overrides on the RunTask and StartTask APIs. Added location information to Tasks. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release of Amazon Elastic Compute Cloud (Amazon EC2) introduces support for Amazon Elastic Block Store (Amazon EBS) fast snapshot restores. - - Upgrades to Instance Metadata Service version 2 (IMDS v2). With IMDS v2, a session token is used to make requests for EC2 instance metadata and credentials. - -## __Amazon FSx__ - - ### Features - - Announcing a Multi-AZ deployment type for Amazon FSx for Windows File Server, providing fully-managed Windows file storage with high availability and redundancy across multiple AWS Availability Zones. - -## __Amazon Kinesis Firehose__ - - ### Features - - With this release, Amazon Kinesis Data Firehose allows server side encryption with customer managed CMKs. Customer managed CMKs ( "Customer Master Keys") are AWS Key Management Service (KMS) keys that are fully managed by the customer. With customer managed CMKs, customers can establish and maintain their key policies, IAM policies, rotating policies and add tags. For more information about AWS KMS and CMKs, please refer to: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html. Please refer to the following link to create CMKs: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html - -## __Amazon QuickSight__ - - ### Features - - Amazon QuickSight now supports programmatic creation and management of data sources, data sets, dashboards and templates with new APIs. Templates hold dashboard metadata, and can be used to create copies connected to the same or different dataset as required. Also included in this release are APIs for SPICE ingestions, fine-grained access control over AWS resources using AWS Identity and Access Management (IAM) policies, as well AWS tagging. APIs are supported for both Standard and Enterprise Edition, with edition-specific support for specific functionality. - -## __Amazon Simple Storage Service__ - - ### Features - - This release introduces support for Amazon S3 Replication Time Control, a new feature of S3 Replication that provides a predictable replication time backed by a Service Level Agreement. S3 Replication Time Control helps customers meet compliance or business requirements for data replication, and provides visibility into the replication process with new Amazon CloudWatch Metrics. - -## __Amazon Transcribe Service__ - - ### Features - - With this release Amazon Transcribe enables alternative transcriptions so that you can see different interpretations of transcribed audio. - -# __2.10.20__ __2019-11-19__ -## __AWS CloudFormation__ - - ### Features - - This release of AWS CloudFormation StackSets enables users to detect drift on a stack set and the stack instances that belong to that stack set. - -## __AWS CodeBuild__ - - ### Features - - Add support for ARM and GPU-enhanced build environments and a new SSD-backed Linux compute type with additional CPU and memory in CodeBuild - -## __AWS Config__ - - ### Features - - AWSConfig launches support for conformance packs. A conformance pack is a new resource type that allows you to package a collection of Config rules and remediation actions into a single entity. You can create and deploy conformance packs into your account or across all accounts in your organization - -## __AWS Identity and Access Management__ - - ### Features - - IAM reports the timestamp when a role's credentials were last used to make an AWS request. This helps you identify unused roles and remove them confidently from your AWS accounts. - -## __AWS IoT__ - - ### Features - - As part of this release, we are extending the capability of AWS IoT Rules Engine to send messages directly to customer's own web services/applications. Customers can now create topic rules with HTTP actions to route messages from IoT Core directly to URL's that they own. Ownership is proved by creating and confirming topic rule destinations. - -## __AWS Lambda__ - - ### Features - - This release provides three new runtimes to support Node.js 12 (initially 12.13.0), Python 3.8 and Java 11. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for RunInstances to specify the metadata options for new instances; adds a new API, ModifyInstanceMetadataOptions, which lets you modify the metadata options for a running or stopped instance; and adds support for CreateCustomerGateway to specify a device name. - -## __Auto Scaling__ - - ### Features - - Amazon EC2 Auto Scaling now supports Instance Weighting and Max Instance Lifetime. Instance Weighting allows specifying the capacity units for each instance type included in the MixedInstancesPolicy and how they would contribute to your application's performance. Max Instance Lifetime allows specifying the maximum length of time that an instance can be in service. If any instances are approaching this limit, Amazon EC2 Auto Scaling gradually replaces them. - -## __Elastic Load Balancing__ - - ### Features - - This release allows forward actions on Application Load Balancers to route requests to multiple target groups, based on the weight you specify for each target group. - -# __2.10.19__ __2019-11-18__ -## __AWS CloudFormation__ - - ### Features - - This release introduces APIs for the CloudFormation Registry, a new service to submit and discover resource providers with which you can manage third-party resources natively in CloudFormation. - -## __AWS Cost Explorer Service__ - - ### Features - - add EstimatedOnDemandCostWithCurrentCommitment to GetSavingsPlansPurchaseRecommendationRequest API - -## __Amazon Pinpoint__ - - ### Features - - This release of the Amazon Pinpoint API introduces support for using and managing message templates for messages that are sent through the voice channel. It also introduces support for specifying default values for message variables in message templates. - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for rds - -## __Amazon SageMaker Runtime__ - - ### Features - - Amazon SageMaker Runtime now supports a new TargetModel header to invoke a specific model hosted on multi model endpoints. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker now supports multi-model endpoints to host multiple models on an endpoint using a single inference container. - -## __Amazon Simple Storage Service__ - - ### Features - - Added support for S3 Replication for existing objects. This release allows customers who have requested and been granted access to replicate existing S3 objects across buckets. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - The release contains new API and API changes for AWS Systems Manager Explorer product. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Update default connectionMaxIdleTimeout of NettyNioAsyncClient to 5 seconds - -# __2.10.18__ __2019-11-15__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for DolbyVision encoding, and SCTE35 & ESAM insertion to DASH ISO EMSG. - -## __AWS SDK for Java v2__ - - ### Features - - When SdkException or one of its children is created without a 'message', inherit the message from the exception 'cause' (if any). This should reduce the chance of an exception being raised by the SDK with a null message. - -## __Amazon Chime__ - - ### Features - - This release adds support for Chime Room Management APIs - -## __Amazon CloudWatch Logs__ - - ### Features - - Documentation updates for logs - -## __Amazon Cognito Identity Provider__ - - ### Features - - This release adds a new option in the User Pool to allow specifying sender's name in the emails sent by Amazon Cognito. This release also adds support to add SES Configuration Set to the emails sent by Amazon Cognito. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - You can now add tags while copying snapshots. Previously, a user had to first copy the snapshot and then add tags to the copied snapshot manually. Moving forward, you can specify the list of tags you wish to be applied to the copied snapshot as a parameter on the Copy Snapshot API. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Introducing Amazon EKS managed node groups, a new feature that lets you easily provision worker nodes for Amazon EKS clusters and keep them up to date using the Amazon EKS management console, CLI, and APIs. - -## __Amazon Elastic MapReduce__ - - ### Features - - Access to the cluster ARN makes it easier for you to author resource-level permissions policies in AWS Identity and Access Management. To simplify the process of obtaining the cluster ARN, Amazon EMR has added a new field containing the cluster ARN to all API responses that include the cluster ID. - -## __Amazon GuardDuty__ - - ### Features - - This release includes new operations related to findings export, including: CreatePublishingDestination, UpdatePublishingDestination, DescribePublishingDestination, DeletePublishingDestination and ListPublishingDestinations. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release updates AWS Systems Manager Parameter Store documentation for the enhanced search capability. - -## __Amazon WorkSpaces__ - - ### Features - - Added APIs to register your directories with Amazon WorkSpaces and to modify directory details. - -## __Elastic Load Balancing__ - - ### Features - - Documentation-only change to the default value of the routing.http.drop_invalid_header_fields.enabled attribute. - -# __2.10.17__ __2019-11-14__ -## __AWSMarketplace Metering__ - - ### Features - - Added CustomerNotEntitledException in MeterUsage API for Container use case. - -## __Amazon Cognito Identity Provider__ - - ### Features - - This release adds a new setting at user pool client to prevent user existence related errors during authentication, confirmation, and password recovery related operations. This release also adds support to enable or disable specific authentication flows for a user pool client. - -## __Amazon Connect Service__ - - ### Features - - This release enhances the existing user management APIs and adds 3 new APIs - TagResource, UntagResource, and ListTagsForResource to support tagging Amazon Connect users, which facilitates more granular access controls for Amazon Connect users within an Amazon Connect instance. You can learn more about the new APIs here: https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html. - -## __Amazon Personalize__ - - ### Features - - Amazon Personalize: Adds ability to get batch recommendations by creating a batch inference job. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Updates support for adding attachments to Systems Manager Automation documents - -# __2.10.16__ __2019-11-13__ -## __AWS Data Exchange__ - - ### Features - - Introducing AWS Data Exchange, a service that makes it easy for AWS customers to securely create, manage, access, and exchange data sets in the cloud. - -## __AWS IoT__ - - ### Features - - This release adds the custom fields definition support in the index definition for AWS IoT Fleet Indexing Service. Custom fields can be used as an aggregation field to run aggregations with both existing GetStatistics API and newly added GetCardinality, GetPercentiles APIs. GetStatistics will return all statistics (min/max/sum/avg/count...) with this release. For more information, please refer to our latest documentation: https://docs.aws.amazon.com/iot/latest/developerguide/iot-indexing.html - -## __Amazon CloudSearch__ - - ### Features - - Amazon CloudSearch domains let you require that all traffic to the domain arrive over HTTPS. This security feature helps you block clients that send unencrypted requests to the domain. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - You can now add tags to a lifecycle policy in Data Lifecycle Manager (DLM). Tags allow you to categorize your policies in different ways, such as by department, purpose or owner. You can also enable resource level permissions based on tags to set access control on ability to modify or delete a tagged policy. - -## __Amazon Simple Email Service__ - - ### Features - - This is the first release of version 2 of the Amazon SES API. You can use this API to configure your Amazon SES account, and to send email. This API extends the functionality that exists in the previous version of the Amazon SES API. - -# __2.10.15__ __2019-11-12__ -## __AWS CodePipeline__ - - ### Features - - AWS CodePipeline now supports the use of variables in action configuration. - -## __AWS Marketplace Catalog Service__ - - ### Features - - This is the first release for the AWS Marketplace Catalog service which allows you to list, describe and manage change requests on your published entities on AWS Marketplace. - -## __Amazon DynamoDB__ - - ### Features - - Amazon DynamoDB enables you to restore your data to a new DynamoDB table using a point-in-time or on-demand backup. You now can modify the settings on the new restored table. Specifically, you can exclude some or all of the local and global secondary indexes from being created with the restored table. In addition, you can change the billing mode and provisioned capacity settings. - -## __Amazon Transcribe Service__ - - ### Features - - With this release, Amazon Transcribe now supports transcriptions from audio sources in Welsh English (en-WL), Scottish English(en-AB), Irish English(en-IE), Farsi(fa-IR), Tamil(ta-IN), Indonesian(id-ID), Portuguese (pt-PT), Dutch(nl-NL). - -## __Elastic Load Balancing__ - - ### Features - - You can configure your Application Load Balancer to either drop invalid header fields or forward them to targets. - -# __2.10.14__ __2019-11-11__ -## __AWS CloudFormation__ - - ### Features - - The Resource Import feature enables customers to import existing AWS resources into new or existing CloudFormation Stacks. - -## __AWS Cost Explorer Service__ - - ### Features - - This launch provides customers with access to GetCostAndUsageWithResources API. - -## __Amazon Polly__ - - ### Features - - Add `PollyPresigner` which enables support for presigning `SynthesizeSpeech` requests. - -# __2.10.13__ __2019-11-08__ -## __Amazon Cognito Identity__ - - ### Features - - This release adds support for disabling classic flow. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release contains ticket fixes for Amazon ECR. - -# __2.10.12__ __2019-11-07__ -## __AWS S3__ - - ### Features - - Added support for presignPutObject in S3Presigner. - -## __AWS SSO OIDC__ - - ### Features - - This is an initial release of AWS Single Sign-On OAuth device code authorization service. - -## __AWS Single Sign-On__ - - ### Features - - This is an initial release of AWS Single Sign-On (SSO) end-user access. This release adds support for accessing AWS accounts assigned in AWS SSO using short term credentials. - -## __Amazon Comprehend__ - - ### Features - - This release adds new languages (ar, hi, ko, ja, zh, zh-TW) for Amazon Comprehend's DetectSentiment, DetectEntities, DetectKeyPhrases, BatchDetectSentiment, BatchDetectEntities and BatchDetectKeyPhrases APIs - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager Session Manager target length increased to 400. - -## __Netty NIO HTTP Client__ - - ### Features - - Switch from setting the absolute URI in HTTP requests with no `Host` header to setting the absolute request path and query paramters and a `Host` header. - -# __2.10.11__ __2019-11-06__ -## __AWS SDK for Java v2__ - - ### Features - - Added the web identity credentials provider to the default credential chain - -## __AWS Savings Plans__ - - ### Features - - This is the first release of Savings Plans, a new flexible pricing model that offers low prices on Amazon EC2 and AWS Fargate usage. - -# __2.10.10__ __2019-11-06__ -## __AWS Budgets__ - - ### Features - - Documentation updates for budgets to track Savings Plans utilization and coverage - -## __AWS CodeBuild__ - - ### Features - - Add support for Build Number, Secrets Manager and Exported Environment Variables. - -## __AWS Cost Explorer Service__ - - ### Features - - This launch provides customers with access to Savings Plans management APIs. - -## __AWS Savings Plans__ - - ### Features - - This is the first release of Savings Plans, a new flexible pricing model that offers low prices on Amazon EC2 and AWS Fargate usage. - -## __AWS Signer__ - - ### Features - - This release adds support for tagging code-signing profiles in AWS Signer. - -## __Amazon Elastic File System__ - - ### Features - - EFS customers can select a lifecycle policy that automatically moves files that have not been accessed for 7 days into the EFS Infrequent Access (EFS IA) storage class. EFS IA provides price/performance that is cost-optimized for files that are not accessed every day. - -# __2.10.9__ __2019-11-05__ -## __AWS CodeStar Notifications__ - - ### Features - - This release adds a notification manager for events in repositories, build projects, deployments, and pipelines. You can now configure rules and receive notifications about events that occur for resources. Each notification includes a status message as well as a link to the resource (repository, build project, deployment application, or pipeline) whose event generated the notification. - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for Amazon RDS - -# __2.10.8__ __2019-11-04__ -## __AWS RoboMaker__ - - ### Features - - RoboMaker Fleet Management launch a feature to verify your robot is ready to download and install the new robot application using a download condition file, which is a script run on the robot prior to downloading the new deployment. - -## __Amazon DynamoDB Accelerator (DAX)__ - - ### Features - - Documentation updates for dax - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Documentation updates for ec2 - -# __2.10.7__ __2019-11-01__ -## __AWS CloudTrail__ - - ### Features - - This release adds two new APIs, GetTrail and ListTrails, and support for adding tags when you create a trail by using a new TagsList parameter on CreateTrail operations. - -## __AWS Database Migration Service__ - - ### Features - - This release contains task timeline attributes in replication task statistics. This release also adds a note to the documentation for the CdcStartPosition task request parameter. This note describes how to enable the use of native CDC start points for a PostgreSQL source by setting the new slotName extra connection attribute on the source endpoint to the name of an existing logical replication slot. - -## __Amazon Pinpoint__ - - ### Features - - This release of the Amazon Pinpoint API introduces support for using and managing journeys, and querying analytics data for journeys. - -# __2.10.6__ __2019-10-31__ -## __AWS Amplify__ - - ### Features - - This release of AWS Amplify Console introduces support for Web Previews. This feature allows user to create ephemeral branch deployments from pull request submissions made to a connected repository. A pull-request preview deploys every pull request made to your Git repository to a unique preview URL. - -## __AWS Support__ - - ### Features - - The status descriptions for TrustedAdvisorCheckRefreshStatus have been updated - -## __Amazon Simple Storage Service__ - - ### Features - - S3 Inventory now supports a new field 'IntelligentTieringAccessTier' that reports the access tier (frequent or infrequent) of objects stored in Intelligent-Tiering storage class. - -# __2.10.5__ __2019-10-30__ -## __Amazon ElastiCache__ - - ### Features - - Amazon ElastiCache for Redis 5.0.5 now allows you to modify authentication tokens by setting and rotating new tokens. You can now modify active tokens while in use, or add brand-new tokens to existing encryption-in-transit enabled clusters that were previously setup without authentication tokens. This is a two-step process that allows you to set and rotate the token without interrupting client requests. - -# __2.10.4__ __2019-10-29__ -## __AWS Cloud9__ - - ### Features - - Added CREATING and CREATE_FAILED environment lifecycle statuses. - -## __Amazon AppStream__ - - ### Features - - Adds support for providing domain names that can embed streaming sessions - -# __2.10.3__ __2019-10-28__ -## __Amazon Simple Storage Service__ - - ### Features - - Adding support in SelectObjectContent for scanning a portion of an object specified by a scan range. - -# __2.10.2__ __2019-10-28__ -## __AWS Transfer for SFTP__ - - ### Features - - This release adds logical directories support to your AWS SFTP server endpoint, so you can now create logical directory structures mapped to Amazon Simple Storage Service (Amazon S3) bucket paths for users created and stored within the service. Amazon S3 bucket names and paths can now be hidden from AWS SFTP users, providing an additional level of privacy to meet security requirements. You can lock down your SFTP users' access to designated folders (commonly referred to as 'chroot'), and simplify complex folder structures for data distribution through SFTP without replicating files across multiple users. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release of Amazon Elastic Container Registry Service (Amazon ECR) introduces support for image scanning. This identifies the software vulnerabilities in the container image based on the Common Vulnerabilities and Exposures (CVE) database. - -## __Amazon ElastiCache__ - - ### Features - - Amazon ElastiCache adds support for migrating Redis workloads hosted on Amazon EC2 into ElastiCache by syncing the data between the source Redis cluster and target ElastiCache for Redis cluster in real time. For more information, see https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/migrate-to-elasticache.html. - -# __2.10.1__ __2019-10-25__ -## __Amazon Transcribe Streaming Service__ - - ### Features - - With this release, Amazon Transcribe Streaming now supports audio sources in Australian English (en-AU). - -# __2.10.0__ __2019-10-24__ -## __AWS App Mesh__ - - ### Features - - This release adds support for the gRPC and HTTP/2 protocols. - -## __AWS SDK for Java v2__ - - ### Features - - Updating to use Jackson 2.10.0 and Netty 4.1.42.Final - -## __Amazon Chime__ - - ### Features - - This release introduces Voice Connector PDX region and defaults previously created Voice Connectors to IAD. You can create Voice Connector Groups and add region specific Voice Connectors to direct telephony traffic across AWS regions in case of regional failures. With this release you can add phone numbers to Voice Connector Groups and can bulk move phone numbers between Voice Connectors, between Voice Connector and Voice Connector Groups and between Voice Connector Groups. Voice Connector now supports additional settings to enable SIP Log capture. This is in addition to the launch of Voice Connector Cloud Watch metrics in this release. This release also supports assigning outbound calling name (CNAM) to AWS account and individual phone numbers assigned to Voice Connectors. * Voice Connector now supports a setting to enable real time audio streaming delivered via Kinesis Audio streams. Please note that recording Amazon Chime Voice Connector calls with this feature maybe be subject to laws or regulations regarding the recording of telephone calls and other electronic communications. AWS Customer and their end users' have the responsibility to comply with all applicable laws regarding the recording, including properly notifying all participants in a recorded session or to a recorded communication that the session or communication is being recorded and obtain their consent. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release updates CreateFpgaImage to support tagging FPGA images on creation - -## __Amazon GameLift__ - - ### Features - - Amazon GameLift offers expanded hardware options for game hosting: Custom game builds can use the Amazon Linux 2 operating system, and fleets for both custom builds and Realtime servers can now use C5, M5, and R5 instance types. - -## __Amazon SageMaker Service__ - - ### Features - - Adds support for the new family of Elastic Inference Accelerators (eia2) for SageMaker Hosting and Notebook Services - -## __Netty NIO Http Client__ - - ### Bugfixes - - Fix a race condition where the channel is closed right after all content is buffered, causing `server failed to complete the response` error by adding a flag when `LastHttpContentHandler` is received. - -# __2.9.26__ __2019-10-23__ -## __AWS Security Token Service__ - - ### Features - - AWS Security Token Service (STS) now supports a regional configuration flag to make the client respect the region without the need for the endpoint parameter. - -## __Amazon Connect Service__ - - ### Features - - This release adds 4 new APIs ListQueues, ListPhoneNumbers, ListContactFlows, and ListHoursOfOperations, which can be used to programmatically list Queues, PhoneNumbers, ContactFlows, and HoursOfOperations configured for an Amazon Connect instance respectively. You can learn more about the new APIs here: https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds new female voices: US Spanish - Lupe and Brazilian Portuguese - Camila; both voices are available in Standard and Neural engine. - -# __2.9.25__ __2019-10-22__ -## __AWS IoT Events__ - - ### Features - - Add support for new serial evaluation method for events in a detector model. - -## __AWS OpsWorks CM__ - - ### Features - - AWS OpsWorks for Chef Automate (OWCA) now allows customers to use a custom domain and respective certificate, for their AWS OpsWorks For Chef Automate servers. Customers can now provide a CustomDomain, CustomCertificate and CustomPrivateKey in CreateServer API to configure their Chef Automate servers with a custom domain and certificate. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Better handle `GOAWAY` messages from the remote endpoint. - -# __2.9.24__ __2019-10-18__ -## __Amazon CloudWatch__ - - ### Features - - New Period parameter added to MetricDataQuery structure. - -## __Netty NIO Http Client__ - - ### Bugfixes - - Update `HealthCheckedChannelPool` to check `KEEP_ALIVE` when acquiring a channel from the pool to avoid soon-to-be inactive channels being picked up by a new request. This should reduce the frequency of `IOException: Server failed to complete response` errors. See [#1380](https://github.com/aws/aws-sdk-java-v2/issues/1380), [#1466](https://github.com/aws/aws-sdk-java-v2/issues/1466). - -# __2.9.23__ __2019-10-17__ -## __AWS Batch__ - - ### Features - - Adding support for Compute Environment Allocation Strategies - -## __Amazon Relational Database Service__ - - ### Features - - Amazon RDS now supports Amazon RDS on VMware with the introduction of APIs related to Custom Availability Zones and Media installation. - -# __2.9.22__ __2019-10-16__ -## __AWS Marketplace Commerce Analytics__ - - ### Features - - add 2 more values for the supporting sections - age of past due funds + uncollected funds breakdown - -## __AWS RoboMaker__ - - ### Features - - This release adds support for ROS2 Dashing as a beta feature - -## __Managed Streaming for Kafka__ - - ### Features - - AWS MSK has added support for adding brokers to a cluster. - -# __2.9.21__ __2019-10-15__ -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - Add ON_DISCONTINUITY mode to the GetHLSStreamingSessionURL API - -# __2.9.20__ __2019-10-14__ -## __Amazon Personalize__ - - ### Features - - AWS Personalize: Adds ability to create a solution version using FULL or UPDATE training mode - -## __Amazon WorkSpaces__ - - ### Features - - Documentation updates for WorkSpaces - -# __2.9.19__ __2019-10-11__ -## __AWS Greengrass__ - - ### Features - - Greengrass OTA service supports Raspbian/Armv6l platforms. - -# __2.9.18__ __2019-10-10__ -## __AWS IoT Analytics__ - - ### Features - - Add `completionTime` to API call ListDatasetContents. - -## __AWS SDK for Java v2__ - - ### Features - - Implement arn parser functions in `arns` module. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - New EC2 M5n, M5dn, R5n, R5dn instances with 100 Gbps network performance and Elastic Fabric Adapter (EFA) for ultra low latency; New A1.metal bare metal instance powered by AWS Graviton Processors - -## __Amazon Lex Runtime Service__ - - ### Features - - Amazon Lex now supports Session API checkpoints - -## __Firewall Management Service__ - - ### Features - - Firewall Manager now supports Amazon VPC security groups, making it easier to configure and manage security groups across multiple accounts from a single place. - -# __2.9.17__ __2019-10-09__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for Dolby Atmos encoding, up to 36 outputs, accelerated transcoding with frame capture and preferred acceleration feature. - -## __AWS SDK for Java v2__ - - ### Features - - Expose instance signature through EC2MetadataUtils - - - ### Bugfixes - - Fix the implementations of `equals(Object)` and `hashCode()` for `DefaultSdkAutoConstructList` and `DefaultSdkAutoConstructMap` so that they follow the Java `equals` and `hashCode` contract. In addition, ensure that these implementations' `toString()` methods return nicely readable results. Fixes [#1445](https://github.com/aws/aws-sdk-java-v2/issues/1445) - -## __Amazon ElastiCache__ - - ### Features - - Amazon ElastiCache now allows you to apply available service updates on demand to your Memcached and Redis Cache Clusters. Features included: (1) Access to the list of applicable service updates and their priorities. (2) Service update monitoring and regular status updates. (3) Recommended apply-by-dates for scheduling the service updates. (4) Ability to stop and later re-apply updates. For more information, see https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/Self-Service-Updates.html and https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Self-Service-Updates.html - -## __Managed Streaming for Kafka__ - - ### Features - - Updated documentation for Amazon Managed Streaming for Kafka service. - -# __2.9.16__ __2019-10-08__ -## __AWS DataSync__ - - ### Features - - Add Sync options to enable/disable TaskQueueing - -## __AWS Organizations__ - - ### Features - - Documentation updates for organizations - -## __AWS SDK for Java v2__ - - ### Features - - EC2MetadataUtils: add marketplaceProductCodes inside InstanceInfo's POJO - -## __Amazon EventBridge__ - - ### Features - - Documentation updates for Amazon EventBridge. - -## __Amazon Kinesis Firehose__ - - ### Features - - With this release, you can use Amazon Kinesis Firehose delivery streams to deliver streaming data to Amazon Elasticsearch Service version 7.x clusters. For technical documentation, look for CreateDeliveryStream operation in Amazon Kinesis Firehose API reference. - -## __Amazon S3 Control__ - - ### Features - - Adds support for the Amazon S3 Control service to the SDK. - -# __2.9.15__ __2019-10-07__ -## __AWS Direct Connect__ - - ### Features - - This release adds a service provider field for physical connection creation and provides a list of available partner providers for each Direct Connect location. - -## __AWS Glue__ - - ### Features - - AWS Glue now provides ability to use custom certificates for JDBC Connections. - -## __Amazon Import/Export Snowball__ - - ### Features - - AWS Snowball Edge now allows you to perform an offline update to the software of your Snowball Edge device when your device is not connected to the internet. Previously, updating your Snowball Edge's software required that the device be connected to the internet or be sent back to AWS. Now, you can keep your Snowball Edge software up to date even if your device(s) cannot connect to the internet, or are required to run in an air-gapped environment. To complete offline updates, download the software update from a client machine with connection to the internet using the AWS Command Line Interface (CLI). Then, have the Snowball Edge device download and install the software update using the Snowball Edge device API. For more information about offline updates, visit the Snowball Edge documentation page. - -## __Amazon Kinesis Firehose__ - - ### Features - - Amazon Kinesis Data Firehose now allows delivering data to Elasticsearch clusters set up in a different AWS account than the Firehose AWS account. For technical documentation, look for ElasticsearchDestinationConfiguration in the Amazon Kinesis Firehose API reference. - -## __Amazon Pinpoint__ - - ### Features - - This release of the Amazon Pinpoint API introduces support for using and managing message templates. - -## __Amazon Pinpoint Email Service__ - - ### Features - - This release of the Amazon Pinpoint Email API introduces support for using and managing message templates. - -# __2.9.14__ __2019-10-04__ -## __AWS Elemental MediaPackage__ - - ### Features - - New Harvest Job APIs to export segment-accurate content windows from MediaPackage Origin Endpoints to S3. See https://docs.aws.amazon.com/mediapackage/latest/ug/harvest-jobs.html for more info - -## __Amazon CloudWatch__ - - ### Bugfixes - - Add cloudwatch specific http configurations, specifically reducing `connectionMaxIdleTime`. Related to [#1380](https://github.com/aws/aws-sdk-java-v2/issues/1380) - -## __Amazon Cognito Identity Provider__ - - ### Features - - This release adds ClientMetadata input parameter to multiple Cognito User Pools operations, making this parameter available to the customer configured lambda triggers as applicable. - -## __Amazon S3__ - - ### Bugfixes - - Add s3 specific http configurations, specifically reducing `connectionMaxIdleTime`. Related to [#1122](https://github.com/aws/aws-sdk-java-v2/issues/1122) - -## __Amazon S3 Control__ - - ### Features - - Adds support for the Amazon S3 Control service to the SDK. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Documentation updates for Systems Manager / StartSession. - -# __2.9.13__ __2019-10-03__ -## __AWS Device Farm__ - - ### Features - - Documentation updates for devicefarm - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release allows customers to purchase regional EC2 RIs on a future date. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon Elasticsearch Service now supports configuring additional options for domain endpoint, such as whether to require HTTPS for all traffic. - -## __Application Auto Scaling__ - - ### Features - - Documentation updates for Application Auto Scaling - -# __2.9.12__ __2019-10-02__ -## __Amazon Lightsail__ - - ### Features - - This release adds support for the automatic snapshots add-on for instances and block storage disks. - -# __2.9.11__ __2019-10-01__ -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - This release provides support for describe and modify CA certificates. - -# __2.9.10__ __2019-09-30__ -## __AWS WAF__ - - ### Features - - Lowering the threshold for Rate Based rule from 2000 to 100. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for creating a Read Replica with Active Directory domain information. This release updates RDS API to indicate whether an OrderableDBInstanceOption supports Kerberos Authentication. - -## __AmazonMQ__ - - ### Features - - Amazon MQ now includes the ability to scale your brokers by changing the host instance type. See the hostInstanceType property of UpdateBrokerInput (https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-model-updatebrokerinput), and pendingHostInstanceType property of DescribeBrokerOutput (https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-model-describebrokeroutput). - -# __2.9.9__ __2019-09-27__ -## __AWS Amplify__ - - ### Features - - This release adds access logs APIs and artifact APIs for AWS Amplify Console. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Update the pool size for default async future completion executor service. See [#1251](https://github.com/aws/aws-sdk-java-v2/issues/1251), [#994](https://github.com/aws/aws-sdk-java-v2/issues/994) - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) removes FirelensConfiguration from the DescribeTask output during the FireLens public preview. - -# __2.9.8__ __2019-09-26__ -## __AWS CodePipeline__ - - ### Features - - Documentation updates for CodePipeline - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release updates the AWS Systems Manager Parameter Store PutParameter and LabelParameterVersion APIs to return the "Tier" of parameter created/updated and the "parameter version" labeled respectively. - -# __2.9.7__ __2019-09-25__ -## __AWS Database Migration Service__ - - ### Features - - This release adds a new DeleteConnection API to delete the connection between a replication instance and an endpoint. It also adds an optional S3 setting to specify the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. - -## __AWS Global Accelerator__ - - ### Features - - API Update for AWS Global Accelerator to support for DNS aliasing. - -## __Amazon SageMaker Service__ - - ### Features - - Enable G4D and R5 instances in SageMaker Hosting Services - -# __2.9.6__ __2019-09-24__ -## __AWS Comprehend Medical__ - - ### Features - - Use Amazon Comprehend Medical to analyze medical text stored in the specified Amazon S3 bucket. Use the console to create and manage batch analysis jobs, or use the batch APIs to detect both medical entities and protected health information (PHI). The batch APIs start, stop, list, and retrieve information about batch analysis jobs. This release also includes DetectEntitiesV2 operation which returns the Acuity and Direction entities as attributes instead of types. - -## __AWS DataSync__ - - ### Features - - Added S3StorageClass, OverwriteMode sync option, and ONLY_FILES_TRANSFERRED setting for the VerifyMode sync option. - -## __Amazon Transcribe Service__ - - ### Features - - With this update Amazon Transcribe enables you to provide an AWS KMS key to encrypt your transcription output. - -# __2.9.5__ __2019-09-23__ -## __AWS RDS DataService__ - - ### Features - - RDS Data API now supports Amazon Aurora Serverless PostgreSQL databases. - -## __Amazon Redshift__ - - ### Features - - Adds API operation DescribeNodeConfigurationOptions and associated data structures. - -# __2.9.4__ __2019-09-20__ -## __AWS Greengrass__ - - ### Features - - Greengrass OTA service now returns the updated software version in the PlatformSoftwareVersion parameter of a CreateSoftwareUpdateJob response - -## __Amazon Elastic Compute Cloud__ - - ### Features - - G4 instances are Amazon EC2 instances based on NVIDIA T4 GPUs and are designed to provide cost-effective machine learning inference for applications, like image classification, object detection, recommender systems, automated speech recognition, and language translation. G4 instances are also a cost-effective platform for building and running graphics-intensive applications, such as remote graphics workstations, video transcoding, photo-realistic design, and game streaming in the cloud. To get started with G4 instances visit https://aws.amazon.com/ec2/instance-types/g4. - -## __Amazon Relational Database Service__ - - ### Features - - Add a new LeaseID output field to DescribeReservedDBInstances, which shows the unique identifier for the lease associated with the reserved DB instance. AWS Support might request the lease ID for an issue related to a reserved DB instance. - -## __Amazon WorkSpaces__ - - ### Features - - Adds the WorkSpaces restore feature - -# __2.9.3__ __2019-09-19__ -## __AWS Glue__ - - ### Features - - AWS Glue DevEndpoints now supports GlueVersion, enabling you to choose Apache Spark 2.4.3 (in addition to Apache Spark 2.2.1). In addition to supporting the latest version of Spark, you will also have the ability to choose between Python 2 and Python 3. - -## __AWS MediaConnect__ - - ### Features - - When you grant an entitlement, you can now specify the percentage of the entitlement data transfer that you want the subscriber to be responsible for. - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for container image manifest digests. This enables you to identify all tasks launched using a container image pulled from ECR in order to correlate what was built with where it is running. - -# __2.9.2__ __2019-09-18__ -## __AWS Resource Access Manager__ - - ### Features - - AWS RAM provides a new ListPendingInvitationResources API action that lists the resources in a resource share that is shared with you but that the invitation is still pending for - -## __AWS WAF Regional__ - - ### Features - - Lowering the threshold for Rate Based rule from 2000 to 100. - -## __Amazon API Gateway__ - - ### Features - - Amazon API Gateway simplifies accessing PRIVATE APIs by allowing you to associate one or more Amazon Virtual Private Cloud (VPC) Endpoints to a private API. API Gateway will create and manage DNS alias records necessary for easily invoking the private APIs. With this feature, you can leverage private APIs in web applications hosted within your VPCs. - -# __2.9.1__ __2019-09-17__ -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for iam - -## __Amazon Athena__ - - ### Features - - This release adds DataManifestLocation field indicating the location and file name of the data manifest file. Users can get a list of files that the Athena query wrote or intended to write from the manifest file. - -## __Amazon Personalize__ - - ### Features - - [Personalize] Adds trainingHours to solutionVersion properties. - -# __2.9.0__ __2019-09-16__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added support for multi-DRM SPEKE with CMAF outputs, MP3 ingest, and options for improved video quality. - -## __AWS SDK for Java v2__ - - ### Features - - Bump minor version to `2.9.0-SNAPSHOT` because of [#1413](https://github.com/aws/aws-sdk-java-v2/issues/1413). - - Updating dependencies versions: jackson 2.9.8 -> 2.9.9, slf4j 1.7.35 -> 1.7.38, netty 4.1.39.Final -> 4.1.41.Final (contains the fix for the performance regression in 4.1.39) - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - This release lets customers add tags to an Amazon EKS cluster. These tags can be used to control access to the EKS API for managing the cluster using IAM. The Amazon EKS TagResource API allows customers to associate tags with their cluster. Customers can list tags for a cluster using the ListTagsForResource API and remove tags from a cluster with the UntagResource API. Note: tags are specific to the EKS cluster resource, they do not propagate to other AWS resources used by the cluster. - -# __2.8.7__ __2019-09-12__ -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive now supports High Efficiency Video Coding (HEVC) for standard-definition (SD), high-definition (HD), and ultra-high-definition (UHD) encoding with HDR support.Encoding with HEVC offers a number of advantages. While UHD video requires an advanced codec beyond H.264 (AVC), high frame rate (HFR) or High Dynamic Range (HDR) content in HD also benefit from HEVC's advancements. In addition, benefits can be achieved with HD and SD content even if HDR and HFR are not needed. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Fix for FleetActivityStatus and FleetStateCode enum - -## __Amazon WorkMail Message Flow__ - - ### Features - - This release allows customers to access email messages as they flow to and from Amazon WorkMail. - -## __Elastic Load Balancing__ - - ### Features - - Documentation updates for elasticloadbalancingv2: This release adds support for TLS SNI on Network Load Balancers - -# __2.8.6__ __2019-09-11__ -## __AWS Config__ - - ### Features - - Adding input validation for the OrganizationConfigRuleName string. - -## __AWS MediaConnect__ - - ### Features - - This release adds support for the RIST protocol on sources and outputs. - -## __AWS Step Functions__ - - ### Features - - Fixing letter case in Map history event details to be small case - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for new data fields and log format in VPC flow logs. - -## __Amazon Relational Database Service__ - - ### Features - - This release allows customers to specify a custom parameter group when creating a Read Replica, for DB engines which support this feature. - -## __Amazon Simple Email Service__ - - ### Features - - Updated API documentation to correct broken links, and to update content based on customer feedback. - -# __2.8.5__ __2019-09-10__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix marshalling for models with xml attribute. See [#1182](https://github.com/aws/aws-sdk-java-v2/issues/1182) - -## __AWS Storage Gateway__ - - ### Features - - The CloudWatchLogGroupARN parameter of the UpdateGatewayInformation API allows for configuring the gateway to use a CloudWatch log-group where Storage Gateway health events will be logged. - -# __2.8.4__ __2019-09-09__ -## __AWS App Mesh__ - - ### Features - - This release adds support for http retry policies. - -## __AWS Marketplace Commerce Analytics__ - - ### Features - - Add FDP+FPS (monthly_revenue_field_demonstration_usage + monthly_revenue_flexible_payment_schedule) to Marketplace Commerce Analytics Service - -## __AWS RoboMaker__ - - ### Features - - Support for Connectivity to Simulation. When you need to interact with the applications in your simulation job, you can connect to your robot application or simulation application with port forwarding. When you configure port forwarding, traffic will be forwarded from the simulation job port to the application port. Port forwarding makes it easy to connect with tools such as ROS Bridge and other tools. This can be useful when you want to debug or run custom tools to interact with your applications. - -## __Amazon AppStream__ - - ### Features - - IamRoleArn support in CreateFleet, UpdateFleet, CreateImageBuilder APIs - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release expands Site-to-Site VPN tunnel options to allow customers to restrict security algorithms and configure timer settings for VPN connections. Customers can specify these new options while creating new VPN connections, or they can modify the tunnel options on existing connections using a new API. - -## __Amazon QLDB__ - - ### Features - - (New Service) Amazon QLDB is a fully managed ledger database that provides a transparent, immutable, and cryptographically verifiable transaction log owned by a central trusted authority. Amazon QLDB is a new class of serverless database that eliminates the need to engage in the complex development effort of building your own ledger-like applications and it automatically scales to support the demands of your application. Introduces Amazon QLDB API operations needed for managing Amazon QLDB ledgers. This includes the ability to manage Amazon QLDB ledgers, cryptographically verify documents, and export the journal in a ledger. - -## __Amazon QLDB Session__ - - ### Features - - (New Service) Amazon QLDB is a fully managed ledger database that provides a transparent, immutable, and cryptographically verifiable transaction log owned by a central trusted authority. Amazon QLDB is a new class of serverless database that eliminates the need to engage in the complex development effort of building your own ledger-like applications and it automatically scales to support the demands of your application. Introduces Amazon QLDB API operations needed for interacting with data in Amazon QLDB ledgers. - -# __2.8.3__ __2019-09-06__ -## __Amazon Kinesis Analytics__ - - ### Features - - Documentation updates for kinesisanalytics - -# __2.8.2__ __2019-09-05__ -## __AWS Config__ - - ### Features - - AWS Config now includes the option for marking RemediationConfigurations as automatic, removing the need to call the StartRemediationExecution API. Manual control over resource execution rate is also included, and RemediationConfigurations are now ARN addressable. Exceptions to exclude account resources from being remediated can be configured with the new PutRemediationExceptions, DescribeRemediationExceptions, and DeleteRemediationExceptions APIs. - -# __2.8.1__ __2019-09-04__ -## __AWS Step Functions__ - - ### Features - - Added support for new history events - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Amazon EKS DescribeCluster API returns a new OIDC issuer field that can be used to create OIDC identity provider for IAM for Service Accounts feature. - -## __Amazon Transcribe Service__ - - ### Features - - MediaFormat is now optional for StartTranscriptionJob API. - -# __2.8.0__ __2019-09-03__ -## __AWS Resource Groups Tagging API__ - - ### Features - - Documentation updates for resourcegroupstaggingapi - -## __AWS SDK for Java v2__ - - ### Features - - Bump minor version to 2.8.0-SNAPSHOT because of [#1391](https://github.com/aws/aws-sdk-java-v2/issues/1391). - - Upgrade Netty version to 4.1.39.Final, netty reactive streams version to 2.0.3, netty open ssl version to 2.0.25.Final - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for attaching Amazon Elastic Inference accelerators to your containers. This enables you to run deep learning inference workloads with hardware acceleration in a more efficient way. - -## __Amazon GameLift__ - - ### Features - - You can now make use of PKI resources to provide more secure connections between your game clients and servers. To learn more, please refer to the public Amazon GameLift documentation. - -# __2.7.36__ __2019-08-30__ -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for modifying the cluster settings for existing clusters, which enables you to toggle whether Container Insights is enabled or not. Support is also introduced for custom log routing using the ECS FireLens integration. - -## __AmazonApiGatewayManagementApi__ - - ### Features - - You can use getConnection to return information about the connection (when it is connected, IP address, etc) and deleteConnection to disconnect the given connection - -## __AmazonMQ__ - - ### Features - - Adds support for updating security groups selection of an Amazon MQ broker. - -# __2.7.35__ __2019-08-29__ -## __AWS CodePipeline__ - - ### Features - - Introducing pipeline execution trigger details in ListPipelineExecutions API. - -## __AWS Lambda__ - - ### Features - - Adds a "MaximumBatchingWindowInSeconds" parameter to event source mapping api's. Usable by Dynamodb and Kinesis event sources. - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for including Docker container IDs in the API response when describing and stopping tasks. This enables customers to easily map containers to the tasks they are associated with. - -## __Amazon ElastiCache__ - - ### Features - - Amazon ElastiCache for Redis now supports encryption at rest using customer managed customer master keys (CMKs) in AWS Key Management Service (KMS). Amazon ElastiCache now supports cluster names upto 40 characters for replicationGoups and upto 50 characters for cacheClusters. - -## __Application Auto Scaling__ - - ### Features - - With the current release, you can suspend and later resume any of the following scaling actions in Application Auto Scaling: scheduled scaling actions, dynamic scaling in actions, dynamic scaling out actions. - -# __2.7.34__ __2019-08-28__ -## __AWS Elemental MediaConvert__ - - ### Features - - This release adds the ability to send a job to an on-demand queue while simulating the performance of a job sent to a reserved queue. Use this setting to estimate the number of reserved transcoding slots (RTS) you need for a reserved queue. - -## __AWS Global Accelerator__ - - ### Features - - API Update for AWS Global Accelerator Client IP Preservation - -## __Amazon Simple Queue Service__ - - ### Features - - Added support for message system attributes, which currently lets you send AWS X-Ray trace IDs through Amazon SQS. - -# __2.7.33__ __2019-08-27__ -## __AWS Organizations__ - - ### Features - - Documentation updates for organizations - -# __2.7.32__ __2019-08-26__ -## __AWS SecurityHub__ - - ### Features - - This release resolves an issue with the DescribeHub action, changes the MasterId and InvitationId parameters for AcceptInvitation to Required, and changes the AccountIds parameter for DeleteInvitations and DeclineInvitations to Required. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This feature adds "default tier" to the AWS Systems Manager Parameter Store for parameter creation and update. AWS customers can now set the "default tier" to one of the following values: Standard (default), Advanced or Intelligent-Tiering. This allows customers to create advanced parameters or parameters in corresponding tiers with one setting rather than code change to specify parameter tiers. - -# __2.7.31__ __2019-08-23__ -## __AWS Elemental MediaPackage VOD__ - - ### Features - - Adds optional Constant Initialization Vector (IV) to HLS Encryption for MediaPackage VOD. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release of EC2 VM Import Export adds support for exporting Amazon Machine Image(AMI)s to a VM file - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe - support transcriptions from audio sources in Russian (ru-RU) and Chinese (zh-CN). - -# __2.7.30__ __2019-08-22__ -## __AWS DataSync__ - - ### Features - - This release adds support for SMB location type. - -## __Amazon Relational Database Service__ - - ### Features - - This release allows users to enable RDS Data API while creating Aurora Serverless databases. - -# __2.7.29__ __2019-08-21__ -## __Amazon DynamoDB__ - - ### Features - - Public preview version of 'dynamodb-enhanced' that has a new DynamoDb mapper library that can be used with the v2 SDK. See README.md in the module for more detailed information about this module. - -## __Amazon ElastiCache__ - - ### Features - - ElastiCache extends support for Scale down for Redis Cluster-mode enabled and disabled replication groups - -## __Amazon Forecast Query Service__ - - ### Features - - Amazon Forecast is a fully managed machine learning service that makes it easy for customers to generate accurate forecasts using their historical time-series data - -## __Amazon Forecast Service__ - - ### Features - - Amazon Forecast is a fully managed machine learning service that makes it easy for customers to generate accurate forecasts using their historical time-series data - -## __Amazon Personalize Runtime__ - - ### Features - - Increased limits on number of items recommended and reranked: The maximum number of results returned from getRecommendations API has been increased to 200. The maximum number of items which can be reranked via getPersonalizedRanking API has been increased to 200. - -## __Amazon Rekognition__ - - ### Features - - Documentation updates for Amazon Rekognition. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker now supports Amazon EFS and Amazon FSx for Lustre file systems as data sources for training machine learning models. Amazon SageMaker now supports running training jobs on ml.p3dn.24xlarge instance type. This instance type is offered as a limited private preview for certain SageMaker customers. If you are interested in joining the private preview, please reach out to the SageMaker Product Management team via AWS Support." - -## __Amazon Simple Queue Service__ - - ### Features - - This release provides a way to add metadata tags to a queue when it is created. You can use tags to organize and identify your Amazon SQS queues for cost allocation. - -## __Apache HTTP Client__ - - ### Features - - Enable TLS client authentication support for the Apache HTTP Client by allowing customers to specify a `TlsKeyManagersProvider` on the builder. The `KeyManger`s provided will be used when the remote server wants to authenticate the client. - -## __HTTP Client SPI__ - - ### Features - - Add `TlsKeyManagersProvider` interface for supporting TLS client auth in HTTP client implementations. - -## __Netty NIO HTTP Client__ - - ### Features - - Add ability to to use HTTP proxies with the Netty async client. - -# __2.7.28__ __2019-08-20__ -## __AWS Transfer for SFTP__ - - ### Features - - New field in response of TestIdentityProvider - -## __Alexa For Business__ - - ### Features - - Adding support for optional locale input in CreateProfile and UpdateProfile APIs - -## __Amazon AppStream__ - - ### Features - - Includes API updates to support streaming through VPC endpoints for image builders and stacks. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker introduces Managed Spot Training. Increases the maximum number of metric definitions to 40 for SageMaker Training and Hyperparameter Tuning Jobs. SageMaker Neo adds support for Acer aiSage and Qualcomm QCS605 and QCS603. - -# __2.7.27__ __2019-08-19__ -## __AWS App Mesh__ - - ### Features - - Fix for HttpMethod enum - -## __AWS Cost and Usage Report Service__ - - ### Features - - New IAM permission required for editing AWS Cost and Usage Reports - Starting today, you can allow or deny IAM users permission to edit Cost & Usage Reports through the API and the Billing and Cost Management console. To allow users to edit Cost & Usage Reports, ensure that they have 'cur: ModifyReportDefinition' permission. Refer to the technical documentation (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_cur_ModifyReportDefinition.html) for additional details. - -# __2.7.26__ __2019-08-16__ -## __AWS RoboMaker__ - - ### Features - - Two feature release: 1. AWS RoboMaker introduces log-based simulation. Log-based simulation allows you to play back pre-recorded log data such as sensor streams for testing robotic functions like localization, mapping, and object detection. Use the AWS RoboMaker SDK to test your robotic applications. 2. AWS RoboMaker allow customer to setup a robot deployment timeout when CreateDeploymentJob. - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for controlling the usage of swap space on a per-container basis for Linux containers. - -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR has introduced an account level configuration called Block Public Access that allows you to block clusters with ports open to traffic from public IP sources (i.e. 0.0.0.0/0 for IPv4 and ::/0 for IPv6) from launching. Individual ports or port ranges can be added as exceptions to allow public access. - -# __2.7.25__ __2019-08-15__ -## __AWS App Mesh__ - - ### Features - - This release adds support for http header based routing and route prioritization. - -## __AWS CodeCommit__ - - ### Features - - This release adds an API, BatchGetCommits, that allows retrieval of metadata for multiple commits in an AWS CodeCommit repository. - -## __AWS Glue__ - - ### Features - - GetJobBookmarks API is withdrawn. - -## __AWS Storage Gateway__ - - ### Features - - CreateSnapshotFromVolumeRecoveryPoint API supports new parameter: Tags (to be attached to the created resource) - -## __Amazon Athena__ - - ### Features - - This release adds support for querying S3 Requester Pays buckets. Users can enable this feature through their Workgroup settings. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds an option to use private certificates from AWS Certificate Manager (ACM) to authenticate a Site-to-Site VPN connection's tunnel endpoints and customer gateway device. - -# __2.7.24__ __2019-08-14__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds a new API called SendDiagnosticInterrupt, which allows you to send diagnostic interrupts to your EC2 instance. - -# __2.7.23__ __2019-08-13__ -## __AWS AppSync__ - - ### Features - - Adds a configuration option for AppSync GraphQL APIs - -# __2.7.22__ __2019-08-12__ -## __Amazon CloudWatch__ - - ### Features - - Documentation updates for monitoring - -## __Amazon Rekognition__ - - ### Features - - Adding new Emotion, Fear - -## __Application Auto Scaling__ - - ### Features - - Documentation updates for Application Auto Scaling - -## __Auto Scaling__ - - ### Features - - Amazon EC2 Auto Scaling now supports a new Spot allocation strategy "capacity-optimized" that fulfills your request using Spot Instance pools that are optimally chosen based on the available Spot capacity. - -# __2.7.21__ __2019-08-09__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert has added support for multi-DRM SPEKE with CMAF outputs, MP3 ingest, and options for improved video quality. - -## __AWS IoT__ - - ### Features - - This release adds Quality of Service (QoS) support for AWS IoT rules engine republish action. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed the issue where ByteArrayAsyncRequestBody can send duplicate requests when another request comes in at the same time the subscription completes. - - For APIs that support input event streams, set the `Content-Type` to `application/vnd.amazon.eventstream` on the request. - -## __Amazon GuardDuty__ - - ### Features - - New "evidence" field in the finding model to provide evidence information explaining why the finding has been triggered. Currently only threat-intelligence findings have this field. Some documentation updates. - -## __Amazon Lex Runtime Service__ - - ### Features - - Manage Amazon Lex session state using APIs on the client - -## __Amazon Redshift__ - - ### Features - - Add expectedNextSnapshotScheduleTime and expectedNextSnapshotScheduleTimeStatus to redshift cluster object. - -# __2.7.20__ __2019-08-08__ -## __AWS CodeBuild__ - - ### Features - - CodeBuild adds CloudFormation support for SourceCredential - -## __AWS Glue__ - - ### Features - - You can now use AWS Glue to find matching records across dataset even without identifiers to join on by using the new FindMatches ML Transform. Find related products, places, suppliers, customers, and more by teaching a custom machine learning transformation that you can use to identify matching matching records as part of your analysis, data cleaning, or master data management project by adding the FindMatches transformation to your Glue ETL Jobs. If your problem is more along the lines of deduplication, you can use the FindMatches in much the same way to identify customers who have signed up more than ones, products that have accidentally been added to your product catalog more than once, and so forth. Using the FindMatches MLTransform, you can teach a Transform your definition of a duplicate through examples, and it will use machine learning to identify other potential duplicates in your dataset. As with data integration, you can then use your new Transform in your deduplication projects by adding the FindMatches transformation to your Glue ETL Jobs. This release also contains additional APIs that support AWS Lake Formation. - -## __AWS Lake Formation__ - - ### Features - - Lake Formation: (New Service) AWS Lake Formation is a fully managed service that makes it easier for customers to build, secure and manage data lakes. AWS Lake Formation simplifies and automates many of the complex manual steps usually required to create data lakes including collecting, cleaning and cataloging data and securely making that data available for analytics and machine learning. - -## __AWS OpsWorks CM__ - - ### Features - - This release adds support for Chef Automate 2 specific engine attributes. - -# __2.7.19__ __2019-08-07__ -## __Amazon CloudWatch Application Insights__ - - ### Features - - CloudWatch Application Insights for .NET and SQL Server now provides integration with AWS Systems Manager OpsCenter. This integration allows you to view and resolve problems and operational issues detected for selected applications. - -# __2.7.18__ __2019-08-06__ -## __AWS Batch__ - - ### Features - - Documentation updates for AWS Batch - -# __2.7.17__ __2019-08-05__ -## __AWS DataSync__ - - ### Features - - Support VPC endpoints. - -## __AWS IoT__ - - ### Features - - In this release, AWS IoT Device Defender introduces audit mitigation actions that can be applied to audit findings to help mitigate security issues. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 now supports a new Spot allocation strategy "Capacity-optimized" that fulfills your request using Spot Instance pools that are optimally chosen based on the available Spot capacity. - -# __2.7.16__ __2019-08-02__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix the issue where the `content-length` set on the request is not honored for streaming operations. - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for sts - -# __2.7.15__ __2019-07-30__ -## __AWS Elemental MediaConvert__ - - ### Features - - MediaConvert adds support for specifying priority (-50 to 50) on jobs submitted to on demand or reserved queues - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed the issue where `AsyncResponseHandler#prepare` was not invoked before `#onHeaders`. See [#1343](https://github.com/aws/aws-sdk-java-v2/issues/1343). - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds support for Neural text-to-speech engine. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Middle East (Bahrain) Region (me-south-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -# __2.7.14__ __2019-07-29__ -## __AWS CodeCommit__ - - ### Features - - This release supports better exception handling for merges. - -## __Netty NIO Http Client__ - - ### Bugfixes - - Update `HandlerRemovingChannelPool` to only remove per request handlers if the channel is open or registered to avoid the race condition when the DefaultChannelPipeline is trying to removing the handler at the same time, causing `NoSuchElementException`. - -# __2.7.13__ __2019-07-26__ -## __AWS Batch__ - - ### Features - - AWS Batch now supports SDK auto-pagination and Job-level docker devices. - -## __AWS Cost Explorer Service__ - - ### Features - - Adds support for resource optimization recommendations. - -## __AWS Glue__ - - ### Features - - This release provides GetJobBookmark and GetJobBookmarks APIs. These APIs enable users to look at specific versions or all versions of the JobBookmark for a specific job. This release also enables resetting the job bookmark to a specific run via an enhancement of the ResetJobBookmark API. - -## __AWS Greengrass__ - - ### Features - - Greengrass OTA service supports openwrt/aarch64 and openwrt/armv7l platforms. - -## __AWS MediaConnect__ - - ### Features - - This release adds support for the Zixi pull protocol on outputs. - -## __Amazon CloudWatch Logs__ - - ### Features - - Allow for specifying multiple log groups in an Insights query, and deprecate storedByte field for LogStreams and interleaved field for FilterLogEventsRequest. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - You can now create EC2 Capacity Reservations using Availability Zone ID or Availability Zone name. You can view usage of Amazon EC2 Capacity Reservations per AWS account. - -# __2.7.12__ __2019-07-25__ -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert has added several features including support for: audio normalization using ITU BS.1770-3, 1770-4 algorithms, extension of job progress indicators, input cropping rectangle & output position rectangle filters per input, and dual SCC caption mapping to additional codecs and containers. - -## __AWS Elemental MediaLive__ - - ### Features - - AWS Elemental MediaLive is adding Input Clipping, Immediate Mode Input Switching, and Dynamic Inputs. - -## __Amazon EC2 Container Registry__ - - ### Features - - This release adds support for immutable image tags. - -# __2.7.11__ __2019-07-24__ -## __AWS Glue__ - - ### Features - - This release provides GlueVersion option for Job APIs and WorkerType option for DevEndpoint APIs. Job APIs enable users to pick specific GlueVersion for a specific job and pin the job to a specific runtime environment. DevEndpoint APIs enable users to pick different WorkerType for memory intensive workload. - -## __AWS Security Token Service__ - - ### Features - - New STS GetAccessKeyInfo API operation that returns the account identifier for the specified access key ID. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release introduces support for split tunnel with AWS Client VPN, and also adds support for opt-in Regions in DescribeRegions API. In addition, customers can now also tag Launch Templates on creation. - -## __Amazon Pinpoint__ - - ### Features - - This release adds support for programmatic access to many of the same campaign metrics that are displayed on the Amazon Pinpoint console. You can now use the Amazon Pinpoint API to monitor and assess performance data for campaigns, and integrate metrics data with other reporting tools. We update the metrics data continuously, resulting in a data latency timeframe that is limited to approximately two hours. - -# __2.7.10__ __2019-07-23__ -## __AWS Secrets Manager__ - - ### Features - - This release increases the maximum allowed size of SecretString or SecretBinary from 7KB to 10KB in the CreateSecret, UpdateSecret, PutSecretValue and GetSecretValue APIs. This release also increases the maximum allowed size of ResourcePolicy from 4KB to 20KB in the GetResourcePolicy and PutResourcePolicy APIs. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - You can now use Maintenance Windows to select a resource group as the target. By selecting a resource group as the target of a Maintenance Window, customers can perform routine tasks across different resources such as Amazon Elastic Compute Cloud (AmazonEC2) instances, Amazon Elastic Block Store (Amazon EBS) volumes, and Amazon Simple Storage Service(Amazon S3) buckets within the same recurring time window. - -# __2.7.9__ __2019-07-22__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix model builder enum fluent setters to check null before calling `toString` to avoid NPE. - -## __AWS Shield__ - - ### Features - - Adding new VectorType (HTTP_Reflection) and related top contributor types to describe WordPress Pingback DDoS attacks. - -## __AmazonMQ__ - - ### Features - - Adds support for AWS Key Management Service (KMS) to offer server-side encryption. You can now select your own customer managed CMK, or use an AWS managed CMK in your KMS account. - -# __2.7.8__ __2019-07-19__ -## __AWS IoT Events__ - - ### Features - - Adds support for IoT Events, Lambda, SQS and Kinesis Firehose actions. - -## __Amazon Simple Queue Service__ - - ### Features - - This release updates the information about the availability of FIFO queues and includes miscellaneous fixes. - -# __2.7.7__ __2019-07-18__ -## __AWS CodeDeploy__ - - ### Features - - Documentation updates for codedeploy - -## __Amazon Comprehend__ - - ### Features - - Amazon Comprehend now supports multiple entities for custom entity recognition - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for cluster settings. Cluster settings specify whether CloudWatch Container Insights is enabled or disabled for the cluster. - -## __Amazon ElastiCache__ - - ### Features - - Updates for Elasticache - -# __2.7.6__ __2019-07-17__ -## __AWS Config__ - - ### Features - - This release adds more granularity to the status of an OrganizationConfigRule by adding a new status. It also adds an exception when organization access is denied. - -## __AWS Database Migration Service__ - - ### Features - - S3 endpoint settings update: 1) Option to append operation column to full-load files. 2) Option to add a commit timestamp column to full-load and cdc files. Updated DescribeAccountAttributes to include UniqueAccountIdentifier. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Notify error by invoking `AsyncResponseTransformer#exceptionOccurred` for streaming operations for services using xml protocol such as S3 when the request fails and is not retriable. - -## __Auto Scaling__ - - ### Features - - Documentation updates for autoscaling - -# __2.7.5__ __2019-07-12__ -## __AWS Identity and Access Management__ - - ### Features - - Removed exception that was indicated but never thrown for IAM GetAccessKeyLastUsed API - -## __AWS RoboMaker__ - - ### Features - - Added Melodic as a supported Robot Software Suite Version - -## __AWS SDK for Java v2__ - - ### Features - - Introduce a new method `equalsBySdkFields` to compare only non-inherited fields for model classes. - - - ### Bugfixes - - Fix `AwsSessionCredentials#equals` to not compare super because the super is an interface. - - Fix the bug where `equals` and `hashCode` methods in the AWS service request and response classes were not calling super. - -## __Amazon Elasticsearch Service__ - - ### Features - - Amazon Elasticsearch Service now supports M5, C5, and R5 instance types. - -## __AmazonApiGatewayV2__ - - ### Features - - Bug fix (Add tags field to Update Stage , Api and DomainName Responses ) - -# __2.7.4__ __2019-07-11__ -## __Amazon CloudWatch Events__ - - ### Features - - Adds APIs for partner event sources, partner event buses, and custom event buses. These new features are managed in the EventBridge service. - -## __Amazon EventBridge__ - - ### Features - - Amazon EventBridge is a serverless event bus service that makes it easy to connect your applications with data from a variety of sources, including AWS services, partner applications, and your own applications. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix the issue where the SDK can invoke `channel#read` twice per request and buffer content aggressively before the subscriber is able to consume the data. This should fix [#1122](https://github.com/aws/aws-sdk-java-v2/issues/1122). - -# __2.7.3__ __2019-07-10__ -## __AWS SDK for Java v2__ - - ### Features - - Automatically retry on CRC32 checksum validation failures when the service returns a CRC32 checksum that differs from the one the SDK calculated. Previously this would just throw an exception. - -## __AWS Service Catalog__ - - ### Features - - This release adds support for Parameters in ExecuteProvisionedProductServiceAction and adds functionality to get the default parameter values for a Self-Service Action execution against a Provisioned Product via DescribeServiceActionExecutionParameters - -## __Amazon Glacier__ - - ### Features - - Documentation updates for glacier - -## __Amazon QuickSight__ - - ### Features - - Amazon QuickSight now supports embedding dashboards for all non-federated QuickSight users. This includes IAM users, AD users and users from the QuickSight user pool. The get-dashboard-embed-url API accepts QUICKSIGHT as identity type with a user ARN to authenticate the embeddable dashboard viewer as a non-federated user. - -# __2.7.2__ __2019-07-09__ -## __AWS Amplify__ - - ### Features - - This release adds webhook APIs and manual deployment APIs for AWS Amplify Console. - -## __AWS Config__ - - ### Features - - AWS Config now supports a new set of APIs to manage AWS Config rules across your organization in AWS Organizations. Using this capability, you can centrally create, update, and delete AWS Config rules across all accounts in your organization. This capability is particularly useful if you have a need to deploy a common set of AWS Config rules across all accounts. You can also specify accounts where AWS Config rules should not be created. In addition, you can use these APIs from the master account in AWS Organizations to enforce governance by ensuring that the underlying AWS Config rules are not modifiable by your organization member accounts.These APIs work for both managed and custom AWS Config rules. For more information, see Enabling AWS Config Rules Across all Accounts in Your Organization in the AWS Config Developer Guide.The new APIs are available in all commercial AWS Regions where AWS Config and AWS Organizations are supported. For the full list of supported Regions, see AWS Regions and Endpoints in the AWS General Reference. To learn more about AWS Config, visit the AWS Config webpage. To learn more about AWS Organizations, visit the AWS Organizations webpage. - -## __AWS WAF__ - - ### Features - - Updated SDK APIs to add tags to WAF Resources: WebACL, Rule, Rulegroup and RateBasedRule. Tags can also be added during creation of these resources. - -## __AWS WAF Regional__ - - ### Features - - Updated SDK APIs to add tags to WAF Resources: WebACL, Rule, Rulegroup and RateBasedRule. Tags can also be added during creation of these resources. - -## __Amazon CloudWatch__ - - ### Features - - This release adds three new APIs (PutAnomalyDetector, DeleteAnomalyDetector, and DescribeAnomalyDetectors) to support the new feature, CloudWatch Anomaly Detection. In addition, PutMetricAlarm and DescribeAlarms APIs are updated to support management of Anomaly Detection based alarms. - -## __Amazon Elastic File System__ - - ### Features - - EFS customers can now enable Lifecycle Management for all file systems. You can also now select from one of four Lifecycle Management policies (14, 30, 60 and 90 days), to automatically move files that have not been accessed for the period of time defined by the policy, from the EFS Standard storage class to the EFS Infrequent Access (IA) storage class. EFS IA provides price/performance that is cost-optimized for files that are not accessed every day. - -## __Amazon GameLift__ - - ### Features - - GameLift FlexMatch now supports matchmaking of up to 200 players per game session, and FlexMatch can now automatically backfill your game sessions whenever there is an open slot. - -## __Amazon Kinesis Video Streams__ - - ### Features - - Add "GET_DASH_STREAMING_SESSION_URL" as an API name to the GetDataEndpoint API. - -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - Adds support for the GetDASHStreamingSessionURL API. Also adds support for the Live Replay playback mode of the GetHLSStreamingSessionURL API. - -## __Netty NIO HTTP Client__ - - ### Features - - Improved error messaging when a connection is closed. Fixes [#1260](https://github.com/aws/aws-sdk-java-v2/issues/1260). - -# __2.7.1__ __2019-07-08__ -## __AWS Cost Explorer Service__ - - ### Features - - This release introduces a new operation called GetUsageForecast, which allows you to programmatically access AWS Cost Explorer's forecasting engine on usage data (running hours, data transfer, etc). - -# __2.7.0__ __2019-07-03__ -## __AWS SDK for Java v2__ - - ### Features - - Update Apache http client version to `4.5.9`. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - AssignPrivateIpAddresses response includes two new fields: AssignedPrivateIpAddresses, NetworkInterfaceId - -## __Amazon Relational Database Service__ - - ### Features - - This release supports Cross-Account Cloning for Amazon Aurora clusters. - -## __Amazon Simple Storage Service__ - - ### Features - - Add S3 x-amz-server-side-encryption-context support. - -## __Amazon Simple Workflow Service__ - - ### Features - - This release adds APIs that allow adding and removing tags to a SWF domain, and viewing tags for a domain. It also enables adding tags when creating a domain. - -## __Apache Http Client__ - - ### Bugfixes - - Disable apache normalization to handle breaking change introduced in apache httpclient `4.5.7`. See [aws/aws-sdk-java[#1919](https://github.com/aws/aws-sdk-java-v2/issues/1919)](https://github.com/aws/aws-sdk-java/issues/1919) for more information. - -# __2.6.5__ __2019-07-02__ -## __AWS Elemental MediaStore__ - - ### Features - - This release adds support for tagging, untagging, and listing tags for AWS Elemental MediaStore containers. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix a bug in `FileAsyncResponseTransformer` that causes the future from `prepare()` to not be completed if `onError` is called on its `Subscriber` wile consuming the response stream. Fixes [#1279](https://github.com/aws/aws-sdk-java-v2/issues/1279) - -## __Amazon AppStream__ - - ### Features - - Adding ImageBuilderName in Fleet API and Documentation updates for AppStream. - -# __2.6.4__ __2019-07-01__ -## __AWS Organizations__ - - ### Features - - Specifying the tag key and tag value is required for tagging requests. - -## __Amazon DocumentDB with MongoDB compatibility__ - - ### Features - - This release provides support for cluster delete protection and the ability to stop and start clusters. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for specifying a maximum hourly price for all On-Demand and Spot instances in both Spot Fleet and EC2 Fleet. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for RDS DB Cluster major version upgrade - -# __2.6.3__ __2019-06-28__ -## __Alexa For Business__ - - ### Features - - This release allows developers and customers to add SIP addresses and international phone numbers to contacts. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - You can now launch 8xlarge and 16xlarge instance sizes on the general purpose M5 and memory optimized R5 instance types. - -## __Amazon Redshift__ - - ### Features - - ClusterAvailabilityStatus: The availability status of the cluster for queries. Possible values are the following: Available, Unavailable, Maintenance, Modifying, Failed. - -## __Amazon S3__ - - ### Bugfixes - - Update `ChecksumCalculatingStreamProvider` to comply with `ContentStreamProvider` contract. - -## __Amazon WorkSpaces__ - - ### Features - - Minor API fixes for WorkSpaces. - -# __2.6.2__ __2019-06-27__ -## __AWS Direct Connect__ - - ### Features - - Tags will now be included in the API responses of all supported resources (Virtual interfaces, Connections, Interconnects and LAGs). You can also add tags while creating these resources. - -## __AWS EC2 Instance Connect__ - - ### Features - - Amazon EC2 Instance Connect is a simple and secure way to connect to your instances using Secure Shell (SSH). With EC2 Instance Connect, you can control SSH access to your instances using AWS Identity and Access Management (IAM) policies as well as audit connection requests with AWS CloudTrail events. In addition, you can leverage your existing SSH keys or further enhance your security posture by generating one-time use SSH keys each time an authorized user connects. - -## __Amazon Pinpoint__ - - ### Features - - This release includes editorial updates for the Amazon Pinpoint API documentation. - -## __Amazon WorkSpaces__ - - ### Features - - Added support for the WorkSpaces restore feature and copying WorkSpaces Images across AWS Regions. - -# __2.6.1__ __2019-06-26__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed issue where specifying a custom presigning time causes a runtime exception. - -## __Amazon DynamoDB__ - - ### Features - - Documentation updates for dynamodb - -# __2.6.0__ __2019-06-26__ -## __AWS CodeCommit__ - - ### Features - - This release supports better exception handling for merges. - -## __Amazon S3__ - - ### Bugfixes - - Modify the types of Part#size and ObjectVersion#size from Integer to Long. This is a breaking change for customers who are using the size() method. - -## __AmazonApiGatewayV2__ - - ### Features - - You can now perform tag operations on ApiGatewayV2 Resources (typically associated with WebSocket APIs) - -## __Netty NIO Http Client__ - - ### Bugfixes - - Completes the response normally when subscription is cancelled from the subscriber and not invoke `SdkAsyncHttpResponseHandler#onError` from the publisher. - -# __2.5.71__ __2019-06-25__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Only allows a single execution interceptor with the same class name to be included in loaded execution interceptors. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Starting today, you can use Traffic Mirroring to copy network traffic from an elastic network interface of Amazon EC2 instances and then send it to out-of-band security and monitoring appliances for content inspection, threat monitoring, and troubleshooting. These appliances can be deployed as individual instances, or as a fleet of instances behind a Network Load Balancer with a User Datagram Protocol (UDP) listener. Traffic Mirroring supports filters and packet truncation, so that you only extract the traffic of interest to monitor by using monitoring tools of your choice. - -## __Amazon Elastic Kubernetes Service__ - - ### Features - - Changing Amazon EKS full service name to Amazon Elastic Kubernetes Service. - -## __Amazon S3__ - - ### Bugfixes - - Fixes [#1196](https://github.com/aws/aws-sdk-java-v2/issues/1196) by changing S3 FilterRule enums to correctly model each enum as capitalized - -# __2.5.70__ __2019-06-24__ -## __AWS Resource Groups Tagging API__ - - ### Features - - Updated service APIs and documentation. - -## __AWS SecurityHub__ - - ### Features - - This release includes a new Tags parameter for the EnableSecurityHub operation, and the following new operations: DescribeHub, CreateActionTarget, DeleteActionTarget, DescribeActionTargets, UpdateActionTarget, TagResource, UntagResource, and ListTagsforResource. It removes the operation ListProductSubscribers, and makes Title and Description required attributes of AwsSecurityFinding. - -## __Amazon API Gateway__ - - ### Features - - Customers can pick different security policies (TLS version + cipher suite) for custom domains in API Gateway - -## __Amazon CloudWatch Application Insights__ - - ### Features - - CloudWatch Application Insights detects errors and exceptions from logs, including .NET custom application logs, SQL Server logs, IIS logs, and more, and uses a combination of built-in rules and machine learning, such as dynamic baselining, to identify common problems. You can then easily drill into specific issues with CloudWatch Automatic Dashboards that are dynamically generated. These dashboards contain the most recent alarms, a summary of relevant metrics, and log snippets to help you identify root cause. - -## __Amazon FSx__ - - ### Features - - Starting today, you can join your Amazon FSx for Windows File Server file systems to your organization's self-managed Microsoft Active Directory while creating the file system. You can also perform in-place updates of file systems to keep your Active Directory configuration up to date. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager now supports deleting a specific version of a SSM Document. - -## __AmazonApiGatewayV2__ - - ### Features - - Customers can get information about security policies set on custom domain resources in API Gateway - -## __Elastic Load Balancing__ - - ### Features - - This release adds support for UDP on Network Load Balancers - -## __Service Quotas__ - - ### Features - - Service Quotas enables you to view and manage your quotas for AWS services from a central location. - -# __2.5.69__ __2019-06-21__ -## __AWS Device Farm__ - - ### Features - - This release includes updated documentation about the default timeout value for test runs and remote access sessions. This release also includes miscellaneous bug fixes for the documentation. - -## __AWS Elemental MediaPackage__ - - ### Features - - Added two new origin endpoint fields for configuring which SCTE-35 messages are treated as advertisements. - -## __AWS Identity and Access Management__ - - ### Features - - We are making it easier for you to manage your permission guardrails i.e. service control policies by enabling you to retrieve the last timestamp when an AWS service was accessed within an account or AWS Organizations entity. - -## __Amazon Kinesis Video Streams Media__ - - ### Features - - Documentation updates for Amazon Kinesis Video Streams. - -# __2.5.68__ __2019-06-20__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - ACM Private CA is launching Root CAs and hierarchy management, a new feature that expands the scope of ACM Private CA from supporting only subordinate issuing CAs, to now include a full CA hierarchy that includes root CAs - the cryptographic root of trust for an organization. - -## __AWS Glue__ - - ### Features - - Starting today, you can now use workflows in AWS Glue to author directed acyclic graphs (DAGs) of Glue triggers, crawlers and jobs. Workflows enable orchestration of your ETL workloads by building dependencies between Glue entities (triggers, crawlers and jobs). You can visually track status of the different nodes in the workflows on the console making it easier to monitor progress and troubleshoot issues. Also, you can share parameters across entities in the workflow. - -## __AWS Health APIs and Notifications__ - - ### Features - - API improvements for the AWS Health service. - -## __AWS IoT Events Data__ - - ### Features - - "The colon character ':' is now permitted in Detector Model 'key' parameter values. - -## __AWS OpsWorks__ - - ### Features - - Documentation updates for OpsWorks Stacks. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for RDS storage autoscaling - -# __2.5.67__ __2019-06-19__ -## __Amazon Elastic Container Service for Kubernetes__ - - ### Features - - Changing Amazon EKS full service name to Amazon Elastic Kubernetes Service. - -# __2.5.66__ __2019-06-18__ -## __AWS Resource Groups Tagging API__ - - ### Features - - You can use tag policies to help standardize on tags across your organization's resources. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - You can now launch new 12xlarge, 24xlarge, and metal instance sizes on the Amazon EC2 compute optimized C5 instance types featuring 2nd Gen Intel Xeon Scalable Processors. - -# __2.5.65__ __2019-06-17__ -## __AWS RoboMaker__ - - ### Features - - Add the ServiceUnavailableException (503) into CreateSimulationJob API. - -## __AWS Service Catalog__ - - ### Features - - Restrict concurrent calls by a single customer account for CreatePortfolioShare and DeletePortfolioShare when sharing/unsharing to an Organization. - -## __Amazon Neptune__ - - ### Features - - This release adds a feature to configure Amazon Neptune to publish audit logs to Amazon CloudWatch Logs. - -# __2.5.64__ __2019-06-14__ -## __Amazon AppStream__ - - ### Features - - Added 2 new values(WINDOWS_SERVER_2016, WINDOWS_SERVER_2019) for PlatformType enum. - -## __Amazon CloudFront__ - - ### Features - - A new datatype in the CloudFront API, AliasICPRecordal, provides the ICP recordal status for CNAMEs associated with distributions. AWS services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they have added to CloudFront. The status value is returned in the CloudFront response; you cannot configure it yourself. The status is set to APPROVED for all CNAMEs (aliases) in regions outside of China. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Correction to enumerations in EC2 client. - -## __Amazon Personalize__ - - ### Features - - Documentation updates for Amazon Personalize. - -# __2.5.63__ __2019-06-13__ -## __AWS App Mesh__ - - ### Features - - This release adds support for AWS Cloud Map as a service discovery method for virtual nodes. - -## __Amazon ElastiCache__ - - ### Features - - This release is to add support for reader endpoint for cluster-mode disabled Amazon ElastiCache for Redis clusters. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - G4 instances are Amazon EC2 instances based on NVIDIA T4 GPUs and are designed to provide cost-effective machine learning inference for applications, like image classification, object detection, recommender systems, automated speech recognition, and language translation. G4 instances are also a cost-effective platform for building and running graphics-intensive applications, such as remote graphics workstations, video transcoding, photo-realistic design, and game streaming in the cloud. To get started with G4 instances visit https://aws.amazon.com/ec2/instance-types/g4. - -## __Amazon GuardDuty__ - - ### Features - - Support for tagging functionality in Create and Get operations for Detector, IP Set, Threat Intel Set, and Finding Filter resources and 3 new tagging APIs: ListTagsForResource, TagResource, and UntagResource. - -# __2.5.62__ __2019-06-12__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix a bug in the code generator causing event headers to be incorrectly marshalled and unmarshalled to and from the payload. - -## __AWS Service Catalog__ - - ### Features - - This release adds a new field named Guidance to update provisioning artifact, this field can be set by the administrator to provide guidance to end users about which provisioning artifacts to use. - -# __2.5.61__ __2019-06-11__ -## __Amazon SageMaker Service__ - - ### Features - - The default TaskTimeLimitInSeconds of labeling job is increased to 8 hours. Batch Transform introduces a new DataProcessing field which supports input and output filtering and data joining. Training job increases the max allowed input channels from 8 to 20. - -# __2.5.60__ __2019-06-10__ -## __AWS CodeBuild__ - - ### Features - - AWS CodeBuild adds support for source version on project level. - -## __AWS CodeCommit__ - - ### Features - - This release adds two merge strategies for merging pull requests: squash and three-way. It also adds functionality for resolving merge conflicts, testing merge outcomes, and for merging branches using one of the three supported merge strategies. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix NPE for streaming APIs in async client if there is a failure before AsyncResponseTransformer#prepare is called for first time. See https://github.com/aws/aws-sdk-java-v2/issues/1268 - -## __Amazon Personalize__ - - ### Features - - Amazon Personalize is a machine learning service that makes it easy for developers to create individualized recommendations for customers using their applications. - -## __Amazon Personalize Events__ - - ### Features - - Introducing Amazon Personalize - a machine learning service that makes it easy for developers to create individualized recommendations for customers using their applications. - -## __Amazon Personalize Runtime__ - - ### Features - - Amazon Personalize is a machine learning service that makes it easy for developers to create individualized recommendations for customers using their applications. - -# __2.5.59__ __2019-06-07__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Allow customers to disable read and write timeout by setting `Duration.ZERO` to `readTimeout` and `writeTimeout`. See [#1281](https://github.com/aws/aws-sdk-java-v2/issues/1281) - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds DNS entries and NLB ARNs to describe-vpc-endpoint-connections API response. Adds owner ID to describe-vpc-endpoints and create-vpc-endpoint API responses. - -# __2.5.58__ __2019-06-06__ -## __AWS MediaConnect__ - - ### Features - - This release adds support for encrypting entitlements using Secure Packager and Encoder Key Exchange (SPEKE). - -## __AWS Organizations__ - - ### Features - - You can tag and untag accounts in your organization and view tags on an account in your organization. - -## __Amazon CloudWatch Logs__ - - ### Features - - Documentation updates for logs - -## __Amazon DynamoDB__ - - ### Features - - Documentation updates for dynamodb - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for launching container instances using supported Amazon EC2 instance types that have increased elastic network interface density. Using these instance types and opting in to the awsvpcTrunking account setting provides increased elastic network interface (ENI) density on newly launched container instances which allows you to place more tasks on each container instance. - -## __Amazon GuardDuty__ - - ### Features - - Improve FindingCriteria Condition field names, support long-typed conditions and deprecate old Condition field names. - -## __Amazon Simple Email Service__ - - ### Features - - You can now specify whether the Amazon Simple Email Service must deliver email over a connection that is encrypted using Transport Layer Security (TLS). - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - OpsCenter is a new Systems Manager capability that allows you to view, diagnose, and remediate, operational issues, aka OpsItems, related to various AWS resources by bringing together contextually relevant investigation information. New APIs to create, update, describe, and get OpsItems as well as OpsItems summary API. - -# __2.5.57__ __2019-06-05__ -## __AWS Glue__ - - ### Features - - Support specifying python version for Python shell jobs. A new parameter PythonVersion is added to the JobCommand data type. - -# __2.5.56__ __2019-06-04__ -## __AWS Identity and Access Management__ - - ### Features - - This release adds validation for policy path field. This field is now restricted to be max 512 characters. - -## __AWS Storage Gateway__ - - ### Features - - AWS Storage Gateway now supports AWS PrivateLink, enabling you to administer and use gateways without needing to use public IP addresses or a NAT/Internet Gateway, while avoiding traffic from going over the internet. - -## __Amazon ElastiCache__ - - ### Features - - Amazon ElastiCache now allows you to apply available service updates on demand. Features included: (1) Access to the list of applicable service updates and their priorities. (2) Service update monitoring and regular status updates. (3) Recommended apply-by-dates for scheduling the service updates, which is critical if your cluster is in ElastiCache-supported compliance programs. (4) Ability to stop and later re-apply updates. For more information, see https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Self-Service-Updates.html - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for Host Recovery feature which automatically restarts instances on to a new replacement host if failures are detected on Dedicated Host. - -## __Amazon Simple Storage Service__ - - ### Features - - Documentation updates for s3 - -# __2.5.55__ __2019-06-03__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - Amazon EC2 I3en instances are the new storage-optimized instances offering up to 60 TB NVMe SSD instance storage and up to 100 Gbps of network bandwidth. - -## __Amazon Relational Database Service__ - - ### Features - - Amazon RDS Data API is generally available. Removing beta notes in the documentation. - -# __2.5.54__ __2019-05-30__ -## __AWS CodeCommit__ - - ### Features - - This release adds APIs that allow adding and removing tags to a repository, and viewing tags for a repository. It also enables adding tags when creating a repository. - -## __AWS IoT Analytics__ - - ### Features - - IoT Analytics adds the option to use your own S3 bucket to store channel and data store resources. Previously, only service-managed storage was used. - -## __AWS IoT Events__ - - ### Features - - The AWS IoT Events service allows customers to monitor their IoT devices and sensors to detect failures or changes in operation and to trigger actions when these events occur - -## __AWS IoT Events Data__ - - ### Features - - The AWS IoT Events service allows customers to monitor their IoT devices and sensors to detect failures or changes in operation and to trigger actions when these events occur - -## __AWS RDS DataService__ - - ### Features - - The RDS Data API is generally available for the MySQL-compatible edition of Amazon Aurora Serverless in the US East (N. Virginia and Ohio), US West (Oregon), EU (Ireland), and Asia Pacific (Tokyo) regions. This service enables you to easily access Aurora Serverless clusters with web services-based applications including AWS Lambda and AWS AppSync. The new APIs included in this SDK release are ExecuteStatement, BatchExecuteStatement, BeginTransaction, CommitTransaction, and RollbackTransaction. The ExecuteSql API is deprecated; instead use ExecuteStatement which provides additional functionality including transaction support. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Improved exception messages in credential providers to exclude detailed parse errors that may contain sensitive information. - -## __AWS Service Catalog__ - - ### Features - - Service Catalog ListStackInstancesForProvisionedProduct API enables customers to get details of a provisioned product with type "CFN_STACKSET". By passing the provisioned product id, the API will list account, region and status of each stack instances that are associated with this provisioned product. - -## __Amazon Pinpoint Email Service__ - - ### Features - - You can now specify whether the Amazon Pinpoint Email service must deliver email over a connection that is encrypted using Transport Layer Security (TLS). - -## __Amazon Relational Database Service__ - - ### Features - - This release adds support for Activity Streams for database clusters. - -## __Managed Streaming for Kafka__ - - ### Features - - Updated APIs for Amazon MSK to enable new features such as encryption in transit, client authentication, and scaling storage. - -# __2.5.53__ __2019-05-29__ -## __AWS IoT Things Graph__ - - ### Features - - Initial release. - -## __AWS SecurityHub__ - - ### Features - - This update adds the ListProductSubscribers API, DescribeProducts API, removes CONTAINS as a comparison value for the StringFilter, and only allows use of EQUALS instead of CONTAINS in MapFilter. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - Customers can now simultaneously take snapshots of multiple EBS volumes attached to an EC2 instance. With this new capability, snapshots guarantee crash-consistency across multiple volumes by preserving the order of IO operations. This new feature is fully integrated with Amazon Data Lifecycle Manager (DLM) allowing customers to automatically manage snapshots by creating lifecycle policies. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Customers can now simultaneously take snapshots of multiple EBS volumes attached to an EC2 instance. With this new capability, snapshots guarantee crash-consistency across multiple volumes by preserving the order of IO operations. This new feature is fully integrated with Amazon Data Lifecycle Manager (DLM) allowing customers to automatically manage snapshots by creating lifecycle policies. - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for rds - -## __Amazon S3__ - - ### Bugfixes - - Allows S3 to be used with object keys that have a leading slash "/myKey" - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Systems Manager - Documentation updates - -# __2.5.52__ __2019-05-28__ -## __AWS Ground Station__ - - ### Features - - AWS Ground Station is a fully managed service that enables you to control satellite communications, downlink and process satellite data, and scale your satellite operations efficiently and cost-effectively without having to build or manage your own ground station infrastructure. - -## __AWS RoboMaker__ - - ### Features - - Added support for an additional robot software suite (Gazebo 9) and for cancelling deployment jobs. - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for iam - -## __AWS Storage Gateway__ - - ### Features - - Introduce AssignTapePool operation to allow customers to migrate tapes between pools. - -## __AWS WAF__ - - ### Features - - Documentation updates for waf - -## __Amazon Chime__ - - ### Features - - This release adds the ability to search and order toll free phone numbers for Voice Connectors. - -## __Amazon Pinpoint Email Service__ - - ### Features - - This release adds support for programmatic access to Deliverability dashboard subscriptions and the deliverability data provided by the Deliverability dashboard for domains and IP addresses. The data includes placement metrics for campaigns that use subscribed domains to send email. - -## __Amazon Relational Database Service__ - - ### Features - - Add a new output field Status to DBEngineVersion which shows the status of the engine version (either available or deprecated). Add a new parameter IncludeAll to DescribeDBEngineVersions to make it possible to return both available and deprecated engine versions. These changes enable a user to create a Read Replica of an DB instance on a deprecated engine version. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe - support transcriptions from audio sources in Modern Standard Arabic (ar-SA). - -# __2.5.51__ __2019-05-24__ -## __AWS CodeDeploy__ - - ### Features - - AWS CodeDeploy now supports tagging for the application and deployment group resources. - -## __AWS Elemental MediaStore Data Plane__ - - ### Features - - MediaStore - This release adds support for chunked transfer of objects, which reduces latency by making an object available for downloading while it is still being uploaded. - -## __AWS OpsWorks for Chef Automate__ - - ### Features - - Documentation updates for OpsWorks for Chef Automate; attribute values updated for Chef Automate 2.0 release. - -# __2.5.50__ __2019-05-23__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Updated aws-java-sdk and bom modules to include ALL service modules. - -## __AWS WAF Regional__ - - ### Features - - Documentation updates for waf-regional - -## __Amazon Elastic Compute Cloud__ - - ### Features - - New APIs to enable EBS encryption by default feature. Once EBS encryption by default is enabled in a region within the account, all new EBS volumes and snapshot copies are always encrypted - -# __2.5.49__ __2019-05-22__ -## __AWS Budgets__ - - ### Features - - Added new datatype PlannedBudgetLimits to Budget model, and updated examples for AWS Budgets API for UpdateBudget, CreateBudget, DescribeBudget, and DescribeBudgets - -## __AWS Device Farm__ - - ### Features - - This release introduces support for tagging, tag-based access control, and resource-based access control. - -## __AWS Service Catalog__ - - ### Features - - Service Catalog UpdateProvisionedProductProperties API enables customers to manage provisioned product ownership. Administrators can now update the user associated to a provisioned product to another user within the same account allowing the new user to describe, update, terminate and execute service actions in that Service Catalog resource. New owner will also be able to list and describe all past records executed for that provisioned product. - -## __Amazon API Gateway__ - - ### Features - - This release adds support for tagging of Amazon API Gateway resources. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds idempotency support for associate, create route and authorization APIs for AWS Client VPN Endpoints. - -## __Amazon Elastic File System__ - - ### Features - - AWS EFS documentation updated to reflect the minimum required value for ProvisionedThroughputInMibps is 1 from the previously documented 0. The service has always required a minimum value of 1, therefor service behavior is not changed. - -## __Amazon Relational Database Service__ - - ### Features - - Documentation updates for rds - -## __Amazon WorkLink__ - - ### Features - - Amazon WorkLink is a fully managed, cloud-based service that enables secure, one-click access to internal websites and web apps from mobile phones. This release introduces new APIs to associate and manage website authorization providers with Amazon WorkLink fleets. - -# __2.5.48__ __2019-05-21__ -## __AWS DataSync__ - - ### Features - - Documentation update and refine pagination token on Datasync List API's - -## __Alexa For Business__ - - ### Features - - This release contains API changes to allow customers to create and manage Network Profiles for their Shared devices - -# __2.5.47__ __2019-05-20__ -## __AWS Elemental MediaPackage VOD__ - - ### Features - - AWS Elemental MediaPackage now supports Video-on-Demand (VOD) workflows. These new features allow you to easily deliver a vast library of source video Assets stored in your own S3 buckets using a small set of simple to set up Packaging Configurations and Packaging Groups. - -## __AWSMarketplace Metering__ - - ### Features - - Documentation updates for meteringmarketplace - -## __Managed Streaming for Kafka__ - - ### Features - - Updated APIs for the Managed Streaming for Kafka service that let customers create clusters with custom Kafka configuration. - -# __2.5.46__ __2019-05-17__ -## __Amazon AppStream__ - - ### Features - - Includes APIs for managing subscriptions to AppStream 2.0 usage reports and configuring idle disconnect timeouts on AppStream 2.0 fleets. - -# __2.5.45__ __2019-05-16__ -## __AWS Elemental MediaLive__ - - ### Features - - Added channel state waiters to MediaLive. - -## __Amazon Simple Storage Service__ - - ### Features - - This release updates the Amazon S3 PUT Bucket replication API to include a new optional field named token, which allows you to add a replication configuration to an S3 bucket that has Object Lock enabled. - -# __2.5.44__ __2019-05-15__ -## __AWS CodePipeline__ - - ### Features - - This feature includes new APIs to add, edit, remove and view tags for pipeline, custom action type and webhook resources. You can also add tags while creating these resources. - -## __AWS Elemental MediaPackage__ - - ### Features - - Adds optional configuration for DASH SegmentTemplateFormat to refer to segments by Number with Duration, rather than Number or Time with SegmentTimeline. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix a bug in `EventStreamAsyncResponseTransformer` where the reference to the current stream `Subscriber` is not reset in `prepare`, causing an `IllegalStateException` to be thrown when attemping to subscribe to the event stream upon a retry. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adding tagging support for VPC Endpoints and VPC Endpoint Services. - -## __Amazon Relational Database Service__ - - ### Features - - In the RDS API and CLI documentation, corrections to the descriptions for Boolean parameters to avoid references to TRUE and FALSE. The RDS CLI does not allow TRUE and FALSE values values for Boolean parameters. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe - support transcriptions from audio sources in Indian English (en-IN) and Hindi (hi-IN). - -# __2.5.43__ __2019-05-14__ -## __AWS Storage Gateway__ - - ### Features - - Add Tags parameter to CreateSnapshot and UpdateSnapshotSchedule APIs, used for creating tags on create for one off snapshots and scheduled snapshots. - -## __Amazon Chime__ - - ### Features - - Amazon Chime private bots GA release. - -## __Amazon Comprehend__ - - ### Features - - With this release AWS Comprehend now supports Virtual Private Cloud for Asynchronous Batch Processing jobs - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Pagination support for ec2.DescribeSubnets, ec2.DescribeDhcpOptions - -# __2.5.42__ __2019-05-13__ -## __AWS DataSync__ - - ### Features - - AWS DataSync now enables exclude and include filters to control what files and directories will be copied as part of a task execution. - -## __AWS IoT Analytics__ - - ### Features - - ContentDeliveryRule to support sending dataset to S3 and glue - -## __AWS Lambda__ - - ### Features - - AWS Lambda now supports Node.js v10 - -# __2.5.41__ __2019-05-10__ -## __AWS Glue__ - - ### Features - - AWS Glue now supports specifying existing catalog tables for a crawler to examine as a data source. A new parameter CatalogTargets is added to the CrawlerTargets data type. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix a bug where events in an event stream were being signed with the request date, and not with the current system time. - -## __AWS Security Token Service__ - - ### Features - - AWS Security Token Service (STS) now supports passing IAM Managed Policy ARNs as session policies when you programmatically create temporary sessions for a role or federated user. The Managed Policy ARNs can be passed via the PolicyArns parameter, which is now available in the AssumeRole, AssumeRoleWithWebIdentity, AssumeRoleWithSAML, and GetFederationToken APIs. The session policies referenced by the PolicyArn parameter will only further restrict the existing permissions of an IAM User or Role for individual sessions. - -# __2.5.40__ __2019-05-08__ -## __AWS IoT 1-Click Projects Service__ - - ### Features - - Added automatic pagination support for ListProjects and ListPlacements APIs. - -## __AWS Service Catalog__ - - ### Features - - Adds "Parameters" field in UpdateConstraint API, which will allow Admin user to update "Parameters" in created Constraints. - -## __Amazon Elastic Container Service for Kubernetes__ - - ### Features - - Documentation update for Amazon EKS to clarify allowed parameters in update-cluster-config. - -## __Amazon Kinesis Analytics__ - - ### Features - - Kinesis Data Analytics APIs now support tagging on applications. - -## __Amazon SageMaker Service__ - - ### Features - - Workteams now supports notification configurations. Neo now supports Jetson Nano as a target device and NumberOfHumanWorkersPerDataObject is now included in the ListLabelingJobsForWorkteam response. - -# __2.5.39__ __2019-05-07__ -## __AWS AppSync__ - - ### Features - - AWS AppSync now supports the ability to add additional authentication providers to your AWS AppSync GraphQL API as well as the ability to retrieve directives configured against fields or object type definitions during schema introspection. - -## __AWS Storage Gateway__ - - ### Features - - Add optional field AdminUserList to CreateSMBFileShare and UpdateSMBFileShare APIs. - -## __Alexa For Business__ - - ### Features - - This release adds an API allowing authorized users to delete a shared device's history of voice recordings and associated response data. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - Patch Manager adds support for Microsoft Application Patching. - -# __2.5.38__ __2019-05-06__ -## __AWS CodePipeline__ - - ### Features - - Documentation updates for codepipeline - -## __AWS Config__ - - ### Features - - AWS Config now supports tagging on PutConfigRule, PutConfigurationAggregator and PutAggregationAuthorization APIs. - -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for iam - -## __AWS Security Token Service__ - - ### Features - - Documentation updates for sts - -# __2.5.37__ __2019-05-03__ -## __AWS Elemental MediaConvert__ - - ### Features - - DASH output groups using DRM encryption can now enable a playback device compatibility mode to correct problems with playback on older devices. - -## __AWS Elemental MediaLive__ - - ### Features - - You can now switch the channel mode of your channels from standard to single pipeline and from single pipeline to standard. In order to switch a channel from single pipeline to standard all inputs attached to the channel must support two encoder pipelines. - -## __Amazon Cognito Identity Provider__ - - ### Features - - This release of Amazon Cognito User Pools introduces the new AdminSetUserPassword API that allows administrators of a user pool to change a user's password. The new password can be temporary or permanent. - -## __Amazon WorkMail__ - - ### Features - - Amazon WorkMail is releasing two new actions: 'GetMailboxDetails' and 'UpdateMailboxQuota'. They add insight into how much space is used by a given mailbox (size) and what its limit is (quota). A mailbox quota can be updated, but lowering the value will not influence WorkMail per user charges. For a closer look at the actions please visit https://docs.aws.amazon.com/workmail/latest/APIReference/API_Operations.html - -# __2.5.36__ __2019-05-02__ -## __AWS Key Management Service__ - - ### Features - - AWS Key Management Service (KMS) can return an INTERNAL_ERROR connection error code if it cannot connect a custom key store to its AWS CloudHSM cluster. INTERNAL_ERROR is one of several connection error codes that help you to diagnose and fix a problem with your custom key store. - -## __Alexa For Business__ - - ### Features - - This release allows developers and customers to send text and audio announcements to rooms. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix a bug in the Netty client where the read timeout isn't applied correctly for some requests. - -# __2.5.35__ __2019-05-01__ -## __AWS X-Ray__ - - ### Features - - AWS X-Ray now includes Analytics, an interactive approach to analyzing user request paths (i.e., traces). Analytics will allow you to easily understand how your application and its underlying services are performing. With X-Ray Analytics, you can quickly detect application issues, pinpoint the root cause of the issue, determine the severity of the issues, and identify which end users were impacted. With AWS X-Ray Analytics you can explore, analyze, and visualize traces, allowing you to find increases in response time to user requests or increases in error rates. Metadata around peak periods, including frequency and actual times of occurrence, can be investigated by applying filters with a few clicks. You can then drill down on specific errors, faults, and response time root causes and view the associated traces. - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces additional task definition parameters that enable you to define secret options for Docker log configuration, a per-container list contains secrets stored in AWS Systems Manager Parameter Store or AWS Secrets Manager. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds an API for the modification of a VPN Connection, enabling migration from a Virtual Private Gateway (VGW) to a Transit Gateway (TGW), while preserving the VPN endpoint IP addresses on the AWS side as well as the tunnel options. - -# __2.5.34__ __2019-04-30__ -## __AWS CodePipeline__ - - ### Features - - This release contains an update to the PipelineContext object that includes the Pipeline ARN, and the Pipeline Execution Id. The ActionContext object is also updated to include the Action Execution Id. - -## __AWS Direct Connect__ - - ### Features - - This release adds support for AWS Direct Connect customers to use AWS Transit Gateway with AWS Direct Connect gateway to route traffic between on-premise networks and their VPCs. - -## __AWS Service Catalog__ - - ### Features - - Admin users can now associate/disassociate aws budgets with a portfolio or product in Service Catalog. End users can see the association by listing it or as part of the describe portfolio/product output. A new optional boolean parameter, "DisableTemplateValidation", is added to ProvisioningArtifactProperties data type. The purpose of the parameter is to enable or disable the CloudFormation template validtion when creating a product or a provisioning artifact. - -## __Amazon Managed Blockchain__ - - ### Features - - (New Service) Amazon Managed Blockchain is a fully managed service that makes it easy to create and manage scalable blockchain networks using popular open source frameworks. - -## __Amazon Neptune__ - - ### Features - - Adds a feature to allow customers to specify a custom parameter group when restoring a database cluster. - -# __2.5.33__ __2019-04-29__ -## __AWS Transfer for SFTP__ - - ### Features - - This release adds support for per-server host-key management. You can now specify the SSH RSA private key used by your SFTP server. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adds support for Elastic Fabric Adapter (EFA) ENIs. - -# __2.5.32__ __2019-04-26__ -## __AWS Identity and Access Management__ - - ### Features - - AWS Security Token Service (STS) enables you to request session tokens from the global STS endpoint that work in all AWS Regions. You can configure the global STS endpoint to vend session tokens that are compatible with all AWS Regions using the new IAM SetSecurityTokenServicePreferences API. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix bug in ChecksumValidatingSubscriber which results in NPE if checksum validation fails. - -## __Amazon Simple Notification Service__ - - ### Features - - With this release AWS SNS adds tagging support for Topics. - -# __2.5.31__ __2019-04-25__ -## __AWS Batch__ - - ### Features - - Documentation updates for AWS Batch. - -## __AWS Lambda__ - - ### Features - - AWS Lambda now supports the GetLayerVersionByArn API. - -## __Amazon DynamoDB__ - - ### Features - - This update allows you to tag Amazon DynamoDB tables when you create them. Tags are labels you can attach to AWS resources to make them easier to manage, search, and filter. - -## __Amazon GameLift__ - - ### Features - - This release introduces the new Realtime Servers feature, giving game developers a lightweight yet flexible solution that eliminates the need to build a fully custom game server. The AWS SDK updates provide support for scripts, which are used to configure and customize Realtime Servers. - -## __Amazon Inspector__ - - ### Features - - AWS Inspector - Improve the ListFindings API response time and decreases the maximum number of agentIDs from 500 to 99. - -## __Amazon WorkSpaces__ - - ### Features - - Documentation updates for workspaces - -## __Netty NIO Async Http Client__ - - ### Bugfixes - - Add workaround to await channel pools to be closed before shutting down EventLoopGroup to avoid the race condition between `channelPool.close` and `eventLoopGroup.shutdown`. See [#1109](https://github.com/aws/aws-sdk-java-v2/issues/1109). - -# __2.5.30__ __2019-04-24__ -## __AWS CloudFormation__ - - ### Features - - Documentation updates for cloudformation - -## __AWS MediaConnect__ - - ### Features - - Adds support for ListEntitlements pagination. - -## __AWS MediaTailor__ - - ### Features - - AWS Elemental MediaTailor SDK now includes a new parameter to support origin servers that produce single-period DASH manifests. - -## __AWS SDK for Java v2__ - - ### Features - - Make `BytesWrapper`, parent of `SdkBytes` and `ResponseBytes`, public. Fixes [#1208](https://github.com/aws/aws-sdk-java-v2/issues/1208). - - Support for `credential_source` property in profiles. - - - ### Bugfixes - - Fixed a bug in asynchronous clients, where a service closing a connection between when a channel is acquired and handlers are attached could lead to response futures never being completed. Fixes [#1207](https://github.com/aws/aws-sdk-java-v2/issues/1207). - -## __AWS Storage Gateway__ - - ### Features - - AWS Storage Gateway now supports Access Control Lists (ACLs) on File Gateway SMB shares, enabling you to apply fine grained access controls for Active Directory users and groups. - -## __Alexa For Business__ - - ### Features - - This release adds support for the Alexa for Business gateway and gateway group APIs. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - You can now launch the new Amazon EC2 general purpose burstable instance types T3a that feature AMD EPYC processors. - -## __Amazon Relational Database Service__ - - ### Features - - A new parameter "feature-name" is added to the add-role and remove-role db cluster APIs. The value for the parameter is optional for Aurora MySQL compatible database clusters, but mandatory for Aurora PostgresQL. You can find the valid list of values using describe db engine versions API. - -## __Amazon Route 53__ - - ### Features - - Amazon Route 53 now supports the Asia Pacific (Hong Kong) Region (ap-east-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release updates AWS Systems Manager APIs to allow customers to configure parameters to use either the standard-parameter tier (the default tier) or the advanced-parameter tier. It allows customers to create parameters with larger values and attach parameter policies to an Advanced Parameter. - -## __Amazon Textract__ - - ### Features - - This release adds support for checkbox also known as SELECTION_ELEMENT in Amazon Textract. - -# __2.5.29__ __2019-04-19__ -## __AWS Resource Groups__ - - ### Features - - The AWS Resource Groups service increased the query size limit to 4096 bytes. - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe - support transcriptions from audio sources in Spanish Spanish (es-ES). - -## __Amazon WorkSpaces__ - - ### Features - - Added a new reserved field. - -# __2.5.28__ __2019-04-18__ -## __AWS Application Discovery Service__ - - ### Features - - The Application Discovery Service's DescribeImportTasks and BatchDeleteImportData APIs now return additional statuses for error reporting. - -## __AWS Organizations__ - - ### Features - - AWS Organizations is now available in the AWS GovCloud (US) Regions, and we added a new API action for creating accounts in those Regions. For more information, see CreateGovCloudAccount in the AWS Organizations API Reference. - -## __Amazon Cognito Identity Provider__ - - ### Features - - Document updates for Amazon Cognito Identity Provider. - -## __Amazon Relational Database Service__ - - ### Features - - This release adds the TimeoutAction parameter to the ScalingConfiguration of an Aurora Serverless DB cluster. You can now configure the behavior when an auto-scaling capacity change can't find a scaling point. - -## __Amazon S3__ - - ### Bugfixes - - Reduced the frequency of 'server failed to send complete response' exceptions when using S3AsyncClient. - -## __Amazon WorkLink__ - - ### Features - - Amazon WorkLink is a fully managed, cloud-based service that enables secure, one-click access to internal websites and web apps from mobile phones. This release introduces new APIs to link and manage internal websites and web apps with Amazon WorkLink fleets. - -## __Amazon WorkSpaces__ - - ### Features - - Documentation updates for workspaces - -## __Managed Streaming for Kafka__ - - ### Features - - Amazon Kafka - Added tagging APIs - -# __2.5.27__ __2019-04-17__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for requester-managed Interface VPC Endpoints (powered by AWS PrivateLink). The feature prevents VPC endpoint owners from accidentally deleting or otherwise mismanaging the VPC endpoints of some AWS VPC endpoint services. - -## __Amazon Polly__ - - ### Features - - Amazon Polly adds Arabic language support with new female voice - "Zeina" - -# __2.5.26__ __2019-04-16__ -## __AWS Organizations__ - - ### Features - - Documentation updates for organizations - -## __AWS SDK for Java v2__ - - ### Features - - Enable support for credential_process in an AWS credential profile - -## __AWS Storage Gateway__ - - ### Features - - This change allows you to select either a weekly or monthly maintenance window for your volume or tape gateway. It also allows you to tag your tape and volume resources on creation by adding a Tag value on calls to the respective api endpoints. - -## __Amazon CloudWatch__ - - ### Features - - Documentation updates for monitoring - -## __Amazon Cognito Identity Provider__ - - ### Features - - This release adds support for the new email configuration in Amazon Cognito User Pools. You can now specify whether Amazon Cognito emails your users by using its built-in email functionality or your Amazon SES email configuration. - -## __Amazon Redshift__ - - ### Features - - DescribeResize can now return percent of data transferred from source cluster to target cluster for a classic resize. - -## __AmazonMQ__ - - ### Features - - This release adds the ability to retrieve information about broker engines and broker instance options. See Broker Engine Types and Broker Instance Options in the Amazon MQ REST API Reference. - -## __Netty NIO Http Client__ - - ### Bugfixes - - Update `UnusedChannelExceptionHandler` to check the cause of the exception so that it does emit warn logs if the cause is netty io exception. See [#1171](https://github.com/aws/aws-sdk-java-v2/issues/1171) - -# __2.5.25__ __2019-04-05__ -## __AWS Elemental MediaConvert__ - - ### Features - - Rectify incorrect modelling of DisassociateCertificate method - -## __AWS Elemental MediaLive__ - - ### Features - - Today AWS Elemental MediaLive (https://aws.amazon.com/medialive/) adds the option to create "Single Pipeline" channels, which offers a lower-cost option compared to Standard channels. MediaLive Single Pipeline channels have a single encoding pipeline rather than the redundant dual Availability Zone (AZ) pipelines that MediaLive provides with a "Standard" channel. - -## __AWS Glue__ - - ### Features - - AWS Glue now supports workerType choices in the CreateJob, UpdateJob, and StartJobRun APIs, to be used for memory-intensive jobs. - -## __AWS IoT 1-Click Devices Service__ - - ### Features - - Documentation updates for 1-Click: improved descriptions of resource tagging APIs. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Lazily initialize `ApiCallTimeoutException` and `ApiCallAttemptTimeoutException`. This change would improve performance of async api calls. - -## __AWS Transcribe Streaming__ - - ### Features - - Amazon Transcribe now supports GB English, CA French and FR French which expands upon the existing language support for US English and US Spanish. - -## __Amazon Comprehend__ - - ### Features - - With this release AWS Comprehend provides confusion matrix for custom document classifier. - -# __2.5.24__ __2019-04-04__ -## __AWS Identity and Access Management__ - - ### Features - - Documentation updates for iam - -## __Amazon Elastic Container Service for Kubernetes__ - - ### Features - - Added support to enable or disable publishing Kubernetes cluster logs in AWS CloudWatch - -# __2.5.23__ __2019-04-03__ -## __AWS Batch__ - - ### Features - - Support for GPU resource requirement in RegisterJobDefinition and SubmitJob - -## __Amazon Comprehend__ - - ### Features - - With this release AWS Comprehend adds tagging support for document-classifiers and entity-recognizers. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix a bug where SNI was not enabled in Netty NIO Async Client for TLS and caused the requests to fail of handshake_failure in some services. See [#1171](https://github.com/aws/aws-sdk-java-v2/issues/1171) - -# __2.5.22__ __2019-04-02__ -## __AWS Certificate Manager__ - - ### Features - - Documentation updates for acm - -## __AWS SecurityHub__ - - ### Features - - This update includes 3 additional error codes: AccessDeniedException, InvalidAccessException, and ResourceConflictException. This update also removes the error code ResourceNotFoundException from the GetFindings, GetInvitationsCount, ListInvitations, and ListMembers operations. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add paginators. - -# __2.5.21__ __2019-04-01__ -## __Amazon Elastic MapReduce__ - - ### Features - - Amazon EMR adds the ability to modify instance group configurations on a running cluster through the new "configurations" field in the ModifyInstanceGroups API. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - March 2019 documentation updates for Systems Manager. - -# __2.5.20__ __2019-03-29__ -## __AWS Greengrass__ - - ### Features - - Greengrass APIs now support tagging operations on resources - -## __Amazon API Gateway__ - - ### Bugfixes - - Fix the SDK cloberring existed 'Accept' headers on marshalled requests. - -## __Amazon CloudWatch__ - - ### Features - - Added 3 new APIs, and one additional parameter to PutMetricAlarm API, to support tagging of CloudWatch Alarms. - -## __Amazon Comprehend__ - - ### Features - - With this release AWS Comprehend supports encryption of output results of analysis jobs and volume data on the storage volume attached to the compute instance that processes the analysis job. - -# __2.5.19__ __2019-03-28__ -## __AWS Elemental MediaLive__ - - ### Features - - This release adds a new output locking mode synchronized to the Unix epoch. - -## __AWS Service Catalog__ - - ### Features - - Adds "Tags" field in UpdateProvisionedProduct API. The product should have a new RESOURCE_UPDATE Constraint with TagUpdateOnProvisionedProduct field set to ALLOWED for it to work. See API docs for CreateConstraint for more information - -## __Amazon Pinpoint Email Service__ - - ### Features - - This release adds support for using the Amazon Pinpoint Email API to tag the following types of Amazon Pinpoint resources: configuration sets; dedicated IP pools; deliverability dashboard reports; and, email identities. A tag is a label that you optionally define and associate with these types of resources. Tags can help you categorize and manage these resources in different ways, such as by purpose, owner, environment, or other criteria. A resource can have as many as 50 tags. For more information, see the Amazon Pinpoint Email API Reference. - -## __Amazon WorkSpaces__ - - ### Features - - Amazon WorkSpaces adds tagging support for WorkSpaces Images, WorkSpaces directories, WorkSpaces bundles and IP Access control groups. - -# __2.5.18__ __2019-03-27__ -## __AWS App Mesh__ - - ### Features - - This release includes AWS Tagging integration for App Mesh, VirtualNode access logging, TCP routing, and Mesh-wide external traffic egress control. See https://docs.aws.amazon.com/app-mesh/latest/APIReference/Welcome.html for more details. - -## __AWS Storage Gateway__ - - ### Features - - This change allows you to select a pool for archiving virtual tapes. Pools are associated with S3 storage classes. You can now choose to archive virtual tapes in either S3 Glacier or S3 Glacier Deep Archive storage class. CreateTapes API now takes a new PoolId parameter which can either be GLACIER or DEEP_ARCHIVE. Tapes created with this parameter will be archived in the corresponding storage class. - -## __AWS Transfer for SFTP__ - - ### Features - - This release adds PrivateLink support to your AWS SFTP server endpoint, enabling the customer to access their SFTP server within a VPC, without having to traverse the internet. Customers can now can create a server and specify an option whether they want the endpoint to be hosted as public or in their VPC, and with the in VPC option, SFTP clients and users can access the server only from the customer's VPC or from their on-premises environments using DX or VPN. This release also relaxes the SFTP user name requirements to allow underscores and hyphens. - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for external deployment controllers for ECS services with the launch of task set management APIs. Task sets are a new primitive for controlled management of application deployments within a single ECS service. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - You can now launch the new Amazon EC2 R5ad and M5ad instances that feature local NVMe attached SSD instance storage (up to 3600 GB). M5ad and R5ad feature AMD EPYC processors that offer a 10% cost savings over the M5d and R5d EC2 instances. - -## __Amazon Simple Storage Service__ - - ### Features - - S3 Glacier Deep Archive provides secure, durable object storage class for long term data archival. This SDK release provides API support for this new storage class. - -## __Apache Http Client__ - - ### Features - - Add the ability to set a custom Apache HttpRoutePlanner and CredentialProvider - -## __Elastic Load Balancing__ - - ### Features - - This release adds support for routing based on HTTP headers, methods, query string or query parameters and source IP addresses in Application Load Balancer. - -# __2.5.17__ __2019-03-26__ -## __AWS Glue__ - - ### Features - - This new feature will now allow customers to add a customized csv classifier with classifier API. They can specify a custom delimiter, quote symbol and control other behavior they'd like crawlers to have while recognizing csv files - -## __Amazon WorkMail__ - - ### Features - - Documentation updates for Amazon WorkMail. - -# __2.5.16__ __2019-03-25__ -## __AWS Direct Connect__ - - ### Features - - Direct Connect gateway enables you to establish connectivity between your on-premise networks and Amazon Virtual Private Clouds (VPCs) in any commercial AWS Region (except in China) using AWS Direct Connect connections at any AWS Direct Connect location. This release enables multi-account support for Direct Connect gateway, with multi-account support for Direct Connect gateway, you can associate up to ten VPCs from any AWS account with a Direct Connect gateway. The AWS accounts owning VPCs and the Direct Connect gateway must belong to the same AWS payer account ID. This release also enables Direct Connect Gateway owners to allocate allowed prefixes from each associated VPCs. - -## __AWS Elemental MediaConvert__ - - ### Features - - This release adds support for detailed job progress status and S3 server-side output encryption. In addition, the anti-alias filter will now be automatically applied to all outputs - -## __AWS IoT 1-Click Devices Service__ - - ### Features - - This release adds tagging support for AWS IoT 1-Click Device resources. Use these APIs to add, remove, or list tags on Devices, and leverage the tags for various authorization and billing scenarios. This release also adds the ARN property for DescribeDevice response object. - -## __AWS IoT Analytics__ - - ### Features - - This change allows you to specify the number of versions of IoT Analytics data set content to be retained. Previously, the number of versions was managed implicitly via the setting of the data set's retention period. - -## __AWS RoboMaker__ - - ### Features - - Added additional progress metadata fields for robot deployments - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe - With this release Amazon Transcribe enhances the custom vocabulary feature to improve accuracy by providing customization on pronunciations and output formatting. - -## __Firewall Management Service__ - - ### Features - - AWS Firewall Manager now allows customer to centrally enable AWS Shield Advanced DDoS protection for their entire AWS infrastructure, across accounts and applications. - -## __URL Connection Http Client__ - - ### Bugfixes - - Bypass ssl validations when `TRUST_ALL_CERTIFICATES` is set to true. - -# __2.5.15__ __2019-03-22__ -## __AWS IoT 1-Click Projects Service__ - - ### Features - - This release adds tagging support for AWS IoT 1-Click Project resources. Use these APIs to add, remove, or list tags on Projects, and leverage the tags for various authorization and billing scenarios. This release also adds the ARN property to projects for DescribeProject and ListProject responses. - -## __Amazon CloudSearch Domain__ - - ### Bugfixes - - Use application/x-www-form-urlencoded as Content-Type for search API - -## __Amazon Transcribe Service__ - - ### Features - - Amazon Transcribe - support transcriptions from audio sources in German (de-DE) and Korean (ko-KR). - -## __Netty NIO Http Client__ - - ### Features - - Add sslProvider configuration in `NettyNioAsyncHttpClient.Builder`. - -# __2.5.14__ __2019-03-21__ -## __AWS IoT__ - - ### Features - - This release adds the GetStatistics API for the AWS IoT Fleet Indexing Service, which allows customers to query for statistics about registered devices that match a search query. This release only supports the count statistics. For more information about this API, see https://docs.aws.amazon.com/iot/latest/apireference/API_GetStatistics.html - -## __AWS SDK for Java v2__ - - ### Features - - Automatically retry on `RequestThrottledException` error codes. - - - ### Bugfixes - - Fix bug where the stream returned from a `ContentStreamProvider` is not closed after request execution. See [#1138](https://github.com/aws/aws-sdk-java-v2/issues/1138) - -## __Amazon CloudWatch Events__ - - ### Features - - Added 3 new APIs, and one additional parameter to the PutRule API, to support tagging of CloudWatch Events rules. - -## __Amazon Cognito Identity Provider__ - - ### Features - - This release adds tags and tag-based access control support to Amazon Cognito User Pools. - -## __Amazon Lightsail__ - - ### Features - - This release adds the DeleteKnownHostKeys API, which enables Lightsail's browser-based SSH or RDP clients to connect to the instance after a host key mismatch. - -## __Amazon S3__ - - ### Bugfixes - - Fix bug in `ChecksumCalculatingInputStream` where methods not overridden, such as `close()`, are not called on the wrapped stream. See [#1138](https://github.com/aws/aws-sdk-java-v2/issues/1138). - -## __Auto Scaling__ - - ### Features - - Documentation updates for Amazon EC2 Auto Scaling - -# __2.5.13__ __2019-03-20__ -## __AWS CodePipeline__ - - ### Features - - Add support for viewing details of each action execution belonging to past and latest pipeline executions that have occurred in customer's pipeline. The details include start/updated times, action execution results, input/output artifacts information, etc. Customers also have the option to add pipelineExecutionId in the input to filter the results down to a single pipeline execution. - -## __AWSMarketplace Metering__ - - ### Features - - This release increases AWS Marketplace Metering Service maximum usage quantity to 2147483647 and makes parameters usage quantity and dryrun optional. - -## __Amazon Cognito Identity__ - - ### Features - - This release adds tags and tag-based access control support to Amazon Cognito Identity Pools (Federated Identities). - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix a bug that could pollute non SDK threads with `ThreadLocal`'s when allocating memory. See [#1133](https://github.com/aws/aws-sdk-java-v2/issues/1133) - -## __Netty NIO Http Client__ - - ### Bugfixes - - Fix failed test NettyNioAsyncHttpClientSpiVerificationTest when running with JDK11. See [#1038](https://github.com/aws/aws-sdk-java-v2/issues/1038) - -# __2.5.12__ __2019-03-19__ -## __AWS Config__ - - ### Features - - AWS Config adds a new API called SelectResourceConfig to run advanced queries based on resource configuration properties. - -## __AWS SDK for Java v2__ - - ### Features - - Adds the Java vendor the user agent as well as using the updated user agent for all HTTP calls - -## __Amazon Elastic Container Service for Kubernetes__ - - ### Features - - Added support to control private/public access to the Kubernetes API-server endpoint - -## __Amazon S3__ - - ### Features - - Add support for getUrl operation. The API can be used to generate a URL that represents an object in Amazon S3. The url can only be used to download the object content if the object has public read permissions. Original issue: https://github.com/aws/aws-sdk-java-v2/issues/860 - - - ### Bugfixes - - Only set content type of S3 `CreateMultipartUploadRequest` if `Content-Type` header is not present and honor the overridden content type. - -# __2.5.11__ __2019-03-18__ -## __AWS Database Migration Service__ - - ### Features - - S3 Endpoint Settings added support for 1) Migrating to Amazon S3 as a target in Parquet format 2) Encrypting S3 objects after migration with custom KMS Server-Side encryption. Redshift Endpoint Settings added support for encrypting intermediate S3 objects during migration with custom KMS Server-Side encryption. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix HeaderUnmarshaller to compare header ignoring cases. - -## __Amazon Chime__ - - ### Features - - This release adds support for the Amazon Chime Business Calling and Voice Connector features. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - DescribeFpgaImages API now returns a new DataRetentionSupport attribute to indicate if the AFI meets the requirements to support DRAM data retention. DataRetentionSupport is a read-only attribute. - -# __2.5.10__ __2019-03-14__ -## __AWS Certificate Manager__ - - ### Features - - AWS Certificate Manager has added a new API action, RenewCertificate. RenewCertificate causes ACM to force the renewal of any private certificate which has been exported. - -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - AWS Certificate Manager (ACM) Private CA allows customers to manage permissions on their CAs. Customers can grant or deny AWS Certificate Manager permission to renew exported private certificates. - -## __AWS Config__ - - ### Features - - AWS Config - add ability to tag, untag and list tags for ConfigRule, ConfigurationAggregator and AggregationAuthorization resource types. Tags can be used for various scenarios including tag based authorization. - -## __AWS IoT__ - - ### Features - - In this release, AWS IoT introduces support for tagging OTA Update and Stream resources. For more information about tagging, see the AWS IoT Developer Guide. - -## __Amazon CloudWatch__ - - ### Features - - New Messages parameter for the output of GetMetricData, to support new metric search functionality. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds tagging support for Dedicated Host Reservations. - -## __Amazon SageMaker Service__ - - ### Features - - Amazon SageMaker Automatic Model Tuning now supports random search and hyperparameter scaling. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Backport `FixedChannelPool` fix from https://github.com/netty/netty/pull/7927, which ensures that the operation doesn't become blocked from closing the wrapped pool. - - Fix a possible `NullPointerException` if `HttpOrHttp2ChannelPool` is closed while the protocol is still being determined. The operation is now done synchronously with other operations on the pool to prevent a data race. - -# __2.5.9__ __2019-03-13__ -## __AWS Config__ - - ### Features - - Config released Remediation APIs allowing Remediation of Config Rules - -## __Amazon CloudWatch Logs__ - - ### Features - - Documentation updates for logs - -## __Netty Nio HTTP Client__ - - ### Bugfixes - - Update `SslCompletionEventHandler` to close channel for `SslCloseCompletionEvent` only if the channel is not currently in use. This would fix the race condition in the async clients causing incorrect IOException to be thrown when the service returns error response and closes the connection. See [#1076](https://github.com/aws/aws-sdk-java-v2/issues/1076) - -# __2.5.8__ __2019-03-12__ -## __AWSServerlessApplicationRepository__ - - ### Features - - The AWS Serverless Application Repository now supports associating a ZIP source code archive with versions of an application. - -## __Netty Nio Http Client__ - - ### Bugfixes - - Fix a bug where the channel fails to be released if there is an exception thrown. - -# __2.5.7__ __2019-03-11__ -## __AWS Cost Explorer Service__ - - ### Features - - The only change in this release is to make TimePeriod a required parameter in GetCostAndUsageRequest. - -## __AWS Elastic Beanstalk__ - - ### Features - - Elastic Beanstalk added support for tagging, and tag-based access control, of all Elastic Beanstalk resources. - -## __AWS Glue__ - - ### Features - - CreateDevEndpoint and UpdateDevEndpoint now support Arguments to configure the DevEndpoint. - -## __AWS IoT__ - - ### Features - - Documentation updates for iot - -## __Amazon QuickSight__ - - ### Features - - Amazon QuickSight user and group operation results now include group principal IDs and user principal IDs. This release also adds "DeleteUserByPrincipalId", which deletes users given their principal ID. The update also improves role session name validation. - -## __Amazon Rekognition__ - - ### Features - - Documentation updates for Amazon Rekognition - -## __Amazon S3__ - - ### Bugfixes - - Set `Content-Type` to `binary/octet-stream` for `S3#createMultipartRequest`. See [#1092](https://github.com/aws/aws-sdk-java-v2/issues/1092) - -## __Apache Http Client__ - - ### Bugfixes - - Updated to not set a default `Content-Type` if the header does not exist. Per [RFC7231](https://tools.ietf.org/html/rfc7231#page-11), we should let the recipient to decide if not known. - -# __2.5.6__ __2019-03-08__ -## __AWS CodeBuild__ - - ### Features - - CodeBuild also now supports Git Submodules. CodeBuild now supports opting out of Encryption for S3 Build Logs. By default these logs are encrypted. - -## __Amazon SageMaker Service__ - - ### Features - - SageMaker notebook instances now support enabling or disabling root access for notebook users. SageMaker Neo now supports rk3399 and rk3288 as compilation target devices. - -## __Amazon Simple Storage Service__ - - ### Features - - Documentation updates for s3 - -# __2.5.5__ __2019-03-07__ -## __AWS App Mesh__ - - ### Features - - This release includes a new version of the AWS App Mesh APIs. You can read more about the new APIs here: https://docs.aws.amazon.com/app-mesh/latest/APIReference/Welcome.html. - -## __AWS Elemental MediaLive__ - - ### Features - - This release adds a MediaPackage output group, simplifying configuration of outputs to AWS Elemental MediaPackage. - -## __AWS Greengrass__ - - ### Features - - Greengrass group UID and GID settings can now be configured to use a provided default via FunctionDefaultConfig. If configured, all Lambda processes in your deployed Greengrass group will by default start with the provided UID and/or GID, rather than by default starting with UID "ggc_user" and GID "ggc_group" as they would if not configured. Individual Lambdas can also be configured to override the defaults if desired via each object in the Functions list of your FunctionDefinitionVersion. - -## __AWS SDK For Java v2__ - - ### Bugfixes - - Fix bug in the generated async clients where cancelling the `CompletableFuture` returned from an async operation does not result in cancelling the underlying HTTP request execution. In some cases, this can lead to unnecesarily keeping resources from being freed until the request execution finishes. - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces additional task definition parameters that enable you to define dependencies for container startup and shutdown, a per-container start and stop timeout value, as well as an AWS App Mesh proxy configuration which eases the integration between Amazon ECS and AWS App Mesh. - -## __Amazon GameLift__ - - ### Features - - Amazon GameLift-hosted instances can now securely access resources on other AWS services using IAM roles. See more details at https://aws.amazon.com/releasenotes/amazon-gamelift/. - -## __Amazon Relational Database Service__ - - ### Features - - You can configure your Aurora database cluster to automatically copy tags on the cluster to any automated or manual database cluster snapshots that are created from the cluster. This allows you to easily set metadata on your snapshots to match the parent cluster, including access policies. You may enable or disable this functionality while creating a new cluster, or by modifying an existing database cluster. - -## __Auto Scaling__ - - ### Features - - Documentation updates for autoscaling - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix a bug where, if the future returned from the `NettyRequestExecutor#execute` is cancelled, the client continues to wait for the `Channel` acquire to complete, which leads to keeping potentially many resources around unnecessarily. - -# __2.5.4__ __2019-03-06__ -## __AWS Direct Connect__ - - ### Features - - Exposed a new available port speeds field in the DescribeLocation api call. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix the generated ServiceMetadata classes for services that have PARTITION_OVERRIDDEN_ENDPOINTS - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds pagination support for ec2.DescribeVpcs, ec2.DescribeInternetGateways and ec2.DescribeNetworkAcls APIs - -## __Amazon Elastic File System__ - - ### Features - - Documentation updates for elasticfilesystem adding new examples for EFS Lifecycle Management feature. - -# __2.5.3__ __2019-03-05__ -## __AWS CodeDeploy__ - - ### Features - - Documentation updates for codedeploy - -## __AWS Elemental MediaLive__ - - ### Features - - This release adds support for pausing and unpausing one or both pipelines at scheduled times. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Add missing non-service modules to bom. See [#1063](https://github.com/aws/aws-sdk-java-v2/issues/1063) - -## __AWS Storage Gateway__ - - ### Features - - ActivateGateway, CreateNFSFileShare and CreateSMBFileShare APIs support a new parameter: Tags (to be attached to the created resource). Output for DescribeNFSFileShare, DescribeSMBFileShare and DescribeGatewayInformation APIs now also list the Tags associated with the resource. Minimum length of a KMSKey is now 7 characters. - -## __Amazon Textract__ - - ### Features - - This release is intended ONLY for customers that are officially part of the Amazon Textract Preview program. If you are not officially part of the Amazon Textract program THIS WILL NOT WORK. Our two main regions for Amazon Textract Preview are N. Virginia and Dublin. Also some members have been added to Oregon and Ohio. If you are outside of any of these AWS regions, Amazon Textract Preview definitely will not work. If you would like to be part of the Amazon Textract program, you can officially request sign up here - https://pages.awscloud.com/textract-preview.html. To set expectations appropriately, we are aiming to admit new preview participants once a week until General Availability. - -# __2.5.2__ __2019-03-04__ -## __AWS Elemental MediaPackage__ - - ### Features - - This release adds support for user-defined tagging of MediaPackage resources. Users may now call operations to list, add and remove tags from channels and origin-endpoints. Users can also specify tags to be attached to these resources during their creation. Describe and list operations on these resources will now additionally return any tags associated with them. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - This release updates AWS Systems Manager APIs to support service settings for AWS customers. A service setting is a key-value pair that defines how a user interacts with or uses an AWS service, and is typically created and consumed by the AWS service team. AWS customers can read a service setting via GetServiceSetting API and update the setting via UpdateServiceSetting API or ResetServiceSetting API, which are introduced in this release. For example, if an AWS service charges money to the account based on a feature or service usage, then the AWS service team might create a setting with the default value of "false". This means the user can't use this feature unless they update the setting to "true" and intentionally opt in for a paid feature. - -# __2.5.1__ __2019-03-01__ -## __AWS Auto Scaling Plans__ - - ### Features - - Documentation updates for autoscaling-plans - -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds support for modifying instance event start time which allows users to reschedule EC2 events. - -# __2.5.0__ __2019-02-28__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix a bug in the code generator where the enum getter for a structure member is not being generated in some cases. Additionally, fix a bug that generated the wrong code for enum getters where the enum is not at the top level container but is nested, such as `List>`. This breaks the interface for affected services so the minor version is increased. - - Fixed a bug where the request would fail of NoSuchElementException. This bug would affect `TranscribeStreaming#startStreamTranscription` request - -## __Alexa For Business__ - - ### Features - - This release adds the PutInvitationConfiguration API to configure the user invitation email template with custom attributes, and the GetInvitationConfiguration API to retrieve the configured values. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager State Manager now supports associations using documents shared by other AWS accounts. - -## __AmazonApiGatewayV2__ - - ### Features - - Marking certain properties as explicitly required and fixing an issue with the GetApiMappings operation for ApiMapping resources. - -## __Application Auto Scaling__ - - ### Features - - Documentation updates for application-autoscaling - -## __Netty Nio HTTP Client__ - - ### Bugfixes - - Added try-catch blocks to prevent uncompleted future when exception is thrown. - -# __2.4.17__ __2019-02-27__ -## __AWS WAF__ - - ### Features - - Documentation updates for waf - -## __AWS WAF Regional__ - - ### Features - - Documentation updates for waf-regional - -## __core__ - - ### Bugfixes - - Netty 4.1.33.Final - -# __2.4.16__ __2019-02-26__ -## __AWS Application Discovery Service__ - - ### Features - - Documentation updates for discovery - -## __AWS Cost and Usage Report Service__ - - ### Features - - Adding support for Athena and new report preferences to the Cost and Usage Report API. - -## __AWS Elemental MediaConvert__ - - ### Features - - AWS Elemental MediaConvert SDK has added several features including support for: auto-rotation or user-specified rotation of 0, 90, 180, or 270 degrees; multiple output groups with DRM; ESAM XML documents to specify ad insertion points; Offline Apple HLS FairPlay content protection. - -## __AWS OpsWorks for Chef Automate__ - - ### Features - - Documentation updates for opsworkscm - -## __AWS Organizations__ - - ### Features - - Documentation updates for AWS Organizations - -## __AWS Resource Groups__ - - ### Features - - Documentation updates for Resource Groups API; updating description of Tag API. - -## __Amazon Pinpoint__ - - ### Features - - This release adds support for the Amazon Resource Groups Tagging API to Amazon Pinpoint, which means that you can now add and manage tags for Amazon Pinpoint projects (apps), campaigns, and segments. A tag is a label that you optionally define and associate with Amazon Pinpoint resource. Tags can help you categorize and manage these types of resources in different ways, such as by purpose, owner, environment, or other criteria. For example, you can use tags to apply policies or automation, or to identify resources that are subject to certain compliance requirements. A project, campaign, or segment can have as many as 50 tags. For more information about using and managing tags in Amazon Pinpoint, see the Amazon Pinpoint Developer Guide at https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html. For more information about the Amazon Resource Group Tagging API, see the Amazon Resource Group Tagging API Reference at https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/Welcome.html. - -## __Amazon S3__ - - ### Bugfixes - - Fix the issue where NoSuchBucketException was not unmarshalled for `s3#getBucketPolicy` when the bucket doesn't exist. See [#1088](https://github.com/aws/aws-sdk-java-v2/issues/1088) - -# __2.4.15__ __2019-02-25__ -## __AWS CodeCommit__ - - ### Removals - - Removing invalid "fips" region - -## __AWS Cost Explorer Service__ - - ### Features - - Added metrics to normalized units. - -## __AWS Elasticache__ - - ### Removals - - Removing invalid "fips" region - -## __AWS Elemental MediaStore__ - - ### Features - - This release adds support for access logging, which provides detailed records for the requests that are made to objects in a container. - -## __AWS SDK for Java v2__ - - ### Removals - - Removes invalid AWS regions that don't match the partition regex - -## __Amazon DynamoDB__ - - ### Removals - - Removing invalid "local" region - -## __Amazon MTurk__ - - ### Removals - - Removing invalid "sandbox" region - -## __Amazon S3__ - - ### Removals - - Removing invalid dualstack regions and s3-external-1 - -## __Auto Scaling__ - - ### Features - - Added support for passing an empty SpotMaxPrice parameter to remove a value previously set when updating an Amazon EC2 Auto Scaling group. - -## __Elastic Load Balancing__ - - ### Features - - This release enables you to use the existing client secret when modifying a rule with an action of type authenticate-oidc. - -# __2.4.14__ __2019-02-22__ -## __AWS Cloud9__ - - ### Features - - Adding EnvironmentLifecycle to the Environment data type. - -## __AWS Glue__ - - ### Features - - AWS Glue adds support for assigning AWS resource tags to jobs, triggers, development endpoints, and crawlers. Each tag consists of a key and an optional value, both of which you define. With this capacity, customers can use tags in AWS Glue to easily organize and identify your resources, create cost allocation reports, and control access to resources. - -## __AWS Step Functions__ - - ### Features - - This release adds support for tag-on-create. You can now add tags when you create AWS Step Functions activity and state machine resources. For more information about tagging, see AWS Tagging Strategies. - -## __Amazon Athena__ - - ### Features - - This release adds tagging support for Workgroups to Amazon Athena. Use these APIs to add, remove, or list tags on Workgroups, and leverage the tags for various authorization and billing scenarios. - -# __2.4.13__ __2019-02-21__ -## __AWS CodeBuild__ - - ### Features - - Add support for CodeBuild local caching feature - -## __AWS Organizations__ - - ### Features - - Documentation updates for organizations - -## __AWS Transfer for SFTP__ - - ### Features - - Bug fix: increased the max length allowed for request parameter NextToken when paginating List operations - -## __Amazon CloudWatch__ - - ### Features - - Documentation updates for monitoring - -## __Amazon Kinesis Video Streams__ - - ### Features - - Documentation updates for Kinesis Video Streams - -## __Amazon Kinesis Video Streams Archived Media__ - - ### Features - - In this release, HLS playback of KVS streams can be configured to output MPEG TS fragments using the ContainerFormat parameter. HLS playback of KVS streams can also be configured to include the EXT-X-PROGRAM-DATE-TIME field using the DisplayFragmentTimestamp parameter. - -## __Amazon Kinesis Video Streams Media__ - - ### Features - - Documentation updates for Kinesis Video Streams - -## __Amazon WorkDocs__ - - ### Features - - Documentation updates for workdocs - -# __2.4.12__ __2019-02-20__ -## __AWS CodeCommit__ - - ### Features - - This release adds an API for adding / updating / deleting / copying / moving / setting file modes for one or more files directly to an AWS CodeCommit repository without requiring a Git client. - -## __AWS Direct Connect__ - - ### Features - - Documentation updates for AWS Direct Connect - -## __AWS Elemental MediaLive__ - - ### Features - - This release adds support for VPC inputs, allowing you to push content from your Amazon VPC directly to MediaLive. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed an issue where the SDK could be over-retrying on signature errors. - - Fixed an issue where the SDK could fail to adjust the local clock under skewed-clock conditions. - -# __2.4.11__ __2019-02-19__ -## __AWS Directory Service__ - - ### Features - - This release adds support for tags during directory creation (CreateDirectory, CreateMicrosoftAd, ConnectDirectory). - -## __AWS IoT__ - - ### Features - - AWS IoT - AWS IoT Device Defender adds support for configuring behaviors in a security profile with statistical thresholds. Device Defender also adds support for configuring multiple data-point evaluations before a violation is either created or cleared. - -## __Amazon Elastic File System__ - - ### Features - - Amazon EFS now supports adding tags to file system resources as part of the CreateFileSystem API . Using this capability, customers can now more easily enforce tag-based authorization for EFS file system resources. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager now supports adding tags when creating Activations, Patch Baselines, Documents, Parameters, and Maintenance Windows - -# __2.4.10__ __2019-02-18__ -## __AWS SDK for Java v2__ - - ### Features - - Updated service endpoint metadata. - -## __AWS Secrets Manager__ - - ### Features - - This release increases the maximum allowed size of SecretString or SecretBinary from 4KB to 7KB in the CreateSecret, UpdateSecret, PutSecretValue and GetSecretValue APIs. - -## __Amazon Athena__ - - ### Features - - This release adds support for Workgroups to Amazon Athena. Use Workgroups to isolate users, teams, applications or workloads in the same account, control costs by setting up query limits and creating Amazon SNS alarms, and publish query-related metrics to Amazon CloudWatch. - -# __2.4.9__ __2019-02-15__ -## __AWS IoT__ - - ### Features - - In this release, IoT Device Defender introduces support for tagging Scheduled Audit resources. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Attach `extendedRequestId` to `AwsResponseMetadata` if available for event streaming operations so that customers can retrieve it from response metadata - -## __Amazon Chime__ - - ### Features - - Documentation updates for Amazon Chime - -## __Application Auto Scaling__ - - ### Features - - Documentation updates for Application Auto Scaling - -# __2.4.8__ __2019-02-14__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - This release adds tagging and ARN support for AWS Client VPN Endpoints.You can now run bare metal workloads on EC2 M5 and M5d instances. m5.metal and m5d.metal instances are powered by custom Intel Xeon Scalable Processors with a sustained all core frequency of up to 3.1 GHz. m5.metal and m5d.metal offer 96 vCPUs and 384 GiB of memory. With m5d.metal, you also have access to 3.6 TB of NVMe SSD-backed instance storage. m5.metal and m5d.metal instances deliver 25 Gbps of aggregate network bandwidth using Elastic Network Adapter (ENA)-based Enhanced Networking, as well as 14 Gbps of bandwidth to EBS.You can now run bare metal workloads on EC2 z1d instances. z1d.metal instances are powered by custom Intel Xeon Scalable Processors with a sustained all core frequency of up to 4.0 GHz. z1d.metal offers 48 vCPUs, 384 GiB of memory, and 1.8 TB of NVMe SSD-backed instance storage. z1d.metal instances deliver 25 Gbps of aggregate network bandwidth using Elastic Network Adapter (ENA)-based Enhanced Networking, as well as 14 Gbps of bandwidth to EBS. - -## __Amazon Kinesis Video Streams__ - - ### Features - - Adds support for Tag-On-Create for Kinesis Video Streams. A list of tags associated with the stream can be created at the same time as the stream creation. - -# __2.4.7__ __2019-02-13__ -## __AWS MediaTailor__ - - ### Features - - This release adds support for tagging AWS Elemental MediaTailor resources. - -## __Amazon Elastic File System__ - - ### Features - - Customers can now use the EFS Infrequent Access (IA) storage class to more cost-effectively store larger amounts of data in their file systems. EFS IA is cost-optimized storage for files that are not accessed every day. You can create a new file system and enable Lifecycle Management to automatically move files that have not been accessed for 30 days from the Standard storage class to the IA storage class. - -## __Amazon Rekognition__ - - ### Features - - GetContentModeration now returns the version of the moderation detection model used to detect unsafe content. - -# __2.4.6__ __2019-02-12__ -## __AWS Lambda__ - - ### Features - - Documentation updates for AWS Lambda - -## __AWS Transcribe Streaming__ - - ### Features - - Amazon Transcribe now supports US Spanish, which expands upon the existing language support for US English. - -## __Netty Nio HTTP Client__ - - ### Bugfixes - - Awaits `EventLoopGroup#shutdownGracefully` to complete when closing Netty client. - -# __2.4.5__ __2019-02-11__ -## __AWS CodeBuild__ - - ### Features - - Add customized webhook filter support - -## __AWS Elemental MediaPackage__ - - ### Features - - Adds optional configuration for DASH to compact the manifest by combining duplicate SegmentTemplate tags. Adds optional configuration for DASH SegmentTemplate format to refer to segments by "Number" (default) or by "Time". - -## __Amazon AppStream__ - - ### Features - - This update enables customers to find the start time, max expiration time, and connection status associated with AppStream streaming session. - -## __Amazon CloudWatch Logs__ - - ### Bugfixes - - Fix infinite pagination bug in CloudWatchLogsClient.getLogEventsPaginator API. See https://github.com/aws/aws-sdk-java-v2/issues/1045 - -# __2.4.4__ __2019-02-08__ -## __AWS Application Discovery Service__ - - ### Features - - Documentation updates for the AWS Application Discovery Service. - -## __AWS S3__ - - ### Bugfixes - - Use request header to determine if checksum validation should be enabled for `s3#putObject` - -## __AWS SDK for Java v2__ - - ### Features - - Never initialie the default region provider chain if the region is always specified in the client builder. - - Never initialize the default credentials provider chain if credentials are always specified in the client builder. - - - ### Bugfixes - - Defer all errors raised when creating `ProfileCredentialsProvider` to the `resolveCredentials()` call. - -## __Amazon Data Lifecycle Manager__ - - ### Features - - This release is to correct the timestamp format to ISO8601 for the DateCreated and DateModified files in the GetLifecyclePolicy response object. - -## __Amazon EC2 Container Service__ - - ### Features - - Amazon ECS introduces the PutAccountSettingDefault API, an API that allows a user to set the default ARN/ID format opt-in status for all the roles and users in the account. Previously, setting the account's default opt-in status required the use of the root user with the PutAccountSetting API. - -# __2.4.3__ __2019-02-07__ -## __AWS Elemental MediaLive__ - - ### Features - - This release adds tagging of channels, inputs, and input security groups. - -## __AWS RoboMaker__ - - ### Features - - Added support for tagging and tag-based access control for AWS RoboMaker resources. Also, DescribeSimulationJob now includes a new failureReason field to help debug simulation job failures - -## __Amazon Elasticsearch Service__ - - ### Features - - Feature: Support for three Availability Zone deployments - -## __Amazon GameLift__ - - ### Features - - This release delivers a new API action for deleting unused matchmaking rule sets. More details are available at https://aws.amazon.com/releasenotes/?tag=releasenotes%23keywords%23amazon-gamelift. - -# __2.4.2__ __2019-02-06__ -## __Amazon Elastic Compute Cloud__ - - ### Features - - Add Linux with SQL Server Standard, Linux with SQL Server Web, and Linux with SQL Server Enterprise to the list of allowed instance platforms for On-Demand Capacity Reservations. - -## __Amazon FSx__ - - ### Features - - New optional ExportPath parameter added to the CreateFileSystemLustreConfiguration object for user-defined export paths. Used with the CreateFileSystem action when creating an Amazon FSx for Lustre file system. - -# __2.4.1__ __2019-02-05__ -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix an issue where an exception could be raised when configuring the idle connection reaper in the apache HTTP client [#1059](https://github.com/aws/aws-sdk-java-v2/issues/1059). - -## __AWS Service Catalog__ - - ### Features - - Service Catalog Documentation Update for ProvisionedProductDetail - -## __AWS Shield__ - - ### Features - - The DescribeProtection request now accepts resource ARN as valid parameter. - -## __Amazon Elastic Compute Cloud__ - - ### Features - - ec2.DescribeVpcPeeringConnections pagination support - -# __2.4.0__ __2019-02-04__ -## __AWS CodeCommit__ - - ### Features - - This release supports a more graceful handling of the error case when a repository is not associated with a pull request ID in a merge request in AWS CodeCommit. - -## __AWS SDK for Java v2__ - - ### Features - - Add support for `connectionTimeToLive`, `connectionMaxIdleTime` and `useIdleConnectionReaper` to the netty HTTP client. - - Enable `useIdleConnectionReaper` by default for Netty and Apache. - - Updated service endpoint metadata. - - - ### Bugfixes - - Added a new handler ([#1041](https://github.com/aws/aws-sdk-java-v2/issues/1041)) to close channels which have triggered an SslCloseCompletionEvent and are no longer usable per [#452](https://github.com/aws/aws-sdk-java-v2/issues/452). - - Fix the deadlock issue in `EventStreamAsyncResponseTransformer` for event streaming operations triggered in an edge case where customer subscriber signals `Subscription#request` the same time as `SdkPublisher` signals `Subscriber#onComplete` - - Reduced netty client logging noise, by logging at a DEBUG level (instead of WARN) when encountering IO errors on channels not currently in use and not logging the whole stack trace. - - Removed broken client methods: `BackupClient#getSupportedResourceTypes()` and `PinpointSmsVoiceClient.listConfigurationSets()`. - -## __Amazon EC2 Container Service__ - - ### Features - - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for GPU workloads by enabling you to create clusters with GPU-enabled container instances. - -## __Amazon WorkSpaces__ - - ### Features - - This release sets ClientProperties as a required parameter. - -## __Application Auto Scaling__ - - ### Features - - Documentation updates for application-autoscaling - -## __Netty NIO HTTP Client__ - - ### Features - - Allows customers to enable wire logging with the Netty client at debug level. - -# __2.3.9__ __2019-01-25__ -## __AWS CodeCommit__ - - ### Features - - The PutFile API will now throw new exception FilePathConflictsWithSubmodulePathException when a submodule exists at the input file path; PutFile API will also throw FolderContentSizeLimitExceededException when the total size of any folder on the path exceeds the limit as a result of the operation. - -## __AWS Device Farm__ - - ### Features - - Introduces a new rule in Device Pools - "Availability". Customers can now ensure they pick devices that are available (i.e., not being used by other customers). - -## __AWS Elemental MediaLive__ - - ### Features - - This release adds support for Frame Capture output groups and for I-frame only manifests (playlists) in HLS output groups. - -## __AWS MediaConnect__ - - ### Features - - This release adds support for tagging, untagging, and listing tags for existing AWS Elemental MediaConnect resources. - -# __2.3.8__ __2019-01-24__ -## __AWS CodeBuild__ - - ### Features - - This release adds support for cross-account ECR images and private registry authentication. - -## __Amazon CloudWatch Logs__ - - ### Features - - Documentation updates for CloudWatch Logs - -## __Amazon EC2 Container Registry__ - - ### Features - - Amazon ECR updated the default endpoint URL to support AWS Private Link. - -## __Amazon Pinpoint SMS and Voice Service__ - - ### Features - - Added the ListConfigurationSets operation, which returns a list of the configuration sets that are associated with your account. - -## __Amazon Relational Database Service__ - - ### Features - - The Amazon RDS API allows you to add or remove Identity and Access Management (IAM) role associated with a specific feature name with an RDS database instance. This helps with capabilities such as invoking Lambda functions from within a trigger in the database, load data from Amazon S3 and so on - -## __Elastic Load Balancing__ - - ### Features - - Elastic Load Balancing now supports TLS termination on Network Load Balancers. With this launch, you can offload the decryption/encryption of TLS traffic from your application servers to the Network Load Balancer. This enables you to run your backend servers optimally and keep your workloads secure. Additionally, Network Load Balancers preserve the source IP of the clients to the back-end applications, while terminating TLS on the load balancer. When TLS is enabled on an NLB, Access Logs can be enabled for the load balancer, and log entries will be emitted for all TLS connections. - -# __2.3.7__ __2019-01-23__ -## __AWS Certificate Manager Private Certificate Authority__ - - ### Features - - Added TagOnCreate parameter to the CreateCertificateAuthority operation, updated the Tag regex pattern to align with AWS tagging APIs, and added RevokeCertificate limit. - -## __AWS SDK for Java v2__ - - ### Features - - Redact potentially-sensitive data from the `toString` of service request and response objects. - - - ### Bugfixes - - Fixed the time marshalling issue when CBOR is disabled. See [#1023](https://github.com/aws/aws-sdk-java-v2/issues/1023) - -## __Amazon WorkLink__ - - ### Features - - This is the initial SDK release for Amazon WorkLink. Amazon WorkLink is a fully managed, cloud-based service that enables secure, one-click access to internal websites and web apps from mobile phones. With Amazon WorkLink, employees can access internal websites as seamlessly as they access any other website. IT administrators can manage users, devices, and domains by enforcing their own security and access policies via the AWS Console or the AWS SDK. - -## __AmazonApiGatewayManagementApi__ - - ### Features - - Fixes a typo in the 'max' constraint. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Add `OneTimeReadTimeoutHanlder` to requests with `expect: 100-continue` header to avoid unexpected `ReadTimeoutException`. See [#954](https://github.com/aws/aws-sdk-java-v2/issues/954) - -# __2.3.6__ __2019-01-21__ -## __AWS Application Discovery Service__ - - ### Features - - The Application Discovery Service's import APIs allow you to import information about your on-premises servers and applications into ADS so that you can track the status of your migrations through the Migration Hub console. - -## __AWS Database Migration Service__ - - ### Features - - Update for DMS TestConnectionSucceeds waiter - -## __Amazon AppStream__ - - ### Features - - This API update includes support for tagging Stack, Fleet, and ImageBuilder resources at creation time. - -## __Amazon Simple Systems Manager (SSM)__ - - ### Features - - AWS Systems Manager State Manager now supports configuration management of all AWS resources through integration with Automation. - -## __Firewall Management Service__ - - ### Features - - This release provides support for cleaning up web ACLs during Firewall Management policy deletion. You can now enable the DeleteAllPolicyResources flag and it will delete all system-generated web ACLs. - -# __2.3.5__ __2019-01-18__ -## __AWS Glue__ - - ### Features - - AllocatedCapacity field is being deprecated and replaced with MaxCapacity field - -## __Amazon Elastic Compute Cloud__ - - ### Features - - Adjust EC2's available instance types. - -# __2.3.4__ __2019-01-17__ -## __AWS Lambda__ - - ### Features - - Documentation updates for AWS Lambda - -## __Amazon Lightsail__ - - ### Features - - This release adds functionality to the CreateDiskSnapshot API that allows users to snapshot instance root volumes. It also adds various documentation updates. - -## __Amazon Pinpoint__ - - ### Features - - This release updates the PutEvents operation. AppPackageName, AppTitle, AppVersionCode, SdkName fields will now be accepted as a part of the event when submitting events. - -## __Amazon Rekognition__ - - ### Features - - GetLabelDetection now returns bounding box information for common objects and a hierarchical taxonomy of detected labels. The version of the model used for video label detection is also returned. DetectModerationLabels now returns the version of the model used for detecting unsafe content. - -# __2.3.3__ __2019-01-16__ -## __AWS Backup__ - - ### Features - - AWS Backup is a unified backup service designed to protect AWS services and their associated data. AWS Backup simplifies the creation, migration, restoration, and deletion of backups, while also providing reporting and auditing - -## __AWS Cost Explorer Service__ - - ### Features - - Removed Tags from the list of GroupBy dimensions available for GetReservationCoverage. - -## __Amazon DynamoDB__ - - ### Features - - Amazon DynamoDB now integrates with AWS Backup, a centralized backup service that makes it easy for customers to configure and audit the AWS resources they want to backup, automate backup scheduling, set retention policies, and monitor all recent backup and restore activity. AWS Backup provides a fully managed, policy-based backup solution, simplifying your backup management, and helping you meet your business and regulatory backup compliance requirements. For more information, see the Amazon DynamoDB Developer Guide. - -## __URLConnection HTTP Client__ - - ### Bugfixes - - Fix NullPointer of AbortableInputStream delegate if there is no body within UrlConnectionHttpClient - -# __2.3.2__ __2019-01-14__ -## __AWS Elemental MediaConvert__ - - ### Features - - IMF decode from a Composition Playlist for IMF specializations App [#2](https://github.com/aws/aws-sdk-java-v2/issues/2) and App [#2](https://github.com/aws/aws-sdk-java-v2/issues/2)e; up to 99 input clippings; caption channel selection for MXF; and updated rate control for CBR jobs. Added support for acceleration in preview - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fixed the bug where query parameters are incorrectly moved to body in async clients. See [#958](https://github.com/aws/aws-sdk-java-v2/issues/958) - -## __AWS Storage Gateway__ - - ### Features - - JoinDomain API supports two more parameters: organizational unit(OU) and domain controllers. Two new APIs are introduced: DetachVolume and AttachVolume. - -# __2.3.1__ __2019-01-11__ -## __AWS RDS DataService__ - - ### Features - - Documentation updates for RDS Data API. - -## __AWS SDK for Java v2__ - - ### Features - - Updated to the latest service models. - -## __Amazon Elastic MapReduce__ - - ### Features - - Documentation updates for Amazon EMR - -# __2.3.0__ __2019-01-09__ -## __AWS SDK for Java v2__ - - ### Features - - Updated to the latest service models. - - - ### Bugfixes - - ChecksumValidatingPublisher deals with any packetization of the incoming data. See https://github.com/aws/aws-sdk-java-v2/issues/965 - - Fix an issue where dates were being unmarshalled incorrectly for the CBOR protocol used by Amazon Kinesis. - - Make default `asyncFutureCompletionExeuctor` a true multi-threads executor. See [#968](https://github.com/aws/aws-sdk-java-v2/issues/968) - -## __AWS STS__ - - ### Bugfixes - - Changed the region resolution logic for `role_arn`-based profiles: 1. Check for a `region` property in the same profile as the `role_arn` definition. 2. Check the default region chain. 3. Fall back to the global endpoint and `us-east-1` signing. Fixes [#988](https://github.com/aws/aws-sdk-java-v2/issues/988). - -## __Amazon S3__ - - ### Bugfixes - - Fix `SyncChecksumValidationInterceptor` and `AsyncChecksumValidationInterceptor` to use `long` instead of `int` for contentLength`. See [#963](https://github.com/aws/aws-sdk-java-v2/issues/963) - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Preserve interrupted flag if `Http2MultiplexedChannelPool#close()` interrupted. - -## __URLConnection HTTP Client__ - - ### Bugfixes - - Disable following redirects automatically since doing so causes SDK response handling to fail - -## __core__ - - ### Features - - Jackson 2.9.7 -> 2.9.8 - -# __2.2.0__ __2018-12-14__ -## __AWS SDK for Java v2__ - - ### Features - - Adds the operation name of the calling API to the ExecutionContext class. This exposes a way to get the API name from within an ExecutionInterceptor. - - Updated to the latest service models. - -## __Amazon S3__ - - ### Bugfixes - - Modify type of S3Object#size member from integer to long. This is a breaking change for customers who are using the size() method currently - - S3 putObject API using UrlConnectionHttpClient goes into infinite loop. See https://github.com/aws/aws-sdk-java-v2/pull/942 for more details. - -## __Netty NIO HTTP Client__ - - ### Bugfixes - - Fix a bug where it's possible for an HTTP2 channel pool to be closed while some channels are still being released causing them to be left open and leaked. - -## __URLConnection HTTP Client__ - - ### Features - - Adding a hook to enable custom creation of the initial `HttpURLConnection`. This enables customers to control how a connection is established for a given `URL` including handling any required proxy configuration etc. - -# __2.1.4__ __2018-12-07__ -## __AWS CodeDeploy__ - - ### Features - - Supporting AWS CodeDeploy - -## __AWS SDK for Java v2__ - - ### Features - - Add `modifyException` API to `ExecutionInterceptor`. - - Add application/gzip mime type - - Update spot bugs version to 3.1.9 - - Updated to the latest service models. - - - ### Bugfixes - - Fix infinite stream of results bug in auto paginator APIs when the next token is an empty string - - Fixes nullpointerexception when server responds with null values in map. - - Use the class loader that loaded the SDK to load the HTTP implementations. See [#56](https://github.com/aws/aws-sdk-java-v2/issues/56) - -## __Amazon S3__ - - ### Bugfixes - - Turns off trailing checksums when using SSE-C or SSE-KMS - - Update S3 headObject/headBucket operations to throw NoSuchKey/NoSuchException when S3 is returning 404. See [#123](https://github.com/aws/aws-sdk-java-v2/issues/123), [#544](https://github.com/aws/aws-sdk-java-v2/issues/544) - -## __Netty NIO Async HTTP Client__ - - ### Bugfixes - - Close created `ChannelPool`s in `close()` method. - - Fix the issue where streaming requests with `Expect: 100-continue` header sometimes are hanging because 100Continue response message is not being read automatically. See [#459](https://github.com/aws/aws-sdk-java-v2/issues/459) - -## __core__ - - ### Features - - Netty 4.1.32.Final - -# __2.1.3__ __2018-11-29__ -## __AWS SDK for Java v2__ - - ### Features - - Updated to the latest service models. - -# __2.1.2__ __2018-11-28__ -## __AWS SDK for Java v2__ - - ### Features - - Updated to the latest service models. - -## __core__ - - ### Features - - Jackson 2.9.6 -> 2.9.7 - -# __2.1.1__ __2018-11-27__ -## __AWS Organizations__ - - ### Bugfixes - - Add `organizations` to `aws-sdk-java` module. - -## __AWS SDK for Java V2__ - - ### Bugfixes - - Fixes Issue [#864](https://github.com/aws/aws-sdk-java-v2/issues/864) by checking for embedded JSON objects while unmarshalling bytes. - -## __AWS SDK for Java v2__ - - ### Features - - Updated to the latest service models. - - Updated to the latest service models. - - - ### Bugfixes - - Fix async pagination javadocs to use the correct method name `SdkPublisher#subscribe`. - - Fixed an issue where close() and abort() weren't being honored for streaming responses in all cases. - - Preserve computedChecksum in `ChecksumValidatingInputStream` so that it doesn't throw error if it validates more than once. See [#873](https://github.com/aws/aws-sdk-java-v2/issues/873) - -# __2.1.0__ __2018-11-19__ -## __AWS SDK for Java v2__ - - ### Features - - AWS SDK for Java v2 is generally available now. To get started, please see this [blog post](https://aws.amazon.com/blogs/developer/aws-sdk-for-java-2-x-released/). - - Update Netty version to Netty 4.1.31.Final - - - ### Bugfixes - - Temporarily removed OSGi support because the Netty HTTP client does not yet support it. See [#726](https://github.com/aws/aws-sdk-java-v2/issues/726) - -## __Netty NIO Async HTTP Client__ - - ### Bugfixes - - Not invoke fireExceptionCaught if the channel is not active. see [#452](https://github.com/aws/aws-sdk-java-v2/issues/452) - -# __2.0.0-preview-13__ __2018-11-13__ -## __AWS SDK for Java v2__ - - ### Features - - Add `Automatic-Module-Name` manifest entry. - - Add `AwsResponseMetadata` support to allow users to retrieve metadata information such as `requestId`, `extendedRequestId` from the response. see [#670](https://github.com/aws/aws-sdk-java-v2/issues/670) - - Add apiCallTimeout and apiCallAttemptTimeout feature for synchronous calls. - - Guava 23.0 -> 26.0 - - upgrade maven-bundle-plugin -> 4.0.0 - - - ### Bugfixes - - Attach `SdkHttpResponse` to the responses of event streaming operations. - -## __AWS Security Token Service__ - - ### Features - - Added supplier functionality to StsAssumeRoleWithSamlCredentialProvider. This allows for the saml assertion to be refreshed before getting new credentials from STS. - -## __AWS Step Function__ - - ### Removals - - Remove AWS Step Function high level library for now. We will add them in the future. - -## __Amazon S3__ - - ### Features - - Add support for automatically decoding URL-encoded parts of the ListObjects and ListObjectsV2 responses. See https://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html and https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html. - - - ### Bugfixes - - Update S3 `EndpointAddressInterceptor` to honor request protocol. - -## __Apache HTTP Client__ - - ### Features - - Add support for idle connection reaping. - -## __core__ - - ### Features - - Apache HttpClient 4.5.5 -> 4.5.6 - - Netty 4.1.28 -> 4.1.30 - -# __2.0.0-preview-12__ __2018-09-18__ -## __AWS SDK for Java v2__ - - ### Features - - Add mfa_serial to ProfileProperty - - Allow clients to add Socket Channel Option - - Implement apiCallAttemptTimeout and apiCallTimeout feature for asynchrounous calls. Customers can specify timeout via `ClientOverrideConfiguaration.Builder#apiCallTimeout(Duration)` or `RequestOverrideConfiguration.Builder#apiCallAttemptTimeout(Duration)`. Note: this feature is only implemented for asynchrounous api calls. - - Improve logging for debuggability. see `SdkStandardLogger`. - - Refactored all services to make module names match the service id from the service model - - Removed sdk-core dependency from the profiles module. This allows reading from profile files without pulling in the rest of the SDK. - - Replacing legacy `HttpResponse` with `SdkHttpFullResponse`. - - Update service models to be current as of 2018-09-07. - - - ### Bugfixes - - Fix Response Fetcher hasNextPage to check if the output token is non null or non empty if it is a collection or map type. Related to [#677](https://github.com/aws/aws-sdk-java-v2/issues/677) - - RetryPolicy bug fix: adding throttlingBackoffStrategy to `RetryPolicy.Builder`. see [#646](https://github.com/aws/aws-sdk-java-v2/issues/646) - -## __AWS STS__ - - ### Features - - Add the ability to provide a Supplier to StsAssumeRoleCredentialsProvider - -## __Aamazon S3__ - - ### Bugfixes - - Fix NPE for S3 GET request using http protocol. see [#612](https://github.com/aws/aws-sdk-java-v2/issues/612) - -## __Amazon SimpleDB__ - - ### Removals - - Amazon SimpleDB module is removed from the SDK 2.0. To use SimpleDB, use SDK 1.11.x. Note that you can run SDK 1.11 and 2.0 in the same application. - -## __runtime__ - - ### Bugfixes - - Netty 4.1.26.Final -> 4.1.28.Final - -# __2.0.0-preview-11__ __2018-07-30__ -## __AWS SDK for Java v2__ - - ### Features - - Accept `SdkBytes` and `byte[]` instead of `ByteBuffer` in generated setters. - - Add support to disable EC2 instance metadata service usage via environment variable and system property. [#430](https://github.com/aws/aws-sdk-java-v2/issues/430) - - Caching `XPathFactory` to improve performance of exception handling for services using XML protocol - - Exceptions use builders and are immutable. - - Incorporate the [Reactive Streams Technology Compatibility Kit](https://github.com/reactive-streams/reactive-streams-jvm/tree/master/tck) and ensure current implementations are compliant. [#519](https://github.com/aws/aws-sdk-java-v2/issues/519) - - Modules (annotations, auth, sdk-core, aws-core, profiles, regions) are refactored under the core module. - - Refactor signer interfaces to be independent from Amazon/AWS specific classes. Signer interfaces expose a sign method that takes in the request to sign and ExecutionAttributes instance. Parameters needed for signing are to be passed through ExecutionAttributes. SDK signer implementations have overloaded sign methods that can take either generic ExecutionAttributes or modeled params classes as convenience for customers. - - Region class clean up including the following: - Flattened GovCloud - Renamed `Region.value()` to `Region.id()` - Dropped `get` prefix in the method names. eg: `getRegions()` -> `regions()` - - Renamed all non-service enums to be singular, not plural. - - Renaming `SdkBuilder.apply()` -> `SdkBuilder.applyMutation()` and renaming `ResponseTransformer.apply()` to `ResponseTransformer.transform()`. - - Return `SdkBytes` instead of `ByteBuffer` from generated getters. - - Update all service models to follow V2 naming convention. eg: `WAFException` -> `WafException` - - Update service name in clients, requests and exceptions to match 2.0 naming conventions (eg. DynamoDBClient -> DynamoDbClient) - - Updated `AwsCredentials` to interface implemented by `AwsBasicCredentials` and `AwsSessionCredentials`. Renamed `AwsCredentialsProvider.getCredentials()` to `AwsCredentialsProvider.resolveCredentials()`. - - Use auto constructed containers for list and map members. [#497](https://github.com/aws/aws-sdk-java-v2/pull/497), [#529](https://github.com/aws/aws-sdk-java-v2/pull/529), [#600](https://github.com/aws/aws-sdk-java-v2/pull/600) - - Various AsyncClient Refactors:\n - Drop async prefix in `SdkAyncClientBuilder`: `SdkAsyncClientBuilder.asyncHttpClientBuilder() -> SdkAsyncClientBuilder.httpClientBuilder()`\n - Create `SdkEventLoopGroup` to allow users to provide `EventLoopGroup` and `ChannelFactory`. - - upgrade Netty 4.1.22.Final to Netty 4.1.26.Final - - - ### Deprecations - - Deprecating `QueryStringSigner` in favor of `Aws4Signer`. - - - ### Removals - - Make paginators resume method private.(We will re-add the feature in the future) - - Removing gzipEnabled client configuration. - -## __AWS WAF Regional__ - - ### Features - - AWS Waf Regional clients are now in `software.amazon.awssdk.services.waf.regional` package. - -## __Amazon DynamoDB__ - - ### Features - - Add default DynamoDB specific retry policy. - - Update DynamoDB default max retry count to 8. Related to [#431](https://github.com/aws/aws-sdk-java-v2/issues/431) - -## __Amazon DynamoDB Streams__ - - ### Features - - Dynamodb Streams clients are now in `software.amazon.awssdk.services.dynamodb.streams` package. - -## __Amazon S3__ - - ### Features - - Move `AWSS3V4Signer` to auth module. - -## __Netty NIO Async HTTP Client__ - - ### Bugfixes - - Fix the Netty async client to stop publishing to the request stream once `Content-Length` is reached. - -# __2.0.0-preview-10__ __2018-05-25__ -## __AWS SDK for Java v2__ - - ### Features - - Add [SdkHttpResponse](https://github.com/aws/aws-sdk-java-v2/blob/master/http-client-spi/src/main/java/software/amazon/awssdk/http/SdkHttpResponse.java) to [SdkResponse](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/core/SdkResponse.java) so that customers can retrieve Http data such as headers, status code from the response object. - - Add a standard User-Agent when making requests to the metadata service. User-Agent pattern: aws-sdk-java/ - - Added Consumer-style methods for all client overloads. - - Added Consumer-style methods for vararg parameters. - - AsyncResponseTransformer byte array and string methods now match the sync model. - - Include root causes in the exception message from AWSCredentialsProviderChain to ease troubleshooting. - - Moved AWS specific retry policies to aws-core module, created AwsServiceException and moved isThrottlingException and isClockSkewException methods to SdkServiceException. - - Renamed "Bytes" overload for streaming operations to "AsBytes", and "String" overload for enums to "AsString" - - Renamed AsyncRequestProvider to AsyncRequestBody to better match sync's RequestBody - - Renamed AsyncResponseHandler to AsyncResponseTransformer and StreamingResponseHandler to ResponseTransformer. - - Renamed `AdvancedServiceConfiguration` to `ServiceConfiguration` - - Renamed `RequestOverrideConfig` to `RequestOverrideConfiguration` to match `ClientOverrideConfiguration` naming. - - Simplified configuration of HTTP clients. - - Split core module to regions, profiles, auth, aws-core and core modules.[#27](https://github.com/aws/aws-sdk-java-v2/issues/27) - - Updating default retry policy to include newly added conditions. - - - ### Removals - - Remove httpRequestTimeout and totalExecutionTimeout features - -## __AWS Secrets Manager__ - - ### Features - - Add AWS Secrets Manager to v2. - -## __Amazon S3__ - - ### Features - - Renamed `S3AdvancedConfiguration` to `S3Configuration` - -# __2.0.0-preview-9__ __2018-03-20__ -## __AWS Lambda__ - - ### Features - - Added latest model for new service features. - -## __AWS SDK for Java v2__ - - ### Bugfixes - - Fix default user agent to comply with [RFC 7231](https://tools.ietf.org/html/rfc7231#section-5.5.3). Related to [#80](https://github.com/aws/aws-sdk-java-v2/issues/80) - - Maven artifact software.amazon.awssdk:bom no longer includes non-SDK dependencies. - -# __2.0.0-preview-8__ __2018-02-02__ -## __AWS SDK for Java v2__ - - ### Features - - Added Consumer methods to multiple locations where they were previously missing. - - Added `SdkClient` base interface that all service clients implement. - - Added and standardized `toString` implementations of public data classes. - - Adding the following services from re:invent 2017: - - Alexa For Business - - AWS Migration Hub - - AWS Cost Explorer - - AWS Cloud9 - - AWS CloudHSM V2 - - Amazon Comprehend - - AWS Glue - - Amazon GuardDuty - - Amazon Kinesis Video Streams - - AWS Elemental MediaConvert - - AWS Elemental MediaLive - - AWS Elemental MediaPackage - - AWS Elemental MediaStore - - AWS Mobile - - AmazonMQ - - AWS Price List - - AWS Resource Groups - - Amazon SageMaker - - AWS Serverless Application Repository - - Amazon Route 53 Auto Naming - - Amazon Translate - - Amazon WorkMail - - Setting `Content-Type` header for streaming requests. Related to [#357](https://github.com/aws/aws-sdk-java-v2/issues/357) - - upgrade Netty 4.1.17.Final to 4.1.19.Final - - - ### Bugfixes - - Fixed issue where error message in S3 exceptions could be "null" if the exception did not have a modeled type. - -## __Amazon CloudWatch__ - - ### Features - - Added pagination configuration to CloudWatch - -## __Netty NIO Async HTTP Client__ - - ### Bugfixes - - Fix race condition in the async client causing instability when making multiple concurent requests. Fixes [#202](https://github.com/aws/aws-sdk-java-v2/issues/202) - -# __2.0.0-preview-7__ __2017-12-15__ -## __AWS SDK for Java v2__ - - ### Features - - Added `Bytes` methods to all streaming operations. These methods will load the service response into memory and return a `ResponseBytes` object that eases conversion into other types, like strings. eg. `String object = s3.getObjectBytes(request).asUtf8String()`. [#324](https://github.com/aws/aws-sdk-java-v2/pull/324) - - Added `ProfileCredentialsProvider.create("profile-name")` helper to `ProfileCredentialsProvider` to account for common use-case where only profile name is provided. [#347](https://github.com/aws/aws-sdk-java-v2/pull/347) - - Adds convenience type overloads to allow easier to use types on modeled objects. [#336](https://github.com/aws/aws-sdk-java-v2/pull/336) - - Automatically retry streaming downloads to a file if they fail or are interrupted. [#324](https://github.com/aws/aws-sdk-java-v2/pull/324) - - Implementation of a generic HTTP credential provider used to get credentials from an container metadata service. Replica of v1 [implementation](https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/auth/ContainerCredentialsProvider.java#L108) [#328](https://github.com/aws/aws-sdk-java-v2/pull/328) - - Refactors the exceptions used by the SDK. [#301](https://github.com/aws/aws-sdk-java-v2/pull/301) - - Remove the legacy `AmazonWebServiceRequest`, `AmazonWebServiceResult`, and `AmazonWebServiceResponse` classes. They are replaced with `AwsRequest` and `AwsResponse`. [#289](https://github.com/aws/aws-sdk-java-v2/issues/289) - - Updated profile-based region and credential loading to more closely mirror the behavior in the AWS CLI. Notably, profile names in `~/.aws/config` must be prefixed with "profile " (except for the default profile) and profile names in `~/.aws/credentials` must not be prefixed with "profile ". [#296](https://github.com/aws/aws-sdk-java-v2/pull/296) - - Upgrade maven-compiler-plugin from 3.6.0 to 3.7.0 - - Upgraded dependencies - * Wiremock (com.github.tomakehurst:wiremock) 1.55 -> 2.12.0 - * Json Path (com.jayway.jsonpath:json-path) 2.2.0 -> 2.4.0 - - upgrade to Jackson 2.9.3 - - - ### Removals - - Remove easymock as a dependency, mockito should be used for all mocking going forward. [#348](https://github.com/aws/aws-sdk-java-v2/pull/348) - - Removed the following unused dependencies [#349](https://github.com/aws/aws-sdk-java-v2/issues/349): - * org.eclipse:text - * info.cukes:cucumber-java - * info.cukes:cucumber-junit - * info.cukes:cucumber-guice - * com.google.inject:guice - * org.bouncycastle:bcprov-jdk15on - * com.google.guava:guava - * io.burt:jmespath-jackson - * javax.annotation:javax.annotation-api - -## __Amazon S3__ - - ### Bugfixes - - Fixing exception unmarshalling for S3. [#297](https://github.com/aws/aws-sdk-java-v2/issues/297) - -## __Netty NIO Async HTTP Client__ - - ### Bugfixes - - Fixes Issue [#340](https://github.com/aws/aws-sdk-java-v2/issues/340) where connection acquisition time was calculated incorrectly in the Netty client. - -# __2.0.0-preview-6__ __2017-12-06__ -## __AWS AppSync__ - - ### Features - - Adding AWS AppSync based on customer request. [#318](https://github.com/aws/aws-sdk-java-v2/pull/318) - -## __AWS Lambda__ - - ### Removals - - Removed high-level utilities. [#247](https://github.com/aws/aws-sdk-java-v2/pull/247) - -## __AWS SDK for Java v2__ - - ### Features - - Add paginators-1.json file for some services [#298](https://github.com/aws/aws-sdk-java-v2/pull/298) - - Added a primitive `Waiter` class for simplifying poll-until-condition-is-met behavior. [#300](https://github.com/aws/aws-sdk-java-v2/pull/300) - - Adding Consumer to overrideConfiguration on ClientBuilder [#291](https://github.com/aws/aws-sdk-java-v2/pull/291) - - Adding helper to Either that allows construction from two possibly null values [#292](https://github.com/aws/aws-sdk-java-v2/pull/292) - - Adding knownValues static to enum generation [#218](https://github.com/aws/aws-sdk-java-v2/pull/218) - - Adding validation to Region class [#261](https://github.com/aws/aws-sdk-java-v2/pull/261) - - Converted all wiremock tests to run as part of the build. [#260](https://github.com/aws/aws-sdk-java-v2/pull/260) - - Enhanced pagination for synchronous clients[#207](https://github.com/aws/aws-sdk-java-v2/pull/207) - - Implementing Consumer fluent setter pattern on client operations [#280](https://github.com/aws/aws-sdk-java-v2/pull/280) - - Implementing Consumer fluent setters pattern on model builders. [#278](https://github.com/aws/aws-sdk-java-v2/pull/278) - - Making it easier to supply async http configuration. [#274](https://github.com/aws/aws-sdk-java-v2/pull/274) - - Refactoring retry logic out to separate class [#177](https://github.com/aws/aws-sdk-java-v2/pull/177) - - Removing unnecessary javax.mail dependency [#312](https://github.com/aws/aws-sdk-java-v2/pull/312) - - Replacing constructors with static factory methods [#284](https://github.com/aws/aws-sdk-java-v2/pull/284) - - Retry policy refactor [#190](https://github.com/aws/aws-sdk-java-v2/pull/190) - - Update latest models for existing services [#299](https://github.com/aws/aws-sdk-java-v2/pull/299) - - Upgrade dependencies to support future migration to Java 9. [#271](https://github.com/aws/aws-sdk-java-v2/pull/271) - - Upgraded dependencies: - * javapoet 1.8.0 -> 1.9.0 [#311](https://github.com/aws/aws-sdk-java-v2/pull/311) - * Apache HttpClient 4.5.2 -> 4.5.4 [#308](https://{github.com/aws/aws-sdk-java-v2/pull/308) - * Jackson 2.9.1 -> 2.9.2 [#310](https://github.com/aws/aws-sdk-java-v2/pull/310) - * Netty 4.1.13 -> 4.1.17 [#309](https://github.com/{aws/aws-sdk-java-v2/pull/309) - - Use java.util.Objects to implement equals, hashCode [#294](https://github.com/aws/aws-sdk-java-v2/pull/294) - - - ### Bugfixes - - Attempting to fix class-loader exception raised on gitter. [#216](https://github.com/aws/aws-sdk-java-v2/pull/216) - - Call doClose in HttpClientDependencies#close method [#268](https://github.com/aws/aws-sdk-java-v2/pull/268) - - Fixing bundle exports [#281](https://github.com/aws/aws-sdk-java-v2/pull/281) - - - ### Removals - - Delete old jmespath AST script [#266](https://github.com/aws/aws-sdk-java-v2/pull/266) - - Remove current waiter implementation. [#258](https://github.com/aws/aws-sdk-java-v2/pull/258) - - Removed policy builder. [#259](https://github.com/aws/aws-sdk-java-v2/pull/259) - - Removed progress listeners until they can be updated to V2 standards. [#285](https://github.com/aws/aws-sdk-java-v2/pull/285) - -## __Amazon CloudFront__ - - ### Removals - - Removed high-level cloudfront utilities. [#242](https://github.com/aws/aws-sdk-java-v2/pull/242) - -## __Amazon DynamoDB__ - - ### Features - - Adding some helpers for being able to create DyanmoDB AttributeValues. [#276](https://github.com/aws/aws-sdk-java-v2/pull/276) - - - ### Bugfixes - - Fixed TableUtils that broke with enum change. [#235](https://github.com/aws/aws-sdk-java-v2/pull/235) - -## __Amazon EC2__ - - ### Removals - - Removed high-level utilities. [#244](https://github.com/aws/aws-sdk-java-v2/pull/244) - -## __Amazon EMR__ - - ### Removals - - Removed high-level utilities. [#245](https://github.com/aws/aws-sdk-java-v2/pull/245) - -## __Amazon Glacier__ - - ### Removals - - Removed high-level utilities. [#246](https://github.com/aws/aws-sdk-java-v2/pull/246) - -## __Amazon Polly__ - - ### Removals - - Removed polly presigners until they can be updated for V2. [#287](https://github.com/aws/aws-sdk-java-v2/pull/287) - -## __Amazon S3__ - - ### Features - - Adding utility that creates temporary bucket name using user-name [#234](https://github.com/aws/aws-sdk-java-v2/pull/234) - -## __Amazon SES__ - - ### Removals - - Removed high-level utilities. [#248](https://github.com/aws/aws-sdk-java-v2/pull/248) - -## __Amazon SNS__ - - ### Removals - - Removed high-level utilities. [#255](https://github.com/aws/aws-sdk-java-v2/pull/255) - -## __Amazon SQS__ - - ### Bugfixes - - Porting SQS test to make use of async and hopefully resolve the bug [#240](https://github.com/aws/aws-sdk-java-v2/pull/240) - - - ### Removals - - Removed high-level utilities and the interceptor that rewrites the endpoint based on the SQS queue. [#238](https://github.com/aws/aws-sdk-java-v2/pull/238) - -## __Amazon SimpleDB__ - - ### Removals - - Removed high-level utilities and unused response metadata handler. [#249](https://github.com/aws/aws-sdk-java-v2/pull/249) - -## __Netty NIO Async HTTP Client__ - - ### Features - - Adding socket resolver helper that will load the appropriate SocketChannel [#293](https://github.com/aws/aws-sdk-java-v2/pull/293) - - - ### Bugfixes - - Netty spurious timeout error fix [#283](https://github.com/aws/aws-sdk-java-v2/pull/283) - - Temporarily disable epoll [#254](https://github.com/aws/aws-sdk-java-v2/pull/254) - -# __2.0.0-preview-5__ __2017-10-17__ -## __AWS SDK for Java v2__ - - ### Features - - Asynchronous request handler for strings `AsyncRequestProvider.fromString("hello world!!!")` [PR #183](https://github.com/aws/aws-sdk-java-v2/pull/183) - - General HTTP core clean-up [PR #178](https://github.com/aws/aws-sdk-java-v2/pull/178) - - Get value from request POJO using member model names `String bucketName = s3PutObjectResponse.getValueForField("Bucket", String.class);` [PR #144](https://github.com/aws/aws-sdk-java-v2/pull/144) - - Model enums on service POJOs [PR #195](https://github.com/aws/aws-sdk-java-v2/pull/195) - - Move `core` classes to their own package `software.amazon.awssdk.core` [PR #194](https://github.com/aws/aws-sdk-java-v2/pull/194) - - - ### Bugfixes - - Resolve potential security issue handling DTD entities [PR #198](https://github.com/aws/aws-sdk-java-v2/pull/198) - - Serialization/deserialization of complex model objects [PR #128](https://github.com/aws/aws-sdk-java-v2/pull/128) / [Issue #121](https://github.com/aws/aws-sdk-java-v2/issues/121) - -## __Amazon S3__ - - ### Features - - Handle 100-continue header for PUT object [PR #169](https://github.com/aws/aws-sdk-java-v2/pull/169) - -## __Netty NIO Async HTTP Client__ - - ### Bugfixes - - Better handling of event-loop selection for AWS Lambda container [PR #208](https://github.com/aws/aws-sdk-java-v2/pull/208) - - Data corruption fix in streaming responses and stability fixes [PR #173](https://github.com/aws/aws-sdk-java-v2/pull/173) - -# __2.0.0-preview-4__ __2017-09-19__ -## __AWS SDK for Java v2__ - - ### Features - - Added convenience methods for both sync and async streaming operations for file based uploads/downloads. - - Added some convenience implementation of [AsyncResponseHandler](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/async/AsyncResponseHandler.java) to emit to a byte array or String. - - Immutable objects can now be modified easily with a newly introduced [copy](https://github.com/aws/aws-sdk-java-v2/blob/master/utils/src/main/java/software/amazon/awssdk/utils/builder/ToCopyableBuilder.java#L42) method that applies a transformation on the builder for the object and returns a new immutable object. - - Major refactor of RequestHandler interfaces. Newly introduced [ExecutionInterceptors](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/interceptor/ExecutionInterceptor.java) have a cleaner, more consistent API and are much more powerful. - - S3's CreateBucket no longer requires the location constraint to be specified, it will be inferred from the client region if not present. - - The [File](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/sync/StreamingResponseHandler.java#L92) and [OutputStream](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/sync/StreamingResponseHandler.java#L107) implementations of StreamingResponseHandler now return the POJO response in onComplete. - - - ### Bugfixes - - Fixed a bug in default credential provider chain where it would erroneously abort at the ProfileCredentialsProvider. See [Issue #135](https://github.com/aws/aws-sdk-java-v2/issues/135) - - Many improvements and fixes to the Netty NIO based transport. - - Several fixes around S3's endpoint resolution, particularly with advanced options like path style addressing and accelerate mode. See [Issue #130](https://github.com/aws/aws-sdk-java-v2/issues/130) - - Several fixes around serialization and deserialization of immutable objects. See [Issue #122](https://github.com/aws/aws-sdk-java-v2/issues/122) - - Type parameters are now correctly included for [StreamingResponseHandler](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/sync/StreamingResponseHandler.java) on the client interface. - - - ### Removals - - Dependency on JodaTime has been dropped in favor of Java 8's APIS. - - DynamoDBMapper and DynamoDB Document API have been removed. - - Metrics subsystem has been removed. - -# __2.0.0-preview-2__ __2017-07-21__ -## __AWS SDK for Java v2__ - - ### Features - - New pluggable HTTP implementation built on top of Java's HttpUrlConnection. Good choice for simple applications with low throughput requirements. Better cold start latency than the default Apache implementation. - - Simple convenience methods have been added for operations that require no input parameters. - - Substantial improvements to start up time and cold start latencies - - The Netty NIO HTTP client now uses a shared event loop group for better resource management. More options for customizing the event loop group are now available. - - Using java.time instead of the legacy java.util.Date in generated model classes. - - Various improvements to the immutability of model POJOs. ByteBuffers are now copied and collections are returned as unmodifiable. - -# __2.0.0-preview-1__ __2017-06-28__ -## __AWS SDK for Java v2__ +## __Cost Optimization Hub__ - ### Features - - Initial release of the AWS SDK for Java v2. See our [blog post](https://aws.amazon.com/blogs/developer/aws-sdk-for-java-2-0-developer-preview) for information about this new major version. This release is considered a developer preview and is not intended for production use cases. + - Adding includeMemberAccounts field to the response of ListEnrollmentStatuses API. diff --git a/README.md b/README.md index 5ea12106e4ae..3599dae6aaf3 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Gitter](https://badges.gitter.im/aws/aws-sdk-java-v2.svg)](https://gitter.im/aws/aws-sdk-java-v2?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![codecov](https://codecov.io/gh/aws/aws-sdk-java-v2/branch/master/graph/badge.svg)](https://codecov.io/gh/aws/aws-sdk-java-v2) -[![All Contributors](https://img.shields.io/badge/all_contributors-99-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-106-orange.svg?style=flat-square)](#contributors-) The **AWS SDK for Java 2.0** is a rewrite of 1.0 with some great new features. As with version 1.0, @@ -52,7 +52,7 @@ To automatically manage module versions (currently all modules have the same ver software.amazon.awssdk bom - 2.23.7 + 2.24.12 pom import @@ -86,12 +86,12 @@ Alternatively you can add dependencies for the specific services you use only: software.amazon.awssdk ec2 - 2.23.7 + 2.24.12 software.amazon.awssdk s3 - 2.23.7 + 2.24.12 ``` @@ -103,7 +103,7 @@ You can import the whole SDK into your project (includes *ALL* services). Please software.amazon.awssdk aws-sdk-java - 2.23.7 + 2.24.12 ``` @@ -319,6 +319,15 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Michael Dimchuk
Michael Dimchuk

💻 + Nikita Sokolov
Nikita Sokolov

💻 + Anirudh
Anirudh

💻 + Manuel Sugawara
Manuel Sugawara

💻 + Hayden Baker
Hayden Baker

💻 + Jaykumar Gosar
Jaykumar Gosar

💻 + Michael Graeb
Michael Graeb

💻 + + + Michael Grundie
Michael Grundie

💻 diff --git a/archetypes/archetype-app-quickstart/pom.xml b/archetypes/archetype-app-quickstart/pom.xml index 9dceb5327293..4c21f091983f 100644 --- a/archetypes/archetype-app-quickstart/pom.xml +++ b/archetypes/archetype-app-quickstart/pom.xml @@ -20,7 +20,7 @@ archetypes software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/archetypes/archetype-lambda/pom.xml b/archetypes/archetype-lambda/pom.xml index 272e01511f65..c7673681ef30 100644 --- a/archetypes/archetype-lambda/pom.xml +++ b/archetypes/archetype-lambda/pom.xml @@ -20,7 +20,7 @@ archetypes software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 archetype-lambda diff --git a/archetypes/archetype-tools/pom.xml b/archetypes/archetype-tools/pom.xml index e8d692f3c374..4ad8bebe0b30 100644 --- a/archetypes/archetype-tools/pom.xml +++ b/archetypes/archetype-tools/pom.xml @@ -20,7 +20,7 @@ archetypes software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/archetypes/pom.xml b/archetypes/pom.xml index 5dae9f6473b7..27ddbf2c9b92 100644 --- a/archetypes/pom.xml +++ b/archetypes/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 archetypes diff --git a/aws-sdk-java/pom.xml b/aws-sdk-java/pom.xml index 428be3a73bae..04077c7b834d 100644 --- a/aws-sdk-java/pom.xml +++ b/aws-sdk-java/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../pom.xml aws-sdk-java @@ -303,6 +303,11 @@ Amazon AutoScaling, etc). dynamodb ${awsjavasdk.version} + + software.amazon.awssdk + dynamodb-enhanced + ${awsjavasdk.version} + software.amazon.awssdk ec2 @@ -423,6 +428,11 @@ Amazon AutoScaling, etc). iam-policy-builder ${awsjavasdk.version} + + software.amazon.awssdk + imds + ${awsjavasdk.version} + software.amazon.awssdk inspector @@ -1913,6 +1923,16 @@ Amazon AutoScaling, etc). supplychain ${awsjavasdk.version} + + software.amazon.awssdk + artifact + ${awsjavasdk.version} + + + software.amazon.awssdk + chatbot + ${awsjavasdk.version} + ${project.artifactId}-${project.version} diff --git a/bom-internal/pom.xml b/bom-internal/pom.xml index 18621bacbb34..1c77637baed6 100644 --- a/bom-internal/pom.xml +++ b/bom-internal/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 @@ -255,6 +255,12 @@ ${mockito.version} test + + org.mockito + mockito-inline + ${mockito.version} + test + nl.jqno.equalsverifier equalsverifier diff --git a/bom/pom.xml b/bom/pom.xml index f0af546ee472..0e7a3b5ba56a 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../pom.xml bom @@ -2103,6 +2103,16 @@ supplychain ${awsjavasdk.version} + + software.amazon.awssdk + artifact + ${awsjavasdk.version} + + + software.amazon.awssdk + chatbot + ${awsjavasdk.version} + diff --git a/build-tools/src/main/resources/software/amazon/awssdk/checkstyle-suppressions.xml b/build-tools/src/main/resources/software/amazon/awssdk/checkstyle-suppressions.xml index 7d0333b86eac..17c617c0d12b 100644 --- a/build-tools/src/main/resources/software/amazon/awssdk/checkstyle-suppressions.xml +++ b/build-tools/src/main/resources/software/amazon/awssdk/checkstyle-suppressions.xml @@ -53,4 +53,15 @@ + + + + + + + + diff --git a/build-tools/src/main/resources/software/amazon/awssdk/checkstyle.xml b/build-tools/src/main/resources/software/amazon/awssdk/checkstyle.xml index e06660009921..532429b1cfd2 100644 --- a/build-tools/src/main/resources/software/amazon/awssdk/checkstyle.xml +++ b/build-tools/src/main/resources/software/amazon/awssdk/checkstyle.xml @@ -359,6 +359,14 @@ + + + + + + + + diff --git a/buildspecs/endpoints-test.yml b/buildspecs/endpoints-test.yml new file mode 100644 index 000000000000..58381bfbe402 --- /dev/null +++ b/buildspecs/endpoints-test.yml @@ -0,0 +1,17 @@ +version: 0.2 + +phases: + install: + runtime-versions: + java: "$JAVA_RUNTIME" + + build: + commands: + - mvn clean install -P endpoint-tests -T1C $MAVEN_OPTIONS + finally: + - mkdir -p codebuild-test-reports + - find ./ -name 'TEST-*.xml' -type f -exec cp {} codebuild-test-reports/ \; +reports: + IntegTests: + files: + - 'codebuild-test-reports/**/*' diff --git a/buildspecs/release-javadoc.yml b/buildspecs/release-javadoc.yml index a5dc4b3157d4..62132efd1cca 100644 --- a/buildspecs/release-javadoc.yml +++ b/buildspecs/release-javadoc.yml @@ -18,7 +18,7 @@ phases: commands: - python ./scripts/doc_crosslinks/generate_cross_link_data.py --apiDefinitionsBasePath ./services/ --apiDefinitionsRelativeFilePath src/main/resources/codegen-resources/service-2.json --templateFilePath ./scripts/doc_crosslinks/crosslink_redirect.html --outputFilePath ./scripts/crosslink_redirect.html - mvn install -P quick -T1C - - mvn clean install javadoc:aggregate -B -Ppublic-javadoc -Dcheckstyle.skip -Dspotbugs.skip -DskipTests -Ddoclint=none -pl '!:protocol-tests,!:protocol-tests-core,!:codegen-generated-classes-test,!:sdk-benchmarks,!:s3-benchmarks,!:module-path-tests,!:test-utils,!:http-client-tests,!:tests-coverage-reporting,!:sdk-native-image-test,!:ruleset-testing-core,!:old-client-version-compatibility-test' + - mvn clean install javadoc:aggregate -B -Ppublic-javadoc -Dcheckstyle.skip -Dspotbugs.skip -DskipTests -Ddoclint=none -pl '!:protocol-tests,!:protocol-tests-core,!:codegen-generated-classes-test,!:sdk-benchmarks,!:s3-benchmarks,!:module-path-tests,!:test-utils,!:http-client-tests,!:tests-coverage-reporting,!:sdk-native-image-test,!:ruleset-testing-core,!:old-client-version-compatibility-test,!:crt-unavailable-tests' - RELEASE_VERSION=`mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec` - - aws s3 sync target/site/apidocs/ $DOC_PATH/$RELEASE_VERSION/ --acl="public-read" diff --git a/buildspecs/release-to-github.yml b/buildspecs/release-to-github.yml index 955c4760da44..f0b04621129a 100644 --- a/buildspecs/release-to-github.yml +++ b/buildspecs/release-to-github.yml @@ -22,8 +22,9 @@ phases: - - git remote add --fetch public $PUBLIC_REPOSITORY_URL - | - if git show-ref --tags $RELEASE_VERSION --quiet; then - git push -d public :refs/tags/$RELEASE_VERSION + if [ `git ls-remote --tags public | grep refs/tags/$RELEASE_VERSION | wc -l` -ge "1" ]; then + git push public :refs/tags/$RELEASE_VERSION + git tag --delete $RELEASE_VERSION fi - git tag -a $RELEASE_VERSION -m "AWS SDK for Java v2 ($RELEASE_VERSION)" - diff --git a/buildspecs/release-to-maven.yml b/buildspecs/release-to-maven.yml index 66a9fcde6525..061b1737de35 100644 --- a/buildspecs/release-to-maven.yml +++ b/buildspecs/release-to-maven.yml @@ -34,7 +34,7 @@ phases: awk 'BEGIN { var=ENVIRON["SDK_SIGNING_GPG_KEYNAME"] } { gsub("\\$SDK_SIGNING_GPG_KEYNAME", var, $0); print }' > \ $SETTINGS_XML - mvn clean deploy -B -s $SETTINGS_XML -Ppublishing -DperformRelease -Dspotbugs.skip -DskipTests -Dcheckstyle.skip -Djapicmp.skip -Ddoclint=none -pl !:protocol-tests,!:protocol-tests-core,!:codegen-generated-classes-test,!:sdk-benchmarks,!:module-path-tests,!:tests-coverage-reporting,!:stability-tests,!:sdk-native-image-test,!:auth-tests,!:s3-benchmarks,!:region-testing,!:old-client-version-compatibility-test -DautoReleaseAfterClose=true -DstagingProgressTimeoutMinutes=30 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true + mvn clean deploy -B -s $SETTINGS_XML -Ppublishing -DperformRelease -Dspotbugs.skip -DskipTests -Dcheckstyle.skip -Djapicmp.skip -Ddoclint=none -pl !:protocol-tests,!:protocol-tests-core,!:codegen-generated-classes-test,!:sdk-benchmarks,!:module-path-tests,!:tests-coverage-reporting,!:stability-tests,!:sdk-native-image-test,!:auth-tests,!:s3-benchmarks,!:region-testing,!:old-client-version-compatibility-test,!:crt-unavailable-tests -DautoReleaseAfterClose=true -DstagingProgressTimeoutMinutes=30 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true else echo "This version was already released." fi diff --git a/buildspecs/resources/ci.cloudformation.yml b/buildspecs/resources/ci.cloudformation.yml index bd9e7338b63d..02adcf3a24c4 100644 --- a/buildspecs/resources/ci.cloudformation.yml +++ b/buildspecs/resources/ci.cloudformation.yml @@ -56,6 +56,7 @@ Resources: - !Sub arn:aws:codebuild:${ AWS::Region }:${ AWS::AccountId }:project/aws-sdk-java-v2-JDK8-windows - !Sub arn:aws:codebuild:${ AWS::Region }:${ AWS::AccountId }:project/aws-sdk-java-v2-native-image-test - !Sub arn:aws:codebuild:${ AWS::Region }:${ AWS::AccountId }:project/aws-sdk-java-v2-sonar + - !Sub arn:aws:codebuild:${ AWS::Region }:${ AWS::AccountId }:project/aws-sdk-java-v2-endpoints-test - Effect: Allow Action: - logs:GetLogEvents @@ -67,6 +68,7 @@ Resources: - !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/aws-sdk-java-v2-JDK8-windows:* - !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/aws-sdk-java-v2-native-image-test:* - !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/aws-sdk-java-v2-sonar:* + - !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/aws-sdk-java-v2-endpoints-test:* GithubOidc: Type: AWS::IAM::OIDCProvider diff --git a/bundle-logging-bridge/pom.xml b/bundle-logging-bridge/pom.xml index 87fc6923116e..2a1d55396bf6 100644 --- a/bundle-logging-bridge/pom.xml +++ b/bundle-logging-bridge/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT bundle-logging-bridge jar diff --git a/bundle-sdk/pom.xml b/bundle-sdk/pom.xml index 4cd10df5325a..e47346576b92 100644 --- a/bundle-sdk/pom.xml +++ b/bundle-sdk/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT bundle-sdk jar @@ -56,6 +56,11 @@ ${awsjavasdk.version} true + + software.amazon.s3.accessgrants + aws-s3-accessgrants-java-plugin + ${s3accessgrants.version} + @@ -76,6 +81,8 @@ commons-codec:commons-codec software.amazon.awssdk:* software.amazon:* + software.amazon.s3.accessgrants:* + com.github.ben-manes.caffeine:* commons-logging:* @@ -113,6 +120,7 @@ + diff --git a/bundle/pom.xml b/bundle/pom.xml index d594a704b19e..c2c4dec99ba7 100644 --- a/bundle/pom.xml +++ b/bundle/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT bundle jar diff --git a/changelogs/2.0.x-CHANGELOG.md b/changelogs/2.0.x-CHANGELOG.md new file mode 100644 index 000000000000..a59046dc72e0 --- /dev/null +++ b/changelogs/2.0.x-CHANGELOG.md @@ -0,0 +1,400 @@ +# __2.0.0-preview-13__ __2018-11-13__ +## __AWS SDK for Java v2__ + - ### Features + - Add `Automatic-Module-Name` manifest entry. + - Add `AwsResponseMetadata` support to allow users to retrieve metadata information such as `requestId`, `extendedRequestId` from the response. see [#670](https://github.com/aws/aws-sdk-java-v2/issues/670) + - Add apiCallTimeout and apiCallAttemptTimeout feature for synchronous calls. + - Guava 23.0 -> 26.0 + - upgrade maven-bundle-plugin -> 4.0.0 + + - ### Bugfixes + - Attach `SdkHttpResponse` to the responses of event streaming operations. + +## __AWS Security Token Service__ + - ### Features + - Added supplier functionality to StsAssumeRoleWithSamlCredentialProvider. This allows for the saml assertion to be refreshed before getting new credentials from STS. + +## __AWS Step Function__ + - ### Removals + - Remove AWS Step Function high level library for now. We will add them in the future. + +## __Amazon S3__ + - ### Features + - Add support for automatically decoding URL-encoded parts of the ListObjects and ListObjectsV2 responses. See https://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html and https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html. + + - ### Bugfixes + - Update S3 `EndpointAddressInterceptor` to honor request protocol. + +## __Apache HTTP Client__ + - ### Features + - Add support for idle connection reaping. + +## __core__ + - ### Features + - Apache HttpClient 4.5.5 -> 4.5.6 + - Netty 4.1.28 -> 4.1.30 + +# __2.0.0-preview-12__ __2018-09-18__ +## __AWS SDK for Java v2__ + - ### Features + - Add mfa_serial to ProfileProperty + - Allow clients to add Socket Channel Option + - Implement apiCallAttemptTimeout and apiCallTimeout feature for asynchrounous calls. Customers can specify timeout via `ClientOverrideConfiguaration.Builder#apiCallTimeout(Duration)` or `RequestOverrideConfiguration.Builder#apiCallAttemptTimeout(Duration)`. Note: this feature is only implemented for asynchrounous api calls. + - Improve logging for debuggability. see `SdkStandardLogger`. + - Refactored all services to make module names match the service id from the service model + - Removed sdk-core dependency from the profiles module. This allows reading from profile files without pulling in the rest of the SDK. + - Replacing legacy `HttpResponse` with `SdkHttpFullResponse`. + - Update service models to be current as of 2018-09-07. + + - ### Bugfixes + - Fix Response Fetcher hasNextPage to check if the output token is non null or non empty if it is a collection or map type. Related to [#677](https://github.com/aws/aws-sdk-java-v2/issues/677) + - RetryPolicy bug fix: adding throttlingBackoffStrategy to `RetryPolicy.Builder`. see [#646](https://github.com/aws/aws-sdk-java-v2/issues/646) + +## __AWS STS__ + - ### Features + - Add the ability to provide a Supplier to StsAssumeRoleCredentialsProvider + +## __Aamazon S3__ + - ### Bugfixes + - Fix NPE for S3 GET request using http protocol. see [#612](https://github.com/aws/aws-sdk-java-v2/issues/612) + +## __Amazon SimpleDB__ + - ### Removals + - Amazon SimpleDB module is removed from the SDK 2.0. To use SimpleDB, use SDK 1.11.x. Note that you can run SDK 1.11 and 2.0 in the same application. + +## __runtime__ + - ### Bugfixes + - Netty 4.1.26.Final -> 4.1.28.Final + +# __2.0.0-preview-11__ __2018-07-30__ +## __AWS SDK for Java v2__ + - ### Features + - Accept `SdkBytes` and `byte[]` instead of `ByteBuffer` in generated setters. + - Add support to disable EC2 instance metadata service usage via environment variable and system property. [#430](https://github.com/aws/aws-sdk-java-v2/issues/430) + - Caching `XPathFactory` to improve performance of exception handling for services using XML protocol + - Exceptions use builders and are immutable. + - Incorporate the [Reactive Streams Technology Compatibility Kit](https://github.com/reactive-streams/reactive-streams-jvm/tree/master/tck) and ensure current implementations are compliant. [#519](https://github.com/aws/aws-sdk-java-v2/issues/519) + - Modules (annotations, auth, sdk-core, aws-core, profiles, regions) are refactored under the core module. + - Refactor signer interfaces to be independent from Amazon/AWS specific classes. Signer interfaces expose a sign method that takes in the request to sign and ExecutionAttributes instance. Parameters needed for signing are to be passed through ExecutionAttributes. SDK signer implementations have overloaded sign methods that can take either generic ExecutionAttributes or modeled params classes as convenience for customers. + - Region class clean up including the following: - Flattened GovCloud - Renamed `Region.value()` to `Region.id()` - Dropped `get` prefix in the method names. eg: `getRegions()` -> `regions()` + - Renamed all non-service enums to be singular, not plural. + - Renaming `SdkBuilder.apply()` -> `SdkBuilder.applyMutation()` and renaming `ResponseTransformer.apply()` to `ResponseTransformer.transform()`. + - Return `SdkBytes` instead of `ByteBuffer` from generated getters. + - Update all service models to follow V2 naming convention. eg: `WAFException` -> `WafException` + - Update service name in clients, requests and exceptions to match 2.0 naming conventions (eg. DynamoDBClient -> DynamoDbClient) + - Updated `AwsCredentials` to interface implemented by `AwsBasicCredentials` and `AwsSessionCredentials`. Renamed `AwsCredentialsProvider.getCredentials()` to `AwsCredentialsProvider.resolveCredentials()`. + - Use auto constructed containers for list and map members. [#497](https://github.com/aws/aws-sdk-java-v2/pull/497), [#529](https://github.com/aws/aws-sdk-java-v2/pull/529), [#600](https://github.com/aws/aws-sdk-java-v2/pull/600) + - Various AsyncClient Refactors:\n - Drop async prefix in `SdkAyncClientBuilder`: `SdkAsyncClientBuilder.asyncHttpClientBuilder() -> SdkAsyncClientBuilder.httpClientBuilder()`\n - Create `SdkEventLoopGroup` to allow users to provide `EventLoopGroup` and `ChannelFactory`. + - upgrade Netty 4.1.22.Final to Netty 4.1.26.Final + + - ### Deprecations + - Deprecating `QueryStringSigner` in favor of `Aws4Signer`. + + - ### Removals + - Make paginators resume method private.(We will re-add the feature in the future) + - Removing gzipEnabled client configuration. + +## __AWS WAF Regional__ + - ### Features + - AWS Waf Regional clients are now in `software.amazon.awssdk.services.waf.regional` package. + +## __Amazon DynamoDB__ + - ### Features + - Add default DynamoDB specific retry policy. + - Update DynamoDB default max retry count to 8. Related to [#431](https://github.com/aws/aws-sdk-java-v2/issues/431) + +## __Amazon DynamoDB Streams__ + - ### Features + - Dynamodb Streams clients are now in `software.amazon.awssdk.services.dynamodb.streams` package. + +## __Amazon S3__ + - ### Features + - Move `AWSS3V4Signer` to auth module. + +## __Netty NIO Async HTTP Client__ + - ### Bugfixes + - Fix the Netty async client to stop publishing to the request stream once `Content-Length` is reached. + +# __2.0.0-preview-10__ __2018-05-25__ +## __AWS SDK for Java v2__ + - ### Features + - Add [SdkHttpResponse](https://github.com/aws/aws-sdk-java-v2/blob/master/http-client-spi/src/main/java/software/amazon/awssdk/http/SdkHttpResponse.java) to [SdkResponse](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/core/SdkResponse.java) so that customers can retrieve Http data such as headers, status code from the response object. + - Add a standard User-Agent when making requests to the metadata service. User-Agent pattern: aws-sdk-java/ + - Added Consumer-style methods for all client overloads. + - Added Consumer-style methods for vararg parameters. + - AsyncResponseTransformer byte array and string methods now match the sync model. + - Include root causes in the exception message from AWSCredentialsProviderChain to ease troubleshooting. + - Moved AWS specific retry policies to aws-core module, created AwsServiceException and moved isThrottlingException and isClockSkewException methods to SdkServiceException. + - Renamed "Bytes" overload for streaming operations to "AsBytes", and "String" overload for enums to "AsString" + - Renamed AsyncRequestProvider to AsyncRequestBody to better match sync's RequestBody + - Renamed AsyncResponseHandler to AsyncResponseTransformer and StreamingResponseHandler to ResponseTransformer. + - Renamed `AdvancedServiceConfiguration` to `ServiceConfiguration` + - Renamed `RequestOverrideConfig` to `RequestOverrideConfiguration` to match `ClientOverrideConfiguration` naming. + - Simplified configuration of HTTP clients. + - Split core module to regions, profiles, auth, aws-core and core modules.[#27](https://github.com/aws/aws-sdk-java-v2/issues/27) + - Updating default retry policy to include newly added conditions. + + - ### Removals + - Remove httpRequestTimeout and totalExecutionTimeout features + +## __AWS Secrets Manager__ + - ### Features + - Add AWS Secrets Manager to v2. + +## __Amazon S3__ + - ### Features + - Renamed `S3AdvancedConfiguration` to `S3Configuration` + +# __2.0.0-preview-9__ __2018-03-20__ +## __AWS Lambda__ + - ### Features + - Added latest model for new service features. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix default user agent to comply with [RFC 7231](https://tools.ietf.org/html/rfc7231#section-5.5.3). Related to [#80](https://github.com/aws/aws-sdk-java-v2/issues/80) + - Maven artifact software.amazon.awssdk:bom no longer includes non-SDK dependencies. + +# __2.0.0-preview-8__ __2018-02-02__ +## __AWS SDK for Java v2__ + - ### Features + - Added Consumer methods to multiple locations where they were previously missing. + - Added `SdkClient` base interface that all service clients implement. + - Added and standardized `toString` implementations of public data classes. + - Adding the following services from re:invent 2017: + - Alexa For Business + - AWS Migration Hub + - AWS Cost Explorer + - AWS Cloud9 + - AWS CloudHSM V2 + - Amazon Comprehend + - AWS Glue + - Amazon GuardDuty + - Amazon Kinesis Video Streams + - AWS Elemental MediaConvert + - AWS Elemental MediaLive + - AWS Elemental MediaPackage + - AWS Elemental MediaStore + - AWS Mobile + - AmazonMQ + - AWS Price List + - AWS Resource Groups + - Amazon SageMaker + - AWS Serverless Application Repository + - Amazon Route 53 Auto Naming + - Amazon Translate + - Amazon WorkMail + - Setting `Content-Type` header for streaming requests. Related to [#357](https://github.com/aws/aws-sdk-java-v2/issues/357) + - upgrade Netty 4.1.17.Final to 4.1.19.Final + + - ### Bugfixes + - Fixed issue where error message in S3 exceptions could be "null" if the exception did not have a modeled type. + +## __Amazon CloudWatch__ + - ### Features + - Added pagination configuration to CloudWatch + +## __Netty NIO Async HTTP Client__ + - ### Bugfixes + - Fix race condition in the async client causing instability when making multiple concurent requests. Fixes [#202](https://github.com/aws/aws-sdk-java-v2/issues/202) + +# __2.0.0-preview-7__ __2017-12-15__ +## __AWS SDK for Java v2__ + - ### Features + - Added `Bytes` methods to all streaming operations. These methods will load the service response into memory and return a `ResponseBytes` object that eases conversion into other types, like strings. eg. `String object = s3.getObjectBytes(request).asUtf8String()`. [#324](https://github.com/aws/aws-sdk-java-v2/pull/324) + - Added `ProfileCredentialsProvider.create("profile-name")` helper to `ProfileCredentialsProvider` to account for common use-case where only profile name is provided. [#347](https://github.com/aws/aws-sdk-java-v2/pull/347) + - Adds convenience type overloads to allow easier to use types on modeled objects. [#336](https://github.com/aws/aws-sdk-java-v2/pull/336) + - Automatically retry streaming downloads to a file if they fail or are interrupted. [#324](https://github.com/aws/aws-sdk-java-v2/pull/324) + - Implementation of a generic HTTP credential provider used to get credentials from an container metadata service. Replica of v1 [implementation](https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/auth/ContainerCredentialsProvider.java#L108) [#328](https://github.com/aws/aws-sdk-java-v2/pull/328) + - Refactors the exceptions used by the SDK. [#301](https://github.com/aws/aws-sdk-java-v2/pull/301) + - Remove the legacy `AmazonWebServiceRequest`, `AmazonWebServiceResult`, and `AmazonWebServiceResponse` classes. They are replaced with `AwsRequest` and `AwsResponse`. [#289](https://github.com/aws/aws-sdk-java-v2/issues/289) + - Updated profile-based region and credential loading to more closely mirror the behavior in the AWS CLI. Notably, profile names in `~/.aws/config` must be prefixed with "profile " (except for the default profile) and profile names in `~/.aws/credentials` must not be prefixed with "profile ". [#296](https://github.com/aws/aws-sdk-java-v2/pull/296) + - Upgrade maven-compiler-plugin from 3.6.0 to 3.7.0 + - Upgraded dependencies + * Wiremock (com.github.tomakehurst:wiremock) 1.55 -> 2.12.0 + * Json Path (com.jayway.jsonpath:json-path) 2.2.0 -> 2.4.0 + - upgrade to Jackson 2.9.3 + + - ### Removals + - Remove easymock as a dependency, mockito should be used for all mocking going forward. [#348](https://github.com/aws/aws-sdk-java-v2/pull/348) + - Removed the following unused dependencies [#349](https://github.com/aws/aws-sdk-java-v2/issues/349): + * org.eclipse:text + * info.cukes:cucumber-java + * info.cukes:cucumber-junit + * info.cukes:cucumber-guice + * com.google.inject:guice + * org.bouncycastle:bcprov-jdk15on + * com.google.guava:guava + * io.burt:jmespath-jackson + * javax.annotation:javax.annotation-api + +## __Amazon S3__ + - ### Bugfixes + - Fixing exception unmarshalling for S3. [#297](https://github.com/aws/aws-sdk-java-v2/issues/297) + +## __Netty NIO Async HTTP Client__ + - ### Bugfixes + - Fixes Issue [#340](https://github.com/aws/aws-sdk-java-v2/issues/340) where connection acquisition time was calculated incorrectly in the Netty client. + +# __2.0.0-preview-6__ __2017-12-06__ +## __AWS AppSync__ + - ### Features + - Adding AWS AppSync based on customer request. [#318](https://github.com/aws/aws-sdk-java-v2/pull/318) + +## __AWS Lambda__ + - ### Removals + - Removed high-level utilities. [#247](https://github.com/aws/aws-sdk-java-v2/pull/247) + +## __AWS SDK for Java v2__ + - ### Features + - Add paginators-1.json file for some services [#298](https://github.com/aws/aws-sdk-java-v2/pull/298) + - Added a primitive `Waiter` class for simplifying poll-until-condition-is-met behavior. [#300](https://github.com/aws/aws-sdk-java-v2/pull/300) + - Adding Consumer to overrideConfiguration on ClientBuilder [#291](https://github.com/aws/aws-sdk-java-v2/pull/291) + - Adding helper to Either that allows construction from two possibly null values [#292](https://github.com/aws/aws-sdk-java-v2/pull/292) + - Adding knownValues static to enum generation [#218](https://github.com/aws/aws-sdk-java-v2/pull/218) + - Adding validation to Region class [#261](https://github.com/aws/aws-sdk-java-v2/pull/261) + - Converted all wiremock tests to run as part of the build. [#260](https://github.com/aws/aws-sdk-java-v2/pull/260) + - Enhanced pagination for synchronous clients[#207](https://github.com/aws/aws-sdk-java-v2/pull/207) + - Implementing Consumer fluent setter pattern on client operations [#280](https://github.com/aws/aws-sdk-java-v2/pull/280) + - Implementing Consumer fluent setters pattern on model builders. [#278](https://github.com/aws/aws-sdk-java-v2/pull/278) + - Making it easier to supply async http configuration. [#274](https://github.com/aws/aws-sdk-java-v2/pull/274) + - Refactoring retry logic out to separate class [#177](https://github.com/aws/aws-sdk-java-v2/pull/177) + - Removing unnecessary javax.mail dependency [#312](https://github.com/aws/aws-sdk-java-v2/pull/312) + - Replacing constructors with static factory methods [#284](https://github.com/aws/aws-sdk-java-v2/pull/284) + - Retry policy refactor [#190](https://github.com/aws/aws-sdk-java-v2/pull/190) + - Update latest models for existing services [#299](https://github.com/aws/aws-sdk-java-v2/pull/299) + - Upgrade dependencies to support future migration to Java 9. [#271](https://github.com/aws/aws-sdk-java-v2/pull/271) + - Upgraded dependencies: + * javapoet 1.8.0 -> 1.9.0 [#311](https://github.com/aws/aws-sdk-java-v2/pull/311) + * Apache HttpClient 4.5.2 -> 4.5.4 [#308](https://{github.com/aws/aws-sdk-java-v2/pull/308) + * Jackson 2.9.1 -> 2.9.2 [#310](https://github.com/aws/aws-sdk-java-v2/pull/310) + * Netty 4.1.13 -> 4.1.17 [#309](https://github.com/{aws/aws-sdk-java-v2/pull/309) + - Use java.util.Objects to implement equals, hashCode [#294](https://github.com/aws/aws-sdk-java-v2/pull/294) + + - ### Bugfixes + - Attempting to fix class-loader exception raised on gitter. [#216](https://github.com/aws/aws-sdk-java-v2/pull/216) + - Call doClose in HttpClientDependencies#close method [#268](https://github.com/aws/aws-sdk-java-v2/pull/268) + - Fixing bundle exports [#281](https://github.com/aws/aws-sdk-java-v2/pull/281) + + - ### Removals + - Delete old jmespath AST script [#266](https://github.com/aws/aws-sdk-java-v2/pull/266) + - Remove current waiter implementation. [#258](https://github.com/aws/aws-sdk-java-v2/pull/258) + - Removed policy builder. [#259](https://github.com/aws/aws-sdk-java-v2/pull/259) + - Removed progress listeners until they can be updated to V2 standards. [#285](https://github.com/aws/aws-sdk-java-v2/pull/285) + +## __Amazon CloudFront__ + - ### Removals + - Removed high-level cloudfront utilities. [#242](https://github.com/aws/aws-sdk-java-v2/pull/242) + +## __Amazon DynamoDB__ + - ### Features + - Adding some helpers for being able to create DyanmoDB AttributeValues. [#276](https://github.com/aws/aws-sdk-java-v2/pull/276) + + - ### Bugfixes + - Fixed TableUtils that broke with enum change. [#235](https://github.com/aws/aws-sdk-java-v2/pull/235) + +## __Amazon EC2__ + - ### Removals + - Removed high-level utilities. [#244](https://github.com/aws/aws-sdk-java-v2/pull/244) + +## __Amazon EMR__ + - ### Removals + - Removed high-level utilities. [#245](https://github.com/aws/aws-sdk-java-v2/pull/245) + +## __Amazon Glacier__ + - ### Removals + - Removed high-level utilities. [#246](https://github.com/aws/aws-sdk-java-v2/pull/246) + +## __Amazon Polly__ + - ### Removals + - Removed polly presigners until they can be updated for V2. [#287](https://github.com/aws/aws-sdk-java-v2/pull/287) + +## __Amazon S3__ + - ### Features + - Adding utility that creates temporary bucket name using user-name [#234](https://github.com/aws/aws-sdk-java-v2/pull/234) + +## __Amazon SES__ + - ### Removals + - Removed high-level utilities. [#248](https://github.com/aws/aws-sdk-java-v2/pull/248) + +## __Amazon SNS__ + - ### Removals + - Removed high-level utilities. [#255](https://github.com/aws/aws-sdk-java-v2/pull/255) + +## __Amazon SQS__ + - ### Bugfixes + - Porting SQS test to make use of async and hopefully resolve the bug [#240](https://github.com/aws/aws-sdk-java-v2/pull/240) + + - ### Removals + - Removed high-level utilities and the interceptor that rewrites the endpoint based on the SQS queue. [#238](https://github.com/aws/aws-sdk-java-v2/pull/238) + +## __Amazon SimpleDB__ + - ### Removals + - Removed high-level utilities and unused response metadata handler. [#249](https://github.com/aws/aws-sdk-java-v2/pull/249) + +## __Netty NIO Async HTTP Client__ + - ### Features + - Adding socket resolver helper that will load the appropriate SocketChannel [#293](https://github.com/aws/aws-sdk-java-v2/pull/293) + + - ### Bugfixes + - Netty spurious timeout error fix [#283](https://github.com/aws/aws-sdk-java-v2/pull/283) + - Temporarily disable epoll [#254](https://github.com/aws/aws-sdk-java-v2/pull/254) + +# __2.0.0-preview-5__ __2017-10-17__ +## __AWS SDK for Java v2__ + - ### Features + - Asynchronous request handler for strings `AsyncRequestProvider.fromString("hello world!!!")` [PR #183](https://github.com/aws/aws-sdk-java-v2/pull/183) + - General HTTP core clean-up [PR #178](https://github.com/aws/aws-sdk-java-v2/pull/178) + - Get value from request POJO using member model names `String bucketName = s3PutObjectResponse.getValueForField("Bucket", String.class);` [PR #144](https://github.com/aws/aws-sdk-java-v2/pull/144) + - Model enums on service POJOs [PR #195](https://github.com/aws/aws-sdk-java-v2/pull/195) + - Move `core` classes to their own package `software.amazon.awssdk.core` [PR #194](https://github.com/aws/aws-sdk-java-v2/pull/194) + + - ### Bugfixes + - Resolve potential security issue handling DTD entities [PR #198](https://github.com/aws/aws-sdk-java-v2/pull/198) + - Serialization/deserialization of complex model objects [PR #128](https://github.com/aws/aws-sdk-java-v2/pull/128) / [Issue #121](https://github.com/aws/aws-sdk-java-v2/issues/121) + +## __Amazon S3__ + - ### Features + - Handle 100-continue header for PUT object [PR #169](https://github.com/aws/aws-sdk-java-v2/pull/169) + +## __Netty NIO Async HTTP Client__ + - ### Bugfixes + - Better handling of event-loop selection for AWS Lambda container [PR #208](https://github.com/aws/aws-sdk-java-v2/pull/208) + - Data corruption fix in streaming responses and stability fixes [PR #173](https://github.com/aws/aws-sdk-java-v2/pull/173) + +# __2.0.0-preview-4__ __2017-09-19__ +## __AWS SDK for Java v2__ + - ### Features + - Added convenience methods for both sync and async streaming operations for file based uploads/downloads. + - Added some convenience implementation of [AsyncResponseHandler](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/async/AsyncResponseHandler.java) to emit to a byte array or String. + - Immutable objects can now be modified easily with a newly introduced [copy](https://github.com/aws/aws-sdk-java-v2/blob/master/utils/src/main/java/software/amazon/awssdk/utils/builder/ToCopyableBuilder.java#L42) method that applies a transformation on the builder for the object and returns a new immutable object. + - Major refactor of RequestHandler interfaces. Newly introduced [ExecutionInterceptors](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/interceptor/ExecutionInterceptor.java) have a cleaner, more consistent API and are much more powerful. + - S3's CreateBucket no longer requires the location constraint to be specified, it will be inferred from the client region if not present. + - The [File](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/sync/StreamingResponseHandler.java#L92) and [OutputStream](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/sync/StreamingResponseHandler.java#L107) implementations of StreamingResponseHandler now return the POJO response in onComplete. + + - ### Bugfixes + - Fixed a bug in default credential provider chain where it would erroneously abort at the ProfileCredentialsProvider. See [Issue #135](https://github.com/aws/aws-sdk-java-v2/issues/135) + - Many improvements and fixes to the Netty NIO based transport. + - Several fixes around S3's endpoint resolution, particularly with advanced options like path style addressing and accelerate mode. See [Issue #130](https://github.com/aws/aws-sdk-java-v2/issues/130) + - Several fixes around serialization and deserialization of immutable objects. See [Issue #122](https://github.com/aws/aws-sdk-java-v2/issues/122) + - Type parameters are now correctly included for [StreamingResponseHandler](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/sync/StreamingResponseHandler.java) on the client interface. + + - ### Removals + - Dependency on JodaTime has been dropped in favor of Java 8's APIS. + - DynamoDBMapper and DynamoDB Document API have been removed. + - Metrics subsystem has been removed. + +# __2.0.0-preview-2__ __2017-07-21__ +## __AWS SDK for Java v2__ + - ### Features + - New pluggable HTTP implementation built on top of Java's HttpUrlConnection. Good choice for simple applications with low throughput requirements. Better cold start latency than the default Apache implementation. + - Simple convenience methods have been added for operations that require no input parameters. + - Substantial improvements to start up time and cold start latencies + - The Netty NIO HTTP client now uses a shared event loop group for better resource management. More options for customizing the event loop group are now available. + - Using java.time instead of the legacy java.util.Date in generated model classes. + - Various improvements to the immutability of model POJOs. ByteBuffers are now copied and collections are returned as unmodifiable. + +# __2.0.0-preview-1__ __2017-06-28__ +## __AWS SDK for Java v2__ + - ### Features + - Initial release of the AWS SDK for Java v2. See our [blog post](https://aws.amazon.com/blogs/developer/aws-sdk-for-java-2-0-developer-preview) for information about this new major version. This release is considered a developer preview and is not intended for production use cases. diff --git a/changelogs/2.1.x-CHANGELOG.md b/changelogs/2.1.x-CHANGELOG.md new file mode 100644 index 000000000000..bf744fc51a8c --- /dev/null +++ b/changelogs/2.1.x-CHANGELOG.md @@ -0,0 +1,76 @@ +# __2.1.4__ __2018-12-07__ +## __AWS CodeDeploy__ + - ### Features + - Supporting AWS CodeDeploy + +## __AWS SDK for Java v2__ + - ### Features + - Add `modifyException` API to `ExecutionInterceptor`. + - Add application/gzip mime type + - Update spot bugs version to 3.1.9 + - Updated to the latest service models. + + - ### Bugfixes + - Fix infinite stream of results bug in auto paginator APIs when the next token is an empty string + - Fixes nullpointerexception when server responds with null values in map. + - Use the class loader that loaded the SDK to load the HTTP implementations. See [#56](https://github.com/aws/aws-sdk-java-v2/issues/56) + +## __Amazon S3__ + - ### Bugfixes + - Turns off trailing checksums when using SSE-C or SSE-KMS + - Update S3 headObject/headBucket operations to throw NoSuchKey/NoSuchException when S3 is returning 404. See [#123](https://github.com/aws/aws-sdk-java-v2/issues/123), [#544](https://github.com/aws/aws-sdk-java-v2/issues/544) + +## __Netty NIO Async HTTP Client__ + - ### Bugfixes + - Close created `ChannelPool`s in `close()` method. + - Fix the issue where streaming requests with `Expect: 100-continue` header sometimes are hanging because 100Continue response message is not being read automatically. See [#459](https://github.com/aws/aws-sdk-java-v2/issues/459) + +## __core__ + - ### Features + - Netty 4.1.32.Final + +# __2.1.3__ __2018-11-29__ +## __AWS SDK for Java v2__ + - ### Features + - Updated to the latest service models. + +# __2.1.2__ __2018-11-28__ +## __AWS SDK for Java v2__ + - ### Features + - Updated to the latest service models. + +## __core__ + - ### Features + - Jackson 2.9.6 -> 2.9.7 + +# __2.1.1__ __2018-11-27__ +## __AWS Organizations__ + - ### Bugfixes + - Add `organizations` to `aws-sdk-java` module. + +## __AWS SDK for Java V2__ + - ### Bugfixes + - Fixes Issue [#864](https://github.com/aws/aws-sdk-java-v2/issues/864) by checking for embedded JSON objects while unmarshalling bytes. + +## __AWS SDK for Java v2__ + - ### Features + - Updated to the latest service models. + - Updated to the latest service models. + + - ### Bugfixes + - Fix async pagination javadocs to use the correct method name `SdkPublisher#subscribe`. + - Fixed an issue where close() and abort() weren't being honored for streaming responses in all cases. + - Preserve computedChecksum in `ChecksumValidatingInputStream` so that it doesn't throw error if it validates more than once. See [#873](https://github.com/aws/aws-sdk-java-v2/issues/873) + +# __2.1.0__ __2018-11-19__ +## __AWS SDK for Java v2__ + - ### Features + - AWS SDK for Java v2 is generally available now. To get started, please see this [blog post](https://aws.amazon.com/blogs/developer/aws-sdk-for-java-2-x-released/). + - Update Netty version to Netty 4.1.31.Final + + - ### Bugfixes + - Temporarily removed OSGi support because the Netty HTTP client does not yet support it. See [#726](https://github.com/aws/aws-sdk-java-v2/issues/726) + +## __Netty NIO Async HTTP Client__ + - ### Bugfixes + - Not invoke fireExceptionCaught if the channel is not active. see [#452](https://github.com/aws/aws-sdk-java-v2/issues/452) diff --git a/changelogs/2.10.x-CHANGELOG.md b/changelogs/2.10.x-CHANGELOG.md new file mode 100644 index 000000000000..9e13c6fc59ab --- /dev/null +++ b/changelogs/2.10.x-CHANGELOG.md @@ -0,0 +1,2088 @@ +# __2.10.91__ __2020-03-20__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog__ + - ### Features + - Added "productId" and "portfolioId" to responses from CreateConstraint, UpdateConstraint, ListConstraintsForPortfolio, and DescribeConstraint APIs + +# __2.10.90__ __2020-03-19__ +## __AWS Certificate Manager__ + - ### Features + - AWS Certificate Manager documentation updated on API calls ImportCertificate and ListCertificate. Specific updates included input constraints, private key size for import and next token size for list. + +## __AWS Outposts__ + - ### Features + - Documentation updates for AWS Outposts. + +# __2.10.89__ __2020-03-18__ +## __AWS MediaConnect__ + - ### Features + - Feature adds the ability for a flow to have multiple redundant sources that provides resiliency to a source failing. The new APIs added to enable the feature are, AddFlowSources, RemoveFlowSource and UpdateFlow. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Personalize__ + - ### Features + - [Personalize] Adds support for returning hyperparameter values of the best performing model in a HPO job. + +## __Amazon Relational Database Service__ + - ### Features + - Updated the MaxRecords type in DescribeExportTasks to Integer. + +# __2.10.88__ __2020-03-17__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for: AV1 encoding in File Group MP4, DASH and CMAF DASH outputs; PCM/WAV audio output in MPEG2-TS containers; and Opus audio in Webm inputs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fix an issue where the signing key is created only once at the start of the request for event streaming requests. This causes requests that span two or more days to have signing errors once the date changes because the signing key was derived only once using the date at the beginning of the request. + +# __2.10.87__ __2020-03-16__ +## __AWS S3 Control__ + - ### Features + - Amazon S3 now supports Batch Operations job tagging. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Additional response field "CompromisedCredentialsDetected" added to AdminListUserAuthEvents. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - The enhanced DDB client table schema now supports custom AttributeConverterProviders, and StaticAttribute can take individual AttributeConverter to override default attribute converter behavior. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds the ability to update the task placement strategy and constraints for Amazon ECS services. + +## __Amazon ElastiCache__ + - ### Features + - Amazon ElastiCache now supports Global Datastore for Redis. Global Datastore for Redis offers fully managed, fast, reliable and secure cross-region replication. Using Global Datastore for Redis, you can create cross-region read replica clusters for ElastiCache for Redis to enable low-latency reads and disaster recovery across regions. You can create, modify and describe a Global Datastore, as well as add or remove regions from your Global Datastore and promote a region as primary in Global Datastore. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Resource data sync for AWS Systems Manager Inventory now includes destination data sharing. This feature enables you to synchronize inventory data from multiple AWS accounts into a central Amazon S3 bucket. To use this feature, all AWS accounts must be listed in AWS Organizations. + +# __2.10.86__ __2020-03-13__ +## __Amazon AppConfig__ + - ### Features + - This release adds S3 as a configuration source provider. + +# __2.10.85__ __2020-03-12__ +## __AWS IoT__ + - ### Features + - As part of this release, we are extending capability of AWS IoT Rules Engine to support IoT Cloudwatch log action. The IoT Cloudwatch log rule action lets you send messages from IoT sensors and applications to Cloudwatch logs for troubleshooting and debugging. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - The AWS Security Finding Format is being augmented with the following changes. 21 new resource types without corresponding details objects are added. Another new resource type, AwsS3Object, has an accompanying details object. Severity.Label is a new string field that indicates the severity of a finding. The available values are: INFORMATIONAL, LOW, MEDIUM, HIGH, CRITICAL. The new string field Workflow.Status indicates the status of the investigation into a finding. The available values are: NEW, NOTIFIED, RESOLVED, SUPPRESSED. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2 + +## __Amazon Lex Model Building Service__ + - ### Features + - Amazon Lex now supports tagging for bots, bot aliases and bot channels. + +## __AmazonApiGatewayV2__ + - ### Features + - Amazon API Gateway HTTP APIs is now generally available. HTTP APIs offer the core functionality of REST API at up to 71% lower price compared to REST API, 60% lower p99 latency, and is significantly easier to use. As part of general availability, we added new features to route requests to private backends such as private ALBs, NLBs, and IP/ports. We also brought over a set of features from REST API such as Stage Variables, and Stage/Route level throttling. Custom domain names can also now be used with both REST And HTTP APIs. + +# __2.10.84__ __2020-03-11__ +## __Amazon Elastic File System__ + - ### Features + - Documentation updates for elasticfilesystem + +## __Amazon Redshift__ + - ### Features + - Amazon Redshift now supports operations to pause and resume a cluster on demand or on a schedule. + +# __2.10.83__ __2020-03-10__ +## __AWS IoT Events__ + - ### Features + - API update that adds a new parameter, durationExpression, to SetTimerAction, and deprecates seconds + +## __AWS Marketplace Commerce Analytics__ + - ### Features + - Change the disbursement data set to look past 31 days instead until the beginning of the month. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Reverts a recent change from 2.10.70 where the json protocol type was changed to application/json, this is now back to application/x-amz-json-1.1. + +## __AWSServerlessApplicationRepository__ + - ### Features + - AWS Serverless Application Repository now supports sharing applications privately with AWS Organizations. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2 + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe's Automatic Content Redaction feature enables you to automatically redact sensitive personally identifiable information (PII) from transcription results. It replaces each instance of an identified PII utterance with a [PII] tag in the transcript. + +# __2.10.82__ __2020-03-09__ +## __AWS Database Migration Service__ + - ### Features + - Added new settings for Kinesis target to include detailed transaction info; to capture table DDL details; to use single-line unformatted json, which can be directly queried by AWS Athena if data is streamed into S3 through AWS Kinesis Firehose. Added CdcInsertsAndUpdates in S3 target settings to allow capture ongoing insertions and updates only. + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports the ability to configure the Preferred Channel Pipeline for channels contributing to a Multiplex. + +## __AWS SDK for Java v2__ + - ### Features + - Added support for "retry modes". A retry mode allows configuring multiple SDK parameters at once using default retry profiles, some of which are standardized between AWS SDK languages. See RetryMode javadoc for more information. + - Added the ability to configure or disable the default retry throttling behavior of the SDK that 'kicks in' during a large volume of retriable service call errors. This behavior can now be configured via `RetryPolicy.retryCapacityCondition`. + + - ### Bugfixes + - Fixed an issue where specifying your own retry policy would override AWS and service-specific retry conditions. By default, all retry policies now have AWS and service-specific retry conditions added. This can be disabled via the new `RetryPolicy.furtherRefinementsAllowed(false)`. + - Fixed an issue where the retry condition returned by `RetryPolicy.retryCondition` differed from the one specified by `RetryPolicy.Builder.retryCondition`. The old value can be accessed via the new `RetryPolicy.aggregateRetryCondition`. + - Use the last seen HTTP/1.1 header value for headers defined to only appear once in an HTTP message instead of merging them all into a list. The order in which header values are inspected is: headers set by the request marshaller, overridden headers set on the client, then finally overridden headers set on the SDK request object. See https://tools.ietf.org/html/rfc2616#section-4.2 for more information. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon Virtual Private Cloud (VPC) NAT Gateway adds support for tagging on resource creation. + +# __2.10.81__ __2020-03-06__ +## __AWS App Mesh__ + - ### Features + - App Mesh now supports sharing a Mesh with other AWS accounts. Customers can use AWS Resource Access Manager to share their Mesh with other accounts in their organization to connection applications within a single service mesh. See https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html for details. + +## __AWS RoboMaker__ + - ### Features + - Added support for streaming a GUI from robot and simulation applications + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Signer__ + - ### Features + - This release enables signing image format override in PutSigningProfile requests, adding two more enum fields, JSONEmbedded and JSONDetached. This release also extends the length limit of SigningProfile name from 20 to 64. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release provides customers with a self-service option to enable Local Zones. + +## __Amazon GuardDuty__ + - ### Features + - Amazon GuardDuty findings now include the OutpostArn if the finding is generated for an AWS Outposts EC2 host. + +## __Netty NIO Http Client__ + - ### Bugfixes + - Expand Http2 connection-level flow control window when a new stream is acquired on that connection so that the connection-level window size is proportional to the number of streams. + +# __2.10.80__ __2020-03-05__ +## __AWS OpsWorks CM__ + - ### Features + - Updated the Tag regex pattern to align with AWS tagging APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - Adds javadoc to operation methods and request/response objects. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - You can now create AWS Client VPN Endpoints with a specified VPC and Security Group. Additionally, you can modify these attributes when modifying the endpoint. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Amazon EKS now supports adding a KMS key to your cluster for envelope encryption of Kubernetes secrets. + +## __Amazon GuardDuty__ + - ### Features + - Add a new finding field for EC2 findings indicating the instance's local IP address involved in the threat. + +# __2.10.79__ __2020-03-04__ +## __Amazon Pinpoint__ + - ### Features + - This release of the Amazon Pinpoint API introduces support for integrating recommender models with email, push notification, and SMS message templates. You can now use these types of templates to connect to recommender models and add personalized recommendations to messages that you send from campaigns and journeys. + +# __2.10.78__ __2020-03-03__ +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon VPC Flow Logs adds support for tags and tagging on resource creation. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix an issue where the Netty client was prematurely considering an HTTP/2 request body as sent, but was still in the process of being transferred to the remote endpoint. + +# __2.10.77__ __2020-03-02__ +## __AWS Comprehend Medical__ + - ### Features + - New Time Expression feature, part of DetectEntitiesV2 API will provide temporal relations to existing NERe entities such as Medication, Test, Treatment, Procedure and Medical conditions. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch__ + - ### Features + - Introducing Amazon CloudWatch Composite Alarms + +# __2.10.76__ __2020-02-28__ +## __AWS Config__ + - ### Features + - Correcting list of supported resource types. + +# __2.10.75__ __2020-02-28__ +## __AWS App Mesh__ + - ### Features + - App Mesh now supports Transport Layer Security (TLS) between Virtual Nodes in a Mesh. Customers can use managed certificates from an AWS Certificate Manager Private Certificate Authority or bring their own certificates from the local file system to encrypt traffic between their workloads. See https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual-node-tls.html for details. + +## __AWS Config__ + - ### Features + - Accepts a structured query language (SQL) SELECT command and an aggregator name, performs the corresponding search on resources aggregated by the aggregator, and returns resource configurations matching the properties. + +## __AWS Glue__ + - ### Features + - AWS Glue adds resource tagging support for Machine Learning Transforms and adds a new API, ListMLTransforms to support tag filtering. With this feature, customers can use tags in AWS Glue to organize and control access to Machine Learning Transforms. + +## __Access Analyzer__ + - ### Features + - This release includes improvements and fixes bugs for the IAM Access Analyzer feature. + +## __Amazon Augmented AI Runtime__ + - ### Features + - This release updates Amazon Augmented AI ListHumanLoops API, DescribeHumanLoop response, StartHumanLoop response and type names of SDK fields. + +## __Amazon CodeGuru Profiler__ + - ### Features + - Documentation updates for Amazon CodeGuru Profiler + +## __Amazon QuickSight__ + - ### Features + - Added SearchDashboards API that allows listing of dashboards that a specific user has access to. + +## __Amazon WorkDocs__ + - ### Features + - Documentation updates for workdocs + +## __Elastic Load Balancing__ + - ### Features + - Added a target group attribute to support sticky sessions for Network Load Balancers. + +# __2.10.74__ __2020-02-27__ +## __AWS Global Accelerator__ + - ### Features + - This release adds support for adding tags to accelerators and bringing your own IP address to AWS Global Accelerator (BYOIP). + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Lightsail__ + - ### Features + - Adds support to create notification contacts in Amazon Lightsail, and to create instance, database, and load balancer metric alarms that notify you based on the value of a metric relative to a threshold that you specify. + +# __2.10.73__ __2020-02-26__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Security Hub has added to the DescribeProducts API operation a new response field called IntegrationTypes. The IntegrationTypes field lists the types of actions that a product performs relative to Security Hub such as send findings to Security Hub and receive findings from Security Hub. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - Added the BeanTableSchema implementation of TableSchema that allows a TableSchema to be instantiated from an annotated Java bean class which can then be used with the DynamoDB Enhanced Client. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release changes the RunInstances CLI and SDK's so that if you do not specify a client token, a randomly generated token is used for the request to ensure idempotency. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker UpdateEndpoint API now supports retained variant properties, e.g., instance count, variant weight. SageMaker ListTrials API filter by TrialComponentName. Make ExperimentConfig name length limits consistent with CreateExperiment, CreateTrial, and CreateTrialComponent APIs. + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe's Automatic Content Redaction feature enables you to automatically redact sensitive personally identifiable information (PII) from transcription results. It replaces each instance of an identified PII utterance with a [PII] tag in the transcript. + +# __2.10.72__ __2020-02-25__ +## __AWS Outposts__ + - ### Features + - This release adds DeleteSite and DeleteOutpost. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Secrets Manager__ + - ### Features + - This release increases the maximum allowed size of SecretString or SecretBinary from 10KB to 64KB in the CreateSecret, UpdateSecret, PutSecretValue and GetSecretValue APIs. + +## __AWS Step Functions__ + - ### Features + - This release adds support for CloudWatch Logs for Standard Workflows. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - Improves discoverability by adding consumer-style methods for all client, table and index operations. + +## __Managed Streaming for Kafka__ + - ### Features + - Amazon MSK has added support for Broker Log delivery to CloudWatch, S3, and Firehose. + +# __2.10.71__ __2020-02-24__ +## __AWS IoT Events__ + - ### Features + - Documentation updates for iotcolumbo + +## __Amazon CloudWatch Events__ + - ### Features + - This release allows you to create and manage tags for event buses. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Documentation updates for docdb + +## __Amazon EventBridge__ + - ### Features + - This release allows you to create and manage tags for event buses. + +## __Amazon FSx__ + - ### Features + - Announcing persistent file systems for Amazon FSx for Lustre that are ideal for longer-term storage and workloads, and a new generation of scratch file systems that offer higher burst throughput for spiky workloads. + +## __Amazon Import/Export Snowball__ + - ### Features + - AWS Snowball adds a field for entering your GSTIN when creating AWS Snowball jobs in the Asia Pacific (Mumbai) region. + +# __2.10.70__ __2020-02-21__ +## __AWS WAFV2__ + - ### Features + - Documentation updates for AWS WAF (wafv2) to correct the guidance for associating a web ACL to a CloudFront distribution. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - Improves discoverability by adding consumer-style methods for all client, table and index operations. + +## __Amazon Redshift__ + - ### Features + - Extend elastic resize to support resizing clusters to different instance types. + +## __EC2 Image Builder__ + - ### Features + - This release of EC2 Image Builder increases the maximum policy document size for Image Builder resource-based policy APIs. + +# __2.10.69__ __2020-02-20__ +## __AWS Savings Plans__ + - ### Features + - Added support for AWS Lambda in Compute Savings Plans + +## __Amazon AppConfig__ + - ### Features + - This release adds exponential growth type support for deployment strategies. + +## __Amazon Pinpoint__ + - ### Features + - As of this release of the Amazon Pinpoint API, the Title property is optional for the CampaignEmailMessage object. + +# __2.10.68__ __2020-02-19__ +## __AWS Lambda__ + - ### Features + - AWS Lambda now supports Ruby 2.7 + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog__ + - ### Features + - "ListPortfolioAccess" API now has a new optional parameter "OrganizationParentId". When it is provided and if the portfolio with the "PortfolioId" given was shared with an organization or organizational unit with "OrganizationParentId", all accounts in the organization sub-tree under parent which inherit an organizational portfolio share will be listed, rather than all accounts with external shares. To accommodate long lists returned from the new option, the API now supports pagination. + +## __Auto Scaling__ + - ### Features + - Doc update for EC2 Auto Scaling: Add Enabled parameter for PutScalingPolicy + +# __2.10.67__ __2020-02-18__ +## __Amazon Chime__ + - ### Features + - Added AudioFallbackUrl to support Chime SDK client. + +## __Amazon Relational Database Service__ + - ### Features + - This release supports Microsoft Active Directory authentication for Amazon Aurora. + +## __Auto Scaling__ + - ### Features + - Amazon EC2 Auto Scaling now supports the ability to enable/disable target tracking, step scaling, and simple scaling policies. + +# __2.10.66__ __2020-02-17__ +## __AWS Cloud9__ + - ### Features + - AWS Cloud9 now supports the ability to tag Cloud9 development environments. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DynamoDB__ + - ### Features + - Amazon DynamoDB enables you to restore your DynamoDB backup or table data across AWS Regions such that the restored table is created in a different AWS Region from where the source table or backup resides. You can do cross-region restores between AWS commercial Regions, AWS China Regions, and AWS GovCloud (US) Regions. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2 + +## __Amazon Rekognition__ + - ### Features + - This update adds the ability to detect text in videos and adds filters to image and video text detection. + +# __2.10.65__ __2020-02-14__ +## __AWS MediaTailor__ + - ### Features + - AWS Elemental MediaTailor SDK now allows configuration of Personalization Threshold for HLS and DASH streams. + +## __AWS SecurityHub__ + - ### Features + - Security Hub has released a new DescribeStandards API action. This API action allows a customer to list all of the standards available in an account. For each standard, the list provides the customer with the standard name, description, and ARN. Customers can use the ARN as an input to the BatchEnableStandards API action. To learn more, visit our API documentation. + +## __AWS Shield__ + - ### Features + - This release adds support for associating Amazon Route 53 health checks to AWS Shield Advanced protected resources. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - You can now enable Multi-Attach on Provisioned IOPS io1 volumes through the create-volume API. + +## __Amazon S3__ + - ### Features + - Added support for presigning `CreateMultipartUpload`, `UploadPart`, `CompleteMultipartUpload`, and `AbortMultipartUpload` requests. + +# __2.10.64__ __2020-02-13__ +## __AWS Elemental MediaPackage VOD__ + - ### Features + - Adds support for DASH with multiple media presentation description periods triggered by presence of SCTE-35 ad markers in the manifest.Also adds optional configuration for DASH SegmentTemplateFormat to refer to segments by Number with Duration, Number with Timeline or Time with Timeline and compact the manifest by combining duplicate SegmentTemplate tags. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - Improves discoverability by adding operation methods for deleteItem(), getItem(), putItem and updateItem(), as applicable. These methods take a request object as parameter. Execute() methods for the table interface is removed since they are no longer needed. + +## __Netty NIO HTTP Client__ + - ### Features + - When there is an I/O error on an http2 request, the SDK will start shutting down the connection - stopping using the http2 connection for new requests and closing it after all streams are finished. + +# __2.10.63__ __2020-02-12__ +## __AWS Directory Service__ + - ### Features + - Release to add the ExpirationDateTime as an output to ListCertificates so as to ease customers to look into their certificate lifetime and make timely decisions about renewing them. + +## __AWS Glue__ + - ### Features + - Adding ability to add arguments that cannot be overridden to AWS Glue jobs + +## __Amazon Chime__ + - ### Features + - Documentation updates for Amazon Chime + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for tagging public IPv4 pools. + +## __Amazon Elasticsearch Service__ + - ### Features + - Amazon Elasticsearch Service now offers fine-grained access control, which adds multiple capabilities to give tighter control over data. New features include the ability to use roles to define granular permissions for indices, documents, or fields and to extend Kibana with read-only views and secure multi-tenant support. + +## __Amazon Neptune__ + - ### Features + - This launch enables Neptune start-db-cluster and stop-db-cluster. Stopping and starting Amazon Neptune clusters helps you manage costs for development and test environments. You can temporarily stop all the DB instances in your cluster, instead of setting up and tearing down all the DB instances each time that you use the cluster. + +## __Amazon WorkMail__ + - ### Features + - This release adds support for access control rules management in Amazon WorkMail. + +# __2.10.62__ __2020-02-11__ +## __AWS CloudFormation__ + - ### Features + - This release of AWS CloudFormation StackSets allows you to centrally manage deployments to all the accounts in your organization or specific organizational units (OUs) in AWS Organizations. You will also be able to enable automatic deployments to any new accounts added to your organization or OUs. The permissions needed to deploy across accounts will automatically be taken care of by the StackSets service. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Features:This release adds a new setting for a user pool to allow if customer wants their user signup/signin with case insensitive username. The current default setting is case sensitive, and for our next release we will change it to case insensitive. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 Now Supports Tagging Spot Fleet. + +# __2.10.61__ __2020-02-10__ +## __AWS Key Management Service__ + - ### Features + - The ConnectCustomKeyStore API now provides a new error code (SUBNET_NOT_FOUND) for customers to better troubleshoot if their "connect-custom-key-store" operation fails. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Added clarifying information that Amazon DocumentDB shares operational technology with Amazon RDS and Amazon Neptune. + +# __2.10.60__ __2020-02-07__ +## __AWS RoboMaker__ + - ### Features + - This release adds support for simulation job batches + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - Improves discoverability by renaming the table and index interfaces to be consistent with the client interface naming, and by adding operation methods for createTable(), scan() and query(), as applicable. These methods take a request object as parameter. Execute() methods for the index interface is removed since they are no longer needed. + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for RDS: when restoring a DB cluster from a snapshot, must create DB instances + +## __EC2 Image Builder__ + - ### Features + - This version of the SDK includes bug fixes and documentation updates. + +# __2.10.59__ __2020-02-06__ +## __AWS AppSync__ + - ### Features + - AWS AppSync now supports X-Ray + +## __AWS CodeBuild__ + - ### Features + - AWS CodeBuild adds support for Amazon Elastic File Systems + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - In order to make operations more easily discoverable by an IDE, specific operation methods have been added to the enhanced client interface. An operation method takes a corresponding request object as parameter. Meanwhile, the generic execute() method is removed. This change affects only batch and transcribe operations at the database level. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release contains updated text for the GetAuthorizationToken API. + +## __Amazon Elastic Block Store__ + - ### Features + - Documentation updates for EBS direct APIs. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds platform details and billing info to the DescribeImages API. + +## __Amazon Lex Model Building Service__ + - ### Features + - Amazon Lex now supports AMAZON.AlphaNumeric with regular expressions. + +# __2.10.58__ __2020-02-05__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for fine-tuned QVBR quality level. + +## __AWS Ground Station__ + - ### Features + - Adds dataflowEndpointRegion property to DataflowEndpointConfig. The dateCreated, lastUpdated, and tags properties on GetSatellite have been deprecated. + +## __AWS Resource Groups Tagging API__ + - ### Features + - Documentation-only update that adds services to the list of supported services. + +## __AWS SecurityHub__ + - ### Features + - Additional resource types are now supported in the AWS Security Finding Format (ASFF). The following new resource types are added, each having an accompanying resource details object with fields for security finding providers to populate: AwsCodeBuildProject, AwsEc2NetworkInterface, AwsEc2SecurityGroup, AwsElasticsearchDomain, AwsLambdaLayerVersion, AwsRdsDbInstance, and AwsWafWebAcl. The following resource types are added without an accompanying details object: AutoscalingAutoscalingGroup, AwsDynamoDbTable, AwsEc2Eip, AwsEc2Snapshot, AwsEc2Volume, AwsRdsDbSnapshot, AwsRedshiftCluster, and AwsS3Object. The number of allowed resources per finding is increased from 10 to 32. A new field is added in the Compliance object, RelatedRequirements. To learn more, visit our documentation on the ASFF. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Updated the maximum number of tags that can be added to a snapshot using DLM to 45. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release provides support for tagging when you create a VPC endpoint, or VPC endpoint service. + +## __Amazon Forecast Query Service__ + - ### Features + - Documentation updates for Amazon Forecast. + +# __2.10.57__ __2020-02-04__ +## __AWS IoT__ + - ### Features + - Updated ThrottlingException documentation to report that the error code is 400, and not 429, to reflect actual system behaviour. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Storage Gateway__ + - ### Features + - Adding KVM as a support hypervisor + +## __Amazon CloudFront__ + - ### Features + - Documentation updates for CloudFront + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - Changing usage of typed builders for PutItem, UpdateItem and StaticTableSchema to explicitly provide class type. + - Renames top level sync/async MappedDatabase interfaces as DynamoDbEnhancedClient interfaces. Also adds builder definitions to the interfaces together with a static method that returns the default implementation of the builder. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon VPC Flow Logs adds support for 1-minute aggregation intervals. + +## __Amazon S3__ + - ### Bugfixes + - Fixed an issue where fields in `ListObjectVersionsResponse` and `ListMultipartUploadsResponse` are not decoded correctly when encodingType is specified as url. See [#1601](https://github.com/aws/aws-sdk-java-v2/issues/1601) + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This feature ensures that an instance is patched up to the available patches on a particular date. It can be enabled by selecting the 'ApproveUntilDate' option as the auto-approval rule while creating the patch baseline. ApproveUntilDate - The cutoff date for auto approval of released patches. Any patches released on or before this date will be installed automatically. + +## __Amazon WorkMail__ + - ### Features + - This release adds support for tagging Amazon WorkMail organizations. + +## __Managed Streaming for Kafka__ + - ### Features + - This release enables AWS MSK customers to list Apache Kafka versions that are supported on AWS MSK clusters. Also includes changes to expose additional details of a cluster's state in DescribeCluster and ListClusters APIs. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Deliver exceptions to stream channels correctly if there's an exception thrown on connection. This also fixes a bug where publisher signals onComplete if the stream is closed as a result of outbound GOAWAY. + - Throws `IOException` for the race condition where an HTTP2 connection gets reused at the same time it gets inactive so that failed requests can be retried + +# __2.10.56__ __2020-01-24__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports FSx for Windows File Server Locations + +## __AWS OpsWorks CM__ + - ### Features + - AWS OpsWorks for Chef Automate now supports in-place upgrade to Chef Automate 2. Eligible servers can be updated through the management console, CLI and APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon EC2__ + - ### Features + - Adds EC2ThrottledException as a recognized throttling exception to be retried + +## __Amazon EC2 Container Service__ + - ### Features + - This release provides support for tagging Amazon ECS task sets for services using external deployment controllers. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding new error codes for Nodegroups in EKS + +## __Amazon WorkSpaces__ + - ### Features + - Documentation updates for WorkSpaces + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix issue where DNS resolution for a host is only made once for the initial request to the host. If the DNS entries change for a hostname, the client will resolve the new address until the client is closed and recreated. + +# __2.10.55__ __2020-01-23__ +## __AWS Identity and Access Management__ + - ### Features + - This release enables the Identity and Access Management policy simulator to simulate permissions boundary policies. + +## __AWS SDK for Java v2__ + - ### Features + - Added ServiceMetadata.servicePartitions() to get partition metadata for a specific service + - Improved error messages on UnknownHostExceptions + - Updated service endpoint metadata. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - Support for non-blocking asynchronous calling of all mapper operations + +## __Amazon Relational Database Service__ + - ### Features + - This SDK release introduces APIs that automate the export of Amazon RDS snapshot data to Amazon S3. The new APIs include: StartExportTask, CancelExportTask, DescribeExportTasks. These APIs automate the extraction of data from an RDS snapshot and export it to an Amazon S3 bucket. The data is stored in a compressed, consistent, and query-able format. After the data is exported, you can query it directly using tools such as Amazon Athena or Redshift Spectrum. You can also consume the data as part of a data lake solution. If you archive the data in S3 Infrequent Access or Glacier, you can reduce long term data storage costs by applying data lifecycle policies. + +# __2.10.54__ __2020-01-21__ +## __AWS Application Discovery Service__ + - ### Features + - Documentation updates for the AWS Application Discovery Service. + +## __AWS CodePipeline__ + - ### Features + - AWS CodePipeline enables an ability to stop pipeline executions. + +## __AWS IoT Events__ + - ### Features + - Documentation updates for iotcolumbo + +## __AWS Marketplace Commerce Analytics__ + - ### Features + - Remove 4 deprecated data sets, change some data sets available dates to 2017-09-15 + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add an enum value to the result of DescribeByoipCidrs to support CIDRs that are not publicly advertisable. + +## __Netty NIO Http Client__ + - ### Bugfixes + - Fixed a bug where an inactive http2 connection without `GOAWAY` frame received might get reused in a new request, causing `ClosedChannelException` + +# __2.10.53__ __2020-01-20__ +## __AWS Key Management Service__ + - ### Features + - The ConnectCustomKeyStore operation now provides new error codes (USER_LOGGED_IN and USER_NOT_FOUND) for customers to better troubleshoot if their connect custom key store operation fails. Password length validation during CreateCustomKeyStore now also occurs on the client side. + +## __AWS Lambda__ + - ### Features + - Added reason codes to StateReasonCode (InvalidSubnet, InvalidSecurityGroup) and LastUpdateStatusReasonCode (SubnetOutOfIPAddresses, InvalidSubnet, InvalidSecurityGroup) for functions that connect to a VPC. + +## __Alexa For Business__ + - ### Features + - Add support for CreatedTime and ConnectionStatusUpdatedTime in response of SearchDevices API. + +## __Amazon CloudWatch__ + - ### Features + - Updating DescribeAnomalyDetectors API to return AnomalyDetector Status value in response. + +## __Amazon CloudWatch Application Insights__ + - ### Features + - This release adds support for a list API to retrieve the configuration events logged during periodic updates to an application by Amazon CloudWatch Application Insights. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release provides support for a preview of bringing your own IPv6 addresses (BYOIP for IPv6) for use in AWS. + +# __2.10.52__ __2020-01-17__ +## __AWS Batch__ + - ### Features + - This release ensures INACTIVE job definitions are permanently deleted after 180 days. + +## __AWS CloudHSM V2__ + - ### Features + - This release introduces resource-level and tag-based access control for AWS CloudHSM resources. You can now tag CloudHSM backups, tag CloudHSM clusters on creation, and tag a backup as you copy it to another region. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for MP3 audio only outputs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon EC2 Container Service__ + - ### Features + - This release provides a public preview for specifying Amazon EFS file systems as volumes in your Amazon ECS task definitions. + +## __Amazon Neptune__ + - ### Features + - This release includes Deletion Protection for Amazon Neptune databases. + +## __Amazon Redshift__ + - ### Features + - Documentation updates for redshift + +# __2.10.51__ __2020-01-16__ +## __AWS Directory Service__ + - ### Features + - To reduce the number of errors our customers are facing, we have modified the requirements of input parameters for two of Directory Service APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Client VPN now supports Port Configuration for VPN Endpoints, allowing usage of either port 443 or port 1194. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds two new APIs (UpdateWorkforce and DescribeWorkforce) to SageMaker Ground Truth service for workforce IP whitelisting. + +# __2.10.50__ __2020-01-15__ +## __AWS Organizations__ + - ### Features + - Updated description for PolicyID parameter and ConstraintViolationException. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Add support for DescribeStandardsControls and UpdateStandardsControl. These new Security Hub API operations are used to track and manage whether a compliance standards control is enabled. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - General Update to EC2 Docs and SDKs + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Document updates for Patch Manager 'NoReboot' feature. + +## __Amazon Transcribe Service__ + - ### Bugfixes + - Fixed an issue where streaming transcriptions would fail with signature validation errors if the date changed during the request. + +# __2.10.49__ __2020-01-14__ +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for partition placement groups and instance metadata option in Launch Templates + +# __2.10.48__ __2020-01-13__ +## __AWS Backup__ + - ### Features + - Cross-region backup is a new AWS Backup feature that allows enterprises to copy backups across multiple AWS services to different regions. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for the StopInstances API. You can now stop and start an Amazon EBS-backed Spot Instance at will, instead of relying on the Stop interruption behavior to stop your Spot Instances when interrupted. + +## __Amazon Elastic File System__ + - ### Features + - This release adds support for managing EFS file system policies and EFS Access Points. + +## __Amazon S3__ + - ### Bugfixes + - Fixed bug prevent GetBucketBolicy from ever being successful using the asynchronous S3 client. + +# __2.10.47__ __2020-01-10__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + - Updated service endpoints and added global endpoints for iso and iso-b. + +## __AWS Transfer for SFTP__ + - ### Features + - This release introduces a new endpoint type that allows you to attach Elastic IP addresses from your AWS account with your server's endpoint directly and whitelist access to your server by client's internet IP address(es) using VPC Security Groups. + +## __Amazon Chime__ + - ### Features + - Add shared profile support to new and existing users + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release introduces the ability to tag egress only internet gateways, local gateways, local gateway route tables, local gateway virtual interfaces, local gateway virtual interface groups, local gateway route table VPC association and local gateway route table virtual interface group association. You can use tags to organize and identify your resources for cost allocation. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds an operation that enables users to override the system-default SSL/TLS certificate for new Amazon RDS DB instances temporarily, or remove the customer override. + +## __Amazon S3__ + - ### Bugfixes + - Fix an issue where s3#listObjects incorrectly decoded marker field. See [#1574](https://github.com/aws/aws-sdk-java-v2/issues/1574). + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker ListTrialComponents API filter by TrialName and ExperimentName. + +## __Amazon WorkSpaces__ + - ### Features + - Added the migrate feature to Amazon WorkSpaces. + +# __2.10.46__ __2020-01-09__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Increase the priority of the AWS_WEB_IDENTITY_TOKEN_FILE/AWS_ROLE_ARN/AWS_ROLE_SESSION_NAME environment variables when loading credentials so that they are considered before web_identity_token_file/role_arn/role_session_name profile properties. This is consistent with the other AWS SDKs, including the CLI. + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for sts + +## __Amazon CloudWatch Logs__ + - ### Features + - Documentation updates for logs + +## __Amazon S3__ + - ### Features + - Add support for Tagging builder in `CreateMultipartUploadRequest`. See [#1440](https://github.com/aws/aws-sdk-java-v2/issues/1440) + +# __2.10.45__ __2020-01-08__ +## __AWS Cost Explorer Service__ + - ### Features + - Documentation updates for CreateCostCategoryDefinition and UpdateCostCategoryDefinition API + +## __AWS Step Functions__ + - ### Features + - Add sfn specific http configurations. See [#1325](https://github.com/aws/aws-sdk-java-v2/issues/1325) + +## __Amazon EC2__ + - ### Bugfixes + - Fix NPE when calling `CopySnapshot`. Fixes [#1564](https://github.com/aws/aws-sdk-java-v2/issues/1564) + +## __Amazon Translate__ + - ### Features + - This release adds a new family of APIs for asynchronous batch translation service that provides option to translate large collection of text or HTML documents stored in Amazon S3 folder. This service accepts a batch of up to 5 GB in size per API call with each document not exceeding 1 MB size and the number of documents not exceeding 1 million per batch. See documentation for more information. + +## __Firewall Management Service__ + - ### Features + - AWS Firewall Manager now supports tagging, and tag-based access control, of policies. + +# __2.10.44__ __2020-01-07__ +## __AWS CodeBuild__ + - ### Features + - Add encryption key override to StartBuild API in AWS CodeBuild. + +## __AWS Migration Hub__ + - ### Features + - ListApplicationStates API provides a list of all application migration states + +## __AWS X-Ray__ + - ### Features + - Documentation updates for xray + +# __2.10.43__ __2020-01-06__ +## __AWS Elemental MediaPackage__ + - ### Features + - You can now restrict direct access to AWS Elemental MediaPackage by securing requests for live content using CDN authorization. With CDN authorization, content requests require a specific HTTP header and authorization code. + +## __AWS SDK for Java v2__ + - ### Features + - Add `RequestBody.fromRemainingByteBuffer(ByteBuffer)` that copies only the remaining readable bytes of the buffer. See [#1534](https://github.com/aws/aws-sdk-java-v2/issues/1534) + + - ### Bugfixes + - Reduce ReadTimeout and ConnectTimeout for accessing EC2 metadata instance service + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports Multilabel document classification + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release supports service providers configuring a private DNS name for services other than AWS services and services available in the AWS marketplace. This feature allows consumers to access the service using an existing DNS name without making changes to their applications. + +## __Amazon S3__ + - ### Bugfixes + - Requests that return an error response in the body of the HTTP response with a successful (200) status code will now correctly be handled as a failed request by the SDK. + +# __2.10.42__ __2020-01-02__ +## __AWS Cost Explorer Service__ + - ### Features + - Documentation updates for GetReservationUtilization for the Cost Explorer API. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix unmarshalling for models with xml attributes. See [#1488](https://github.com/aws/aws-sdk-java-v2/issues/1488). + +## __Amazon EC2 Container Registry__ + - ### Features + - Adds waiters for ImageScanComplete and LifecyclePolicyPreviewComplete + +## __Amazon Lex Model Building Service__ + - ### Features + - Documentation updates for Amazon Lex. + +## __Amazon Lightsail__ + - ### Features + - This release adds support for Certificate Authority (CA) certificate identifier to managed databases in Amazon Lightsail. + +## __Netty NIO Http Client__ + - ### Bugfixes + - Propagate exception properly when an exception is thrown from protocol initialization. + +# __2.10.41__ __2019-12-23__ +## __AWS Health APIs and Notifications__ + - ### Features + - With this release, you can now centrally aggregate AWS Health events from all accounts in your AWS organization. Visit AWS Health documentation to learn more about enabling and using this feature: https://docs.aws.amazon.com/health/latest/ug/organizational-view-health.html. + +## __Amazon Detective__ + - ### Features + - Updated the documentation for Amazon Detective. + +## __Amazon FSx__ + - ### Features + - This release adds a new family of APIs (create-data-repository-task, describe-data-repository-task, and cancel-data-repository-task) that allow users to perform operations between their file system and its linked data repository. + +# __2.10.40__ __2019-12-20__ +## __AWS Device Farm__ + - ### Features + - Introduced browser testing support through AWS Device Farm + +## __AWS SecurityHub__ + - ### Features + - Additional resource types are now fully supported in the AWS Security Finding Format (ASFF). These resources include AwsElbv2LoadBalancer, AwsKmsKey, AwsIamRole, AwsSqsQueue, AwsLambdaFunction, AwsSnsTopic, and AwsCloudFrontDistribution. Each of these resource types includes an accompanying resource details object with fields for security finding providers to populate. Updates were made to the AwsIamAccessKey resource details object to include information on principal ID and name. To learn more, visit our documentation on the ASFF. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release introduces the ability to tag key pairs, placement groups, export tasks, import image tasks, import snapshot tasks and export image tasks. You can use tags to organize and identify your resources for cost allocation. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Amazon EKS now supports restricting access to the API server public endpoint by applying CIDR blocks + +## __Amazon Pinpoint__ + - ### Features + - This release of the Amazon Pinpoint API introduces versioning support for message templates. + +## __Amazon Redshift__ + - ### Features + - Documentation updates for Amazon Redshift RA3 node types. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds an operation that enables users to specify whether a database is restarted when its SSL/TLS certificate is rotated. Only customers who do not use SSL/TLS should use this operation. + +## __Amazon S3__ + - ### Bugfixes + - Fixed an issue where the SDK would attempt to validate the checksum on a PutObjectRequest when S3 was returning invalid checksums. This would cause all requests to buckets with customer-managed-key service-side encryption to fail. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release updates the attachments support to include AttachmentReference source for Automation documents. + +## __Amazon Transcribe Service__ + - ### Features + - AWS Transcribe now supports vocabulary filtering that allows customers to input words to the service that they don't want to see in the output transcript. + +# __2.10.39__ __2019-12-19__ +## __AWS CodeStar connections__ + - ### Features + - Public beta for Bitbucket Cloud support in AWS CodePipeline through integration with AWS CodeStar connections. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - You can now copy snapshots across regions using Data Lifecycle Manager (DLM). You can enable policies which, along with create, can now also copy snapshots to one or more AWS region(s). Copies can be scheduled for up to three regions from a single policy and retention periods are set for each region separately. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - We are updating the supportedRootDevices field to supportedRootDeviceTypes for DescribeInstanceTypes API to ensure that the actual value is returned, correcting a previous error in the model. + +## __Amazon GameLift__ + - ### Features + - Amazon GameLift now supports ARNs for all key GameLift resources, tagging for GameLift resource authorization management, and updated documentation that articulates GameLift's resource authorization strategy. + +## __Amazon Lex Model Building Service__ + - ### Features + - Amazon Lex now supports conversation logs and slot obfuscation. + +## __Amazon Personalize Runtime__ + - ### Features + - Add context map to get-recommendations and get-personalized-ranking request objects to provide contextual metadata at inference time + +## __Amazon S3__ + - ### Bugfixes + - Fixed an issue where a 'checksum mismatch' error is raised whenever a PutObject request is retried while using an async client. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release allows customers to add tags to Automation execution, enabling them to sort and filter executions in different ways, such as by resource, purpose, owner, or environment. + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe supports job queuing for the StartTranscriptionJob API. + +## __Netty NIO HTTP Client__ + - ### Features + - `SETTINGS_INITIAL_WINDOW_SIZE` is now configurable on HTTP/2 connections opened by the Netty client using `Http2Configuration#initialWindowSize(Integer)` along with `NettyNioAsyncHttpClient.Builder#http2Configuration(Http2Configuration)`. See https://tools.ietf.org/html/rfc7540#section-6.5.2 for more information. + +# __2.10.38__ __2019-12-18__ +## __AWS OpsWorks CM__ + - ### Features + - AWS OpsWorks CM now supports tagging, and tag-based access control, of servers and backups. + +## __AWS Resource Groups Tagging API__ + - ### Features + - Documentation updates for resourcegroupstaggingapi + +## __Amazon CloudFront__ + - ### Features + - Documentation updates for CloudFront + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release introduces the ability to tag Elastic Graphics accelerators. You can use tags to organize and identify your accelerators for cost allocation. + +## __Amazon Simple Storage Service__ + - ### Features + - Updates Amazon S3 endpoints allowing you to configure your client to opt-in to using S3 with the us-east-1 regional endpoint, instead of global. + +# __2.10.37__ __2019-12-17__ +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports HLS ID3 segment tagging, HLS redundant manifests for CDNs that support different publishing/viewing endpoints, fragmented MP4 (fMP4), and frame capture intervals specified in milliseconds. + +## __AWS IoT__ + - ### Features + - Added a new Over-the-Air (OTA) Update feature that allows you to use different, or multiple, protocols to transfer an image from the AWS cloud to IoT devices. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation updates for Amazon ECS. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Amazon EC2 + +## __Amazon Kinesis Analytics__ + - ### Features + - Kinesis Data Analytics service now supports running Java applications using Flink 1.8. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Added support for Cloud Watch Output and Document Version to the Run Command tasks in Maintenance Windows. + +# __2.10.36__ __2019-12-16__ +## __AWS Comprehend Medical__ + - ### Features + - New Ontology linking APIs will provides medication concepts normalization and Diagnoses codes from input text. In this release we will provide two APIs - RxNorm and ICD10-CM. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - You can now configure your EC2 Fleet to preferentially use EC2 Capacity Reservations for launching On-Demand instances, enabling you to fully utilize the available (and unused) Capacity Reservations before launching On-Demand instances on net new capacity. + +## __Amazon S3__ + - ### Features + - CopyObjectRequest now has `destinationBucket` and `destinationKey` properties for clarity. + The existing names, `bucket` and `key`, are deprecated. + +## __AmazonMQ__ + - ### Features + - Amazon MQ now supports throughput-optimized message brokers, backed by Amazon EBS. + +# __2.10.35__ __2019-12-13__ +## __AWS CodeBuild__ + - ### Features + - CodeBuild adds support for cross account + +## __Amazon Detective__ + - ### Features + - This is the initial release of Amazon Detective. + +## __Amazon Simple Email Service__ + - ### Features + - Added the ability to use your own public-private key pair to configure DKIM authentication for a domain identity. + +# __2.10.34__ __2019-12-12__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixing exception using `RequestBody.fromInputStream` on non-resettable `InputStreams` by making `reset` conditional on `markSupported`. See [#1544](https://github.com/aws/aws-sdk-java-v2/issues/1544) / [#1545](https://github.com/aws/aws-sdk-java-v2/issues/1545) + +## __Access Analyzer__ + - ### Features + - This release includes improvements and fixes bugs for the IAM Access Analyzer feature. + +# __2.10.33__ __2019-12-11__ +## __AWS SDK for Java v2__ + - ### Features + - Adds a `has*` method to requests and responses that have a List or Map property. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release allows customers to attach multiple Elastic Inference Accelerators to a single EC2 instance. It adds support for a Count parameter for each Elastic Inference Accelerator type you specify on the RunInstances and LaunchTemplate APIs. + +# __2.10.32__ __2019-12-10__ +## __AWSKendraFrontendService__ + - ### Features + - 1. Adding DocumentTitleFieldName as an optional configuration for SharePoint. 2. updating s3 object pattern to support all s3 keys. + +# __2.10.31__ __2019-12-09__ +## __AWS Key Management Service__ + - ### Features + - The Verify operation now returns KMSInvalidSignatureException on invalid signatures. The Sign and Verify operations now return KMSInvalidStateException when a request is made against a CMK pending deletion. + +## __Amazon QuickSight__ + - ### Features + - Documentation updates for QuickSight + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Adds the SSM GetCalendarState API and ChangeCalendar SSM Document type. These features enable the forthcoming Systems Manager Change Calendar feature, which will allow you to schedule events during which actions should (or should not) be performed. + +## __Managed Streaming for Kafka__ + - ### Features + - AWS MSK has added support for Open Monitoring with Prometheus. + +## __Netty NIO HTTP Client__ + - ### Features + - Close HTTP/2 connections if they have had 0 streams for 5 seconds. This can be disabled using `useIdleConnectionReaper(false)` or have the time period adjusted using `connectionMaxIdleTime(...)` on the `NettyNioAsyncHttpClient.Builder`. + - Periodically ping HTTP/2 connections and close them if the service does not respond. The ping periodicity and timeout time is not currently configurable. + +# __2.10.30__ __2019-12-04__ +## __Amazon Kinesis Video Signaling Channels__ + - ### Features + - Announcing support for WebRTC in Kinesis Video Streams, as fully managed capability. You can now use simple APIs to enable your connected devices, web, and mobile apps with real-time two-way media streaming capabilities. + +## __Amazon Kinesis Video Streams__ + - ### Features + - Introduces management of signaling channels for Kinesis Video Streams. + +## __AmazonApiGatewayV2__ + - ### Features + - Amazon API Gateway now supports HTTP APIs (beta), enabling customers to quickly build high performance RESTful APIs that are up to 71% cheaper than REST APIs also available from API Gateway. HTTP APIs are optimized for building APIs that proxy to AWS Lambda functions or HTTP backends, making them ideal for serverless workloads. Using HTTP APIs, you can secure your APIs using OIDC and OAuth 2 out of box, quickly build web applications using a simple CORS experience, and get started immediately with automatic deployment and simple create workflows. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fixed an issue where closing the last stream on a connection that had been closed or received a GOAWAY did not close the connection. + - Fixed an issue where receiving a GOAWAY that would cause the closing of all streams could cause all outstanding streams to be completed successfully instead of exceptionally. + +# __2.10.29__ __2019-12-03__ +## __AWS Lambda__ + - ### Features + - - Added the ProvisionedConcurrency type and operations. Allocate provisioned concurrency to enable your function to scale up without fluctuations in latency. Use PutProvisionedConcurrencyConfig to configure provisioned concurrency on a version of a function, or on an alias. + +## __AWS Step Functions__ + - ### Features + - This release of the AWS Step Functions SDK introduces support for Express Workflows. + +## __Amazon Elastic Block Store__ + - ### Features + - This release introduces the EBS direct APIs for Snapshots: 1. ListSnapshotBlocks, which lists the block indexes and block tokens for blocks in an Amazon EBS snapshot. 2. ListChangedBlocks, which lists the block indexes and block tokens for blocks that are different between two snapshots of the same volume/snapshot lineage. 3. GetSnapshotBlock, which returns the data in a block of an Amazon EBS snapshot. + +## __Amazon Rekognition__ + - ### Features + - This SDK Release introduces APIs for Amazon Rekognition Custom Labels feature (CreateProjects, CreateProjectVersion,DescribeProjects, DescribeProjectVersions, StartProjectVersion, StopProjectVersion and DetectCustomLabels). Also new is AugmentedAI (Human In The Loop) Support for DetectModerationLabels in Amazon Rekognition. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for the Amazon RDS Proxy + +## __Amazon S3__ + - ### Bugfixes + - Interacting with an access point in a different region to the one the S3 client is configured for will no longer result in the request being signed for the wrong region and rejected by S3. + +## __Amazon SageMaker Service__ + - ### Features + - You can now use SageMaker Autopilot for automatically training and tuning candidate models using a combination of various feature engineering, ML algorithms, and hyperparameters determined from the user's input data. SageMaker Automatic Model Tuning now supports tuning across multiple algorithms. With Amazon SageMaker Experiments users can create Experiments, ExperimentTrials, and ExperimentTrialComponents to track, organize, and evaluate their ML training jobs. With Amazon SageMaker Debugger, users can easily debug training jobs using a number of pre-built rules provided by Amazon SageMaker, or build custom rules. With Amazon SageMaker Processing, users can run on-demand, distributed, and fully managed jobs for data pre- or post- processing or model evaluation. With Amazon SageMaker Model Monitor, a user can create MonitoringSchedules to automatically monitor endpoints to detect data drift and other issues and get alerted on them. This release also includes the preview version of Amazon SageMaker Studio with Domains, UserProfiles, and Apps. This release also includes the preview version of Amazon Augmented AI to easily implement human review of machine learning predictions by creating FlowDefinitions, HumanTaskUis, and HumanLoops. + +## __Application Auto Scaling__ + - ### Features + - This release supports auto scaling of provisioned concurrency for AWS Lambda. + +# __2.10.28__ __2019-12-03__ +## __AWS Compute Optimizer__ + - ### Features + - Initial release of AWS Compute Optimizer. AWS Compute Optimizer recommends optimal AWS Compute resources to reduce costs and improve performance for your workloads. + +## __AWS Network Manager__ + - ### Features + - This is the initial SDK release for AWS Network Manager. + +## __AWS Outposts__ + - ### Features + - This is the initial release for AWS Outposts, a fully managed service that extends AWS infrastructure, services, APIs, and tools to customer sites. AWS Outposts enables you to launch and run EC2 instances and EBS volumes locally at your on-premises location. This release introduces new APIs for creating and viewing Outposts. + +## __AWS S3 Control__ + - ### Features + - Amazon S3 Access Points is a new S3 feature that simplifies managing data access at scale for shared data sets on Amazon S3. Access Points provide a customizable way to access the objects in a bucket, with a unique hostname and access policy that enforces the specific permissions and network controls for any request made through the access point. This represents a new way of provisioning access to shared data sets. + +## __AWSKendraFrontendService__ + - ### Features + - It is a preview launch of Amazon Kendra. Amazon Kendra is a managed, highly accurate and easy to use enterprise search service that is powered by machine learning. + +## __Amazon Augmented AI Runtime__ + - ### Features + - This release adds support for Amazon Augmented AI, which makes it easy to build workflows for human review of machine learning predictions. + +## __Amazon CodeGuru Profiler__ + - ### Features + - (New Service) Amazon CodeGuru Profiler analyzes application CPU utilization and latency characteristics to show you where you are spending the most cycles in your application. This analysis is presented in an interactive flame graph that helps you easily understand which paths consume the most resources, verify that your application is performing as expected, and uncover areas that can be optimized further. + +## __Amazon CodeGuru Reviewer__ + - ### Features + - This is the preview release of Amazon CodeGuru Reviewer. + +## __Amazon EC2 Container Service__ + - ### Features + - This release supports ECS Capacity Providers, Fargate Spot, and ECS Cluster Auto Scaling. These features enable new ways for ECS to manage compute capacity used by tasks. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for the following features: 1. An option to enable acceleration for Site-to-Site VPN connections; 2. Inf1 instances featuring up to 16 AWS Inferentia chips; 3. The ability to associate route tables with internet gateways and virtual private gateways; 4. AWS Local Zones that place compute, storage, database, and other select services; 5. Launching and viewing EC2 instances and EBS volumes running locally in Outposts; 6. Peering Transit Gateways between regions simplifying creation of secure and private global networks on AWS; 7. Transit Gateway Multicast, enabling multicast routing within and between VPCs using Transit Gateway as a multicast router. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Introducing Amazon EKS with Fargate. Customers can now use Amazon EKS to launch pods directly onto AWS Fargate, the serverless compute engine built for containers on AWS. + +## __Amazon Elasticsearch Service__ + - ### Features + - UltraWarm storage provides a cost-effective way to store large amounts of read-only data on Amazon Elasticsearch Service. Rather than attached storage, UltraWarm nodes use Amazon S3 and a sophisticated caching solution to improve performance. For indices that you are not actively writing to and query less frequently, UltraWarm storage offers significantly lower costs per GiB. In Elasticsearch, these warm indices behave just like any other index. You can query them using the same APIs or use them to create dashboards in Kibana. + +## __Amazon Fraud Detector__ + - ### Features + - Amazon Fraud Detector is a fully managed service that makes it easy to identify potentially fraudulent online activities such as online payment fraud and the creation of fake accounts. Amazon Fraud Detector uses your data, machine learning (ML), and more than 20 years of fraud detection expertise from Amazon to automatically identify potentially fraudulent online activity so you can catch more fraud faster. + +## __Amazon Simple Storage Service__ + - ### Features + - Amazon S3 Access Points is a new S3 feature that simplifies managing data access at scale for shared data sets on Amazon S3. Access Points provide a customizable way to access the objects in a bucket, with a unique hostname and access policy that enforces the specific permissions and network controls for any request made through the access point. This represents a new way of provisioning access to shared data sets. + +## __Amazon Textract__ + - ### Features + - This SDK Release introduces Amazon Augmented AI support for Amazon Textract AnalyzeDocument API. Image byte payloads for synchronous operations have increased from 5 MB to 10 MB. + +# __2.10.27__ __2019-12-02__ +## __Access Analyzer__ + - ### Features + - Introducing AWS IAM Access Analyzer, an IAM feature that makes it easy for AWS customers to ensure that their resource-based policies provide only the intended access to resources outside their AWS accounts. + +# __2.10.26__ __2019-12-02__ +## __AWS License Manager__ + - ### Features + - AWS License Manager now automates discovery of bring-your-own-license usage across the customers organization. With few simple settings, customers can add bring your own license product information along with licensing rules, which would enable License Manager to automatically track the instances that have the specified products installed. If License Manager detects any violation of licensing rules, it would notify the customers designated license administrator to take corrective action. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Features + - Write operations (put, get, delete) now support 'conditionExpression' + +## __Amazon Elastic Compute Cloud__ + - ### Features + - AWS now provides a new BYOL experience for software licenses, such as Windows and SQL Server, that require a dedicated physical server. You can now enjoy the flexibility and cost effectiveness of using your own licenses on Amazon EC2 Dedicated Hosts, but with the simplicity, resiliency, and elasticity of AWS. You can specify your Dedicated Host management preferences, such as host allocation, host capacity utilization, and instance placement in AWS License Manager. Once set up, AWS takes care of these administrative tasks on your behalf, so that you can seamlessly launch virtual machines (instances) on Dedicated Hosts just like you would launch an EC2 instance with AWS provided licenses. + +## __EC2 Image Builder__ + - ### Features + - This is the first release of EC2 Image Builder, a service that provides a managed experience for automating the creation of EC2 AMIs. + +## __Schemas__ + - ### Features + - This release introduces support for Amazon EventBridge schema registry, making it easy to discover and write code for events in EventBridge. + +# __2.10.25__ __2019-11-26__ +## __AWS Directory Service__ + - ### Features + - This release will introduce optional encryption over LDAP network traffic using SSL certificates between customer's self-managed AD and AWS Directory Services instances. The release also provides APIs for Certificate management. + +## __AWS Kinesis__ + - ### Bugfixes + - Reducing default read timeout and write timeout to 10 seconds for Kinesis client. + +## __AWS MediaTailor__ + - ### Features + - AWS Elemental MediaTailor SDK now allows configuration of the Live Pre-Roll feature for HLS and DASH streams. + +## __AWS Organizations__ + - ### Features + - Introduces the DescribeEffectivePolicy action, which returns the contents of the policy that's in effect for the account. + +## __AWS RDS DataService__ + - ### Features + - Type hints to improve handling of some specific parameter types (date/time, decimal etc) for ExecuteStatement and BatchExecuteStatement APIs + +## __AWS Resource Groups Tagging API__ + - ### Features + - You can use tag policies to help standardize on tags across your organization's resources. + +## __AWSServerlessApplicationRepository__ + - ### Features + - AWS Serverless Application Repository now supports verified authors. Verified means that AWS has made a good faith review, as a reasonable and prudent service provider, of the information provided by the requester and has confirmed that the requester's identity is as claimed. + +## __Amazon Cognito Identity Provider__ + - ### Features + - This release adds a new setting for a user pool to configure which recovery methods a user can use to recover their account via the forgot password operation. + +## __Amazon DynamoDB__ + - ### Features + - 1) Amazon Contributor Insights for Amazon DynamoDB is a diagnostic tool for identifying frequently accessed keys and understanding database traffic trends. 2) Support for displaying new fields when a table's encryption state is Inaccessible or the table have been Archived. + +## __Amazon Elastic Inference__ + - ### Features + - Amazon Elastic Inference allows customers to attach Elastic Inference Accelerators to Amazon EC2 and Amazon ECS tasks, thus providing low-cost GPU-powered acceleration and reducing the cost of running deep learning inference. This release allows customers to add or remove tags for their Elastic Inference Accelerators. + +## __Amazon QuickSight__ + - ### Features + - Documentation updates for QuickSight + +## __Amazon WorkSpaces__ + - ### Features + - For the WorkspaceBundle API, added the image identifier and the time of the last update. + +## __Netty NIO HTTP Client__ + - ### Features + - Detect unhealthy http2 connections when read or write times out by sending PING frames + +# __2.10.24__ __2019-11-25__ +## __AWS CodeBuild__ + - ### Features + - CodeBuild adds support for test reporting + +## __AWS Cost Explorer Service__ + - ### Features + - This launch provides customers with access to Cost Category Public Beta APIs. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for 8K outputs and support for QuickTime Animation Codec (RLE) inputs. + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports the ability to create a multiple program transport stream (MPTS). + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - Adds a domain name to PackagingGroups, representing the fully qualified domain name for Assets created in the group. + +## __AWS Greengrass__ + - ### Features + - IoT Greengrass supports machine learning resources in 'No container' mode. + +## __AWS IoT__ + - ### Features + - This release adds: 1) APIs for fleet provisioning claim and template, 2) endpoint configuration and custom domains, 3) support for enhanced custom authentication, d) support for 4 additional audit checks: Device and CA certificate key quality checks, IoT role alias over-permissive check and IoT role alias access to unused services check, 5) extended capability of AWS IoT Rules Engine to support IoT SiteWise rule action. The IoT SiteWise rule action lets you send messages from IoT sensors and applications to IoT SiteWise asset properties + +## __AWS IoT Secure Tunneling__ + - ### Features + - This release adds support for IoT Secure Tunneling to remote access devices behind restricted firewalls. + +## __AWS Key Management Service__ + - ### Features + - AWS Key Management Service (KMS) now enables creation and use of asymmetric Customer Master Keys (CMKs) and the generation of asymmetric data key pairs. + +## __AWS Lambda__ + - ### Features + - Added the function state and update status to the output of GetFunctionConfiguration and other actions. Check the state information to ensure that a function is ready before you perform operations on it. Functions take time to become ready when you connect them to a VPC.Added the EventInvokeConfig type and operations to configure error handling options for asynchronous invocation. Use PutFunctionEventInvokeConfig to configure the number of retries and the maximum age of events when you invoke the function asynchronously.Added on-failure and on-success destination settings for asynchronous invocation. Configure destinations to send an invocation record to an SNS topic, an SQS queue, an EventBridge event bus, or a Lambda function.Added error handling options to event source mappings. This enables you to configure the number of retries, configure the maximum age of records, or retry with smaller batches when an error occurs when a function processes a Kinesis or DynamoDB stream.Added the on-failure destination setting to event source mappings. This enables you to send discarded events to an SNS topic or SQS queue when all retries fail or when the maximum record age is exceeded when a function processes a Kinesis or DynamoDB stream.Added the ParallelizationFactor option to event source mappings to increase concurrency per shard when a function processes a Kinesis or DynamoDB stream. + +## __AWS Resource Access Manager__ + - ### Features + - AWS RAM provides new APIs to view the permissions granted to principals in a resource share. This release also creates corresponding resource shares for supported services that use resource policies, as well as an API to promote them to standard shares that can be managed in RAM. + +## __AWS WAFV2__ + - ### Features + - This release introduces new set of APIs ("wafv2") for AWS WAF. Major changes include single set of APIs for creating/updating resources in global and regional scope, and rules are configured directly into web ACL instead of being referenced. The previous APIs ("waf" and "waf-regional") are now referred as AWS WAF Classic. For more information visit: https://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html + +## __Alexa For Business__ + - ### Features + - API update for Alexa for Business: This update enables the use of meeting room configuration that can be applied to a room profile. These settings help improve and measure utilization on Alexa for Business enabled rooms. New features include end meeting reminders, intelligent room release and room utilization analytics report. + +## __Amazon AppConfig__ + - ### Features + - Introducing AWS AppConfig, a new service that enables customers to quickly deploy validated configurations to applications of any size in a controlled and monitored fashion. + +## __Amazon Athena__ + - ### Features + - This release adds additional query lifecycle metrics to the QueryExecutionStatistics object in GetQueryExecution response. + +## __Amazon CloudWatch__ + - ### Features + - This release adds a new feature called "Contributor Insights". "Contributor Insights" supports the following 6 new APIs (PutInsightRule, DeleteInsightRules, EnableInsightRules, DisableInsightRules, DescribeInsightRules and GetInsightRuleReport). + +## __Amazon CloudWatch Application Insights__ + - ### Features + - CloudWatch Application Insights for .NET and SQL Server includes the follwing features: -Tagging Create and manage tags for your applications.-Custom log pattern matching. Define custom log patterns to be detected and monitored.-Resource-level permissions. Specify applications users can access. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Amazon Cognito Userpools now supports Sign in with Apple as an Identity Provider. + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports real-time analysis with Custom Classification + +## __Amazon Data Lifecycle Manager__ + - ### Features + - You can now set time based retention policies on Data Lifecycle Manager. With this launch, DLM allows you to set snapshot retention period in the following interval units: days, weeks, months and years. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds two new APIs: 1. ModifyDefaultCreditSpecification, which allows you to set default credit specification at the account level per AWS Region, per burstable performance instance family, so that all new burstable performance instances in the account launch using the new default credit specification. 2. GetDefaultCreditSpecification, which allows you to get current default credit specification per AWS Region, per burstable performance instance family. This release also adds new client exceptions for StartInstances and StopInstances. + +## __Amazon Kinesis Analytics__ + - ### Features + - Kinesis Data Analytics service adds support to configure Java applications to access resources in a VPC. Also releasing support to configure Java applications to set allowNonRestoreState flag through the service APIs. + +## __Amazon Lex Runtime Service__ + - ### Features + - Amazon Lex adds "sessionId" attribute to the PostText and PostContent response. + +## __Amazon Redshift__ + - ### Features + - This release contains changes for 1. Redshift Scheduler 2. Update to the DescribeNodeConfigurationOptions to include a new action type recommend-node-config + +## __Amazon Relational Database Service__ + - ### Features + - Cluster Endpoints can now be tagged by using --tags in the create-db-cluster-endpoint API + +## __Amazon Simple Email Service__ + - ### Features + - This release includes support for automatically suppressing email addresses that result in hard bounce or complaint events at the account level, and for managing addresses on this account-level suppression list. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - AWS Systems Manager Documents now supports more Document Types: ApplicationConfiguration, ApplicationConfigurationSchema and DeploymentStrategy. This release also extends Document Permissions capabilities and introduces a new Force flag for DeleteDocument API. + +## __Application Auto Scaling__ + - ### Features + - This release supports auto scaling of document classifier endpoints for Comprehend; and supports target tracking based on the average capacity utilization metric for AppStream 2.0 fleets. + +## __Elastic Load Balancing__ + - ### Features + - This release of Elastic Load Balancing V2 adds new subnet features for Network Load Balancers and a new routing algorithm for Application Load Balancers. + +# __2.10.23__ __2019-11-22__ +## __AWS Auto Scaling Plans__ + - ### Features + - Update default endpoint for AWS Auto Scaling. + +## __AWS Certificate Manager__ + - ### Features + - This release adds support for Tag-Based IAM for AWS Certificate Manager and adding tags to certificates upon creation. + +## __AWS CodeBuild__ + - ### Features + - Add Canonical ARN to LogsLocation. + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - Includes the submission time of Asset ingestion request in the API response for Create/List/Describe Assets. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - The ProcessCredentialsProvider now supports credential files up to 64 KB by default through an increase of the processOutputLimit from 1024 bytes to 64000 bytes. + +## __AWS Security Token Service__ + - ### Features + - Support tagging for STS sessions and tag based access control for the STS APIs + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds two new APIs (DescribeInstanceTypes and DescribeInstanceTypeOfferings) that give customers access to instance type attributes and regional and zonal offerings. + +## __Amazon Elastic MapReduce__ + - ### Features + - Amazon EMR adds support for concurrent step execution and cancelling running steps. Amazon EMR has added a new Outpost ARN field in the ListCluster and DescribeCluster API responses that is populated for clusters launched in an AWS Outpost subnet. + +## __Amazon Forecast Service__ + - ### Features + - This release adds two key updates to existing APIs. 1. Amazon Forecast can now generate forecasts in any quantile using the optional parameter forecastTypes in the CreateForecast API and 2. You can get additional details (metrics and relevant error messages) on your AutoML runs using the DescribePredictor and GetAccuracyMetrics APIs. + +## __Amazon Rekognition__ + - ### Features + - This release adds enhanced face filtering support to the IndexFaces API operation, and introduces face filtering for CompareFaces and SearchFacesByImage API operations. + +## __Amazon Simple Notification Service__ + - ### Features + - Added documentation for the dead-letter queue feature. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Add RebootOption and LastNoRebootInstallOperationTime for DescribeInstancePatchStates and DescribeInstancePatchStatesForPatchGroup API + +## __Application Auto Scaling__ + - ### Features + - Update default endpoint for Application Auto Scaling. + +# __2.10.22__ __2019-11-21__ +## __AWS Amplify__ + - ### Features + - This release of AWS Amplify Console introduces support for backend environments. Backend environments are containers for AWS deployments. Each environment is a collection of AWS resources. + +## __AWS AppSync__ + - ### Features + - AppSync: AWS AppSync now supports the ability to add, configure, and maintain caching for your AWS AppSync GraphQL API. + +## __AWS Config__ + - ### Features + - AWS Config launches Custom Configuration Items. A new feature which allows customers to publish resource configuration for third-party resources, custom, or on-premises servers. + +## __AWS Glue__ + - ### Features + - This release adds support for Glue 1.0 compatible ML Transforms. + +## __AWSMarketplace Metering__ + - ### Features + - Documentation updates for the AWS Marketplace Metering Service. + +## __Amazon Connect Participant Service__ + - ### Features + - This release adds 5 new APIs: CreateParticipantConnection, DisconnectParticipant, GetTranscript, SendEvent, and SendMessage. For Amazon Connect chat, you can use them to programmatically perform participant actions on the configured Amazon Connect instance. Learn more here: https://docs.aws.amazon.com/connect-participant/latest/APIReference/Welcome.html + +## __Amazon Connect Service__ + - ### Features + - This release adds a new API: StartChatContact. You can use it to programmatically start a chat on the specified Amazon Connect instance. Learn more here: https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html + +## __Amazon DynamoDB__ + - ### Features + - With this release, you can convert an existing Amazon DynamoDB table to a global table by adding replicas in other AWS Regions. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for attaching AWS License Manager Configurations to Amazon Machine Image (AMI) using ImportImage API; and adds support for running different instance sizes on EC2 Dedicated Hosts + +## __Amazon Lex Model Building Service__ + - ### Features + - Amazon Lex now supports Sentiment Analysis + +## __Amazon Lex Runtime Service__ + - ### Features + - Amazon Lex now supports Sentiment Analysis + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - The release contains new API and API changes for AWS Systems Manager Explorer product. + +## __Amazon Transcribe Service__ + - ### Features + - With this release, Amazon Transcribe now supports transcriptions from audio sources in Hebrew (he-IL), Swiss German (de-CH), Japanese (ja-JP), Turkish (tr-TR), Arabic-Gulf (ar-AE), Malay (ms-MY), Telugu (te-IN) + +# __2.10.21__ __2019-11-20__ +## __AWS Application Discovery Service__ + - ### Features + - New exception type for use with Migration Hub home region + +## __AWS CloudTrail__ + - ### Features + - 1. This release adds two new APIs, GetInsightSelectors and PutInsightSelectors, which let you configure CloudTrail Insights event delivery on a trail. An Insights event is a new type of event that is generated when CloudTrail detects unusual activity in your AWS account. In this release, only "ApiCallRateInsight" is a supported Insights event type. 2. This release also adds the new "ExcludeManagementEventSource" option to the existing PutEventSelectors API. This field currently supports only AWS Key Management Services. + +## __AWS CodeCommit__ + - ### Features + - This release adds support for creating pull request approval rules and pull request approval rule templates in AWS CodeCommit. This allows developers to block merges of pull requests, contingent on the approval rules being satisfiied. + +## __AWS DataSync__ + - ### Features + - Update to configure task to run periodically on a schedule + +## __AWS Elemental MediaStore__ + - ### Features + - This release fixes a broken link in the SDK documentation. + +## __AWS Migration Hub__ + - ### Features + - New exception type for use with Migration Hub home region + +## __AWS Migration Hub Config__ + - ### Features + - AWS Migration Hub Config Service allows you to get and set the Migration Hub home region for use with AWS Migration Hub and Application Discovery Service + +## __AWS Storage Gateway__ + - ### Features + - The new DescribeAvailabilityMonitorTest API provides the results of the most recent High Availability monitoring test. The new StartAvailabilityMonitorTest API verifies the storage gateway is configured for High Availability monitoring. The new ActiveDirectoryStatus response element has been added to the DescribeSMBSettings and JoinDomain APIs to indicate the status of the gateway after the most recent JoinDomain operation. The new TimeoutInSeconds parameter of the JoinDomain API allows for the configuration of the timeout in which the JoinDomain operation must complete. + +## __Amazon Chime__ + - ### Features + - Adds APIs to create and manage meeting session resources for the Amazon Chime SDK + +## __Amazon Data Lifecycle Manager__ + - ### Features + - DLM now supports Fast Snapshot Restore. You can enable Fast Restore on snapshots created by DLM, provide the AZs and the number of snapshots to be enabled with this capability. + +## __Amazon EC2 Container Service__ + - ### Features + - Added support for CPU and memory task-level overrides on the RunTask and StartTask APIs. Added location information to Tasks. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release of Amazon Elastic Compute Cloud (Amazon EC2) introduces support for Amazon Elastic Block Store (Amazon EBS) fast snapshot restores. + - Upgrades to Instance Metadata Service version 2 (IMDS v2). With IMDS v2, a session token is used to make requests for EC2 instance metadata and credentials. + +## __Amazon FSx__ + - ### Features + - Announcing a Multi-AZ deployment type for Amazon FSx for Windows File Server, providing fully-managed Windows file storage with high availability and redundancy across multiple AWS Availability Zones. + +## __Amazon Kinesis Firehose__ + - ### Features + - With this release, Amazon Kinesis Data Firehose allows server side encryption with customer managed CMKs. Customer managed CMKs ( "Customer Master Keys") are AWS Key Management Service (KMS) keys that are fully managed by the customer. With customer managed CMKs, customers can establish and maintain their key policies, IAM policies, rotating policies and add tags. For more information about AWS KMS and CMKs, please refer to: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html. Please refer to the following link to create CMKs: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html + +## __Amazon QuickSight__ + - ### Features + - Amazon QuickSight now supports programmatic creation and management of data sources, data sets, dashboards and templates with new APIs. Templates hold dashboard metadata, and can be used to create copies connected to the same or different dataset as required. Also included in this release are APIs for SPICE ingestions, fine-grained access control over AWS resources using AWS Identity and Access Management (IAM) policies, as well AWS tagging. APIs are supported for both Standard and Enterprise Edition, with edition-specific support for specific functionality. + +## __Amazon Simple Storage Service__ + - ### Features + - This release introduces support for Amazon S3 Replication Time Control, a new feature of S3 Replication that provides a predictable replication time backed by a Service Level Agreement. S3 Replication Time Control helps customers meet compliance or business requirements for data replication, and provides visibility into the replication process with new Amazon CloudWatch Metrics. + +## __Amazon Transcribe Service__ + - ### Features + - With this release Amazon Transcribe enables alternative transcriptions so that you can see different interpretations of transcribed audio. + +# __2.10.20__ __2019-11-19__ +## __AWS CloudFormation__ + - ### Features + - This release of AWS CloudFormation StackSets enables users to detect drift on a stack set and the stack instances that belong to that stack set. + +## __AWS CodeBuild__ + - ### Features + - Add support for ARM and GPU-enhanced build environments and a new SSD-backed Linux compute type with additional CPU and memory in CodeBuild + +## __AWS Config__ + - ### Features + - AWSConfig launches support for conformance packs. A conformance pack is a new resource type that allows you to package a collection of Config rules and remediation actions into a single entity. You can create and deploy conformance packs into your account or across all accounts in your organization + +## __AWS Identity and Access Management__ + - ### Features + - IAM reports the timestamp when a role's credentials were last used to make an AWS request. This helps you identify unused roles and remove them confidently from your AWS accounts. + +## __AWS IoT__ + - ### Features + - As part of this release, we are extending the capability of AWS IoT Rules Engine to send messages directly to customer's own web services/applications. Customers can now create topic rules with HTTP actions to route messages from IoT Core directly to URL's that they own. Ownership is proved by creating and confirming topic rule destinations. + +## __AWS Lambda__ + - ### Features + - This release provides three new runtimes to support Node.js 12 (initially 12.13.0), Python 3.8 and Java 11. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for RunInstances to specify the metadata options for new instances; adds a new API, ModifyInstanceMetadataOptions, which lets you modify the metadata options for a running or stopped instance; and adds support for CreateCustomerGateway to specify a device name. + +## __Auto Scaling__ + - ### Features + - Amazon EC2 Auto Scaling now supports Instance Weighting and Max Instance Lifetime. Instance Weighting allows specifying the capacity units for each instance type included in the MixedInstancesPolicy and how they would contribute to your application's performance. Max Instance Lifetime allows specifying the maximum length of time that an instance can be in service. If any instances are approaching this limit, Amazon EC2 Auto Scaling gradually replaces them. + +## __Elastic Load Balancing__ + - ### Features + - This release allows forward actions on Application Load Balancers to route requests to multiple target groups, based on the weight you specify for each target group. + +# __2.10.19__ __2019-11-18__ +## __AWS CloudFormation__ + - ### Features + - This release introduces APIs for the CloudFormation Registry, a new service to submit and discover resource providers with which you can manage third-party resources natively in CloudFormation. + +## __AWS Cost Explorer Service__ + - ### Features + - add EstimatedOnDemandCostWithCurrentCommitment to GetSavingsPlansPurchaseRecommendationRequest API + +## __Amazon Pinpoint__ + - ### Features + - This release of the Amazon Pinpoint API introduces support for using and managing message templates for messages that are sent through the voice channel. It also introduces support for specifying default values for message variables in message templates. + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for rds + +## __Amazon SageMaker Runtime__ + - ### Features + - Amazon SageMaker Runtime now supports a new TargetModel header to invoke a specific model hosted on multi model endpoints. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker now supports multi-model endpoints to host multiple models on an endpoint using a single inference container. + +## __Amazon Simple Storage Service__ + - ### Features + - Added support for S3 Replication for existing objects. This release allows customers who have requested and been granted access to replicate existing S3 objects across buckets. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - The release contains new API and API changes for AWS Systems Manager Explorer product. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Update default connectionMaxIdleTimeout of NettyNioAsyncClient to 5 seconds + +# __2.10.18__ __2019-11-15__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for DolbyVision encoding, and SCTE35 & ESAM insertion to DASH ISO EMSG. + +## __AWS SDK for Java v2__ + - ### Features + - When SdkException or one of its children is created without a 'message', inherit the message from the exception 'cause' (if any). This should reduce the chance of an exception being raised by the SDK with a null message. + +## __Amazon Chime__ + - ### Features + - This release adds support for Chime Room Management APIs + +## __Amazon CloudWatch Logs__ + - ### Features + - Documentation updates for logs + +## __Amazon Cognito Identity Provider__ + - ### Features + - This release adds a new option in the User Pool to allow specifying sender's name in the emails sent by Amazon Cognito. This release also adds support to add SES Configuration Set to the emails sent by Amazon Cognito. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - You can now add tags while copying snapshots. Previously, a user had to first copy the snapshot and then add tags to the copied snapshot manually. Moving forward, you can specify the list of tags you wish to be applied to the copied snapshot as a parameter on the Copy Snapshot API. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Introducing Amazon EKS managed node groups, a new feature that lets you easily provision worker nodes for Amazon EKS clusters and keep them up to date using the Amazon EKS management console, CLI, and APIs. + +## __Amazon Elastic MapReduce__ + - ### Features + - Access to the cluster ARN makes it easier for you to author resource-level permissions policies in AWS Identity and Access Management. To simplify the process of obtaining the cluster ARN, Amazon EMR has added a new field containing the cluster ARN to all API responses that include the cluster ID. + +## __Amazon GuardDuty__ + - ### Features + - This release includes new operations related to findings export, including: CreatePublishingDestination, UpdatePublishingDestination, DescribePublishingDestination, DeletePublishingDestination and ListPublishingDestinations. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release updates AWS Systems Manager Parameter Store documentation for the enhanced search capability. + +## __Amazon WorkSpaces__ + - ### Features + - Added APIs to register your directories with Amazon WorkSpaces and to modify directory details. + +## __Elastic Load Balancing__ + - ### Features + - Documentation-only change to the default value of the routing.http.drop_invalid_header_fields.enabled attribute. + +# __2.10.17__ __2019-11-14__ +## __AWSMarketplace Metering__ + - ### Features + - Added CustomerNotEntitledException in MeterUsage API for Container use case. + +## __Amazon Cognito Identity Provider__ + - ### Features + - This release adds a new setting at user pool client to prevent user existence related errors during authentication, confirmation, and password recovery related operations. This release also adds support to enable or disable specific authentication flows for a user pool client. + +## __Amazon Connect Service__ + - ### Features + - This release enhances the existing user management APIs and adds 3 new APIs - TagResource, UntagResource, and ListTagsForResource to support tagging Amazon Connect users, which facilitates more granular access controls for Amazon Connect users within an Amazon Connect instance. You can learn more about the new APIs here: https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html. + +## __Amazon Personalize__ + - ### Features + - Amazon Personalize: Adds ability to get batch recommendations by creating a batch inference job. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Updates support for adding attachments to Systems Manager Automation documents + +# __2.10.16__ __2019-11-13__ +## __AWS Data Exchange__ + - ### Features + - Introducing AWS Data Exchange, a service that makes it easy for AWS customers to securely create, manage, access, and exchange data sets in the cloud. + +## __AWS IoT__ + - ### Features + - This release adds the custom fields definition support in the index definition for AWS IoT Fleet Indexing Service. Custom fields can be used as an aggregation field to run aggregations with both existing GetStatistics API and newly added GetCardinality, GetPercentiles APIs. GetStatistics will return all statistics (min/max/sum/avg/count...) with this release. For more information, please refer to our latest documentation: https://docs.aws.amazon.com/iot/latest/developerguide/iot-indexing.html + +## __Amazon CloudSearch__ + - ### Features + - Amazon CloudSearch domains let you require that all traffic to the domain arrive over HTTPS. This security feature helps you block clients that send unencrypted requests to the domain. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - You can now add tags to a lifecycle policy in Data Lifecycle Manager (DLM). Tags allow you to categorize your policies in different ways, such as by department, purpose or owner. You can also enable resource level permissions based on tags to set access control on ability to modify or delete a tagged policy. + +## __Amazon Simple Email Service__ + - ### Features + - This is the first release of version 2 of the Amazon SES API. You can use this API to configure your Amazon SES account, and to send email. This API extends the functionality that exists in the previous version of the Amazon SES API. + +# __2.10.15__ __2019-11-12__ +## __AWS CodePipeline__ + - ### Features + - AWS CodePipeline now supports the use of variables in action configuration. + +## __AWS Marketplace Catalog Service__ + - ### Features + - This is the first release for the AWS Marketplace Catalog service which allows you to list, describe and manage change requests on your published entities on AWS Marketplace. + +## __Amazon DynamoDB__ + - ### Features + - Amazon DynamoDB enables you to restore your data to a new DynamoDB table using a point-in-time or on-demand backup. You now can modify the settings on the new restored table. Specifically, you can exclude some or all of the local and global secondary indexes from being created with the restored table. In addition, you can change the billing mode and provisioned capacity settings. + +## __Amazon Transcribe Service__ + - ### Features + - With this release, Amazon Transcribe now supports transcriptions from audio sources in Welsh English (en-WL), Scottish English(en-AB), Irish English(en-IE), Farsi(fa-IR), Tamil(ta-IN), Indonesian(id-ID), Portuguese (pt-PT), Dutch(nl-NL). + +## __Elastic Load Balancing__ + - ### Features + - You can configure your Application Load Balancer to either drop invalid header fields or forward them to targets. + +# __2.10.14__ __2019-11-11__ +## __AWS CloudFormation__ + - ### Features + - The Resource Import feature enables customers to import existing AWS resources into new or existing CloudFormation Stacks. + +## __AWS Cost Explorer Service__ + - ### Features + - This launch provides customers with access to GetCostAndUsageWithResources API. + +## __Amazon Polly__ + - ### Features + - Add `PollyPresigner` which enables support for presigning `SynthesizeSpeech` requests. + +# __2.10.13__ __2019-11-08__ +## __Amazon Cognito Identity__ + - ### Features + - This release adds support for disabling classic flow. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release contains ticket fixes for Amazon ECR. + +# __2.10.12__ __2019-11-07__ +## __AWS S3__ + - ### Features + - Added support for presignPutObject in S3Presigner. + +## __AWS SSO OIDC__ + - ### Features + - This is an initial release of AWS Single Sign-On OAuth device code authorization service. + +## __AWS Single Sign-On__ + - ### Features + - This is an initial release of AWS Single Sign-On (SSO) end-user access. This release adds support for accessing AWS accounts assigned in AWS SSO using short term credentials. + +## __Amazon Comprehend__ + - ### Features + - This release adds new languages (ar, hi, ko, ja, zh, zh-TW) for Amazon Comprehend's DetectSentiment, DetectEntities, DetectKeyPhrases, BatchDetectSentiment, BatchDetectEntities and BatchDetectKeyPhrases APIs + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - AWS Systems Manager Session Manager target length increased to 400. + +## __Netty NIO HTTP Client__ + - ### Features + - Switch from setting the absolute URI in HTTP requests with no `Host` header to setting the absolute request path and query paramters and a `Host` header. + +# __2.10.11__ __2019-11-06__ +## __AWS SDK for Java v2__ + - ### Features + - Added the web identity credentials provider to the default credential chain + +## __AWS Savings Plans__ + - ### Features + - This is the first release of Savings Plans, a new flexible pricing model that offers low prices on Amazon EC2 and AWS Fargate usage. + +# __2.10.10__ __2019-11-06__ +## __AWS Budgets__ + - ### Features + - Documentation updates for budgets to track Savings Plans utilization and coverage + +## __AWS CodeBuild__ + - ### Features + - Add support for Build Number, Secrets Manager and Exported Environment Variables. + +## __AWS Cost Explorer Service__ + - ### Features + - This launch provides customers with access to Savings Plans management APIs. + +## __AWS Savings Plans__ + - ### Features + - This is the first release of Savings Plans, a new flexible pricing model that offers low prices on Amazon EC2 and AWS Fargate usage. + +## __AWS Signer__ + - ### Features + - This release adds support for tagging code-signing profiles in AWS Signer. + +## __Amazon Elastic File System__ + - ### Features + - EFS customers can select a lifecycle policy that automatically moves files that have not been accessed for 7 days into the EFS Infrequent Access (EFS IA) storage class. EFS IA provides price/performance that is cost-optimized for files that are not accessed every day. + +# __2.10.9__ __2019-11-05__ +## __AWS CodeStar Notifications__ + - ### Features + - This release adds a notification manager for events in repositories, build projects, deployments, and pipelines. You can now configure rules and receive notifications about events that occur for resources. Each notification includes a status message as well as a link to the resource (repository, build project, deployment application, or pipeline) whose event generated the notification. + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for Amazon RDS + +# __2.10.8__ __2019-11-04__ +## __AWS RoboMaker__ + - ### Features + - RoboMaker Fleet Management launch a feature to verify your robot is ready to download and install the new robot application using a download condition file, which is a script run on the robot prior to downloading the new deployment. + +## __Amazon DynamoDB Accelerator (DAX)__ + - ### Features + - Documentation updates for dax + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for ec2 + +# __2.10.7__ __2019-11-01__ +## __AWS CloudTrail__ + - ### Features + - This release adds two new APIs, GetTrail and ListTrails, and support for adding tags when you create a trail by using a new TagsList parameter on CreateTrail operations. + +## __AWS Database Migration Service__ + - ### Features + - This release contains task timeline attributes in replication task statistics. This release also adds a note to the documentation for the CdcStartPosition task request parameter. This note describes how to enable the use of native CDC start points for a PostgreSQL source by setting the new slotName extra connection attribute on the source endpoint to the name of an existing logical replication slot. + +## __Amazon Pinpoint__ + - ### Features + - This release of the Amazon Pinpoint API introduces support for using and managing journeys, and querying analytics data for journeys. + +# __2.10.6__ __2019-10-31__ +## __AWS Amplify__ + - ### Features + - This release of AWS Amplify Console introduces support for Web Previews. This feature allows user to create ephemeral branch deployments from pull request submissions made to a connected repository. A pull-request preview deploys every pull request made to your Git repository to a unique preview URL. + +## __AWS Support__ + - ### Features + - The status descriptions for TrustedAdvisorCheckRefreshStatus have been updated + +## __Amazon Simple Storage Service__ + - ### Features + - S3 Inventory now supports a new field 'IntelligentTieringAccessTier' that reports the access tier (frequent or infrequent) of objects stored in Intelligent-Tiering storage class. + +# __2.10.5__ __2019-10-30__ +## __Amazon ElastiCache__ + - ### Features + - Amazon ElastiCache for Redis 5.0.5 now allows you to modify authentication tokens by setting and rotating new tokens. You can now modify active tokens while in use, or add brand-new tokens to existing encryption-in-transit enabled clusters that were previously setup without authentication tokens. This is a two-step process that allows you to set and rotate the token without interrupting client requests. + +# __2.10.4__ __2019-10-29__ +## __AWS Cloud9__ + - ### Features + - Added CREATING and CREATE_FAILED environment lifecycle statuses. + +## __Amazon AppStream__ + - ### Features + - Adds support for providing domain names that can embed streaming sessions + +# __2.10.3__ __2019-10-28__ +## __Amazon Simple Storage Service__ + - ### Features + - Adding support in SelectObjectContent for scanning a portion of an object specified by a scan range. + +# __2.10.2__ __2019-10-28__ +## __AWS Transfer for SFTP__ + - ### Features + - This release adds logical directories support to your AWS SFTP server endpoint, so you can now create logical directory structures mapped to Amazon Simple Storage Service (Amazon S3) bucket paths for users created and stored within the service. Amazon S3 bucket names and paths can now be hidden from AWS SFTP users, providing an additional level of privacy to meet security requirements. You can lock down your SFTP users' access to designated folders (commonly referred to as 'chroot'), and simplify complex folder structures for data distribution through SFTP without replicating files across multiple users. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release of Amazon Elastic Container Registry Service (Amazon ECR) introduces support for image scanning. This identifies the software vulnerabilities in the container image based on the Common Vulnerabilities and Exposures (CVE) database. + +## __Amazon ElastiCache__ + - ### Features + - Amazon ElastiCache adds support for migrating Redis workloads hosted on Amazon EC2 into ElastiCache by syncing the data between the source Redis cluster and target ElastiCache for Redis cluster in real time. For more information, see https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/migrate-to-elasticache.html. + +# __2.10.1__ __2019-10-25__ +## __Amazon Transcribe Streaming Service__ + - ### Features + - With this release, Amazon Transcribe Streaming now supports audio sources in Australian English (en-AU). + +# __2.10.0__ __2019-10-24__ +## __AWS App Mesh__ + - ### Features + - This release adds support for the gRPC and HTTP/2 protocols. + +## __AWS SDK for Java v2__ + - ### Features + - Updating to use Jackson 2.10.0 and Netty 4.1.42.Final + +## __Amazon Chime__ + - ### Features + - This release introduces Voice Connector PDX region and defaults previously created Voice Connectors to IAD. You can create Voice Connector Groups and add region specific Voice Connectors to direct telephony traffic across AWS regions in case of regional failures. With this release you can add phone numbers to Voice Connector Groups and can bulk move phone numbers between Voice Connectors, between Voice Connector and Voice Connector Groups and between Voice Connector Groups. Voice Connector now supports additional settings to enable SIP Log capture. This is in addition to the launch of Voice Connector Cloud Watch metrics in this release. This release also supports assigning outbound calling name (CNAM) to AWS account and individual phone numbers assigned to Voice Connectors. * Voice Connector now supports a setting to enable real time audio streaming delivered via Kinesis Audio streams. Please note that recording Amazon Chime Voice Connector calls with this feature maybe be subject to laws or regulations regarding the recording of telephone calls and other electronic communications. AWS Customer and their end users' have the responsibility to comply with all applicable laws regarding the recording, including properly notifying all participants in a recorded session or to a recorded communication that the session or communication is being recorded and obtain their consent. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release updates CreateFpgaImage to support tagging FPGA images on creation + +## __Amazon GameLift__ + - ### Features + - Amazon GameLift offers expanded hardware options for game hosting: Custom game builds can use the Amazon Linux 2 operating system, and fleets for both custom builds and Realtime servers can now use C5, M5, and R5 instance types. + +## __Amazon SageMaker Service__ + - ### Features + - Adds support for the new family of Elastic Inference Accelerators (eia2) for SageMaker Hosting and Notebook Services + +## __Netty NIO Http Client__ + - ### Bugfixes + - Fix a race condition where the channel is closed right after all content is buffered, causing `server failed to complete the response` error by adding a flag when `LastHttpContentHandler` is received. diff --git a/changelogs/2.11.x-CHANGELOG.md b/changelogs/2.11.x-CHANGELOG.md new file mode 100644 index 000000000000..8483973c8723 --- /dev/null +++ b/changelogs/2.11.x-CHANGELOG.md @@ -0,0 +1,384 @@ +# __2.11.14__ __2020-04-17__ +## __AWS OpsWorks CM__ + - ### Features + - Documentation updates for opsworkscm + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Fraud Detector__ + - ### Features + - Added support for a new rule engine execution mode. Customers will be able to configure their detector versions to evaluate all rules and return outcomes from all 'matched' rules in the GetPrediction API response. Added support for deleting Detectors (DeleteDetector) and Rule Versions (DeleteRuleVersion). + +# __2.11.13__ __2020-04-16__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert now allows you to specify your input captions frame rate for SCC captions sources. + +## __AWS Glue__ + - ### Features + - This release adds support for querying GetUserDefinedFunctions API without databaseName. + +## __AWS IoT Events__ + - ### Features + - API update that allows users to customize event action payloads, and adds support for Amazon DynamoDB actions. + +## __AWS Lambda__ + - ### Features + - Sample code for AWS Lambda operations + +## __AWS MediaTailor__ + - ### Features + - AWS Elemental MediaTailor SDK now allows configuration of Avail Suppression. + +## __AWS Migration Hub__ + - ### Features + - Adding ThrottlingException + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Added a new BatchUpdateFindings action, which allows customers to update selected information about their findings. Security Hub customers use BatchUpdateFindings to track their investigation into a finding. BatchUpdateFindings is intended to replace the UpdateFindings action, which is deprecated. + +## __Amazon Augmented AI Runtime__ + - ### Features + - This release updates Amazon Augmented AI ListHumanLoops and StartHumanLoop APIs. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 now supports adding AWS resource tags for placement groups and key pairs, at creation time. The CreatePlacementGroup API will now return placement group information when created successfully. The DeleteKeyPair API now supports deletion by resource ID. + +## __Amazon Import/Export Snowball__ + - ### Features + - An update to the Snowball Edge Storage Optimized device has been launched. Like the previous version, it has 80 TB of capacity for data transfer. Now it has 40 vCPUs, 80 GiB, and a 1 TiB SATA SSD of memory for EC2 compatible compute. The 80 TB of capacity can also be used for EBS-like volumes for AMIs. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for Amazon RDS Proxy with PostgreSQL compatibility. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker now supports running training jobs on ml.g4dn and ml.c5n instance types. Amazon SageMaker supports in "IN" operation for Search now. + +## __EC2 Image Builder__ + - ### Features + - This release includes support for additional OS Versions within EC2 Image Builder. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Mark a connection as unreusable if there was a 5xx server error so that a new request will establish a new connection. + +# __2.11.12__ __2020-04-08__ +## __AWS CloudFormation__ + - ### Features + - The OrganizationalUnitIds parameter on StackSet and the OrganizationalUnitId parameter on StackInstance, StackInstanceSummary, and StackSetOperationResultSummary are now reserved for internal use. No data is returned for this parameter. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK adds support for queue hopping. Jobs can now hop from their original queue to a specified alternate queue, based on the maximum wait time that you specify in the job settings. + +## __AWS Migration Hub Config__ + - ### Features + - Adding ThrottlingException + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Chime__ + - ### Features + - feature: Chime: This release introduces the ability to tag Amazon Chime SDK meeting resources. You can use tags to organize and identify your resources for cost allocation. + +## __Amazon CodeGuru Profiler__ + - ### Features + - CodeGuruProfiler adds support for resource based authorization to submit profile data. + +## __Amazon EC2 Container Service__ + - ### Features + - This release provides native support for specifying Amazon EFS file systems as volumes in your Amazon ECS task definitions. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release provides the ability to include tags in EC2 event notifications. + +# __2.11.11__ __2020-04-07__ +## __AWS MediaConnect__ + - ### Features + - You can now send content from your MediaConnect flow to your virtual private cloud (VPC) without going over the public internet. + +## __Amazon API Gateway__ + - ### Features + - Documentation updates for Amazon API Gateway. + +## __Amazon CodeGuru Reviewer__ + - ### Features + - API updates for CodeGuruReviewer + +# __2.11.10__ __2020-04-06__ +## __AWS Elastic Beanstalk__ + - ### Features + - This release adds a new action, ListPlatformBranches, and updates two actions, ListPlatformVersions and DescribePlatformVersion, to support the concept of Elastic Beanstalk platform branches. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Chime__ + - ### Features + - Amazon Chime proxy phone sessions let you provide two users with a shared phone number to communicate via voice or text for up to 12 hours without revealing personal phone numbers. When users call or message the provided phone number, they are connected to the other party and their private phone numbers are replaced with the shared number in Caller ID. + +## __Amazon Transcribe Service__ + - ### Features + - This release adds support for batch transcription jobs within Amazon Transcribe Medical. + +# __2.11.9__ __2020-04-03__ +## __AWS RoboMaker__ + - ### Features + - Added support for limiting simulation unit usage, giving more predictable control over simulation cost + +## __AWS S3__ + - ### Features + - Allow DefaultS3Presigner.Builder to take a custom S3Configuration + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Personalize Runtime__ + - ### Features + - Amazon Personalize: Add new response field "score" to each item returned by GetRecommendations and GetPersonalizedRanking (HRNN-based recipes only) + +# __2.11.8__ __2020-04-02__ +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports Automatic Input Failover. This feature provides resiliency upstream of the channel, before ingest starts. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch__ + - ### Features + - Amazon CloudWatch Contributor Insights adds support for tags and tagging on resource creation. + +## __Amazon GameLift__ + - ### Features + - Public preview of GameLift FleetIQ as a standalone feature. GameLift FleetIQ makes it possible to use low-cost Spot instances by limiting the chance of interruptions affecting game sessions. FleetIQ is a feature of the managed GameLift service, and can now be used with game hosting in EC2 Auto Scaling groups that you manage in your own account. + +## __Amazon Redshift__ + - ### Features + - Documentation updates for redshift + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for RDS: creating read replicas is now supported for SQL Server DB instances + +# __2.11.7__ __2020-04-01__ +## __AWS IoT__ + - ### Features + - This release introduces Dimensions for AWS IoT Device Defender. Dimensions can be used in Security Profiles to collect and monitor fine-grained metrics. + +## __AWS MediaConnect__ + - ### Features + - You can now send content from your virtual private cloud (VPC) to your MediaConnect flow without going over the public internet. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.11.6__ __2020-03-31__ +## __AWS Elemental MediaStore__ + - ### Features + - This release adds support for CloudWatch Metrics. You can now set a policy on your container to dictate which metrics MediaStore sends to CloudWatch. + +## __AWS Glue__ + - ### Features + - Add two enums for MongoDB connection: Added "CONNECTION_URL" to "ConnectionPropertyKey" and added "MONGODB" to "ConnectionType" + +## __AWS Lambda__ + - ### Features + - AWS Lambda now supports .NET Core 3.1 + +## __AWS OpsWorks CM__ + - ### Features + - Documentation updates for OpsWorks-CM CreateServer values. + +## __AWS Organizations__ + - ### Features + - Documentation updates for AWS Organizations + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Storage Gateway__ + - ### Features + - Adding audit logging support for SMB File Shares + +## __AWS WAFV2__ + - ### Features + - Added support for AWS Firewall Manager for WAFv2 and PermissionPolicy APIs for WAFv2. + +## __Amazon AppConfig__ + - ### Features + - This release adds an event log to deployments. In the case of a deployment rollback, the event log details the rollback reason. + +## __Amazon Detective__ + - ### Features + - Removing the notes that Detective is in preview, in preparation for the Detective GA release. + +## __Amazon Elastic Inference__ + - ### Features + - This release includes improvements for the Amazon Elastic Inference service. + +## __Amazon Pinpoint__ + - ### Features + - This release of the Amazon Pinpoint API introduces MMS support for SMS messages. + +## __Amazon Rekognition__ + - ### Features + - This release adds DeleteProject and DeleteProjectVersion APIs to Amazon Rekognition Custom Labels. + +## __Firewall Management Service__ + - ### Features + - This release contains FMS wafv2 support. + +# __2.11.5__ __2020-03-30__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Access Analyzer__ + - ### Features + - This release adds support for the creation and management of IAM Access Analyzer analyzers with type organization. An analyzer with type organization continuously monitors all supported resources within the AWS organization and reports findings when they allow access from outside the organization. + +# __2.11.4__ __2020-03-27__ +## __AWS Global Accelerator__ + - ### Features + - This update adds an event history to the ListByoipCidr API call. This enables you to see the changes that you've made for an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP). + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Remove the `LimitExceededException` as a throttling error as it seems many services don't treat it as a throttling error. + +## __AWS Service Catalog__ + - ### Features + - Added "LocalRoleName" as an acceptable Parameter for Launch type in CreateConstraint and UpdateConstraint APIs + +## __AWSKendraFrontendService__ + - ### Features + - The Amazon Kendra Microsoft SharePoint data source now supports include and exclude regular expressions and change log features. Include and exclude regular expressions enable you to provide a list of regular expressions to match the display URL of SharePoint documents to either include or exclude documents respectively. When you enable the changelog feature it enables Amazon Kendra to use the SharePoint change log to determine which documents to update in the index. + +# __2.11.3__ __2020-03-26__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Security Hub has now made it easier to opt out of default standards when you enable Security Hub. We added a new Boolean parameter to EnableSecurityHub called EnableDefaultStandards. If that parameter is true, Security Hub's default standards are enabled. A new Boolean parameter for standards, EnabledByDefault, indicates whether a standard is a default standard. Today, the only default standard is CIS AWS Foundations Benchmark v1.2. Additional default standards will be added in the future.To learn more, visit our documentation on the EnableSecurityHub API action. + +## __Amazon FSx__ + - ### Features + - This release includes two changes: a new lower-cost, storage type called HDD (Hard Disk Drive), and a new generation of the Single-AZ deployment type called Single AZ 2. The HDD storage type can be selected on Multi AZ 1 and Single AZ 2 deployment types. + +## __Amazon SageMaker Service__ + - ### Features + - This release updates Amazon Augmented AI CreateFlowDefinition API and DescribeFlowDefinition response. + +# __2.11.2__ __2020-03-25__ +## __AWS Cost Explorer Service__ + - ### Features + - Customers can now receive Savings Plans recommendations at the member (linked) account level. + +## __AWS SDK for Java v2__ + - ### Features + - Added a `defaultProfileFile` and `defaultProfileName` option to the client override configuration. Setting this configuration value is equivalent to setting the environment or system properties for the profile file and profile name. Specifically, it sets the default profile file and profile name used by the client. + - Reduced the number of times the profile file configuration is read from disk on client creation from 3-5 to 1. + - Updated service endpoint metadata. + +## __AWS X-Ray__ + - ### Features + - GetTraceSummaries - Now provides additional root cause attribute ClientImpacting which indicates whether root cause impacted trace client. + +## __Amazon CloudWatch Application Insights__ + - ### Features + - Amazon CloudWatch Application Insights for .NET and SQL Server now integrates with Amazon CloudWatch Events (AWS CodeDeploy, AWS Health and Amazon EC2 state changes). This feature enables customers to view events related to problems detected by CloudWatch Application Insights, and reduce mean-time-to-resolution (MTTR). + +## __Amazon Detective__ + - ### Features + - The new ACCEPTED_BUT_DISABLED member account status indicates that a member account that accepted the invitation is blocked from contributing data to the behavior graph. The reason is provided in the new DISABLED_REASON property. The new StartMonitoringMember operation enables a blocked member account. + +## __Amazon DynamoDB__ + - ### Features + - When endpoint discovery is enabled, the endpoint discovery process is now initialized with the first request, instead of 60 seconds after the first request. + + - ### Bugfixes + - Fixed an issue that could cause a null-pointer-exception when using anonymous credentials with endpoint discovery enabled. + - Fixed an issue where endpoint discovery configuration specified in the profile file was being ignored. + +## __Amazon DynamoDB Enhanced Client [Preview]__ + - ### Bugfixes + - Performance improvements. + +## __Amazon Elasticsearch Service__ + - ### Features + - Adding support for customer packages (dictionary files) to Amazon Elasticsearch Service + +## __Amazon Managed Blockchain__ + - ### Features + - Amazon Managed Blockchain now has support to publish Hyperledger Fabric peer node, chaincode, and certificate authority (CA) logs to Amazon CloudWatch Logs. + +## __Amazon S3__ + - ### Bugfixes + - Fixed a bug where explicitly disabling use-arn-region on S3Configuration would have lower priority than the environment variable, system property or profile property. + +# __2.11.1__ __2020-03-24__ +## __AWS Organizations__ + - ### Features + - Introduces actions for giving a member account administrative Organizations permissions for an AWS service. You can run this action only for AWS services that support this feature. + +## __AWS RDS DataService__ + - ### Features + - Documentation updates for rds-data + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Athena__ + - ### Features + - Documentation updates for Athena, including QueryExecutionStatus QUEUED and RUNNING states. QUEUED now indicates that the query has been submitted to the service. RUNNING indicates that the query is in execution phase. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding new error codes: Ec2SubnetInvalidConfiguration and NodeCreationFailure for Nodegroups in EKS + +# __2.11.0__ __2020-03-23__ +## __AWS SDK for Java v2__ + - ### Features + - Bump minor version to '2.11.0-SNAPSHOT' because of [#1692](https://github.com/aws/aws-sdk-java-v2/issues/1692) + - Updating dependency version: netty 4.1.42.Final -> 4.1.46.Final (contains the fix for reducing heap usage for netty client) + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding new error code IamLimitExceeded for Nodegroups in EKS + +## __Amazon Route 53__ + - ### Features + - Documentation updates for Route 53. + +## __AmazonApiGatewayV2__ + - ### Features + - Documentation updates to reflect that the default timeout for integrations is now 30 seconds for HTTP APIs. diff --git a/changelogs/2.12.x-CHANGELOG.md b/changelogs/2.12.x-CHANGELOG.md new file mode 100644 index 000000000000..888d64e62fd9 --- /dev/null +++ b/changelogs/2.12.x-CHANGELOG.md @@ -0,0 +1,28 @@ +# __2.12.0__ __2020-04-20__ +## __AWS Cost Explorer Service__ + - ### Features + - Cost Categories API is now General Available with new dimensions and operations support. You can map costs by account name, service, and charge type dimensions as well as use contains, starts with, and ends with operations. Cost Categories can also be used in RI and SP coverage reports. + +## __AWS Glue__ + - ### Features + - Added a new ConnectionType "KAFKA" and a ConnectionProperty "KAFKA_BOOTSTRAP_SERVERS" to support Kafka connection. + +## __AWS IoT Events__ + - ### Features + - API update that allows users to add AWS Iot SiteWise actions while creating Detector Model in AWS Iot Events + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DynamoDB Enhanced Client__ + - ### Features + - The Amazon DynamoDB Enhanced Client is now generally available and provides a natural and intuitive interface for developers to integrate their applications with Amazon DynamoDB by means of an adaptive API that will map inputs and results to and from Java objects modeled by the application, rather than requiring the developers to implement that transformation themselves. + +## __AmazonApiGatewayV2__ + - ### Features + - You can now export an OpenAPI 3.0 compliant API definition file for Amazon API Gateway HTTP APIs using the Export API. + +## __Synthetics__ + - ### Features + - Introducing CloudWatch Synthetics. This is the first public release of CloudWatch Synthetics. diff --git a/services/elasticbeanstalk/src/main/resources/codegen-resources/customization.config.out b/changelogs/2.13.x-CHANGELOG.md similarity index 100% rename from services/elasticbeanstalk/src/main/resources/codegen-resources/customization.config.out rename to changelogs/2.13.x-CHANGELOG.md diff --git a/changelogs/2.14.x-CHANGELOG.md b/changelogs/2.14.x-CHANGELOG.md new file mode 100644 index 000000000000..17d052bd31bb --- /dev/null +++ b/changelogs/2.14.x-CHANGELOG.md @@ -0,0 +1,672 @@ +# __2.14.28__ __2020-09-29__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Service__ + - ### Features + - Update TagResource API documentation to include Contact Flows and Routing Profiles as supported resources. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Client to Client routing for AWS Client VPN. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Simple update to description of ComplianceItemStatus. + +## __Amazon Timestream Query__ + - ### Features + - (New Service) Amazon Timestream is a fast, scalable, fully managed, purpose-built time series database that makes it easy to store and analyze trillions of time series data points per day. + +## __Amazon Timestream Write__ + - ### Features + - (New Service) Amazon Timestream is a fast, scalable, fully managed, purpose-built time series database that makes it easy to store and analyze trillions of time series data points per day. + +## __Schemas__ + - ### Features + - Added support for schemas of type JSONSchemaDraft4. Added ExportSchema API that converts schemas in AWS Events registry and Discovered schemas from OpenApi3 to JSONSchemaDraft4. + +# __2.14.27__ __2020-09-28__ +## __Amazon Relational Database Service__ + - ### Features + - This release adds the InsufficientAvailableIPsInSubnetFault error for RDS Proxy. + +## __Application Auto Scaling__ + - ### Features + - This release extends Application Auto Scaling support to AWS Comprehend Entity Recognizer endpoint, allowing automatic updates to provisioned Inference Units to maintain targeted utilization level. + +# __2.14.26__ __2020-09-25__ +## __AWS Batch__ + - ### Features + - Support custom logging, executionRole, secrets, and linuxParameters (initProcessEnabled, maxSwap, swappiness, sharedMemorySize, and tmpfs). Also, add new context keys for awslogs. + +## __AWS Config__ + - ### Features + - Make the delivery-s3-bucket as an optional parameter for conformance packs and organizational conformance packs + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Security Token Service__ + - ### Features + - Documentation update for AssumeRole error + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Documentation updates for docdb + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release supports returning additional information about local gateway resources, such as the local gateway route table. + +## __Amazon Fraud Detector__ + - ### Features + - Increased maximum length of eventVariables values for GetEventPrediction from 256 to 1024. + +# __2.14.25__ __2020-09-24__ +## __AWS Amplify__ + - ### Features + - Allow Oauth Token in CreateApp call to be a maximum of 1000 characters instead of 100 + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixed an issue where successful JSON service responses were required to include a payload (fixes NullPointerException originating from JsonProtocolUnmarshaller). + - Fixed an issue with XML services, where the service responding with no payload would treat the payload as empty. Now, empty payloads will properly be populated within the XML response as "null". + +## __AWS Savings Plans__ + - ### Features + - Introducing Queued SavingsPlans that will enable customers to queue their purchase request of Savings Plans for future dates. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Amazon EKS now supports configuring your cluster's service CIDR during cluster creation. + +## __Amazon Textract__ + - ### Features + - AWS Textract now supports output results for asynchronous jobs to customer specified s3 bucket. + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe now supports WebM, OGG, AMR and AMR-WB as input formats. You can also specify an output key as a location within your S3 buckets to store the output of your transcription jobs. + +## __Synthetics__ + - ### Features + - AWS Synthetics now supports AWS X-Ray Active Tracing feature. RunConfig is now an optional parameter with timeout updated from (60 - 900 seconds) to (3 - 840 seconds). + +# __2.14.24__ __2020-09-23__ +## __AWS Backup__ + - ### Features + - This release allows customers to enable or disable advanced backup settings in backup plan. As part of this feature AWS Backup added support for Windows VSS backup option for EC2 resources. + +## __AWS Cost Explorer Service__ + - ### Features + - This release provides access to Cost Anomaly Detection Public Preview APIs. Cost Anomaly Detection finds cost anomalies based on your historical cost and usage using Machine Learning models. + +## __AWS DynamoDB Enhanced Client__ + - ### Bugfixes + - Fixed incorrect 'duplicate key' error triggered when flattening a TableSchema that has key tags and more than one attribute. + +## __Amazon QuickSight__ + - ### Features + - Added Sheet information to DescribeDashboard, DescribeTemplate and DescribeAnalysis API response. + +## __Amazon Translate__ + - ### Features + - Improvements to DeleteTerminology API. + +# __2.14.23__ __2020-09-22__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Formal parameter names of sychronous streaming methods were aligned with their javadocs. + - This change makes the `FileStoreTlsKeyManagersProvider` and `SystemPropertyTlsKeyManagersProvider` respect the `ssl.KeyManagerFactory.algorithm` when instantiating the `KeyManagerFactory` rather than always using the hardcoded value of `SunX509`. + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend integrates with Amazon SageMaker GroundTruth to allow its customers to annotate their datasets using GroundTruth and train their models using Comprehend Custom APIs. + +## __Amazon DynamoDB Streams__ + - ### Features + - Documentation updates for streams.dynamodb + +## __Amazon Lex Model Building Service__ + - ### Features + - Lex now supports es-US locales + +## __Amazon WorkMail__ + - ### Features + - Adding support for Mailbox Export APIs + +# __2.14.22__ __2020-09-21__ +## __AWS Glue__ + - ### Features + - Adding support to update multiple partitions of a table in a single request + +## __AWS IoT SiteWise__ + - ### Features + - This release supports IAM mode for SiteWise Monitor portals + +## __AWS Resource Groups__ + - ### Features + - Documentation updates and corrections for Resource Groups API Reference and SDKs. + +## __AWS Resource Groups Tagging API__ + - ### Features + - Documentation updates for the Resource Groups Tagging API. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch Events__ + - ### Features + - Add support for Redshift Data API Targets + +## __Amazon EventBridge__ + - ### Features + - Add support for Redshift Data API Targets + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for the RDS DescribeExportTasks API + +# __2.14.21__ __2020-09-18__ +## __AWS CodeStar connections__ + - ### Features + - New integration with the GitHub provider type. + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports batch operations, which allow users to start, stop, and delete multiple MediaLive resources with a single request. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Single Sign-On Admin__ + - ### Features + - Documentation updates for AWS SSO APIs. + +# __2.14.20__ __2020-09-17__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports additional file formats and metadata for FAQs. + +## __Amazon API Gateway__ + - ### Features + - Adds support for mutual TLS authentication for public regional REST Apis + +## __Amazon CloudFront__ + - ### Features + - Documentation updates for CloudFront + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports detecting Personally Identifiable Information (PII) entities in a document. + +## __Amazon Elasticsearch Service__ + - ### Features + - Adds support for data plane audit logging in Amazon Elasticsearch Service. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - Amazon Transcribe now supports channel identification in real-time streaming, which enables you to transcribe multi-channel streaming audio. + +## __AmazonApiGatewayV2__ + - ### Features + - Adds support for mutual TLS authentication and disableAPIExecuteEndpoint for public regional HTTP Apis + +# __2.14.19__ __2020-09-16__ +## __AWS Greengrass__ + - ### Features + - This release includes the ability to set run-time configuration for a Greengrass core. The Telemetry feature, also included in this release, can be configured via run-time configuration per core. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog__ + - ### Features + - Enhance DescribeProvisionedProduct API to allow useProvisionedProduct Name as Input, so customer can provide ProvisionedProduct Name instead of ProvisionedProduct Id to describe a ProvisionedProduct. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for contact flows and routing profiles. For details, see the Release Notes in the Amazon Connect Administrator Guide. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Customers can now provide multiple schedules within a single Data Lifecycle Manager (DLM) policy. Each schedule supports tagging, Fast Snapshot Restore (FSR) and cross region copy individually. + +## __Amazon STS__ + - ### Features + - Make the STSCredentialsProvider stale and prefetch times configurable so clients can control when session credentials are refreshed + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - The ComplianceItemEntry Status description was updated to address Windows patches that aren't applicable. + +# __2.14.18__ __2020-09-15__ +## __AWS Budgets__ + - ### Features + - Documentation updates for Daily Cost and Usage budgets + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports CDI (Cloud Digital Interface) inputs which enable uncompressed video from applications on Elastic Cloud Compute (EC2), AWS Media Services, and from AWS partners + +## __AWS Organizations__ + - ### Features + - AWS Organizations now enables you to add tags to the AWS accounts, organizational units, organization root, and policies in your organization. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now returns confidence scores for 'document' query responses. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - T4g instances are powered by AWS Graviton2 processors + +## __Amazon SageMaker Service__ + - ### Features + - Sagemaker Ground Truth: Added support for a new Streaming feature which helps to continuously feed data and receive labels in real time. This release adds a new input and output SNS data channel. + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe now supports automatic language identification, which enables you to transcribe audio files without needing to know the language in advance. + +## __Managed Streaming for Kafka__ + - ### Features + - Added new API's to support SASL SCRAM Authentication with MSK Clusters. + +# __2.14.17__ __2020-09-14__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fix a bug in the SDK where the contents of the `AsyncRequestBody` is not included in the AWS Signature Version 4 calculation, which is required for some streaming operations such as Glacier `UploadArchive' and ClouSearch Domain `UploadDocuments`. + +## __AWS Step Functions__ + - ### Features + - This release of the AWS Step Functions SDK introduces support for AWS X-Ray. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Updated API documentation and added paginators for DescribeCertificates, DescribeDBClusterParameterGroups, DescribeDBClusterParameters, DescribeDBClusterSnapshots and DescribePendingMaintenanceActions + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for the T4G instance family to the EC2 ModifyDefaultCreditSpecification and GetDefaultCreditSpecification APIs. + +## __Amazon Managed Blockchain__ + - ### Features + - Introducing support for Hyperledger Fabric 1.4. When using framework version 1.4, the state database may optionally be specified when creating peer nodes (defaults to CouchDB). + +# __2.14.16__ __2020-09-11__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon WorkSpaces__ + - ### Features + - Adds API support for WorkSpaces Cross-Region Redirection feature. + +# __2.14.15__ __2020-09-10__ +## __AWS Single Sign-On Admin__ + - ### Features + - This is an initial release of AWS Single Sign-On (SSO) Access Management APIs. This release adds support for SSO operations which could be used for managing access to AWS accounts. + +## __Amazon CloudFront__ + - ### Features + - Cloudfront adds support for Brotli. You can enable brotli caching and compression support by enabling it in your Cache Policy. + +## __Amazon Elastic Block Store__ + - ### Features + - Documentation updates for Amazon EBS direct APIs. + +## __Amazon Pinpoint__ + - ### Features + - Update SMS message model description to clearly indicate that the MediaUrl field is reserved for future use and is not supported by Pinpoint as of today. + +## __Amazon Simple Storage Service__ + - ### Features + - Bucket owner verification feature added. This feature introduces the x-amz-expected-bucket-owner and x-amz-source-expected-bucket-owner headers. + +# __2.14.14__ __2020-09-09__ +## __AWS Glue__ + - ### Features + - Adding support for partitionIndexes to improve GetPartitions performance. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Kinesis Analytics__ + - ### Features + - Kinesis Data Analytics is adding new AUTOSCALING application status for applications during auto scaling and also adding FlinkRunConfigurationDescription in the ApplicationDetails. + +## __Redshift Data API Service__ + - ### Features + - The Amazon Redshift Data API is generally available. This release enables querying Amazon Redshift data and listing various database objects. + +# __2.14.13__ __2020-09-08__ +## __AWS CodeBuild__ + - ### Features + - AWS CodeBuild - Support keyword search for test cases in DecribeTestCases API . Allow deletion of reports in the report group, before deletion of report group using the deleteReports flag. + +## __AWS Common Runtime HTTP Client__ + - ### Features + - This release includes the preview release of the AWS Common Runtime HTTP client for the AWS SDK for Java v2. The code can be found in the `aws-crt-client` module. + +## __Amazon DynamoDB Enhanced Client__ + - ### Bugfixes + - Fix for stack overflow caused by using self-referencing DynamoDB annotated classes. + +## __Amazon Lex Model Building Service__ + - ### Features + - Amazon Lex supports en-AU locale + +## __Amazon QuickSight__ + - ### Features + - Adds tagging support for QuickSight customization resources. A user can now specify a list of tags when creating a customization resource and use a customization ARN in QuickSight's tagging APIs. + +## __AmazonApiGatewayV2__ + - ### Features + - You can now secure HTTP APIs using Lambda authorizers and IAM authorizers. These options enable you to make flexible auth decisions using a Lambda function, or using IAM policies, respectively. + +## __Elastic Load Balancing__ + - ### Features + - Adds support for Application Load Balancers on Outposts. + +# __2.14.12__ __2020-09-04__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS X-Ray__ + - ### Features + - Enhancing CreateGroup, UpdateGroup, GetGroup and GetGroups APIs to support configuring X-Ray Insights + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Documentation-only updates for AWS Systems Manager + +## __Amazon WorkSpaces__ + - ### Features + - Adding support for Microsoft Office 2016 and Microsoft Office 2019 in BYOL Images + +# __2.14.11__ __2020-09-03__ +## __AWS Elemental MediaPackage__ + - ### Features + - Enables inserting a UTCTiming XML tag in the output manifest of a DASH endpoint which a media player will use to help with time synchronization. + +## __AWS Step Functions__ + - ### Features + - This release of the AWS Step Functions SDK introduces support for payloads up to 256KB for Standard and Express workflows + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now returns confidence scores for both 'answer' and 'question and answer' query responses. + +## __Amazon GuardDuty__ + - ### Features + - GuardDuty findings triggered by failed events now include the error code name within the AwsApiCallAction section. + +# __2.14.10__ __2020-09-02__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new transit gateway attachment state and resource type. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API introduces additional statistics for the size and count of Amazon S3 objects that Macie can analyze as part of a classification job. + +## __DynamoDB Enhanced Client__ + - ### Features + - Support for mapping to and from immutable Java objects using ImmutableTableSchema and StaticImmutableTableSchema. + +# __2.14.9__ __2020-09-01__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Code Generator test failures on Windows systems were fixed. + +## __AWS SecurityHub__ + - ### Features + - Added a PatchSummary object for security findings. The PatchSummary object provides details about the patch compliance status of an instance. + +## __Amazon CodeGuru Reviewer__ + - ### Features + - Add support for repository analysis based code reviews + +# __2.14.8__ __2020-08-31__ +## __AWS Backup__ + - ### Features + - Documentation updates for Cryo + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudFront__ + - ### Features + - CloudFront now supports real-time logging for CloudFront distributions. CloudFront real-time logs are more detailed, configurable, and are available in real time. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 and Spot Fleet now support modification of launch template configs for a running fleet enabling instance type, instance weight, AZ, and AMI updates without losing the current fleet ID. + +## __Amazon Simple Queue Service__ + - ### Features + - Documentation updates for SQS. + +# __2.14.7__ __2020-08-28__ +## __AWS Cost and Usage Report Service__ + - ### Features + - This release add MONTHLY as the new supported TimeUnit for ReportDefinition. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudFront__ + - ### Features + - You can now manage CloudFront's additional, real-time metrics with the CloudFront API. + +## __Amazon Elastic MapReduce__ + - ### Features + - Amazon EMR adds support for ICMP, port -1, in Block Public Access Exceptions and API access for EMR Notebooks execution. You can now non-interactively execute EMR Notebooks and pass input parameters. + +## __Amazon Route 53__ + - ### Features + - Documentation updates for Route 53 + +# __2.14.6__ __2020-08-27__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for WebM DASH outputs as well as H.264 4:2:2 10-bit output in MOV and MP4. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Introduces support to initiate Internet Key Exchange (IKE) negotiations for VPN connections from AWS. A user can now send the initial IKE message to their Customer Gateway (CGW) from VPN endpoints. + +## __Amazon GameLift__ + - ### Features + - GameLift FleetIQ as a standalone feature is now generally available. FleetIQ makes low-cost Spot instances viable for game hosting. Use GameLift FleetIQ with your EC2 Auto Scaling groups. + +## __Amazon Redshift__ + - ### Features + - Documentation updates for Amazon Redshift. + +# __2.14.5__ __2020-08-26__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Appflow__ + - ### Features + - Amazon AppFlow is a fully managed integration service that securely transfers data between AWS services and SaaS applications. This update releases the first version of Amazon AppFlow APIs and SDK. + +## __Amazon Route 53 Resolver__ + - ### Features + - Route 53 Resolver adds support for resolver query logs + +# __2.14.4__ __2020-08-24__ +## __AWS Database Migration Service__ + - ### Features + - Added new endpoint settings to include columns with Null and Empty value when using Kinesis and Kafka as target. Added a new endpoint setting to set maximum message size when using Kafka as target. + +## __AWS IoT SiteWise__ + - ### Features + - Add traversalDirection to ListAssociatedAssetsRequest and add portal status to ListPortalsResponse + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - For JSON protocols, when unmarshalling a response, if a member is declared to be located in the URI, the member is treated as being located in the payload instead. + +## __AWS X-Ray__ + - ### Features + - AWS X-Ray now supports tagging on sampling rules and groups. + +## __Amazon CloudWatch Logs__ + - ### Features + - Documentation updates for CloudWatch Logs + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release enables customers to use VPC prefix lists in their transit gateway route tables, and it adds support for Provisioned IOPS SSD (io2) EBS volumes. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Add string length constraints to OpsDataAttributeName and OpsFilterValue. + +## __Managed Streaming for Kafka__ + - ### Features + - Add UpdateConfiguration and DeleteConfiguration operations. + +# __2.14.3__ __2020-08-20__ +## __Amazon Chime__ + - ### Features + - Documentation updates for chime + +## __Amazon DynamoDB Streaming Client__ + - ### Bugfixes + - Fix for CRC not working correctly for compressed responses + +## __Amazon FSx__ + - ### Features + - Documentation updates for Amazon FSx + +## __AmazonApiGatewayV2__ + - ### Features + - Customers can now create Amazon API Gateway HTTP APIs that route requests to AWS AppConfig, Amazon EventBridge, Amazon Kinesis Data Streams, Amazon SQS, and AWS Step Functions. + +# __2.14.2__ __2020-08-19__ +## __AWS Lake Formation__ + - ### Features + - Adding additional field in ListPermissions API response to return RAM resource share ARN if a resource were shared through AWS RAM service. + +## __AWS Organizations__ + - ### Features + - Minor documentation updates for AWS Organizations + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog__ + - ### Features + - Enhance SearchProvisionedProducts API to allow queries using productName and provisioningArtifactName. Added lastProvisioningRecordId and lastSuccessfulRecordId to Read ProvisionedProduct APIs + +## __AWS Storage Gateway__ + - ### Features + - Added WORM, tape retention lock, and custom pool features for virtual tapes. + +## __Amazon Interactive Video Service__ + - ### Features + - Amazon Interactive Video Service (IVS) now offers customers the ability to create private channels, allowing customers to restrict their streams by channel or viewer. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - Amazon Transcribe and Amazon Transcribe Medical now enable you to identify different speakers in your real-time streams with speaker identification. + +# __2.14.1__ __2020-08-18__ +## __AWS CodeBuild__ + - ### Features + - Documentation updates for codebuild + +## __AWS DataSync__ + - ### Features + - DataSync support for filters as input arguments to the ListTasks and ListLocations API calls. + +## __AWS SSO Identity Store__ + - ### Features + - AWS Single Sign-On (SSO) Identity Store service provides an interface to retrieve all of your users and groups. It enables entitlement management per user or group for AWS SSO and other IDPs. + +## __AWS SecurityHub__ + - ### Features + - New details for DynamoDB tables, Elastic IP addresses, IAM policies and users, RDS DB clusters and snapshots, and Secrets Manager secrets. Added details for AWS KMS keys and RDS DB instances. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Adding the option to use a service linked role to publish events to Pinpoint. + +## __Amazon Simple Email Service__ + - ### Features + - This release includes new APIs to allow customers to add or remove email addresses from their account-level suppression list in bulk. + +# __2.14.0__ __2020-08-17__ +## __AWS Certificate Manager__ + - ### Features + - ACM provides support for the new Private CA feature Cross-account CA sharing. ACM users can issue certificates signed by a private CA belonging to another account where the CA was shared with them. + +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - ACM Private CA is launching cross-account support. This allows customers to share their private CAs with other accounts, AWS Organizations, and organizational units to issue end-entity certificates. + +## __AWS RoboMaker__ + - ### Features + - This release introduces RoboMaker Simulation WorldForge, a capability that automatically generates one or more simulation worlds. + +## __AWS SDK for Java v2__ + - ### Features + - The client-side metrics feature is out of developer preview and is now generaly available. + +## __Amazon EC2 Container Registry__ + - ### Features + - This feature adds support for pushing and pulling Open Container Initiative (OCI) artifacts. + +## __Amazon Kinesis__ + - ### Features + - Introducing ShardFilter for ListShards API to filter the shards using a position in the stream, and ChildShards support for GetRecords and SubscribeToShard API to discover children shards on shard end + +## __Amazon QuickSight__ + - ### Features + - Amazon QuickSight now supports programmatic creation and management of analyses with new APIs. + +## __Elastic Load Balancing__ + - ### Features + - Adds support for HTTP Desync Mitigation in Application Load Balancers. + - Adds support for HTTP Desync Mitigation in Classic Load Balancers. diff --git a/changelogs/2.15.x-CHANGELOG.md b/changelogs/2.15.x-CHANGELOG.md new file mode 100644 index 000000000000..e7775ffcebd2 --- /dev/null +++ b/changelogs/2.15.x-CHANGELOG.md @@ -0,0 +1,2325 @@ +# __2.15.82__ __2021-02-15__ +## __AWS Config__ + - ### Features + - Added option to provide KMS key to AWS Config DeliveryChannel + +## __AWS Elemental MediaLive__ + - ### Features + - AWS MediaLive now supports Automatic-Input-Failover for CDI Inputs. + +## __AWS MediaTailor__ + - ### Features + - MediaTailor now supports specifying aliases for dynamic variables. This allows use cases such as binding multiple origin domains to a single MediaTailor playback configuration. + +## __Amazon Kinesis Video Streams Archived Media__ + - ### Features + - The ListFragments and GetMediaForFragmentList APIs now support StreamName or StreamARN as input parameters. + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Lightsail + +## __Amazon Pinpoint__ + - ### Features + - Lets customers use origination number when specifying SMS message configuration for Campaigns and Journeys. + +## __Amazon WorkMail Message Flow__ + - ### Features + - This release allows customers to update email messages as they flow in and out of Amazon WorkMail + +## __Redshift Data API Service__ + - ### Features + - This release enables fine grant access control in ListStatements, GetStatementResult, CancelStatement and DescribeStatement. + +# __2.15.81__ __2021-02-12__ +## __AWS AppSync__ + - ### Features + - Approve release for appsync local on pipeline resolver + +## __AWS CodePipeline__ + - ### Features + - The release provides new GetActionType and UpdateActionType APIs for viewing and editing action types in CodePipeline. + +## __AWS Identity and Access Management__ + - ### Features + - AWS Identity and Access Management now supports tagging for the following resources: customer managed policies, identity providers, instance profiles, server certificates, and virtual MFA devices. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS WAFV2__ + - ### Features + - Added the option to inspect the web request body as parsed and filtered JSON (new FieldToMatch type JsonBody), in addition to the existing option to inspect the web request body as plain text. + +## __Amazon Detective__ + - ### Features + - The API definition now indicates that the format for timestamps is an ISO 8601 date-time string + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Amazon EKS now supports OpenId Connect (OIDC) compatible identity providers as a user authentication option + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API replaces the term master account with the term administrator account, including deprecating APIs that use the previous term and adding APIs that use the new term. + +## __Amazon Personalize Events__ + - ### Features + - Increased maximum char size of PutUsers and PutItems properties. + +## __Amazon Relational Database Service__ + - ### Features + - EngineMode in the response of DescribeDBClusterSnapshots. SupportedEngineModes, SupportsParallelQuery and SupportsGlobalDatabases in ValidUpgradeTarget of DBEngineVersions in DescribeDBEngineVersions. + +## __Elastic Load Balancing__ + - ### Features + - Adds a target group attribute for application-based stickiness for Application Load Balancers and an update to the client IP preservation attribute for Network Load Balancers. + +# __2.15.80__ __2021-02-11__ +## __AWS Glue DataBrew__ + - ### Features + - This release adds support for profile job sampling, which determines the number of rows on which the profile job will be executed. + +## __Amazon Relational Database Service__ + - ### Features + - Adding support for RDS Aurora Global Database Failover + +# __2.15.79__ __2021-02-09__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for WMA audio only ingest, SMPTE-TT text and image caption ingest, and MPEG-2 video in MXF OP1a outputs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon GameLift__ + - ### Features + - GameLift FleetIQ users can now use AMD instance families in supported Regions. In addition, FlexMatch matchmaking notification now supports SNS FIFO topics. + +## __Amazon QLDB Session__ + - ### Features + - This release adds CapacityExceededException to the AWS QLDBSession API. + +## __Amazon QuickSight__ + - ### Features + - QuickSight now supports Python's paginators for Exploration APIs. + +## __Amazon SageMaker Service__ + - ### Features + - Add a new optional FrameworkVersion field to Sagemaker Neo CreateCompilationJob API + +# __2.15.78__ __2021-02-08__ +## __AWS CloudTrail__ + - ### Features + - ConflictException is now thrown when certain operations are called on resources before CloudTrail has time to load the resources. Two new exceptions have been added to the PutInsightSelectors API. + +## __AWS Data Exchange__ + - ### Features + - This release introduces the new ExportRevision job type, which allows for the export of an entire revision. + +## __AWS Global Accelerator__ + - ### Features + - Global Accelerator now supports bringing your own IP addresses for custom routing accelerators + +## __AWS IoT SiteWise__ + - ### Features + - Recall CreatePresignedPortalUrl API + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon ElastiCache__ + - ### Features + - Documentation updates for elasticache + +## __Amazon Interactive Video Service__ + - ### Features + - Fixed an issue where StreamStartTime could not be unmarshalled from response. Changed DeleteChannel and DeleteStreamKey response codes to 204. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API adds support for specifying a time range in queries for usage data. + +## __Elastic Load Balancing__ + - ### Features + - Adds a target group attribute for application-based stickiness for Application Load Balancers. + +# __2.15.77__ __2021-02-05__ +## __AWS Organizations__ + - ### Features + - Added support for a few additional exception codes for some AWS Organizations APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Macie__ + - ### Features + - Documentation updates for Amazon Macie Classic. We replaced the term "master account" with the term "administrator account." An administrator account is used to centrally manage multiple accounts. + +## __Elastic Load Balancing__ + - ### Features + - Adds a target group attribute for client IP preservation for Network Load Balancers. + +# __2.15.76__ __2021-02-04__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Appflow__ + - ### Features + - Adding schedule offset as an input for scheduled flows in CreateFlow API. Also, adding data pull start time and data pull end time for DescribeFlowExecutionRecords API response. + +## __Amazon Athena__ + - ### Features + - Adds the Athena ListEngineVersions action and the EngineVersion data type. ListEngineVersions returns the available Athena engine versions, including Auto, as a list of EngineVersion objects. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Provide support for EBS Local Snapshots on AWS Outpost in Data Lifecycle Manager (DLM). + +## __Amazon EMR Containers__ + - ### Features + - This release is to correct the timestamp format to ISO8601 for the date parameters in the describe and list API response objects of Job Run and Virtual Clusters. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - AWS Outposts now supports EBS local snapshots on Outposts that allows customers to store snapshots of EBS volumes and AMIs locally on S3 on Outposts. + +## __Amazon QuickSight__ + - ### Features + - API release for field folders feature. + +# __2.15.75__ __2021-02-03__ +## __AWS Audit Manager__ + - ### Features + - This release adds AccessDeniedException to GetServicesInScope API. + +## __AWS CodeBuild__ + - ### Features + - Documentation updates for codebuild + +## __AWS Compute Optimizer__ + - ### Features + - Documentation updates for Compute Optimizer + +## __AWS Cost Explorer Service__ + - ### Features + - Clarify valid values for the filter parameter for certain APIs. + +## __AWS Glue DataBrew__ + - ### Features + - This release adds the DescribeJobRun API to allow customers retrieve details of a given job run + +## __AWS IoT SiteWise__ + - ### Features + - Update AccessPolicy API input to support IAM role for IAM mode. Iam role is added as part of accessPolicyIdentity. + +## __AWS Lambda__ + - ### Features + - Support for creating Lambda Functions using 'nodejs14.x' + +## __AWS SecurityHub__ + - ### Features + - Added a ProductArn parameter to DescribeProducts. ProductArn is used to identify the integration to return details for. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - EC2 Public IP now supports API for setting PTR records on Elastic IP address. + +## __Amazon S3__ + - ### Features + - Amazon S3 now supports AWS PrivateLink, providing direct access to S3 via a private endpoint within your virtual private network. + +## __Amazon WorkMail__ + - ### Features + - Increased maximum length of ipRanges values for Access Control Rules from 10 to 1024. + +# __2.15.74__ __2021-02-02__ +## __AWS App Mesh__ + - ### Features + - App Mesh now supports mutual TLS with two-way peer authentication. You can specify client certificates, server-side TLS validation, and matching of Subject Alternative Names. + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports Image Media Playlists on HLS outputs, version 0.4 (trick-mode). + +## __AWS IoT Wireless__ + - ### Features + - Add enum value MqttTopic for Destination ExpressionType, add LoRaWANNetworkServerCertificateId for GetWirelessGatewayCertificate API + +## __AWS Organizations__ + - ### Features + - Documentation updates for AWS Organizations. + +## __AWS RDS DataService__ + - ### Features + - With the Data API, you can now use UUID and JSON data types as input to your database. Also with the Data API, you can now have a LONG type value returned from your database as a STRING value. + +## __AWS S3 Control__ + - ### Features + - Amazon S3 Batch Operations now supports Delete Object Tagging + +## __Amazon Location Service__ + - ### Features + - Doc only update for Amazon Location Maps that fixes a customer related issue regarding MapConfiguration + +## __Amazon Lookout for Vision__ + - ### Features + - This release includes the General Availability (GA) SDK for Amazon Lookout for Vision. New for GA is tagging support for Amazon Lookout for Vision models. + +## __Amazon Route 53__ + - ### Features + - Documentation updates for Route 53 + +## __Application Auto Scaling__ + - ### Features + - With this release, scheduled actions of Application Auto Scaling can be created in the local time zone and automatically adjusted according to daylight saving changes. + +# __2.15.73__ __2021-01-29__ +## __AWS Elemental MediaLive__ + - ### Features + - "AWS Elemental MediaLive now supports output to a private VPC. When this property is specified, the output will egress from a user specified VPC." + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Service__ + - ### Features + - Added API to manage queues or get hours of operation for a queue programmatically, which can be used to create new/update queues, or take actions when skills are outside of their hours of operation. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API adds support for using object prefixes to refine the scope of a classification job. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - Amazon Transcribe Streaming Medical now supports Protected Health Information (PHI) identification which enables you to identify PHI entities based on HIPAA Privacy Rule. + +# __2.15.72__ __2021-01-28__ +## __AWS Glue DataBrew__ + - ### Features + - This SDK release adds support for specifying a custom delimiter for input CSV datasets and for CSV job outputs. + +## __AWS IoT__ + - ### Features + - Documentation updates for IoT DeleteOTAUpdate API + +## __AWS RoboMaker__ + - ### Features + - This release allows Robomaker customers to specify configuration for uploading logs and artifacts generated by their simulation jobs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Well-Architected Tool__ + - ### Features + - Documentation updates for AWS Well-Architected Tool + +## __Amazon CloudWatch__ + - ### Features + - Update to SDK to support label time zones in CloudWatch GetMetricData + +## __Amazon Managed Blockchain__ + - ### Features + - This release supports tagging on Amazon Managed Blockchain resources. + +# __2.15.71__ __2021-01-27__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Access Analyzer__ + - ### Features + - This release adds Secrets Manager secrets as a supported resource in IAM Access Analyzer to help you identify secrets that can be accessed from outside your account or AWS organization. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release makes Uri a required parameter in GetIntegrationRequest and DeleteIntegrationRequest. + +## __Amazon ElastiCache__ + - ### Features + - Add support to pass ParameterGroup name as part updating Engine Version of Global Datastore. + +## __Amazon Elasticsearch Service__ + - ### Features + - Amazon Elasticsearch Service adds support for node-to-node encryption and encryption at rest for existing domains running Elasticsearch version 6.7 and above + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Lightsail + +## __Amazon Simple Email Service__ + - ### Features + - This release includes the ability to assign a configuration set to an email identity (a domain or email address), which allows the settings from the configuration set to be applied to the identity. + +# __2.15.70__ __2021-01-26__ +## __AWS Backup__ + - ### Features + - Documentation updates for AWS Backup + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Cross-Region Copying Pre-Signer for CopyDBClusterSnapshot and CreateDBCluster API of DocDB. + +## __Amazon Neptune__ + - ### Features + - Cross-Region Copying Pre-Signer for CopyDBClusterSnapshot and CreateDBCluster API of Neptune. + +## __DynamoDB Enhanced Client__ + - ### Bugfixes + - Converts string to NULL attribute if it's null. See [#2243](https://github.com/aws/aws-sdk-java-v2/issues/2243) + +# __2.15.69__ __2021-01-22__ +## __AWS IoT Greengrass V2__ + - ### Features + - Documentation updates that improve clarity and fix broken links. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Introducing startDate field for CapacityReservation object for the date and time which the reservation started and adding reserved parameter for ModifyCapacityReservation. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release adds support for Amazon Lex V2 APIs for model building. + +## __Amazon Lex Runtime V2__ + - ### Features + - This release adds support for Amazon Lex V2 APIs for runtime, including Streaming APIs for conversation management. + +## __Amazon Redshift__ + - ### Features + - Update VPC endpoint field names. + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for Amazon RDS + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Documentation updates for the ListDocumentFilters API action. + +# __2.15.68__ __2021-01-21__ +## __AWS Resource Groups Tagging API__ + - ### Features + - This release adds a new parameter ResourceARNList to Resource Groups Tagging api GetResources api to allow customers retrieve tag data for specific resources. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Add support for content-type in AsyncRequestBody. + +## __AWS SecurityHub__ + - ### Features + - This release of ASFF adds a new Action object and a new resource details object - AwsSsmPatchCompliance. It also adds several new attributes for the AwsEc2NetworkInterface resource type. + +## __Managed Streaming for Kafka__ + - ### Features + - Amazon MSK has added a new API that allows you to update all the brokers in the cluster to the specified type. + +# __2.15.67__ __2021-01-19__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - ACM Private CA is launching additional certificate templates and API parameters. This allows customers to create custom certificates for their identity and secure communication use cases. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Chime__ + - ### Features + - Add support for specifying ChimeBearer header as part of the request for Amazon Chime SDK messaging APIs. Documentation updates. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support to include task definition metadata information such as registeredAt, deregisteredAt, registeredBy as part of DescribeTaskDefinition API. + +# __2.15.66__ __2021-01-15__ +## __Amazon Simple Notification Service__ + - ### Features + - Documentation updates for Amazon SNS. + +# __2.15.65__ __2021-01-14__ +## __AWS S3 Control__ + - ### Features + - Amazon S3 Batch Operations now supports restoring objects from the S3 Intelligent-Tiering Archive Access and Deep Archive Access tiers. + +## __Amazon Cognito Identity__ + - ### Features + - Add Attributes For Access Control support for Amazon Cognito Identity Pools to facilitate access to AWS resources based on attributes from social and corporate identity providers + +## __Amazon Pinpoint__ + - ### Features + - Customers can create segments using 5 new filters. Filters can check for the presence of a substring in attributes and can perform time-based comparisons formatted as ISO_INSTANT datetimes. + +## __Amazon SageMaker Service__ + - ### Features + - This feature allows customers to enable/disable model caching on Multi-Model endpoints. + +# __2.15.64__ __2021-01-13__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Reverting synchronization of eventsToDeliver Object in onComplete() [PR#1971](https://github.com/aws/aws-sdk-java-v2/pull/1971) since it was causing latency. + +## __Amazon Fraud Detector__ + - ### Features + - Added support for cancelling a model version that is TRAINING_IN_PROGRESS. + +## __Amazon Personalize__ + - ### Features + - Miscellaneous updates and improvements to the documentation + +# __2.15.63__ __2021-01-12__ +## __AWS Audit Manager__ + - ### Features + - This release introduces tag support for assessment frameworks. You can now add, remove, and get tags from existing frameworks, and specify the tags to apply when creating a custom framework. + +## __AWS Commont Runtime HTTP Client__ + - ### Features + - Upgrade `aws-crt` to version `0.9.3` + +## __Amazon AppStream__ + - ### Features + - Adds support for the Smart Card Redirection feature + +## __Amazon ElastiCache__ + - ### Features + - Documentation updates for elasticache + +## __Amazon Lightsail__ + - ### Features + - This release adds IPv6 support for Amazon Lightsail instances, container services, CDN distributions, and load balancers. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - AWS Systems Manager adds pagination support for DescribeDocumentPermission API + +# __2.15.62__ __2021-01-11__ +## __AWS Key Management Service__ + - ### Features + - Adds support for filtering grants by grant ID and grantee principal in ListGrants requests to AWS KMS. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Relational Database Service__ + - ### Features + - This releases adds support for Major Version Upgrades on Aurora MySQL Global Clusters. Customers will be able to upgrade their whole Aurora MySQL Global Cluster to a new major engine version. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Correctly select the cipher suites based on the HTTP protocol. See [#2159](https://github.com/aws/aws-sdk-java-v2/issues/2159) + - Use `SystemPropretyTlsKeyManagersProvider` if no `KeyManger` is provided. + +# __2.15.61__ __2021-01-07__ +## __AWS CodePipeline__ + - ### Features + - Adding cancelled status and summary for executions aborted by pipeline updates. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for I-Frame-only HLS manifest generation in CMAF outputs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DevOps Guru__ + - ### Features + - Add resourceHours field in GetAccountHealth API to show total number of resource hours AWS Dev Ops Guru has done work for in the last hour. + +# __2.15.60__ __2021-01-06__ +## __AWS Auto Scaling Plans__ + - ### Features + - Documentation updates for AWS Auto Scaling + +## __AWS Transfer Family__ + - ### Features + - This release adds support for Amazon EFS, so customers can transfer files over SFTP, FTPS and FTP in and out of Amazon S3 as well as Amazon EFS. + +## __Auto Scaling__ + - ### Features + - This update increases the number of instance types that can be added to the overrides within an mixed instances group configuration. + +# __2.15.59__ __2021-01-05__ +## __AWS Cost Explorer Service__ + - ### Features + - - ### Features - Add new GetCostcategories API - Support filter for GetDimensions, GetTags and GetCostcategories api - Support sortBy metrics for GetDimensions, GetTags and GetCostcategories api + +## __Amazon S3__ + - ### Features + - `S3Utilities#getUrl` now supports versionId. See [#2224](https://github.com/aws/aws-sdk-java-v2/issues/2224) + +## __Application Auto Scaling__ + - ### Features + - Documentation updates for Application Auto Scaling + +# __2.15.58__ __2021-01-04__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix for [#1684](https://github.com/aws/aws-sdk-java-v2/issues/1684) Some of the Retry attempts which failed due to the API TimeOuts did not successfully retried but ended up with AbortedException. + +## __Amazon CloudSearch__ + - ### Features + - This release adds support for new Amazon CloudSearch instances. + +## __Amazon HealthLake__ + - ### Features + - Amazon HealthLake now supports exporting data from FHIR Data Stores in Preview. + +# __2.15.57__ __2020-12-31__ +## __AWS Service Catalog__ + - ### Features + - Enhanced Service Catalog DescribeProvisioningParameters API to return new parameter constraints, i.e., MinLength, MaxLength, MinValue, MaxValue, ConstraintDescription and AllowedPattern + +# __2.15.56__ __2020-12-30__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon ElastiCache__ + - ### Features + - Documentation updates for elasticache + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API includes miscellaneous updates and improvements to the documentation. + +# __2.15.55__ __2020-12-29__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - This release adds a new parameter "CsrExtensions" in the "CertificateAuthorityConfiguration" data structure, which allows customers to add the addition of KU and SIA into the CA CSR. + +## __AmazonApiGatewayV2__ + - ### Features + - Amazon API Gateway now supports data mapping for HTTP APIs which allows customers to modify HTTP Request before sending it to their integration and HTTP Response before sending it to the invoker. + +# __2.15.54__ __2020-12-28__ +## __Amazon CloudFront__ + - ### Features + - Amazon CloudFront has deprecated the CreateStreamingDistribution and CreateStreamingDistributionWithTags APIs as part of discontinuing support for Real-Time Messaging Protocol (RTMP) distributions. + +# __2.15.53__ __2020-12-23__ +## __AWS Compute Optimizer__ + - ### Features + - This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for lambda functions. + +## __AWS Database Migration Service__ + - ### Features + - AWS DMS launches support for AWS Secrets Manager to manage Oracle ASM Database credentials + +## __AWS Resource Groups__ + - ### Features + - Add operation `PutGroupConfiguration`. Support dedicated hosts and add `Pending` in operations `Un/GroupResources`. Add `Resources` in `ListGroupResources` and deprecate `ResourceIdentifiers`. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.15.52__ __2020-12-22__ +## __AWS Cost Explorer Service__ + - ### Features + - This release adds additional metadata that may be applicable to the Rightsizing Recommendations. + +## __AWS Glue__ + - ### Features + - AWS Glue Find Matches machine learning transforms now support column importance scores. + +## __AWS IoT Wireless__ + - ### Features + - Adding the ability to use Fingerprint in GetPartnerAccount and ListPartnerAccounts API responses to protect sensitive customer account information. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for quick connects. For details, see the Release Notes in the Amazon Connect Administrator Guide. + +## __Amazon ElastiCache__ + - ### Features + - Documentation updates for elasticache + +## __Amazon Relational Database Service__ + - ### Features + - Adds customer-owned IP address (CoIP) support to Amazon RDS on AWS Outposts. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - SSM Maintenance Window support for registering/updating maintenance window tasks without targets. + +# __2.15.51__ __2020-12-21__ +## __AWS Batch__ + - ### Features + - Documentation updates for batch + +## __AWS Config__ + - ### Features + - AWS Config adds support to save advanced queries. New API operations - GetStoredQuery, PutStoredQuery, ListStoredQueries, DeleteStoredQuery + +## __AWS Database Migration Service__ + - ### Features + - AWS DMS launches support for AWS Secrets Manager to manage source and target database credentials. + +## __AWS Glue__ + - ### Features + - Add 4 connection properties: SECRET_ID, CONNECTOR_URL, CONNECTOR_TYPE, CONNECTOR_CLASS_NAME. Add two connection types: MARKETPLACE, CUSTOM + +## __AWS Outposts__ + - ### Features + - In this release, AWS Outposts adds support for three new APIs: TagResource, UntagResource, and ListTagsForResource. Customers can now manage tags for their resources through the SDK. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Finding providers can now use BatchImportFindings to update Confidence, Criticality, RelatedFindings, Severity, and Types. + +## __AWS Service Catalog App Registry__ + - ### Features + - New API `SyncResouce` to update AppRegistry system tags. + +## __Amazon API Gateway__ + - ### Features + - Documentation updates for Amazon API Gateway. + +## __Amazon Connect Participant Service__ + - ### Features + - This release adds three new APIs: StartAttachmentUpload, CompleteAttachmentUpload, and GetAttachment. For Amazon Connect Chat, you can use these APIs to share files in chat conversations. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds Tag On Create feature support for the AllocateAddress API. + +## __Amazon Managed Blockchain__ + - ### Features + - Added support for provisioning and managing public Ethereum nodes on main and test networks supporting secure access using Sigv4 and standard open-source Ethereum APIs. + +## __Amazon QLDB Session__ + - ### Features + - Adds "TimingInformation" to all SendCommand API results and "IOUsage" to ExecuteStatementResult, FetchPageResult and CommitTransactionResult. + +## __Amazon Simple Storage Service__ + - ### Features + - Format GetObject's Expires header to be an http-date instead of iso8601 + +## __Service Quotas__ + - ### Features + - Added the ability to tag applied quotas. + +# __2.15.50__ __2020-12-18__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Upgrading jackson.databind.version to 2.10.5.1 + +## __Amazon Elastic Compute Cloud__ + - ### Features + - EBS io2 volumes now supports Multi-Attach + +## __Amazon Personalize Runtime__ + - ### Features + - Updated FilterValues regex pattern to align with Filter Expression. + +## __Amazon Relational Database Service__ + - ### Features + - Adds IAM DB authentication information to the PendingModifiedValues output of the DescribeDBInstances API. Adds ClusterPendingModifiedValues information to the output of the DescribeDBClusters API. + +# __2.15.49__ __2020-12-17__ +## __AWS Config__ + - ### Features + - Adding PutExternalEvaluation API which grants permission to deliver evaluation result to AWS Config + +## __AWS Key Management Service__ + - ### Features + - Added CreationDate and LastUpdatedDate timestamps to ListAliases API response + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - This change fixes a bug in the code generation related to eventstreams that prevents multiple events to share the same shape. + +## __AWS Service Catalog__ + - ### Features + - Support TagOptions sharing with Service Catalog portfolio sharing. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Provide Cross-account copy event based policy support in DataLifecycleManager (DLM) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - C6gn instances are powered by AWS Graviton2 processors and offer 100 Gbps networking bandwidth. These instances deliver up to 40% better price-performance benefit versus comparable x86-based instances + +## __Amazon Route 53__ + - ### Features + - This release adds support for DNSSEC signing in Amazon Route 53. + +## __Amazon Route 53 Resolver__ + - ### Features + - Route 53 Resolver adds support for enabling resolver DNSSEC validation in virtual private cloud (VPC). + +## __Amazon Simple Queue Service__ + - ### Features + - Amazon SQS adds queue attributes to enable high throughput FIFO. + +## __EC2 Image Builder__ + - ### Features + - This release adds support for building and distributing container images within EC2 Image Builder. + +# __2.15.48__ __2020-12-16__ +## __AWS Cost Explorer Service__ + - ### Features + - This release updates the "MonitorArnList" from a list of String to be a list of Arn for both CreateAnomalySubscription and UpdateAnomalySubscription APIs + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Well-Architected Tool__ + - ### Features + - This is the first release of AWS Well-Architected Tool API support, use to review your workload and compare against the latest AWS architectural best practices. + +## __Amazon Location Service__ + - ### Features + - Initial release of Amazon Location Service. A new geospatial service providing capabilities to render maps, geocode/reverse geocode, track device locations, and detect geofence entry/exit events. + +## __Amazon Prometheus Service__ + - ### Features + - Documentation updates for Amazon Managed Service for Prometheus + +## __Amazon QuickSight__ + - ### Features + - QuickSight now supports connecting to federated data sources of Athena + +# __2.15.47__ __2020-12-15__ +## __AWS IoT__ + - ### Features + - AWS IoT Rules Engine adds Kafka Action that allows sending data to Apache Kafka clusters inside a VPC. AWS IoT Device Defender adds custom metrics and machine-learning based anomaly detection. + +## __AWS IoT Analytics__ + - ### Features + - FileFormatConfiguration enables data store to save data in JSON or Parquet format. S3Paths enables you to specify the S3 objects that save your channel messages when you reprocess the pipeline. + +## __AWS IoT Core Device Advisor__ + - ### Features + - AWS IoT Core Device Advisor is fully managed test capability for IoT devices. Device manufacturers can use Device Advisor to test their IoT devices for reliable and secure connectivity with AWS IoT. + +## __AWS IoT Fleet Hub__ + - ### Features + - AWS IoT Fleet Hub, a new feature of AWS IoT Device Management that provides a web application for monitoring and managing device fleets connected to AWS IoT at scale. + +## __AWS IoT Greengrass V2__ + - ### Features + - AWS IoT Greengrass V2 is a new major version of AWS IoT Greengrass. This release adds several updates such as modular components, continuous deployments, and improved ease of use. + +## __AWS IoT Wireless__ + - ### Features + - AWS IoT for LoRaWAN enables customers to setup a private LoRaWAN network by connecting their LoRaWAN devices and gateways to the AWS cloud without managing a LoRaWAN Network Server. + +## __AWS Lambda__ + - ### Features + - Added support for Apache Kafka as a event source. Added support for TumblingWindowInSeconds for streams event source mappings. Added support for FunctionResponseTypes for streams event source mappings + +## __Amazon Prometheus Service__ + - ### Features + - (New Service) Amazon Managed Service for Prometheus is a fully managed Prometheus-compatible monitoring service that makes it easy to monitor containerized applications securely and at scale. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Adding support for Change Manager API content + +# __2.15.46__ __2020-12-14__ +## __AWS Global Accelerator__ + - ### Features + - This release adds support for custom routing accelerators + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Treat zero-byte responses from async HTTP clients as not having a payload, regardless of the response content-length. This fixes an issue that could cause HEAD responses (e.g. s3's headObject responses) with a content-length specified from being treated as having a payload. This fixes issues like [#1216](https://github.com/aws/aws-sdk-java-v2/issues/1216) where the SDK attempts to read data from the response based on the content-length, not based on whether there was actually a payload. + +## __Amazon DevOps Guru__ + - ### Features + - Documentation updates for DevOps Guru. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add c5n.metal to ec2 instance types list + +# __2.15.45__ __2020-12-11__ +## __AWS CloudTrail__ + - ### Features + - CloudTrailInvalidClientTokenIdException is now thrown when a call results in the InvalidClientTokenId error code. The Name parameter of the AdvancedEventSelector data type is now optional. + +## __AWS IoT SiteWise__ + - ### Features + - Added the ListAssetRelationships operation and support for composite asset models, which represent structured sets of properties within asset models. + +## __AWS Performance Insights__ + - ### Features + - You can group DB load according to the dimension groups for database, application, and session type. Amazon RDS also supports the dimensions db.name, db.application.name, and db.session_type.name. + +## __Amazon CloudWatch__ + - ### Features + - Documentation updates for monitoring + +## __Amazon GuardDuty__ + - ### Features + - Documentation updates for GuardDuty + +## __Auto Scaling__ + - ### Features + - Documentation updates and corrections for Amazon EC2 Auto Scaling API Reference and SDKs. + +# __2.15.44__ __2020-12-10__ +## __AWS Network Manager__ + - ### Features + - This release adds API support for Transit Gateway Connect integration into AWS Network Manager. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports adding synonyms to an index through the new Thesaurus resource. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - TGW connect simplifies connectivity of SD-WAN appliances; IGMP support for TGW multicast; VPC Reachability Analyzer for VPC resources connectivity analysis. + +# __2.15.43__ __2020-12-09__ +## __AWS Global Accelerator__ + - ### Features + - This release adds support for custom routing accelerators + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for G4ad instances powered by AMD Radeon Pro V520 GPUs and AMD 2nd Generation EPYC processors + +## __Amazon Redshift__ + - ### Features + - Add support for availability zone relocation feature. + +# __2.15.42__ __2020-12-08__ +## __AWS Audit Manager__ + - ### Features + - AWS Audit Manager helps you continuously audit your AWS usage to simplify how you manage risk and compliance. This update releases the first version of the AWS Audit Manager APIs and SDK. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - The SDK will now retry on `TransactionInProgressException` error code. + +## __AWSKendraFrontendService__ + - ### Features + - 1. Amazon Kendra connector for Google Drive repositories 2. Amazon Kendra's relevance ranking models are regularly tuned for each customer by capturing end-user search patterns and feedback. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release adds support for configuring cross-region and cross-account replication of your Amazon ECR images. + +## __Amazon EMR Containers__ + - ### Features + - This release adds support for Amazon EMR on EKS, a simple way to run Spark on Kubernetes. + +## __Amazon Forecast Service__ + - ### Features + - This release adds support for the Amazon Forecast Weather Index which can increase forecasting accuracy by automatically including weather forecasts in demand forecasts. + +## __Amazon HealthLake__ + - ### Features + - This release introduces Amazon HealthLake (preview), a HIPAA-eligible service that enables healthcare and life sciences customers to store, transform, query, and analyze health data in the AWS Cloud. + +## __Amazon QuickSight__ + - ### Features + - Added new parameters for join optimization. + +## __Amazon SageMaker Runtime__ + - ### Features + - This feature allows customers to invoke their endpoint with an inference ID. If used and data capture for the endpoint is enabled, this ID will be captured along with request data. + +## __Amazon SageMaker Service__ + - ### Features + - This feature helps you monitor model performance characteristics such as accuracy, identify undesired bias in your ML models, and explain model decisions better with explainability drift detection. + +## __Amazon Sagemaker Edge Manager__ + - ### Features + - Amazon SageMaker Edge Manager makes it easy to optimize, secure, monitor, and maintain machine learning (ML) models across fleets of edge devices such as smart cameras, smart speakers, and robots. + +# __2.15.41__ __2020-12-07__ +## __AWS Common Runtime HTTP Client__ + - ### Features + - Bump up `aws-crt` version to `0.9.0` + +## __AWS Database Migration Service__ + - ### Features + - Added PreserveTransaction setting to preserve order of CDC for S3 as target. Added CsvNoSupValue setting to replace empty value for columns not included in the supplemental log for S3 as target. + +## __AWS SDK for Java v2__ + - ### Features + - Added amz-sdk-request and removed amz-sdk-retry header. The new header matches the behavior of the other SDKs. + - Updated service endpoint metadata. + +## __AWS Service Catalog App Registry__ + - ### Features + - AWS Service Catalog AppRegistry now supports adding, removing, and listing tags on resources after they are created. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fixed the issue where certain handshake errors manifested as acquire connection timeout error when using TLS1.3 and proxy. + +# __2.15.40__ __2020-12-04__ +## __AWS Directory Service__ + - ### Features + - Documentation updates for ds - updated descriptions + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports black video and audio silence as new conditions to trigger automatic input failover. + +## __AWS Lambda__ + - ### Features + - Added the additional enum InvalidImage to StateReasonCode and LastUpdateStatusReasonCode fields. + +## __AWS License Manager__ + - ### Features + - Automated Discovery now has support for custom tags, and detects software uninstalls. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Avoid costly metrics collection when metric collector is NoOpMetricCollector. + - Contributed by: [@croudet](https://github.com/croudet) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release introduces tag-on-create capability for the CreateImage API. A user can now specify tags that will be applied to the new resources (image, snapshots or both), during creation time. + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for Amazon RDS Cross-Region Automated Backups, the ability to setup automatic replication of snapshots and transaction logs from a primary AWS Region to a secondary AWS Region. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - AWS Systems Manager Patch Manager MAC OS Support and OpsMetadata Store APIs to store operational metadata for an Application. + +## __Amazon WorkSpaces__ + - ### Features + - Update the import-workspace-image API to have "BYOL_REGULAR_WSP" as a valid input string for ingestion-process. + +## __Managed Streaming for Kafka__ + - ### Features + - Adding HEALING to ClusterState. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@croudet](https://github.com/croudet) +# __2.15.39__ __2020-12-03__ +## __AWS Batch__ + - ### Features + - This release adds support for customer to run Batch Jobs on ECS Fargate, the serverless compute engine built for containers on AWS. Customer can also propagate Job and Job Definition Tags to ECS Task. + +## __AWS Compute Optimizer__ + - ### Features + - This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for EBS volumes that are attached to instances. + +## __AWS License Manager__ + - ### Features + - AWS License Manager enables managed entitlements for AWS customers and Software Vendors (ISV). You can track and distribute license entitlements from AWS Marketplace and supported ISVs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AmplifyBackend__ + - ### Features + - Regular documentation updates. + +# __2.15.38__ __2020-12-01__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This is the first release of Amazon Connect Customer Profiles, a unified customer profile for your Amazon Connect contact center. + +# __2.15.37__ __2020-12-01__ +## __AWS Directory Service__ + - ### Features + - Adding client authentication feature for AWS AD Connector + +## __AWS Lambda__ + - ### Features + - This release includes support for a new feature: Container images support in AWS Lambda. This adds APIs for deploying functions as container images. AWS Lambda now supports memory up to 10240MB. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon AppIntegrations Service__ + - ### Features + - The Amazon AppIntegrations service (in preview release) enables you to configure and reuse connections to external applications. + +## __Amazon Connect Contact Lens__ + - ### Features + - Contact Lens for Amazon Connect analyzes conversations, both real-time and post-call. The ListRealtimeContactAnalysisSegments API returns a list of analysis segments for a real-time analysis session. + +## __Amazon Connect Service__ + - ### Features + - This release adds an Amazon Connect API that provides the ability to create tasks, and a set of APIs (in preview) to configure AppIntegrations associations with Amazon Connect instances. + +## __Amazon DevOps Guru__ + - ### Features + - (New Service) Amazon DevOps Guru is available in public preview. It's a fully managed service that uses machine learning to analyze your operational solutions to help you find and troubleshoot issues. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for: EBS gp3 volumes; and D3/D3en/R5b/M5zn instances powered by Intel Cascade Lake CPUs + +## __Amazon Elastic Container Registry Public__ + - ### Features + - Supports Amazon Elastic Container Registry (Amazon ECR) Public, a fully managed registry that makes it easy for a developer to publicly share container software worldwide for anyone to download. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Amazon EKS now allows you to define and manage the lifecycle for Kubernetes add-ons for your clusters. This release adds support for the AWS VPC CNI (vpc-cni). + +## __Amazon Honeycode__ + - ### Features + - Introducing APIs to read and write directly from Honeycode tables. Use APIs to pull table and column metadata, then use the read and write APIs to programmatically read and write from the tables. + +## __Amazon Lookout for Vision__ + - ### Features + - This release introduces support for Amazon Lookout for Vision. + +## __Amazon SageMaker Feature Store Runtime__ + - ### Features + - This release adds support for Amazon SageMaker Feature Store, which makes it easy for customers to create, version, share, and manage curated data for machine learning (ML) development. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Pipelines for ML workflows. Amazon SageMaker Feature Store, a fully managed repository for ML features. + +## __Amazon Simple Storage Service__ + - ### Features + - S3 adds support for multiple-destination replication, option to sync replica modifications; S3 Bucket Keys to reduce cost of S3 SSE with AWS KMS + +## __AmplifyBackend__ + - ### Features + - (New Service) The Amplify Admin UI offers an accessible way to develop app backends and manage app content. We recommend that you use the Amplify Admin UI to manage the backend of your Amplify app. + +# __2.15.36__ __2020-11-30__ +## __AWS SDK for Java v2__ + - ### Features + - Add LICENSE.txt and NOTICE.txt to META-INF directory of generated JARs + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixed a resource leak that could occur when closing the default credentials provider (or a client using the default credentials provider), when `closeable` credentials like STS or SSO were in use. Fixes [#2149](https://github.com/aws/aws-sdk-java-v2/issues/2149). + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release introduces Amazon EC2 Mac1 instances, a new Amazon EC2 instance family built on Apple Mac mini computers, powered by AWS Nitro System, and support running macOS workloads on Amazon EC2 + +# __2.15.35__ __2020-11-24__ +## __AWS Batch__ + - ### Features + - Add Ec2Configuration in ComputeEnvironment.ComputeResources. Use in CreateComputeEnvironment API to enable AmazonLinux2 support. + +## __AWS CloudFormation__ + - ### Features + - Adds support for the new Modules feature for CloudFormation. A module encapsulates one or more resources and their respective configurations for reuse across your organization. + +## __AWS CloudTrail__ + - ### Features + - CloudTrail now includes advanced event selectors, which give you finer-grained control over the events that are logged to your trail. + +## __AWS CodeBuild__ + - ### Features + - Adding GetReportGroupTrend API for Test Reports. + +## __AWS Elastic Beanstalk__ + - ### Features + - Updates the Integer constraint of DescribeEnvironmentManagedActionHistory's MaxItems parameter to [1, 100]. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for Vorbis and Opus audio in OGG/OGA containers. + +## __AWS IoT SiteWise__ + - ### Features + - This release adds support for customer managed customer master key (CMK) based encryption in IoT SiteWise. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Step Functions__ + - ### Features + - This release of the AWS Step Functions SDK introduces support for Synchronous Express Workflows + +## __Amazon Appflow__ + - ### Features + - Upsolver as a destination connector and documentation update. + +## __Amazon Cognito Identity Provider__ + - ### Features + - This release adds ability to configure Cognito User Pools with third party sms and email providers for sending notifications to users. + +## __Amazon Comprehend__ + - ### Features + - Support Comprehend events detection APIs + +## __Amazon FSx__ + - ### Features + - This release adds the capability to increase storage capacity of Amazon FSx for Lustre file systems, providing the flexibility to meet evolving storage needs over time. + +## __Amazon GameLift__ + - ### Features + - GameLift FlexMatch is now available as a standalone matchmaking solution. FlexMatch now provides customizable matchmaking for games hosted peer-to-peer, on-premises, or on cloud compute primitives. + +## __Amazon Lex Model Building Service__ + - ### Features + - Lex now supports es-419, de-DE locales + +## __Amazon QuickSight__ + - ### Features + - Support for embedding without user registration. New enum EmbeddingIdentityType. A potential breaking change. Affects code that refers IdentityType enum type directly instead of literal string value. + +## __Amazon Timestream Write__ + - ### Features + - Adds support of upserts for idempotent updates to Timestream. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - Amazon Transcribe Medical streaming added medical specialties and HTTP/2 support. Amazon Transcribe streaming supports additional languages. Both support OGG/OPUS and FLAC codecs for streaming. + +## __AmazonMWAA__ + - ### Features + - (New Service) Amazon MWAA is a managed service for Apache Airflow that makes it easy for data engineers and data scientists to execute data processing workflows in the cloud. + +# __2.15.34__ __2020-11-23__ +## __AWS CodeStar connections__ + - ### Features + - Added support for the UpdateHost API. + +## __AWS Glue__ + - ### Features + - Feature1 - Glue crawler adds data lineage configuration option. Feature2 - AWS Glue Data Catalog adds APIs for PartitionIndex creation and deletion as part of Enhancement Partition Management feature. + +## __AWS IoT__ + - ### Features + - This release enables users to identify different file types in the over-the-air update (OTA) functionality using fileType parameter for CreateOTAUpdate API + +## __AWS Lambda__ + - ### Features + - This release includes support for new feature: Code Signing for AWS Lambda. This adds new resources and APIs to configure Lambda functions to accept and verify signed code artifacts at deployment. + +## __AWS License Manager__ + - ### Features + - AWS License Manager now provides the ability for license administrators to be able to associate license configurations to AMIs shared with their AWS account + +## __AWS Outposts__ + - ### Features + - Support specifying tags during the creation of the Outpost resource. Tags are now returned in the response body of Outpost APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Updated the account management API to support the integration with AWS Organizations. Added new methods to allow users to view and manage the delegated administrator account for Security Hub. + +## __AWS Signer__ + - ### Features + - AWS Signer is launching code-signing for AWS Lambda. Now customers can cryptographically sign Lambda code to ensure trust, integrity, and functionality. + +## __AWS Single Sign-On Admin__ + - ### Features + - AWS Single Sign-On now enables attribute-based access control for workforce identities to simplify permissions in AWS + +## __Amazon CloudWatch Application Insights__ + - ### Features + - Add Detected Workload to ApplicationComponent which shows the workloads that installed in the component + +## __Amazon DynamoDB__ + - ### Features + - With this release, you can capture data changes in any Amazon DynamoDB table as an Amazon Kinesis data stream. You also can use PartiQL (SQL-compatible language) to manipulate data in DynamoDB tables. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for updating capacity providers, specifying custom instance warmup periods for capacity providers, and using deployment circuit breaker for your ECS Services. + +## __Amazon ElastiCache__ + - ### Features + - Documentation updates for elasticache + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Multiple Private DNS names to DescribeVpcEndpointServices response. + +## __Amazon Elastic MapReduce__ + - ### Features + - Add API support for EMR Studio, a new notebook-first IDE for data scientists and data engineers with single sign-on, Jupyter notebooks, automated infrastructure provisioning, and job diagnosis. + +## __Amazon Forecast Service__ + - ### Features + - Releasing the set of PredictorBacktestExportJob APIs which allow customers to export backtest values and item-level metrics data from Predictor training. + +## __Amazon Timestream Query__ + - ### Features + - Amazon Timestream now supports "QueryStatus" in Query API which has information about cumulative bytes scanned, metered, as well as progress percentage for the query. + +## __Amazon Translate__ + - ### Features + - This update adds new operations to create and manage parallel data in Amazon Translate. Parallel data is a resource that you can use to run Active Custom Translation jobs. + +## __Auto Scaling__ + - ### Features + - Documentation updates and corrections for Amazon EC2 Auto Scaling API Reference and SDKs. + +## __CodeArtifact__ + - ### Features + - Add support for the NuGet package format. + +## __Managed Streaming for Kafka__ + - ### Features + - Adding MAINTENANCE and REBOOTING_BROKER to Cluster states. + +# __2.15.33__ __2020-11-20__ +## __AWS App Mesh__ + - ### Features + - This release makes tag value a required attribute of the tag's key-value pair. + +## __AWS CloudHSM V2__ + - ### Features + - Added managed backup retention, a feature that enables customers to retain backups for a configurable period after which CloudHSM service will automatically delete them. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog App Registry__ + - ### Features + - AWS Service Catalog AppRegistry Documentation update + +## __AWS Single Sign-on__ + - ### Features + - Added support for retrieving SSO credentials: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html. + +## __Amazon Chime__ + - ### Features + - The Amazon Chime SDK for messaging provides the building blocks needed to build chat and other real-time collaboration features. + +## __Amazon CodeGuru Reviewer__ + - ### Features + - This release supports tagging repository association resources in Amazon CodeGuru Reviewer. + +## __Amazon Cognito Identity__ + - ### Features + - Added SDK pagination support for ListIdentityPools + +## __Amazon Connect Service__ + - ### Features + - This release adds a set of Amazon Connect APIs to programmatically control instance creation, modification, description and deletion. + +## __Amazon Macie 2__ + - ### Features + - The Amazon Macie API now provides S3 bucket metadata that indicates whether any one-time or recurring classification jobs are configured to analyze data in a bucket. + +## __Amazon Simple Storage Service__ + - ### Features + - Add new documentation regarding automatically generated Content-MD5 headers when using the SDK or CLI. + +## __Managed Streaming for Kafka__ + - ### Features + - This release adds support for PER TOPIC PER PARTITION monitoring on AWS MSK clusters. + +# __2.15.32__ __2020-11-19__ +## __AWS Cost Explorer Service__ + - ### Features + - Additional metadata that may be applicable to the recommendation. + +## __AWS Directory Service__ + - ### Features + - Adding multi-region replication feature for AWS Managed Microsoft AD + +## __AWS Elemental MediaLive__ + - ### Features + - The AWS Elemental MediaLive APIs and SDKs now support the ability to see the software update status on Link devices + +## __AWS Glue__ + - ### Features + - Adding support for Glue Schema Registry. The AWS Glue Schema Registry is a new feature that allows you to centrally discover, control, and evolve data stream schemas. + +## __AWS Lambda__ + - ### Features + - Added the starting position and starting position timestamp to ESM Configuration. Now customers will be able to view these fields for their ESM. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch Events__ + - ### Features + - EventBridge now supports Resource-based policy authorization on event buses. This enables cross-account PutEvents API calls, creating cross-account rules, and simplifies permission management. + +## __Amazon EventBridge__ + - ### Features + - EventBridge now supports Resource-based policy authorization on event buses. This enables cross-account PutEvents API calls, creating cross-account rules, and simplifies permission management. + +## __Amazon Kinesis Analytics__ + - ### Features + - Amazon Kinesis Data Analytics now supports building and running streaming applications using Apache Flink 1.11 and provides a way to access the Apache Flink dashboard for supported Flink versions. + +## __Amazon Lex Model Building Service__ + - ### Features + - Amazon Lex supports managing input and output contexts as well as default values for slots. + +## __Amazon Lex Runtime Service__ + - ### Features + - Amazon Lex now supports the ability to view and manage active contexts associated with a user session. + +## __Amazon Redshift__ + - ### Features + - Amazon Redshift support for returning ClusterNamespaceArn in describeClusters + +## __Auto Scaling__ + - ### Features + - You can now create Auto Scaling groups with multiple launch templates using a mixed instances policy, making it easy to deploy an AMI with an architecture that is different from the rest of the group. + +# __2.15.31__ __2020-11-18__ +## __AWS Backup__ + - ### Features + - AWS Backup now supports cross-account backup, enabling AWS customers to securely copy their backups across their AWS accounts within their AWS organizations. + +## __AWS CloudFormation__ + - ### Features + - This release adds ChangeSets support for Nested Stacks. ChangeSets offer a preview of how proposed changes to a stack might impact existing resources or create new ones. + +## __AWS CodeBuild__ + - ### Features + - AWS CodeBuild - Adding Status field for Report Group + +## __AWS Outposts__ + - ### Features + - Mark the Name parameter in CreateOutpost as required. + +## __AWS S3 Control__ + - ### Features + - AWS S3 Storage Lens provides visibility into your storage usage and activity trends at the organization or account level, with aggregations by Region, storage class, bucket, and prefix. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon ElastiCache__ + - ### Features + - Adding Memcached 1.6 to parameter family + +## __Amazon Elastic Compute Cloud__ + - ### Features + - EC2 Fleet adds support of DeleteFleets API for instant type fleets. Now you can delete an instant type fleet and terminate all associated instances with a single API call. + +# __2.15.30__ __2020-11-17__ +## __AWS Network Firewall__ + - ### Features + - (New Service) AWS Network Firewall is a managed network layer firewall service that makes it easy to secure your virtual private cloud (VPC) networks and block malicious traffic. + +## __Amazon Chime__ + - ### Features + - This release adds CRUD APIs for Amazon Chime SipMediaApplications and SipRules. It also adds the API for creating outbound PSTN calls for Amazon Chime meetings. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for user hierarchy group and user hierarchy structure. For details, see the Release Notes in the Amazon Connect Administrator Guide. + +## __Amazon Macie 2__ + - ### Features + - The Amazon Macie API now has a lastRunErrorStatus property to indicate if account- or bucket-level errors occurred during the run of a one-time classification job or the latest run of a recurring job. + +## __Amazon Relational Database Service__ + - ### Features + - Support copy-db-snapshot in the one region on cross clusters and local cluster for RDSonVmware. Add target-custom-availability-zone parameter to specify where a snapshot should be copied. + +## __Firewall Management Service__ + - ### Features + - Added Firewall Manager policy support for AWS Network Firewall resources. + +# __2.15.29__ __2020-11-16__ +## __AWS CodePipeline__ + - ### Features + - We show details about inbound executions and id of action executions in GetPipelineState API. We also add ConflictException to StartPipelineExecution, RetryStageExecution, StopPipelineExecution APIs. + +## __AWS Database Migration Service__ + - ### Features + - Adding MoveReplicationTask feature to move replication tasks between instances + +## __AWS IoT Secure Tunneling__ + - ### Features + - Support using multiple data streams per tunnel using the Secure Tunneling multiplexing feature. + +## __AWS IoT SiteWise__ + - ### Features + - This release supports Unicode characters for string operations in formulae computes in SiteWise. For more information, search for SiteWise in Amazon What's new or refer the SiteWise documentation. + +## __AWS Service Catalog__ + - ### Features + - Support import of CloudFormation stacks into Service Catalog provisioned products. + +## __Amazon QuickSight__ + - ### Features + - Adding new parameters for dashboard persistence + +## __Amazon SageMaker Service__ + - ### Features + - This feature enables customers to encrypt their Amazon SageMaker Studio storage volumes with customer master keys (CMKs) managed by them in AWS Key Management Service (KMS). + +## __Amazon Simple Notification Service__ + - ### Features + - Documentation updates for Amazon SNS. + +## __Synthetics__ + - ### Features + - AWS Synthetics now supports Environment Variables to assign runtime parameters in the canary scripts. + +# __2.15.28__ __2020-11-13__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Shield__ + - ### Features + - This release adds APIs for two new features: 1) Allow customers to bundle resources into protection groups and treat as a single unit. 2) Provide per-account event summaries to all AWS customers. + +## __Amazon Textract__ + - ### Features + - AWS Textract now allows customers to specify their own KMS key to be used for asynchronous jobs output results, AWS Textract now also recognizes handwritten text from English documents. + +## __Elastic Load Balancing__ + - ### Features + - Adds dualstack support for Network Load Balancers (TCP/TLS only), an attribute for WAF fail open for Application Load Balancers, and an attribute for connection draining for Network Load Balancers. + +# __2.15.27__ __2020-11-12__ +## __AWS IoT__ + - ### Features + - This release adds a batchMode parameter to the IotEvents, IotAnalytics, and Firehose actions which allows customers to send an array of messages to the corresponding services + +## __AWS RoboMaker__ + - ### Features + - This release introduces Robomaker Worldforge TagsOnCreate which allows customers to tag worlds as they are being generated by providing the tags while configuring a world generation job. + +## __AWS Service Catalog App Registry__ + - ### Features + - AWS Service Catalog AppRegistry provides a repository of your applications, their resources, and the application metadata that you use within your enterprise. + +## __Amazon Lex Model Building Service__ + - ### Features + - Lex now supports es-ES, it-IT, fr-FR and fr-CA locales + +## __Amazon Lightsail__ + - ### Features + - This release adds support for Amazon Lightsail container services. You can now create a Lightsail container service, and deploy Docker images to it. + +## __Amazon Personalize Runtime__ + - ### Features + - Adds support to use dynamic filters with Personalize. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new Australian English female voice - Olivia. Olivia is available as Neural voice only. + +# __2.15.26__ __2020-11-11__ +## __AWS Amplify__ + - ### Features + - Whereas previously custom headers were set via the app's buildspec, custom headers can now be set directly on the Amplify app for both ci/cd and manual deploy apps. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for Automated ABR encoding and improved the reliability of embedded captions in accelerated outputs. + +## __AWS Glue DataBrew__ + - ### Features + - This is the initial SDK release for AWS Glue DataBrew. DataBrew is a visual data preparation tool that enables users to clean and normalize data without writing any code. + +## __AWS Service Catalog__ + - ### Features + - Adding support to remove a Provisioned Product launch role via UpdateProvisionedProductProperties + +## __Amazon Forecast Service__ + - ### Features + - Providing support of custom quantiles in CreatePredictor API. + +## __Amazon QuickSight__ + - ### Features + - QuickSight now supports Column-level security and connecting to Oracle data source. + +## __Netty NIO HTTP Client__ + - ### Features + - Upgrade Netty libraries to `4.1.53.Final`, and `netty-tcnative-boringssl-static` to `2.0.34.Final`. + + - ### Bugfixes + - Fix a bug where the Netty HTTP client can leak memory when a response stream is cancelled prematurely but the upstream publisher continues to invoke onNext for some time before stopping. Fixes [#2051](https://github.com/aws/aws-sdk-java-v2/issues/2051). + +# __2.15.25__ __2020-11-10__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix default client error to have spaces between words. + - Contributed by: [@frosforever](https://github.com/frosforever) + - Replaced class loading from Thread.currentThread().getContextClassLoader() to ClassLoaderHelper in ProfileCredentialsUtils and WebIdentityCredentialsUtils, since it was causing Class not found error. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Gateway Load Balancer VPC endpoints and VPC endpoint services + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Add SessionId as a filter for DescribeSessions API + +## __Auto Scaling__ + - ### Features + - Documentation updates and corrections for Amazon EC2 Auto Scaling API Reference and SDKs. + +## __Elastic Load Balancing__ + - ### Features + - Added support for Gateway Load Balancers, which make it easy to deploy, scale, and run third-party virtual networking appliances. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@frosforever](https://github.com/frosforever) +# __2.15.24__ __2020-11-09__ +## __AWS DataSync__ + - ### Features + - DataSync now enables customers to adjust the network bandwidth used by a running AWS DataSync task. + +## __AWS IoT Analytics__ + - ### Features + - AWS IoT Analytics now supports Late Data Notifications for datasets, dataset content creation using previous version IDs, and includes the LastMessageArrivalTime attribute for channels and datastores. + +## __AWS Storage Gateway__ + - ### Features + - Added bandwidth rate limit schedule for Tape and Volume Gateways + +## __Amazon DynamoDB__ + - ### Features + - This release adds supports for exporting Amazon DynamoDB table data to Amazon S3 to perform analytics at any scale. + +## __Amazon EC2 Container Service__ + - ### Features + - This release provides native support for specifying Amazon FSx for Windows File Server file systems as volumes in your Amazon ECS task definitions. + +## __Amazon Elasticsearch Service__ + - ### Features + - Adding support for package versioning in Amazon Elasticsearch Service + +## __Amazon FSx__ + - ### Features + - This release adds support for creating DNS aliases for Amazon FSx for Windows File Server, and using AWS Backup to automate scheduled, policy-driven backup plans for Amazon FSx file systems. + +## __Amazon Macie 2__ + - ### Features + - Sensitive data findings in Amazon Macie now include enhanced location data for Apache Avro object containers and Apache Parquet files. + +## __Amazon Simple Storage Service__ + - ### Features + - S3 Intelligent-Tiering adds support for Archive and Deep Archive Access tiers; S3 Replication adds replication metrics and failure notifications, brings feature parity for delete marker replication + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - add a new filter to allow customer to filter automation executions by using resource-group which used for execute automation + +# __2.15.23__ __2020-11-06__ +## __AWS Elemental MediaLive__ + - ### Features + - Support for SCTE35 ad markers in OnCuePoint style in RTMP outputs. + +## __AWS IoT SiteWise__ + - ### Features + - Remove the CreatePresignedPortalUrl API + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Amazon Data Lifecycle Manager now supports the creation and retention of EBS-backed Amazon Machine Images + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Network card support with four new attributes: NetworkCardIndex, NetworkPerformance, DefaultNetworkCardIndex, and MaximumNetworkInterfaces, added to the DescribeInstanceTypes API. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Documentation updates for Systems Manager + +# __2.15.22__ __2020-11-05__ +## __AWS App Mesh__ + - ### Features + - This release adds circuit breaking capabilities to your mesh with connection pooling and outlier detection support. + +## __AWS Lambda__ + - ### Features + - Support Amazon MQ as an Event Source. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports providing user context in your query requests, Tokens can be JSON or JWT format. This release also introduces support for Confluence cloud datasources. + +## __Amazon CloudWatch Events__ + - ### Features + - With this release, customers can now reprocess past events by storing the events published on event bus in an encrypted archive. + +## __Amazon DynamoDB__ + - ### Features + - This release adds a new ReplicaStatus INACCESSIBLE_ENCRYPTION_CREDENTIALS for the Table description, indicating when a key used to encrypt a regional replica table is not accessible. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2. + +## __Amazon Elasticsearch Service__ + - ### Features + - Amazon Elasticsearch Service now provides the ability to define a custom endpoint for your domain and link an SSL certificate from ACM, making it easier to refer to Kibana and the domain endpoint. + +## __Amazon EventBridge__ + - ### Features + - With this release, customers can now reprocess past events by storing the events published on event bus in an encrypted archive. + +## __Amazon Fraud Detector__ + - ### Features + - Added support for deleting resources like Variables, ExternalModels, Outcomes, Models, ModelVersions, Labels, EventTypes and EntityTypes. Updated DeleteEvent operation to catch missing exceptions. + +## __Amazon Relational Database Service__ + - ### Features + - Supports a new parameter to set the max allocated storage in gigabytes for the CreateDBInstanceReadReplica API. + +# __2.15.21__ __2020-11-04__ +## __AWS IoT__ + - ### Features + - Updated API documentation and added paginator for AWS Iot Registry ListThingPrincipals API. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog__ + - ### Features + - Service Catalog API ListPortfolioAccess can now support a maximum PageSize of 100. + +## __AWS X-Ray__ + - ### Features + - Releasing new APIs GetInsightSummaries, GetInsightEvents, GetInsight, GetInsightImpactGraph and updating GetTimeSeriesServiceStatistics API for AWS X-Ray Insights feature + +## __AWSMarketplace Metering__ + - ### Features + - Adding Vendor Tagging Support in MeterUsage and BatchMeterUsage API. + +## __Amazon CloudWatch__ + - ### Features + - Documentation updates for monitoring + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Added support for Client Connect Handler for AWS Client VPN. Fleet supports launching replacement instances in response to Capacity Rebalance recommendation. + +## __Amazon Elasticsearch Service__ + - ### Features + - Amazon Elasticsearch Service now supports native SAML authentication that seamlessly integrates with the customers' existing SAML 2.0 Identity Provider (IdP). + +## __Amazon Transcribe Streaming Service__ + - ### Features + - With this release, Amazon Transcribe now supports real-time transcription from audio sources in Italian (it-IT) and German(de-DE). + +## __AmazonMQ__ + - ### Features + - Amazon MQ introduces support for RabbitMQ, a popular message-broker with native support for AMQP 0.9.1. You can now create fully-managed RabbitMQ brokers in the cloud. + +## __Auto Scaling__ + - ### Features + - Capacity Rebalance helps you manage and maintain workload availability during Spot interruptions by proactively augmenting your Auto Scaling group with a new instance before interrupting an old one. + +# __2.15.20__ __2020-11-02__ +## __AWS DynamoDB Enhanced Client__ + - ### Bugfixes + - Publisher streams returned by async resources in the DynamoDB Enhanced Client now correctly handle mapping errors when they are encountered in the stream by calling onError on the subscriber and then implicitly cancelling the subscription. Previously the stream would just permanently hang and never complete. + +## __AWS SDK for Java v2__ + - ### Features + - Added code generation validation that customer-visible identifiers are idiomatic (do not contain underscores). Services with underscores in their models can use rename customizations to fix these issues, or apply the 'underscoresInNameBehavior = ALLOW' customization. + - Upgrade `org.apache.httpcomponents:httpclient` version to `4.5.13` + + - ### Bugfixes + - Fixing race condition in EventStreamAsyncResponseTransformer. Field eventsToDeliver is a LinkedList, i.e., not thread-safe. Accesses to field eventsToDeliver are protected by synchronization on itself, but not in 1 location. + - The mapped publisher returned by SdkPublisher.map will now handle exceptions thrown by the mapping function by calling onError on its subscriber and then cancelling the subscription rather than throwing it back to the publishing process when it attempts to publish data. + +## __AWS SSO OIDC__ + - ### Deprecations + - Renamed/deprecated 'error_description' fields in exceptions in favor of 'errorDescription'. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for the following features: 1. P4d instances based on NVIDIA A100 GPUs. 2. NetworkCardIndex attribute to support multiple network cards. + +# __2.15.19__ __2020-10-30__ +## __AWS Database Migration Service__ + - ### Features + - Adding DocDbSettings to support DocumentDB as a source. + +## __AWS Elemental MediaLive__ + - ### Features + - Support for HLS discontinuity tags in the child manifests. Support for incomplete segment behavior in the media output. Support for automatic input failover condition settings. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixing FilteringSubscriber and LimitingSubscriber to complete when subscribing criteria is completed. + +## __Amazon ElastiCache__ + - ### Features + - Documentation updates for AWS ElastiCache + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API adds an eqExactMatch operator for filtering findings. With this operator you can increase the precision of your finding filters and suppression rules. + +## __Amazon Simple Notification Service__ + - ### Features + - Documentation updates for Amazon SNS + +## __Braket__ + - ### Features + - This release supports tagging for Amazon Braket quantum-task resources. It also supports tag-based access control for quantum-task APIs. + +## __EC2 Image Builder__ + - ### Features + - This feature increases the number of accounts that can be added to the Launch permissions within an Image Builder Distribution configuration. + +# __2.15.18__ __2020-10-29__ +## __AWS Marketplace Commerce Analytics__ + - ### Features + - Documentation updates for marketplacecommerceanalytics to specify four data sets which are deprecated. + +## __AWS Storage Gateway__ + - ### Features + - Adding support for access based enumeration on SMB file shares, file share visibility on SMB file shares, and file upload notifications for all file shares + +## __Amazon API Gateway__ + - ### Features + - Support disabling the default execute-api endpoint for REST APIs. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Support for Appliance mode on Transit Gateway that simplifies deployment of stateful network appliances. Added support for AWS Client VPN Self-Service Portal. + +## __Amazon Simple Email Service__ + - ### Features + - This release enables customers to manage their own contact lists and end-user subscription preferences. + +## __CodeArtifact__ + - ### Features + - Add support for tagging of CodeArtifact domain and repository resources. + +## __Elastic Load Balancing__ + - ### Features + - Application Load Balancer (ALB) now supports the gRPC protocol-version. With this release, customers can use ALB to route and load balance gRPC traffic between gRPC enabled clients and microservices. + +# __2.15.17__ __2020-10-28__ +## __AWS IoT__ + - ### Features + - This release adds support for GG-Managed Job Namespace + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixed an issue where marshalling of a modeled object was not honoring the has* method on a list/map. + - Fixed an issue where the toString/equals/hashCode on a modeled object were not honoring the has* methods for lists and maps. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - AWS Nitro Enclaves general availability. Added support to RunInstances for creating enclave-enabled EC2 instances. New APIs to associate an ACM certificate with an IAM role, for enclave consumption. + +## __Amazon WorkMail__ + - ### Features + - Documentation update for Amazon WorkMail + +# __2.15.16__ __2020-10-27__ +## __AWS Glue__ + - ### Features + - AWS Glue machine learning transforms now support encryption-at-rest for labels and trained models. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.15.15__ __2020-10-26__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports indexing data from Confluence Server. + +## __Amazon Neptune__ + - ### Features + - This feature enables custom endpoints for Amazon Neptune clusters. Custom endpoints simplify connection management when clusters contain instances with different capacities and configuration settings. + +## __Amazon SageMaker Service__ + - ### Features + - This release enables customers to bring custom images for use with SageMaker Studio notebooks. + +# __2.15.14__ __2020-10-23__ +## __AWS MediaTailor__ + - ### Features + - MediaTailor now supports ad marker passthrough for HLS. Use AdMarkerPassthrough to pass EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 from origin manifests into personalized manifests. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API includes miscellaneous updates and improvements to the documentation. + +## __Amazon QuickSight__ + - ### Features + - Support description on columns. + +# __2.15.13__ __2020-10-22__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog__ + - ### Features + - Documentation updates for servicecatalog + +## __Access Analyzer__ + - ### Features + - API Documentation updates for IAM Access Analyzer. + +## __Amazon Appflow__ + - ### Features + - Salesforce connector creation with customer provided client id and client secret, incremental pull configuration, salesforce upsert write operations and execution ID when on-demand flows are executed. + +## __Amazon Simple Notification Service__ + - ### Features + - SNS now supports a new class of topics: FIFO (First-In-First-Out). FIFO topics provide strictly-ordered, deduplicated, filterable, encryptable, many-to-many messaging at scale. + +# __2.15.12__ __2020-10-21__ +## __AWS Global Accelerator__ + - ### Features + - This release adds support for specifying port overrides on AWS Global Accelerator endpoint groups. + +## __AWS Glue__ + - ### Features + - AWS Glue crawlers now support incremental crawls for the Amazon Simple Storage Service (Amazon S3) data source. + +## __AWS Organizations__ + - ### Features + - AWS Organizations renamed the 'master account' to 'management account'. + +## __AWSKendraFrontendService__ + - ### Features + - This release adds custom data sources: a new data source type that gives you full control of the documents added, modified or deleted during a data source sync while providing run history metrics. + +## __Amazon CloudFront__ + - ### Features + - CloudFront adds support for managing the public keys for signed URLs and signed cookies directly in CloudFront (it no longer requires the AWS root account). + +## __Amazon Elastic Compute Cloud__ + - ### Features + - instance-storage-info nvmeSupport added to DescribeInstanceTypes API + +# __2.15.11__ __2020-10-20__ +## __AWS AppSync__ + - ### Features + - Documentation updates to AppSync to correct several typos. + +## __AWS Batch__ + - ### Features + - Adding evaluateOnExit to job retry strategies. + +## __AWS Elastic Beanstalk__ + - ### Features + - EnvironmentStatus enum update to include Aborting, LinkingFrom and LinkingTo + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixed an issue where requestBody and asyncRequestBody were not visible in ExecutionInterceptor.afterMarshalling. + +## __Amazon DynamoDB Enhanced Client__ + - ### Bugfixes + - Fix for handling special characters in attribute names with WRITE_IF_NOT_EXISTS update behavior + +## __Amazon S3__ + - ### Features + - Moved the logic for calculating the Content-MD5 checksums from s3 to sdk-core. As always, make sure to use a version of 'sdk-core' greater than or equal to your version of 's3'. If you use an old version of 'sdk-core' and a new version of 's3', you will receive errors that Content-MD5 is required. + + - ### Bugfixes + - Fixed an issue where metrics were not being collected for Amazon S3 (or other XML services) + +# __2.15.10__ __2020-10-19__ +## __AWS Backup__ + - ### Features + - Documentation updates for Cryo + +## __AWS Service Catalog__ + - ### Features + - An Admin can now update the launch role associated with a Provisioned Product. Admins and End Users can now view the launch role associated with a Provisioned Product. + +## __Amazon CloudFront__ + - ### Features + - Amazon CloudFront adds support for Origin Shield. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Documentation updates for docdb + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This Patch Manager release now supports Common Vulnerabilities and Exposure (CVE) Ids for missing packages via the DescribeInstancePatches API. + +## __HTTP Client SPI__ + - ### Features + - Calling the SdkHttpFullRequest uri() builder method, query parameters of the provided URI will be kept. + This can be useful in case you want to provide an already fully formed URI like a callback URI. + +# __2.15.9__ __2020-10-16__ +## __AWS Elemental MediaLive__ + - ### Features + - The AWS Elemental MediaLive APIs and SDKs now support the ability to transfer the ownership of MediaLive Link devices across AWS accounts. + +## __AWS Organizations__ + - ### Features + - Documentation updates for AWS Organizations. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.15.8__ __2020-10-15__ +## __AWS Budgets__ + - ### Features + - This release introduces AWS Budgets Actions, allowing you to define an explicit response(or set of responses) to take when your budget exceeds it's action threshold. + +## __AWS Cost Explorer Service__ + - ### Features + - This release improves email validation for subscriptions on the SDK endpoints. + +## __AWS Database Migration Service__ + - ### Features + - When creating Endpoints, Replication Instances, and Replication Tasks, the feature provides you the option to specify friendly name to the resources. + +## __AWS Glue__ + - ### Features + - API Documentation updates for Glue Get-Plan API + +## __AWS Ground Station__ + - ### Features + - Adds error message attribute to DescribeContact DataflowDetails + +## __AWS IoT__ + - ### Features + - Add new variable, lastStatusChangeDate, to DescribeDomainConfiguration API + +## __AWS Lambda Maven Archetype__ + - ### Bugfixes + - Fixed an issue where archetype generation failed with latest maven-archetype-plugin. See [#1981](https://github.com/aws/aws-sdk-java-v2/issues/1981) + +## __AWS SDK for Java v2__ + - ### Features + - Add support for plus (+) character in profile names + - Updated service endpoint metadata. + +## __AWS Transfer Family__ + - ### Features + - Add support to associate VPC Security Groups at server creation. + +## __AWS X-Ray__ + - ### Features + - Enhancing CreateGroup, UpdateGroup, GetGroup and GetGroups APIs to support configuring X-Ray Insights Notifications. Adding TraceLimit information into X-Ray BatchGetTraces API response. + +## __Access Analyzer__ + - ### Features + - This release adds support for the ApplyArchiveRule api in IAM Access Analyzer. The ApplyArchiveRule api allows users to apply an archive rule retroactively to existing findings in an analyzer. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API adds support for pausing and resuming classification jobs. Also, sensitive data findings now include location data for up to 15 occurrences of sensitive data. + +## __Amazon Rekognition__ + - ### Features + - This SDK Release introduces new API (DetectProtectiveEquipment) for Amazon Rekognition. This release also adds ServiceQuotaExceeded exception to Amazon Rekognition IndexFaces API. + +## __Amazon Relational Database Service__ + - ### Features + - Return tags for all resources in the output of DescribeDBInstances, DescribeDBSnapshots, DescribeDBClusters, and DescribeDBClusterSnapshots API operations. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This Patch Manager release now supports searching for available packages from Amazon Linux and Amazon Linux 2 via the DescribeAvailablePatches API. + +## __Amazon WorkMail__ + - ### Features + - Add CreateOrganization and DeleteOrganization API operations. + +## __Amazon WorkSpaces__ + - ### Features + - Documentation updates for WorkSpaces + +# __2.15.7__ __2020-10-09__ +## __AWS Amplify__ + - ### Features + - Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval - enabling can make code changes can take up to 10 minutes to roll out. + +## __AWS Elemental MediaLive__ + - ### Features + - WAV audio output. Extracting ancillary captions in MP4 file inputs. Priority on channels feeding a multiplex (higher priority channels will tend to have higher video quality). + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog__ + - ### Features + - This new API takes either a ProvisonedProductId or a ProvisionedProductName, along with a list of 1 or more output keys and responds with the (key,value) pairs of those outputs. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - This release introduces a new Amazon EKS error code: "ClusterUnreachable" + +## __Amazon Import/Export Snowball__ + - ### Features + - We added new APIs to allow customers to better manage their device shipping. You can check if your shipping label expired, generate a new label, and tell us that you received or shipped your job. + +# __2.15.6__ __2020-10-08__ +## __AWS Cost Explorer Service__ + - ### Features + - You can now create hierarchical cost categories by choosing "Cost Category" as a dimension. You can also track the status of your cost category updates to your cost and usage information. + +## __Amazon CloudWatch Events__ + - ### Features + - Amazon EventBridge (formerly called CloudWatch Events) adds support for target Dead-letter Queues and custom retry policies. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - AWS EC2 RevokeSecurityGroupIngress and RevokeSecurityGroupEgress APIs will return IpPermissions which do not match with any existing IpPermissions for security groups in default VPC and EC2-Classic. + +## __Amazon EventBridge__ + - ### Features + - Amazon EventBridge adds support for target Dead Letter Queues (DLQs) and custom retry policies. + +## __Amazon Rekognition__ + - ### Features + - This release provides location information for the manifest validation files. + +## __Amazon Relational Database Service__ + - ### Features + - Supports a new parameter to set the max allocated storage in gigabytes for restore database instance from S3 and restore database instance to a point in time APIs. + +## __Amazon SageMaker Service__ + - ### Features + - This release enables Sagemaker customers to convert Tensorflow and PyTorch models to CoreML (ML Model) format. + +## __Amazon Simple Notification Service__ + - ### Features + - Documentation updates for SNS. + +# __2.15.5__ __2020-10-07__ +## __AWS Compute Optimizer__ + - ### Features + - This release enables AWS Compute Optimizer to analyze EC2 instance-level EBS read and write operations, and throughput when generating recommendations for your EC2 instances and Auto Scaling groups. + +## __AWS Cost Explorer Service__ + - ### Features + - Enables Rightsizing Recommendations to analyze and present EC2 instance-level EBS metrics when generating recommendations. Returns AccessDeniedException if the account is not opted into Rightsizing + +## __AWS Elemental MediaPackage__ + - ### Features + - AWS Elemental MediaPackage provides access logs that capture detailed information about requests sent to a customer's MediaPackage channel. + +## __Amazon ElastiCache__ + - ### Features + - This release introduces User and UserGroup to allow customers to have access control list of the Redis resources for AWS ElastiCache. This release also adds support for Outposts for AWS ElastiCache. + +# __2.15.4__ __2020-10-06__ +## __AWS Database Migration Service__ + - ### Features + - Added new S3 endpoint settings to allow partitioning CDC data by date for S3 as target. Exposed some Extra Connection Attributes as endpoint settings for relational databases as target. + +## __AWS Marketplace Catalog Service__ + - ### Features + - AWS Marketplace Catalog now supports FailureCode for change workflows to help differentiate client errors and server faults. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release supports returning additional information about local gateway virtual interfaces, and virtual interface groups. + +## __Amazon Kinesis Analytics__ + - ### Features + - Amazon Kinesis Analytics now supports StopApplication with 'force' option + +# __2.15.3__ __2020-10-05__ +## __AWS DynamoDB Enhanced Client__ + - ### Features + - Added support for attribute level custom update behaviors such as 'write if not exists'. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for AVC-I and VC3 encoding in the MXF OP1a container, Nielsen non-linear watermarking, and InSync FrameFormer frame rate conversion. + +## __AWS Glue__ + - ### Features + - AWS Glue crawlers now support Amazon DocumentDB (with MongoDB compatibility) and MongoDB collections. You can choose to crawl the entire data set or only a small sample to reduce crawl time. + +## __Amazon DynamoDB__ + - ### Features + - This release adds a new ReplicaStatus REGION DISABLED for the Table description. This state indicates that the AWS Region for the replica is inaccessible because the AWS Region is disabled. + +## __Amazon DynamoDB Streams__ + - ### Features + - Documentation updates for streams.dynamodb + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for launching Amazon SageMaker Studio in your VPC. Use AppNetworkAccessType in CreateDomain API to disable access to public internet and restrict the network traffic to VPC. + +# __2.15.2__ __2020-10-02__ +## __AWS Batch__ + - ### Features + - Support tagging for Batch resources (compute environment, job queue, job definition and job) and tag based access control on Batch APIs + +## __AWS Cloud Map__ + - ### Features + - Added support for optional parameters for DiscoverInstances API in AWS Cloud Map + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Personalize Events__ + - ### Features + - Adds new APIs to write item and user records to Datasets. + +## __Amazon Relational Database Service__ + - ### Features + - Adds the NCHAR Character Set ID parameter to the CreateDbInstance API for RDS Oracle. + +## __Amazon Simple Storage Service__ + - ### Features + - Amazon S3 Object Ownership is a new S3 feature that enables bucket owners to automatically assume ownership of objects that are uploaded to their buckets by other AWS Accounts. + +## __Apache HTTP Client__ + - ### Bugfixes + - Fixed an issue in Apache HTTP client where a request with path parameter as a single slash threw invalid host name error. + +## __Elastic Load Balancing__ + - ### Features + - This release adds support for tagging listeners, rules, and target groups on creation. This release also supported tagging operations through tagging api's for listeners and rules. + +# __2.15.1__ __2020-10-01__ +## __AWS AppSync__ + - ### Features + - Exposes the wafWebAclArn field on GraphQL api records. The wafWebAclArn field contains the amazon resource name of a WAF Web ACL if the AWS AppSync API is associated with one. + +## __AWS Glue__ + - ### Features + - Adding additional optional map parameter to get-plan api + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS WAFV2__ + - ### Features + - AWS WAF is now available for AWS AppSync GraphQL APIs. AWS WAF protects against malicious attacks with AWS Managed Rules or your own custom rules. For more information see the AWS WAF Developer Guide. + +## __Amazon Elastic MapReduce__ + - ### Features + - Documentation updates for elasticmapreduce + +## __Amazon QuickSight__ + - ### Features + - QuickSight now supports connecting to AWS Timestream data source + +## __Managed Streaming for Kafka__ + - ### Features + - Added support for Enabling Zookeeper Encryption in Transit for AWS MSK. + +# __2.15.0__ __2020-09-30__ +## __AWS DataSync__ + - ### Features + - This release enables customers to create s3 location for S3 bucket's located on an AWS Outpost. + +## __AWS Direct Connect__ + - ### Features + - Documentation updates for AWS Direct Connect. + +## __AWS IoT__ + - ### Features + - AWS IoT Rules Engine adds Timestream action. The Timestream rule action lets you stream time-series data from IoT sensors and applications to Amazon Timestream databases for time series analysis. + +## __AWS MediaConnect__ + - ### Features + - MediaConnect now supports reservations to provide a discounted rate for a specific outbound bandwidth over a period of time. + +## __AWS S3 Control__ + - ### Features + - Amazon S3 on Outposts expands object storage to on-premises AWS Outposts environments, enabling you to store and retrieve objects using S3 APIs and features. + +## __AWS SDK for Java v2__ + - ### Features + - This release introduces Waiters for the AWS SDK for Java v2! Waiters make it easier for customers to wait for a resource to transition into a desired state. It comes handy when customers are interacting with operations that are eventually consistent on the service side. For more information on Waiters, head on over to the [AWS Developer Blog](https://aws.amazon.com/blogs/developer/category/developer-tools/aws-sdk-for-java/) and check out the [Developer Guide](http://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/welcome.html). + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Added several new resource details objects. Added additional details for CloudFront distributions, IAM roles, and IAM access keys. Added a new ResourceRole attribute for resources. + +## __Amazon Elastic MapReduce__ + - ### Features + - Amazon EMR customers can now use EC2 placement group to influence the placement of master nodes in a high-availability (HA) cluster across distinct underlying hardware to improve cluster availability. + +## __Amazon Pinpoint__ + - ### Features + - Amazon Pinpoint - Features - Customers can start a journey based on an event being triggered by an endpoint or user. + +## __Amazon S3 on Outposts__ + - ### Features + - Amazon S3 on Outposts expands object storage to on-premises AWS Outposts environments, enabling you to store and retrieve objects using S3 APIs and features. + +## __Amazon Simple Storage Service__ + - ### Features + - Amazon S3 on Outposts expands object storage to on-premises AWS Outposts environments, enabling you to store and retrieve objects using S3 APIs and features. + +## __Application Auto Scaling__ + - ### Features + - This release extends Auto Scaling support for cluster storage of Managed Streaming for Kafka. Auto Scaling monitors and automatically expands storage capacity when a critical usage threshold is met. + +## __EC2 Image Builder__ + - ### Features + - EC2 Image Builder adds support for copying AMIs created by Image Builder to accounts specific to each Region. diff --git a/changelogs/2.16.x-CHANGELOG.md b/changelogs/2.16.x-CHANGELOG.md new file mode 100644 index 000000000000..5b9ab9510fe5 --- /dev/null +++ b/changelogs/2.16.x-CHANGELOG.md @@ -0,0 +1,2457 @@ +# __2.16.104__ __2021-07-16__ +## __AWS Audit Manager__ + - ### Features + - This release relaxes the S3 URL character restrictions in AWS Audit Manager. Regex patterns have been updated for the following attributes: s3RelativePath, destination, and s3ResourcePath. 'AWS' terms have also been replaced with entities to align with China Rebrand documentation efforts. + +## __AWS SDK for Java v2__ + - ### Features + - This changes implements support for the `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable and + `ec2_metadata_service_endpoint` profile file property. + + When no endpoint override is set using `AWS_EC2_METADATA_SERVICE_ENDPOINT`, this configuration controls which of the default + IMDS endpoints the client will use. Valid values are `IPv4` or `IPv6` + - Updated service endpoint metadata. + +## __Amazon AppIntegrations Service__ + - ### Features + - Documentation update for AppIntegrations Service + +## __Amazon Chime__ + - ### Features + - This SDK release adds Account Status as one of the attributes in Account API response + +# __2.16.103__ __2021-07-15__ +## __AWS IoT SiteWise__ + - ### Features + - Update the default endpoint for the APIs used to manage asset models, assets, gateways, tags, and account configurations. If you have firewalls with strict egress rules, configure the rules to grant you access to api.iotsitewise.[region].amazonaws.com or api.iotsitewise.[cn-region].amazonaws.com.cn. + +## __AWS SDK for Java v2__ + - ### Features + - Add support for marshalling lists of strings in HTTP headers + +## __Amazon Cognito Identity Provider__ + - ### Features + - Documentation updates for cognito-idp + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation updates for support of awsvpc mode on Windows. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This feature enables customers to specify weekly recurring time window(s) for scheduled events that reboot, stop or terminate EC2 instances. + +## __Amazon Lex Model Building Service__ + - ### Features + - Lex now supports the en-IN locale + +# __2.16.102__ __2021-07-14__ +## __AWS Certificate Manager__ + - ### Features + - Added support for RSA 3072 SSL certificate import + +## __AWS Database Migration Service__ + - ### Features + - Release of feature needed for ECA-Endpoint settings. This allows customer to delete a field in endpoint settings by using --exact-settings flag in modify-endpoint api. This also displays default values for certain required fields of endpoint settings in describe-endpoint-settings api. + +## __AWS Glue__ + - ### Features + - Add support for Event Driven Workflows + +## __AWS SDK for Java v2__ + - ### Documentations + - Update pull request template to place motivation before description + - Contributed by: [@Bennett-Lynch](https://github.com/Bennett-Lynch) + +## __AWS Well-Architected Tool__ + - ### Features + - This update provides support for Well-Architected API users to mark answer choices as not applicable. + +## __Amazon HealthLake__ + - ### Features + - General availability for Amazon HealthLake. StartFHIRImportJob and StartFHIRExportJob APIs now require AWS KMS parameter. For more information, see the Amazon HealthLake Documentation https://docs.aws.amazon.com/healthlake/index.html. + +## __Amazon Lightsail__ + - ### Features + - This release adds support for the Amazon Lightsail object storage service, which allows you to create buckets and store objects. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@Bennett-Lynch](https://github.com/Bennett-Lynch) +# __2.16.101__ __2021-07-13__ +## __AWS Direct Connect__ + - ### Features + - This release adds a new filed named awsLogicalDeviceId that it displays the AWS Direct Connect endpoint which terminates a physical connection's BGP Sessions. + +## __AWS Price List Service__ + - ### Features + - Documentation updates for api.pricing + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DevOps Guru__ + - ### Features + - Add paginator for GetCostEstimation + +## __Amazon Lex Model Building Service__ + - ### Features + - Customers can now migrate bots built with Lex V1 APIs to V2 APIs. This release adds APIs to initiate and manage the migration of a bot. + +## __Amazon Redshift__ + - ### Features + - Release new APIs to support new Redshift feature - Authentication Profile + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Changes to OpsCenter APIs to support a new feature, operational insights. + +## __AmplifyBackend__ + - ### Features + - Added Sign in with Apple OAuth provider. + +# __2.16.100__ __2021-07-12__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports Principal Store + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Documentation updates for Wesley to support the parallel node upgrade feature. + +# __2.16.99__ __2021-07-09__ +## __AWS Elemental MediaConvert__ + - ### Features + - MediaConvert now supports color, style and position information passthrough from 608 and Teletext to SRT and WebVTT subtitles. MediaConvert now also supports Automatic QVBR quality levels for QVBR RateControlMode. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + - Use EnumMap where possible. + - Contributed by: [@Bennett-Lynch](https://github.com/Bennett-Lynch) + +## __Amazon Fraud Detector__ + - ### Features + - This release adds support for ML Explainability to display model variable importance value in Amazon Fraud Detector. + +## __Amazon SageMaker Service__ + - ### Features + - Releasing new APIs related to Tuning steps in model building pipelines. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@Bennett-Lynch](https://github.com/Bennett-Lynch) +# __2.16.98__ __2021-07-08__ +## __AWS MediaTailor__ + - ### Features + - Add ListAlerts for Channel, Program, Source Location, and VOD Source to return alerts for resources. + +## __AWS Outposts__ + - ### Features + - Added property filters for listOutposts + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Systems Manager Incident Manager Contacts__ + - ### Features + - Updated description for CreateContactChannel contactId. + +## __Amazon DevOps Guru__ + - ### Features + - Add AnomalyReportedTimeRange field to include open and close time of anomalies. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Added waiters for EKS FargateProfiles. + +## __Firewall Management Service__ + - ### Features + - AWS Firewall Manager now supports route table monitoring, and provides remediation action recommendations to security administrators for AWS Network Firewall policies with misconfigured routes. + +# __2.16.97__ __2021-07-07__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS IoT SiteWise__ + - ### Features + - This release add storage configuration APIs for AWS IoT SiteWise. + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for AWS Security Token Service. + +## __AWS Storage Gateway__ + - ### Features + - Adding support for oplocks for SMB file shares, S3 Access Point and S3 Private Link for all file shares and IP address support for file system associations + +## __Amazon Chime__ + - ### Features + - Releasing new APIs for AWS Chime MediaCapturePipeline + +## __Amazon CloudFront__ + - ### Features + - Amazon CloudFront now provides two new APIs, ListConflictingAliases and AssociateAlias, that help locate and move Alternate Domain Names (CNAMEs) if you encounter the CNAMEAlreadyExists error code. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds resource ids and tagging support for VPC security group rules. + +## __AmazonMQ__ + - ### Features + - adds support for modifying the maintenance window for brokers. + +# __2.16.96__ __2021-07-06__ +## __AWS Lambda__ + - ### Features + - Added support for AmazonMQRabbitMQ as an event source. Added support for VIRTUAL_HOST as SourceAccessType for streams event source mappings. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding new error code UnsupportedAddonModification for Addons in EKS + +## __Amazon Macie 2__ + - ### Features + - Sensitive data findings in Amazon Macie now include enhanced location data for JSON and JSON Lines files + +## __Amazon Simple Notification Service__ + - ### Features + - Documentation updates for Amazon SNS. + +## __Application Migration Service__ + - ### Features + - Bug fix: Remove not supported EBS encryption type "NONE" + +## __EC2 Image Builder__ + - ### Features + - Adds support for specifying parameters to customize components for recipes. Expands configuration of the Amazon EC2 instances that are used for building and testing images, including the ability to specify commands to run on launch, and more control over installation and removal of the SSM agent. + +# __2.16.95__ __2021-07-02__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - [UrlConnectionHttpClient] Wrap erroneous NPE from HttpURLConnection as IOException + - Contributed by: [@Bennett-Lynch](https://github.com/Bennett-Lynch) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release removes network-insights-boundary + +## __Elastic Load Balancing__ + - ### Features + - Documentation updates for elasticloadbalancingv2 + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@Bennett-Lynch](https://github.com/Bennett-Lynch) +# __2.16.94__ __2021-07-01__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adding a new reserved field to support future infrastructure improvements for Amazon EC2 Fleet. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker model registry now supports up to 5 containers and associated environment variables. + +## __Amazon Simple Queue Service__ + - ### Features + - Documentation updates for Amazon SQS. + +# __2.16.93__ __2021-06-30__ +## __AWS Cloud Map__ + - ### Features + - AWS Cloud Map now allows configuring the TTL of the SOA record for a hosted zone to control the negative caching for new services. + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - Add support for Widevine DRM on CMAF packaging configurations. Both Widevine and FairPlay DRMs can now be used simultaneously, with CBCS encryption. + +## __AWS Glue DataBrew__ + - ### Features + - Adds support for the output of job results to the AWS Glue Data Catalog. + +## __AWS Systems Manager Incident Manager Contacts__ + - ### Features + - Fixes the tag key length range to 128 chars, tag value length to 256 chars; Adds support for UTF-8 chars for contact and channel names, Allows users to unset name in UpdateContact API; Adds throttling exception to StopEngagement API, validation exception to APIs UntagResource, ListTagsForResource + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra Enterprise Edition now offered in smaller more granular units to enable customers with smaller workloads. Virtual Storage Capacity units now offer scaling in increments of 100,000 documents (up to 30GB) per unit and Virtual Query Units offer scaling increments of 8,000 queries per day. + +## __Auto Scaling__ + - ### Features + - Amazon EC2 Auto Scaling infrastructure improvements and optimizations. + +# __2.16.92__ __2021-06-28__ +## __AWS Elemental MediaConvert__ + - ### Features + - MediaConvert adds support for HDR10+, ProRes 4444, and XAVC outputs, ADM/DAMF support for Dolby Atmos ingest, and alternative audio and WebVTT caption ingest via HLS inputs. MediaConvert also now supports creating trickplay outputs for Roku devices for HLS, CMAF, and DASH output groups. + +## __AWS Glue__ + - ### Features + - Add JSON Support for Glue Schema Registry + +## __Amazon Redshift__ + - ### Features + - Added InvalidClusterStateFault to the DisableLogging API, thrown when calling the API on a non available cluster. + +## __Amazon SageMaker Service__ + - ### Features + - Sagemaker Neo now supports running compilation jobs using customer's Amazon VPC + +# __2.16.91__ __2021-06-25__ +## __AWS Proton__ + - ### Features + - Added waiters for template registration, service operations, and environment deployments. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Import/Export Snowball__ + - ### Features + - AWS Snow Family customers can remotely monitor and operate their connected AWS Snowcone devices. AWS Snowball Edge Storage Optimized customers can now import and export their data using NFS. + +## __AmplifyBackend__ + - ### Features + - Imports an existing backend authentication resource. + +# __2.16.90__ __2021-06-24__ +## __AWS Cloud9__ + - ### Features + - Minor update to AWS Cloud9 documentation to allow correct parsing of outputted text + +## __AWS CodeBuild__ + - ### Features + - BucketOwnerAccess is currently not supported + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Added new resource details for ECS clusters and ECS task definitions. Added additional information for S3 buckets, Elasticsearch domains, and API Gateway V2 stages. + +## __AWS Transfer Family__ + - ### Features + - Customers can successfully use legacy clients with Transfer Family endpoints enabled for FTPS and FTP behind routers, firewalls, and load balancers by providing a Custom IP address used for data channel communication. + +## __AWS WAFV2__ + - ### Features + - Added support for 15 new text transformation. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports SharePoint 2013 and SharePoint 2016 when using a SharePoint data source. + +## __Amazon Chime__ + - ### Features + - Adds EventIngestionUrl field to MediaPlacement + +## __Amazon Connect Service__ + - ### Features + - Released Amazon Connect quick connects management API for general availability (GA). For more information, see https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html + +## __Amazon DynamoDB Accelerator (DAX)__ + - ### Features + - Add support for encryption in transit to DAX clusters. + +# __2.16.89__ __2021-06-23__ +## __AWS Cloud9__ + - ### Features + - Updated documentation for CreateEnvironmentEC2 to explain that because Amazon Linux AMI has ended standard support as of December 31, 2020, we recommend you choose Amazon Linux 2--which includes long term support through 2023--for new AWS Cloud9 environments. + +## __AWS License Manager__ + - ### Features + - AWS License Manager now allows license administrators and end users to communicate to each other by setting custom status reasons when updating the status on a granted license. + +## __AWS MediaTailor__ + - ### Features + - Update GetChannelSchedule to return information on ad breaks. + +## __Amazon CloudFront__ + - ### Features + - Amazon CloudFront adds support for a new security policy, TLSv1.2_2021. + +## __Amazon CloudSearch__ + - ### Features + - This release replaces previous generation CloudSearch instances with equivalent new instances that provide better stability at the same price. + +## __Amazon CloudWatch Events__ + - ### Features + - Added the following parameters to ECS targets: CapacityProviderStrategy, EnableECSManagedTags, EnableExecuteCommand, PlacementConstraints, PlacementStrategy, PropagateTags, ReferenceId, and Tags + +## __Amazon CodeGuru Reviewer__ + - ### Features + - Adds support for S3 based full repository analysis and changed lines scan. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - DocumentDB documentation-only edits + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for provisioning your own IP (BYOIP) range in multiple regions. This feature is in limited Preview for this release. Contact your account manager if you are interested in this feature. + +## __Amazon EventBridge__ + - ### Features + - Added the following parameters to ECS targets: CapacityProviderStrategy, EnableECSManagedTags, EnableExecuteCommand, PlacementConstraints, PlacementStrategy, PropagateTags, ReferenceId, and Tags + +## __Amazon QuickSight__ + - ### Features + - Releasing new APIs for AWS QuickSight Folders + +# __2.16.88__ __2021-06-21__ +## __AWS CloudFormation__ + - ### Features + - CloudFormation registry service now supports 3rd party public type sharing + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.16.87__ __2021-06-17__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports the indexing of web documents for search through the web crawler. + +## __Amazon Chime__ + - ### Features + - This release adds a new API UpdateSipMediaApplicationCall, to update an in-progress call for SipMediaApplication. + +## __Amazon Relational Database Service__ + - ### Features + - This release enables Database Activity Streams for RDS Oracle + +## __Amazon SageMaker Service__ + - ### Features + - Enable ml.g4dn instance types for SageMaker Batch Transform and SageMaker Processing + +# __2.16.86__ __2021-06-16__ +## __AWS Key Management Service__ + - ### Features + - Adds support for multi-Region keys + +## __AWS MediaTailor__ + - ### Features + - Adds AWS Secrets Manager Access Token Authentication for Source Locations + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for VLAN-tagged network traffic over an Elastic Network Interface (ENI). This feature is in limited Preview for this release. Contact your account manager if you are interested in this feature. + +## __Amazon Relational Database Service__ + - ### Features + - This release enables fast cloning in Aurora Serverless. You can now clone between Aurora Serverless clusters and Aurora Provisioned clusters. + +# __2.16.85__ __2021-06-15__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Service__ + - ### Features + - This release adds new sets of APIs: AssociateBot, DisassociateBot, and ListBots. You can use it to programmatically add an Amazon Lex bot or Amazon Lex V2 bot on the specified Amazon Connect instance + +## __Amazon Elastic Compute Cloud__ + - ### Features + - EC2 M5n, M5dn, R5n, R5dn metal instances with 100 Gbps network performance and Elastic Fabric Adapter (EFA) for ultra low latency + +## __Amazon Lex Model Building V2__ + - ### Features + - This release adds support for Multi Valued slots in Amazon Lex V2 APIs for model building + +## __Amazon Lex Runtime V2__ + - ### Features + - This release adds support for Multi Valued slots in Amazon Lex V2 APIs for runtime + +## __Redshift Data API Service__ + - ### Features + - Redshift Data API service now supports SQL parameterization. + +# __2.16.84__ __2021-06-14__ +## __AWS IoT Analytics__ + - ### Features + - Adds support for data store partitions. + +## __AWS IoT Greengrass V2__ + - ### Features + - We have verified the APIs being released here and are ready to release + +## __Amazon Lookout for Metrics__ + - ### Features + - Added "LEARNING" status for anomaly detector and updated description for "Offset" parameter in MetricSet APIs. + +# __2.16.83__ __2021-06-11__ +## __AWS Elemental MediaLive__ + - ### Features + - AWS MediaLive now supports OCR-based conversion of DVB-Sub and SCTE-27 image-based source captions to WebVTT, and supports ingest of ad avail decorations in HLS input manifests. + +## __AWS MediaConnect__ + - ### Features + - When you enable source failover, you can now designate one of two sources as the primary source. You can choose between two failover modes to prevent any disruption to the video stream. Merge combines the sources into a single stream. Failover allows switching between a primary and a backup stream. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 adds new AMI property to flag outdated AMIs + +# __2.16.82__ __2021-06-10__ +## __AWS App Mesh__ + - ### Features + - AppMesh now supports additional routing capabilities in match and rewrites for Gateway Routes and Routes. Additionally, App Mesh also supports specifying DNS Response Types in Virtual Nodes. + +## __AWS Resource Access Manager__ + - ### Features + - AWS Resource Access Manager (RAM) is releasing new field isResourceTypeDefault in ListPermissions and GetPermission response, and adding permissionArn parameter to GetResourceShare request to filter by permission attached + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix for PR [#2510](https://github.com/aws/aws-sdk-java-v2/issues/2510) by adding Support for customization of contentType for Header ContentType for services like aws WellArchitected service. + +## __Amazon Appflow__ + - ### Features + - Adding MAP_ALL task type support. + +## __Amazon Chime__ + - ### Features + - This SDK release adds support for UpdateAccount API to allow users to update their default license on Chime account. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Amazon Cognito now supports targeted sign out through refresh token revocation + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new optional parameter connectivityType (public, private) for the CreateNatGateway API. Private NatGateway does not require customers to attach an InternetGateway to the VPC and can be used for communication with other VPCs and on-premise networks. + +## __Amazon Managed Blockchain__ + - ### Features + - This release supports KMS customer-managed Customer Master Keys (CMKs) on member-specific Hyperledger Fabric resources. + +## __Amazon Redshift__ + - ### Features + - Added InvalidClusterStateFault to the ModifyAquaConfiguration API, thrown when calling the API on a non available cluster. + +## __Amazon SageMaker Feature Store Runtime__ + - ### Features + - Release BatchGetRecord API for AWS SageMaker Feature Store Runtime. + +## __Amazon SageMaker Service__ + - ### Features + - Using SageMaker Edge Manager with AWS IoT Greengrass v2 simplifies accessing, maintaining, and deploying models to your devices. You can now create deployable IoT Greengrass components during edge packaging jobs. You can choose to create a device fleet with or without creating an AWS IoT role alias. + +# __2.16.81__ __2021-06-09__ +## __AWS Proton__ + - ### Features + - This is the initial SDK release for AWS Proton + +## __AWS Transfer Family__ + - ### Features + - Documentation updates for the AWS Transfer Family service. + +## __AWSKendraFrontendService__ + - ### Features + - AWS Kendra now supports checking document status. + +## __Amazon Personalize Events__ + - ### Features + - Support for unstructured text inputs in the items dataset to to automatically extract key information from product/content description as an input when creating solution versions. + +# __2.16.80__ __2021-06-08__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix for NullPointerException while Marshalling List/Map of TimeStamps + +## __AWS Service Catalog__ + - ### Features + - increase max pagesize for List/Search apis + +## __Amazon Cognito Identity Provider__ + - ### Features + - Documentation updates for cognito-idp + +## __Amazon FSx__ + - ### Features + - This release adds support for auditing end-user access to files, folders, and file shares using Windows event logs, enabling customers to meet their security and compliance needs. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API introduces stricter validation of S3 object criteria for classification jobs. + +# __2.16.79__ __2021-06-07__ +## __AWS Glue__ + - ### Features + - Add SampleSize variable to S3Target to enable s3-sampling feature through API. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Added updateConfig option that allows customers to control upgrade velocity in Managed Node Group. + +## __Amazon Personalize__ + - ### Features + - Update regex validation in kmsKeyArn and s3 path API parameters for AWS Personalize APIs + +## __Amazon SageMaker Service__ + - ### Features + - AWS SageMaker - Releasing new APIs related to Callback steps in model building pipelines. Adds experiment integration to model building pipelines. + +# __2.16.78__ __2021-06-04__ +## __AWS CloudTrail__ + - ### Features + - AWS CloudTrail supports data events on new service resources, including Amazon DynamoDB tables and S3 Object Lambda access points. + +## __AWS Elemental MediaLive__ + - ### Features + - Add support for automatically setting the H.264 adaptive quantization and GOP B-frame fields. + +## __AWS Performance Insights__ + - ### Features + - The new GetDimensionKeyDetails action retrieves the attributes of the specified dimension group for a DB instance or data source. + +## __Amazon QLDB__ + - ### Features + - Documentation updates for Amazon QLDB + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for RDS: fixing an outdated link to the RDS documentation in DBInstance$DBInstanceStatus + +## __Auto Scaling__ + - ### Features + - Documentation updates for Amazon EC2 Auto Scaling + +# __2.16.77__ __2021-06-03__ +## __AWS S3 Control__ + - ### Features + - Amazon S3 Batch Operations now supports S3 Bucket Keys. + +## __Amazon Forecast Service__ + - ### Features + - Added optional field AutoMLOverrideStrategy to CreatePredictor API that allows users to customize AutoML strategy. If provided in CreatePredictor request, this field is visible in DescribePredictor and GetAccuracyMetrics responses. + +## __Amazon Route 53 Resolver__ + - ### Features + - Documentation updates for Route 53 Resolver + +## __Amazon Simple Storage Service__ + - ### Features + - S3 Inventory now supports Bucket Key Status + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Documentation updates for ssm to fix customer reported issue + +# __2.16.76__ __2021-06-02__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - This SDK release adds support for DocDB global clusters. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation updates for Amazon ECS. + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Lightsail + +## __Auto Scaling__ + - ### Features + - You can now launch EC2 instances with GP3 volumes when using Auto Scaling groups with Launch Configurations + +## __Braket__ + - ### Features + - Introduction of a RETIRED status for devices. + +# __2.16.75__ __2021-06-01__ +## __AWS Cloud Map__ + - ### Features + - Bugfixes - The DiscoverInstances API operation now provides an option to return all instances for health-checked services when there are no healthy instances available. + +## __AWS IoT Wireless__ + - ### Features + - Added six new public customer logging APIs to allow customers to set/get/reset log levels at resource type and resource id level. The log level set from the APIs will be used to filter log messages that can be emitted to CloudWatch in customer accounts. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Added idempotency to CreateNetworkInterface using the ClientToken parameter. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new Canadian French voice - Gabrielle. Gabrielle is available as Neural voice only. + +## __Amazon Simple Notification Service__ + - ### Features + - This release adds SMS sandbox in Amazon SNS and the ability to view all configured origination numbers. The SMS sandbox provides a safe environment for sending SMS messages, without risking your reputation as an SMS sender. + +# __2.16.74__ __2021-05-28__ +## __AWS DataSync__ + - ### Features + - Added SecurityDescriptorCopyFlags option that allows for control of which components of SMB security descriptors are copied from source to destination objects. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixed the issue where the SDK failed to parse timestamps with offsets. See [#2477](https://github.com/aws/aws-sdk-java-v2/issues/2477) + +## __Amazon Location Service__ + - ### Features + - Adds support for calculation of routes, resource tagging and customer provided KMS keys. + +## __Amazon Lookout for Metrics__ + - ### Features + - Allowing dot(.) character in table name for RDS and Redshift as source connector. + +# __2.16.73__ __2021-05-27__ +## __AWS Device Farm__ + - ### Features + - Introduces support for using our desktop testing service with applications hosted within your Virtual Private Cloud (VPC). + +## __AWS IoT Events__ + - ### Features + - Releasing new APIs for AWS IoT Events Alarms + +## __AWS IoT Events Data__ + - ### Features + - Releasing new APIs for AWS IoT Events Alarms + +## __AWS IoT SiteWise__ + - ### Features + - IoT SiteWise Monitor Portal API updates to add alarms feature configuration. + +## __AWS Resource Groups__ + - ### Features + - Documentation updates for Resource Groups. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now suggests popular queries in order to help guide query typing and help overall accuracy. + +## __Amazon FSx__ + - ### Features + - This release adds LZ4 data compression support to FSx for Lustre to reduce storage consumption of both file system storage and file system backups. + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Lightsail + +## __Amazon Simple Queue Service__ + - ### Features + - Documentation updates for Amazon SQS for General Availability of high throughput for FIFO queues. + +# __2.16.72__ __2021-05-26__ +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release removes resource ids and tagging support for VPC security group rules. + +# __2.16.71__ __2021-05-26__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - This release enables customers to store CRLs in S3 buckets with Block Public Access enabled. The release adds the S3ObjectAcl parameter to the CreateCertificateAuthority and UpdateCertificateAuthority APIs to allow customers to choose whether their CRL will be publicly available. + +## __AWS Outposts__ + - ### Features + - Add ConflictException to DeleteOutpost, CreateOutpost + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudFront__ + - ### Features + - Documentation fix for CloudFront + +## __Amazon EC2 Container Service__ + - ### Features + - The release adds support for registering External instances to your Amazon ECS clusters. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds resource ids and tagging support for VPC security group rules. + +## __Amazon QLDB__ + - ### Features + - Support STANDARD permissions mode in CreateLedger and DescribeLedger. Add UpdateLedgerPermissionsMode to update permissions mode on existing ledgers. + +## __AmazonMWAA__ + - ### Features + - Adds scheduler count selection for Environments using Airflow version 2.0.2 or later. + +# __2.16.70__ __2021-05-25__ +## __AWS IoT__ + - ### Features + - This release includes support for a new feature: Job templates for AWS IoT Device Management Jobs. The release includes job templates as a new resource and APIs for managing job templates. + +## __AWS Transfer Family__ + - ### Features + - AWS Transfer Family customers can now use AWS Managed Active Directory or AD Connector to authenticate their end users, enabling seamless migration of file transfer workflows that rely on AD authentication, without changing end users' credentials or needing a custom authorizer. + +## __Amazon WorkSpaces__ + - ### Features + - Adds support for Linux device types in WorkspaceAccessProperties + +# __2.16.69__ __2021-05-24__ +## __AWS Compute Optimizer__ + - ### Features + - Adds support for 1) additional instance types, 2) additional instance metrics, 3) finding reasons for instance recommendations, and 4) platform differences between a current instance and a recommended instance type. + +## __AWS Cost Explorer Service__ + - ### Features + - Introduced FindingReasonCodes, PlatformDifferences, DiskResourceUtilization and NetworkResourceUtilization to GetRightsizingRecommendation action + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch Logs__ + - ### Features + - This release provides dimensions and unit support for metric filters. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for creating and managing EC2 On-Demand Capacity Reservations on Outposts. + +## __Amazon QuickSight__ + - ### Features + - Add new parameters on RegisterUser and UpdateUser APIs to assign or update external ID associated to QuickSight users federated through web identity. + +# __2.16.68__ __2021-05-21__ +## __AWS OpsWorks CM__ + - ### Features + - New PUPPET_API_CRL attribute returned by DescribeServers API; new EngineVersion of 2019 available for Puppet Enterprise servers. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic File System__ + - ### Features + - EFS now supports account preferences. Utilizing the new capability, users can customize some aspects of their experience using EFS APIs and the EFS Console. The first preference clients are able to set is whether to start using longer File System and Mount Target IDs before EFS migrates to such IDs. + +## __Amazon Forecast Service__ + - ### Features + - Updated attribute statistics in DescribeDatasetImportJob response to support Long values + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation updates for Amazon S3 + +# __2.16.67__ __2021-05-20__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Lex Model Building V2__ + - ### Features + - Customers can now use resource-based policies to control access to their Lex V2 bots. This release adds APIs to attach and manage permissions for a bot or a bot alias. For details, see: https://docs.aws.amazon.com/lexv2/latest/dg/security_iam_service-with-iam.html + +## __Amazon Personalize__ + - ### Features + - Added new API to stop a solution version creation that is pending or in progress for Amazon Personalize + +## __Amazon QuickSight__ + - ### Features + - Add ARN based Row Level Security support to CreateDataSet/UpdateDataSet APIs. + +# __2.16.66__ __2021-05-19__ +## __AWS Identity and Access Management__ + - ### Features + - Add pagination to ListUserTags operation + +## __AWS S3__ + - ### Bugfixes + - Do not allow cross-region requests for S3 client with Fips Region. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Update the EKS AddonActive waiter. + +## __Amazon Kinesis Analytics__ + - ### Features + - Kinesis Data Analytics now allows rapid iteration on Apache Flink stream processing through the Kinesis Data Analytics Studio feature. + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Amazon Lightsail. + +## __Amazon Rekognition__ + - ### Features + - Amazon Rekognition Custom Labels adds support for customer managed encryption, using AWS Key Management Service, of image files copied into the service and files written back to the customer. + +## __Auto Scaling__ + - ### Features + - With this release, customers can easily use Predictive Scaling as a policy directly through Amazon EC2 Auto Scaling configurations to proactively scale their applications ahead of predicted demand. + +# __2.16.65__ __2021-05-18__ +## __AWS App Runner__ + - ### Features + - AWS App Runner is a service that provides a fast, simple, and cost-effective way to deploy from source code or a container image directly to a scalable and secure web application in the AWS Cloud. + +## __AWS Compute Optimizer__ + - ### Features + - This release enables compute optimizer to support exporting recommendations to Amazon S3 for EBS volumes and Lambda Functions. + +## __AWS IoT SiteWise__ + - ### Features + - Documentation updates for AWS IoT SiteWise. + +## __AWS License Manager__ + - ### Features + - AWS License Manager now supports periodic report generation. + +## __AWS Support__ + - ### Features + - Documentation updates for support + +## __Amazon Lex Model Building V2__ + - ### Features + - This release adds support for exporting and importing Lex V2 bots and bot locales. It also adds validations to enforce minimum number of tags on Lex V2 resources. For details, see https://docs.aws.amazon.com/lexv2/latest/dg/importing-exporting.html + +## __Amazon Personalize__ + - ### Features + - Amazon Personalize now supports the ability to optimize a solution for a custom objective in addition to maximizing relevance. + +# __2.16.64__ __2021-05-17__ +## __AWS Application Cost Profiler__ + - ### Features + - APIs for AWS Application Cost Profiler. + +## __AWS IoT Core Device Advisor__ + - ### Features + - AWS IoT Core Device Advisor is fully managed test capability for IoT devices. Device manufacturers can use Device Advisor to test their IoT devices for reliable and secure connectivity with AWS IoT. + +## __AWS MediaConnect__ + - ### Features + - MediaConnect now supports JPEG XS for AWS Cloud Digital Interface (AWS CDI) uncompressed workflows, allowing you to establish a bridge between your on-premises live video network and the AWS Cloud. + +## __Amazon Augmented AI Runtime__ + - ### Features + - Documentation updates for Amazon A2I Runtime model + +## __Amazon ElastiCache__ + - ### Features + - Documentation updates for elasticache + +## __Amazon Neptune__ + - ### Features + - Neptune support for CopyTagsToSnapshots + +# __2.16.63__ __2021-05-14__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Updated descriptions to add notes on array lengths. + +## __Amazon CloudWatch Events__ + - ### Features + - Update InputTransformer variable limit from 10 to 100 variables. + +## __Amazon Detective__ + - ### Features + - Updated descriptions of array parameters to add the restrictions on the array and value lengths. + +## __Amazon Elasticsearch Service__ + - ### Features + - Adds support for cold storage. + +## __Amazon EventBridge__ + - ### Features + - Update InputTransformer variable limit from 10 to 100 variables. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API adds support for defining run-time, S3 bucket criteria for classification jobs. It also adds resources for querying data about AWS resources that Macie monitors. + +## __Amazon Transcribe Service__ + - ### Features + - Transcribe Medical now supports identification of PHI entities within transcripts + +## __EC2 Image Builder__ + - ### Features + - Text-only updates for bundled documentation feedback tickets - spring 2021. + +# __2.16.62__ __2021-05-12__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - High Memory virtual instances are powered by Intel Sky Lake CPUs and offer up to 12TB of memory. + +## __Netty NIO Async HTTP Client__ + - ### Features + - Add `tcpKeepAlive` configuration. + +# __2.16.61__ __2021-05-11__ +## __AWS S3 Control__ + - ### Features + - Documentation updates for Amazon S3-control + +## __AWS Systems Manager Incident Manager__ + - ### Features + - AWS Systems Manager Incident Manager enables faster resolution of critical application availability and performance issues, management of contacts and post-incident analysis + +## __AWS Systems Manager Incident Manager Contacts__ + - ### Features + - AWS Systems Manager Incident Manager enables faster resolution of critical application availability and performance issues, management of contacts and post incident analysis + +## __Amazon Transcribe Streaming Service__ + - ### Features + - Amazon Transcribe supports partial results stabilization for streaming transcription. + +# __2.16.60__ __2021-05-10__ +## __AWS Config__ + - ### Features + - Adds paginator to multiple APIs: By default, the paginator allows user to iterate over the results and allows the CLI to return up to 1000 results. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for Kantar SNAP File Audio Watermarking with a Kantar Watermarking account, and Display Definition Segment(DDS) segment data controls for DVB-Sub caption outputs. + +## __AWS IoT Wireless__ + - ### Features + - Add three new optional fields to support filtering and configurable sub-band in WirelessGateway APIs. The filtering is for all the RF region supported. The sub-band configuration is only applicable to LoRa gateways of US915 or AU915 RF region. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DynamoDB__ + - ### Features + - Support delete-table operation in DDBEnhanced. + +## __Amazon EC2 Container Service__ + - ### Features + - This release contains updates for Amazon ECS. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - This release updates create-nodegroup and update-nodegroup-config APIs for adding/updating taints on managed nodegroups. + +## __Amazon Kinesis Analytics__ + - ### Features + - Amazon Kinesis Analytics now supports ListApplicationVersions and DescribeApplicationVersion API for Apache Flink applications + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release adds new APIs to associate, disassociate and list related items in SSM OpsCenter; and this release adds DisplayName as a version-level attribute for SSM Documents and introduces two new document types: ProblemAnalysis, ProblemAnalysisTemplate. + +## __CodeArtifact__ + - ### Features + - Documentation updates for CodeArtifact + +# __2.16.59__ __2021-05-07__ +## __AWS Lake Formation__ + - ### Features + - This release adds Tag Based Access Control to AWS Lake Formation service + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed an issue where an async waiter failed to match exception when the exception was wrapped with CompletionException. See [#2460](https://github.com/aws/aws-sdk-java-v2/issues/2460) + +## __Amazon Connect Service__ + - ### Features + - Adds tagging support for Connect APIs CreateIntegrationAssociation and CreateUseCase. + +## __Amazon Lookout for Metrics__ + - ### Features + - Enforcing UUID style for parameters that are already in UUID format today. Documentation specifying eventual consistency of lookoutmetrics resources. + +# __2.16.58__ __2021-05-06__ +## __AWS Cloud Map__ + - ### Features + - Bugfix: Improved input validation for RegisterInstance action, InstanceId field + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Import/Export Snowball__ + - ### Features + - AWS Snow Family adds APIs for ordering and managing Snow jobs with long term pricing + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - SSM feature release - ChangeCalendar integration with StateManager. + +## __Managed Streaming for Kafka__ + - ### Features + - IAM Access Control for Amazon MSK enables you to create clusters that use IAM to authenticate clients and to allow or deny Apache Kafka actions for those clients. + +# __2.16.57__ __2021-05-05__ +## __AWS Audit Manager__ + - ### Features + - This release updates the CreateAssessmentFrameworkControlSet and UpdateAssessmentFrameworkControlSet API data types. For both of these data types, the control set name is now a required attribute. + +## __Amazon Kinesis Analytics__ + - ### Features + - Amazon Kinesis Analytics now supports RollbackApplication for Apache Flink applications to revert the application to the previous running version + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot now provides the ability to automatically deploy the best model to an endpoint + +## __AmazonNimbleStudio__ + - ### Features + - Documentation Updates for Amazon Nimble Studio. + +# __2.16.56__ __2021-05-04__ +## __FinSpace Public API__ + - ### Features + - Documentation updates for FinSpaceData API. + +## __FinSpace User Environment Management service__ + - ### Features + - Documentation updates for FinSpace API. + +# __2.16.55__ __2021-05-04__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - This release adds the KeyStorageSecurityStandard parameter to the CreateCertificateAuthority API to allow customers to mandate a security standard to which the CA key will be stored within. + +## __AWS Health APIs and Notifications__ + - ### Features + - Documentation updates for health + +## __Amazon Chime__ + - ### Features + - This release adds the ability to search for and order international phone numbers for Amazon Chime SIP media applications. + +## __Amazon DevOps Guru__ + - ### Features + - Added GetCostEstimation and StartCostEstimation to get the monthly resource usage cost and added ability to view resource health by AWS service name and to search insights be AWS service name. + +## __Amazon SageMaker Service__ + - ### Features + - Enable retrying Training and Tuning Jobs that fail with InternalServerError by setting RetryStrategy. + +# __2.16.54__ __2021-05-03__ +## __FinSpace Public API__ + - ### Features + - This is the initial SDK release for the data APIs for Amazon FinSpace. Amazon FinSpace is a data management and analytics application for the financial services industry (FSI). + +## __FinSpace User Environment Management service__ + - ### Features + - This is the initial SDK release for the management APIs for Amazon FinSpace. Amazon FinSpace is a data management and analytics service for the financial services industry (FSI). + +# __2.16.53__ __2021-05-03__ +## __AWS SecurityHub__ + - ### Features + - Updated ASFF to add the following new resource details objects: AwsEc2NetworkAcl, AwsEc2Subnet, and AwsElasticBeanstalkEnvironment. + +## __Amazon Chime__ + - ### Features + - Added new BatchCreateChannelMembership API to support multiple membership creation for channels + +## __Amazon Mechanical Turk__ + - ### Features + - Documentation updates for Amazon Mechanical Turk, GetAccountBalanceOperation operation + +## __FinSpace Public API__ + - ### Features + - This is the initial SDK release for the data APIs for Amazon FinSpace. Amazon FinSpace is a data management and analytics application for the financial services industry (FSI). + +## __FinSpace User Environment Management service__ + - ### Features + - This is the initial SDK release for the management APIs for Amazon FinSpace. Amazon FinSpace is a data management and analytics service for the financial services industry (FSI). + +# __2.16.52__ __2021-04-30__ +## __AWS Marketplace Catalog Service__ + - ### Features + - Allows user defined names for Changes in a ChangeSet. Users can use ChangeNames to reference properties in another Change within a ChangeSet. This feature allows users to make changes to an entity when the entity identifier is not yet available while constructing the StartChangeSet request. + +## __AWS RoboMaker__ + - ### Features + - Adds ROS2 Foxy as a supported Robot Software Suite Version and Gazebo 11 as a supported Simulation Software Suite Version + +## __Amazon CloudFront__ + - ### Features + - CloudFront now supports CloudFront Functions, a native feature of CloudFront that enables you to write lightweight functions in JavaScript for high-scale, latency-sensitive CDN customizations. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release introduces GetMatches and MergeProfiles APIs to fetch and merge duplicate profiles + +## __Amazon Forecast Service__ + - ### Features + - Added new DeleteResourceTree operation that helps in deleting all the child resources of a given resource including the given resource. + +## __Amazon Personalize__ + - ### Features + - Update URL for dataset export job documentation. + +# __2.16.51__ __2021-04-29__ +## __AWS Organizations__ + - ### Features + - Minor text updates for AWS Organizations API Reference + +## __Amazon Chime__ + - ### Features + - Increase AppInstanceUserId length to 64 characters + +## __Amazon EC2 Container Service__ + - ### Features + - Add support for EphemeralStorage on TaskDefinition and TaskOverride + +## __Amazon Macie 2__ + - ### Features + - The Amazon Macie API now provides S3 bucket metadata that indicates whether a bucket policy requires server-side encryption of objects when objects are uploaded to the bucket. + +# __2.16.50__ __2021-04-28__ +## __AWS CloudFormation__ + - ### Features + - Add CallAs parameter to GetTemplateSummary to enable use with StackSets delegated administrator integration + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - MediaPackage now offers the option to place your Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) encoder metadata in every video segment instead of in the init fragment for DASH and CMAF endpoints. + +## __AWS IoT SiteWise__ + - ### Features + - AWS IoT SiteWise interpolation API will get interpolated values for an asset property per specified time interval during a period of time. + +## __Amazon Connect Service__ + - ### Features + - Updated max number of tags that can be attached from 200 to 50. MaxContacts is now an optional parameter for the UpdateQueueMaxContact API. + +## __AmazonNimbleStudio__ + - ### Features + - Amazon Nimble Studio is a virtual studio service that empowers visual effects, animation, and interactive content teams to create content securely within a scalable, private cloud service. + +# __2.16.49__ __2021-04-27__ +## __AWS Audit Manager__ + - ### Features + - This release restricts using backslashes in control, assessment, and framework names. The controlSetName field of the UpdateAssessmentFrameworkControlSet API now allows strings without backslashes. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.16.48__ __2021-04-26__ +## __AWS Elemental MediaConvert__ + - ### Features + - Documentation updates for mediaconvert + +## __AWS Glue__ + - ### Features + - Adding Kafka Client Auth Related Parameters + +## __AWS IoT Wireless__ + - ### Features + - Add a new optional field MessageType to support Sidewalk devices in SendDataToWirelessDevice API + +## __Amazon CodeGuru Reviewer__ + - ### Features + - Include KMS Key Details in Repository Association APIs to enable usage of customer managed KMS Keys. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adding support for Red Hat Enterprise Linux with HA for Reserved Instances. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - This release updates existing Amazon EKS input validation so customers will see an InvalidParameterException instead of a ParamValidationError when they enter 0 for minSize and/or desiredSize. It also adds LaunchTemplate information to update responses and a new "CUSTOM" value for AMIType. + +## __Amazon Kinesis Analytics__ + - ### Features + - Amazon Kinesis Data Analytics now supports custom application maintenance configuration using UpdateApplicationMaintenanceConfiguration API for Apache Flink applications. Customers will have visibility when their application is under maintenance status using 'MAINTENANCE' application status. + +## __Amazon Personalize__ + - ### Features + - Added support for exporting data imported into an Amazon Personalize dataset to a specified data source (Amazon S3 bucket). + +# __2.16.47__ __2021-04-23__ +## __AWS Elemental MediaPackage__ + - ### Features + - Add support for Widevine DRM on CMAF origin endpoints. Both Widevine and FairPlay DRMs can now be used simultaneously, with CBCS encryption. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Simple Notification Service__ + - ### Features + - Amazon SNS adds two new attributes, TemplateId and EntityId, for using sender IDs to send SMS messages to destinations in India. + +# __2.16.46__ __2021-04-22__ +## __AWS SDK for Java v2__ + - ### Features + - This feature adds client and request overrides of execution attributes prior to request invocation. + - Contributed by: [@ndejaco2](https://github.com/ndejaco2) + +## __AWS SecurityHub__ + - ### Features + - Replaced the term "master" with "administrator". Added new actions to replace AcceptInvitation, GetMasterAccount, and DisassociateFromMasterAccount. In Member, replaced MasterId with AdministratorId. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Documentation updates for cognito-idp + +## __Amazon DynamoDB__ + - ### Bugfixes + - Fixed bean-based marshalling for model builder types containing complex collections. + +## __Amazon ElastiCache__ + - ### Features + - This release introduces log delivery of Redis slow log from Amazon ElastiCache. + +## __Amazon Forecast Service__ + - ### Features + - This release adds EstimatedTimeRemaining minutes field to the DescribeDatasetImportJob, DescribePredictor, DescribeForecast API response which denotes the time remaining to complete the job IN_PROGRESS. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@ndejaco2](https://github.com/ndejaco2) +# __2.16.45__ __2021-04-21__ +## __AWS CloudFormation__ + - ### Features + - Added support for creating and updating stack sets with self-managed permissions from templates that reference macros. + +## __AWS Ground Station__ + - ### Features + - Support new S3 Recording Config allowing customers to write downlink data directly to S3. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now enables users to override index-level boosting configurations for each query. + +## __Amazon Detective__ + - ### Features + - Added parameters to track the data volume in bytes for a member account. Deprecated the existing parameters that tracked the volume as a percentage of the allowed volume for a behavior graph. Changes reflected in MemberDetails object. + +## __Amazon Redshift__ + - ### Features + - Add operations: AddPartner, DescribePartners, DeletePartner, and UpdatePartnerStatus to support tracking integration status with data partners. + +## __DynamoDB Enhanced Client__ + - ### Features + - Added method to BatchGetItem results to retrieve unprocessed keys for a given table. + +# __2.16.44__ __2021-04-19__ +## __AWS Cost Explorer Service__ + - ### Features + - Adding support for Sagemaker savings plans in GetSavingsPlansPurchaseRecommendation API + +## __AWS SDK for Java v2__ + - ### Features + - Added support for short type in Code generator. + - Contributed by: [@duy310](https://github.com/duy310) + - Updated service endpoint metadata. + +## __AWS Savings Plans__ + - ### Features + - Added support for Amazon SageMaker in Machine Learning Savings Plans + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@duy310](https://github.com/duy310) +# __2.16.43__ __2021-04-15__ +## __AWS Database Migration Service__ + - ### Features + - AWS DMS added support of TLS for Kafka endpoint. Added Describe endpoint setting API for DMS endpoints. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Security Token Service__ + - ### Features + - STS now supports assume role with Web Identity using JWT token length upto 20000 characters + +## __Amazon DynamoDB__ + - ### Bugfixes + - Fixed an issue where structure builders containing List> could not be marshalled using bean-based serializers. + +# __2.16.42__ __2021-04-14__ +## __AWS CodeStar connections__ + - ### Features + - This release adds tagging support for CodeStar Connections Host resources + +## __AWS Config__ + - ### Features + - Add exception for DeleteRemediationConfiguration and DescribeRemediationExecutionStatus + +## __AWS MediaConnect__ + - ### Features + - For flows that use Listener protocols, you can now easily locate an output's outbound IP address for a private internet. Additionally, MediaConnect now supports the Waiters feature that makes it easier to poll for the status of a flow until it reaches its desired state. + +## __AWS SDK for Java v2__ + - ### Features + - Add a new Optional getter for the content length of RequestBody, also add a new fromContentProvider method allowing contentLength to be null. + +## __Amazon Route 53__ + - ### Features + - Documentation updates for route53 + +# __2.16.41__ __2021-04-13__ +## __AWS Comprehend Medical__ + - ### Features + - The InferICD10CM API now returns TIME_EXPRESSION entities that refer to medical conditions. + +## __AWS Security Token Service__ + - ### Features + - This release adds the SourceIdentity parameter that can be set when assuming a role. + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Amazon Lightsail. + +## __Amazon Redshift__ + - ### Features + - Added support to enable AQUA in Amazon Redshift clusters. + +## __Amazon Relational Database Service__ + - ### Features + - Clarify that enabling or disabling automated backups causes a brief downtime, not an outage. + +## __DynamoDB Enhanced Client__ + - ### Features + - Added `DynamoDbIgnoreNulls` attribute level annotation that specifies attributes with null values should be ignored. See [#2303](https://github.com/aws/aws-sdk-java-v2/issues/2303) + +# __2.16.40__ __2021-04-12__ +## __AWS CodeBuild__ + - ### Features + - AWS CodeBuild now allows you to set the access permissions for build artifacts, project artifacts, and log files that are uploaded to an Amazon S3 bucket that is owned by another account. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon FSx__ + - ### Features + - Support for cross-region and cross-account backup copies + +# __2.16.39__ __2021-04-09__ +## __AWS Shield__ + - ### Features + - CreateProtection now throws InvalidParameterException instead of InternalErrorException when system tags (tag with keys prefixed with "aws:") are passed in. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add paginator support to DescribeStoreImageTasks and update documentation. + +## __Amazon Redshift__ + - ### Features + - Add support for case sensitive table level restore + +## __DynamoDB Enhanced Client__ + - ### Features + - Added a new method annotation `DynamoDbPreserveEmptyObject` that specifies a class as empty class if all fields are null when mapping a DynamoDb record to a Java bean. See [#2280](https://github.com/aws/aws-sdk-java-v2/issues/2280). + + - ### Bugfixes + - Fixes a bug in issue [#2310](https://github.com/aws/aws-sdk-java-v2/issues/2310) where nested attributes aren't sanitized properly for projection expressions. + +# __2.16.38__ __2021-04-08__ +## __AWS Resource Access Manager__ + - ### Features + - Documentation updates for AWS RAM resource sharing + +## __AWS RoboMaker__ + - ### Features + - This release allows RoboMaker customers to specify custom tools to run with their simulation job + +## __AWS SDK for Java v2__ + - ### Features + - Add a configuration option to enable `TCP_KEEPALIVE` on the ApacheHttpClient. + - Contributed by: [@ajs139](https://github.com/ajs139) + - Updated service endpoint metadata. + +## __Amazon AppStream__ + - ### Features + - This release provides support for image updates + +## __Amazon Connect Customer Profiles__ + - ### Features + - Documentation updates for Put-Integration API + +## __Amazon Kinesis Video Streams Archived Media__ + - ### Features + - Documentation updates for archived.kinesisvideo + +## __Amazon Lookout for Equipment__ + - ### Features + - This release introduces support for Amazon Lookout for Equipment. + +## __Auto Scaling__ + - ### Features + - Amazon EC2 Auto Scaling announces Warm Pools that help applications to scale out faster by pre-initializing EC2 instances and save money by requiring fewer continuously running instances + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@ajs139](https://github.com/ajs139) +# __2.16.37__ __2021-04-07__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fix leak of bytebuf on HTTP GoAway + +## __AWS Storage Gateway__ + - ### Features + - File Gateway APIs now support FSx for Windows as a cloud storage. + +## __Access Analyzer__ + - ### Features + - IAM Access Analyzer now analyzes your CloudTrail events to identify actions and services that have been used by an IAM entity (user or role) and generates an IAM policy that is based on that activity. + +## __Amazon ElastiCache__ + - ### Features + - This release adds tagging support for all AWS ElastiCache resources except Global Replication Groups. + +## __Amazon Interactive Video Service__ + - ### Features + - This release adds support for the Auto-Record to S3 feature. Amazon IVS now enables you to save your live video to Amazon S3. + +## __Application Migration Service__ + - ### Features + - Add new service - Application Migration Service. + +# __2.16.36__ __2021-04-06__ +## __AWS Cloud9__ + - ### Features + - Documentation updates for Cloud9 + +## __AWS Elemental MediaLive__ + - ### Features + - MediaLive VPC outputs update to include Availability Zones, Security groups, Elastic Network Interfaces, and Subnet Ids in channel response + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for storing EBS-backed AMIs in S3 and restoring them from S3 to enable cross-partition copying of AMIs + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Supports removing a label or labels from a parameter, enables ScheduledEndTime and ChangeDetails for StartChangeRequestExecution API, supports critical/security/other noncompliant count for patch API. + +## __Netty NIO HTTP Client__ + - ### Features + - Update Netty dependency to `4.1.61.Final`. + +# __2.16.35__ __2021-04-05__ +## __AWS Audit Manager__ + - ### Features + - AWS Audit Manager has updated the GetAssessment API operation to include a new response field called userRole. The userRole field indicates the role information and IAM ARN of the API caller. + +## __AWS Elemental MediaLive__ + - ### Features + - MediaLive now support HTML5 Motion Graphics overlay + +## __AWS SDK for Java v2__ + - ### Features + - This feature adds client and request overrides of execution attributes prior to request invocation. + - Contributed by: [@ndejaco2](https://github.com/ndejaco2) + + - ### Bugfixes + - Expose the metadata key on SDK client interfaces for use with `ServiceMetadataProvider` + +## __Amazon Appflow__ + - ### Features + - Added destination properties for Zendesk. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@ndejaco2](https://github.com/ndejaco2) +# __2.16.34__ __2021-04-02__ +## __AWS Elemental MediaPackage__ + - ### Features + - SPEKE v2 is an upgrade to the existing SPEKE API to support multiple encryption keys, based on an encryption contract selected by the customer. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Removal of `--report-unsupported-elements-at-runtime` option from SDK core's `native-image.properties` as the option is not meant to be used in production. + - Contributed by: [@zakkak](https://github.com/zakkak) + +## __EC2 Image Builder__ + - ### Features + - This release adds support for Block Device Mappings for container image builds, and adds distribution configuration support for EC2 launch templates in AMI builds. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@zakkak](https://github.com/zakkak) +# __2.16.33__ __2021-04-01__ +## __AWS Elemental MediaConvert__ + - ### Features + - MediaConvert now supports HLS ingest, sidecar WebVTT ingest, Teletext color & style passthrough to TTML subtitles, TTML to WebVTT subtitle conversion with style, & DRC profiles in AC3 audio. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS WAFV2__ + - ### Features + - Added support for ScopeDownStatement for ManagedRuleGroups, Labels, LabelMatchStatement, and LoggingFilter. For more information on these features, see the AWS WAF Developer Guide. + +## __AWSKendraFrontendService__ + - ### Features + - AWS Kendra's ServiceNow data source now supports OAuth 2.0 authentication and knowledge article filtering via a ServiceNow query. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - VPC Flow Logs Service adds a new API, GetFlowLogsIntegrationTemplate, which generates CloudFormation templates for Athena. For more info, see https://docs.aws.amazon.com/console/vpc/flow-logs/athena + +## __Amazon Lex Model Building Service__ + - ### Features + - Lex now supports the ja-JP locale + +## __Amazon Lex Runtime Service__ + - ### Features + - Amazon Lex now supports base64-encoded message and input transcript fields. + +## __Amazon Lightsail__ + - ### Features + - - This release adds support for state detail for Amazon Lightsail container services. + +## __Amazon Route 53 Resolver__ + - ### Features + - Route 53 Resolver DNS Firewall is a firewall service that allows you to filter and regulate outbound DNS traffic for your VPCs. + +## __Firewall Management Service__ + - ### Features + - Added Firewall Manager policy support for AWS Route 53 Resolver DNS Firewall. + +# __2.16.32__ __2021-03-31__ +## __AWS Batch__ + - ### Features + - AWS Batch adds support for Amazon EFS File System + +## __AWS Cloud9__ + - ### Features + - Add ImageId input parameter to CreateEnvironmentEC2 endpoint. New parameter enables creation of environments with different AMIs. + +## __AWS CloudFormation__ + - ### Features + - 1. Added a new parameter "RegionConcurrencyType" in OperationPreferences. 2. Changed the name of "AccountUrl" to "AccountsUrl" in "DeploymentTargets" parameter. + +## __AWS Data Pipeline__ + - ### Features + - Minor documentation updates and link updates. + +## __AWS Direct Connect__ + - ### Features + - This release adds MACsec support to AWS Direct Connect + +## __AWS IoT__ + - ### Features + - Added ability to prefix search on attribute value for ListThings API. + +## __AWS IoT Wireless__ + - ### Features + - Add Sidewalk support to APIs: GetWirelessDevice, ListWirelessDevices, GetWirelessDeviceStatistics. Add Gateway connection status in GetWirelessGatewayStatistics API. + +## __AWS Price List Service__ + - ### Features + - Minor documentation and link updates. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudHSM__ + - ### Features + - Minor documentation and link updates. + +## __Amazon Cognito Sync__ + - ### Features + - Minor documentation updates and link updates. + +## __Amazon Comprehend__ + - ### Features + - Support for customer managed KMS encryption of Comprehend custom models + +## __Amazon Detective__ + - ### Features + - Added the ability to assign tag values to Detective behavior graphs. Tag values can be used for attribute-based access control, and for cost allocation for billing. + +## __Amazon Machine Learning__ + - ### Features + - Minor documentation updates and link updates. + +## __Amazon Redshift__ + - ### Features + - Enable customers to share access to their Redshift clusters from other VPCs (including VPCs from other accounts). + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe now supports creating custom language models in the following languages: British English (en-GB), Australian English (en-AU), Indian Hindi (hi-IN), and US Spanish (es-US). + +## __Amazon WorkMail__ + - ### Features + - This release adds support for mobile device access rules management in Amazon WorkMail. + +# __2.16.31__ __2021-03-30__ +## __AWS Config__ + - ### Features + - Adding new APIs to support ConformancePack Compliance CI in Aggregators + +## __AWS EC2 Instance Connect__ + - ### Features + - Adding support to push SSH keys to the EC2 serial console in order to allow an SSH connection to your Amazon EC2 instance's serial port. + +## __AWS Glue DataBrew__ + - ### Features + - This SDK release adds two new dataset features: 1) support for specifying a database connection as a dataset input 2) support for dynamic datasets that accept configurable parameters in S3 path. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch__ + - ### Features + - SDK update for new Metric Streams feature + +## __Amazon Elastic Compute Cloud__ + - ### Features + - ReplaceRootVolume feature enables customers to replace the EBS root volume of a running instance to a previously known state. Add support to grant account-level access to the EC2 serial console + +## __Amazon Fraud Detector__ + - ### Features + - This release adds support for Batch Predictions in Amazon Fraud Detector. + +## __Amazon Pinpoint__ + - ### Features + - Added support for journey pause/resume, journey updatable import segment and journey quiet time wait. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot now supports 1) feature importance reports for AutoML jobs and 2) PartialFailures for AutoML jobs + +# __2.16.30__ __2021-03-29__ +## __AWS Glue__ + - ### Features + - Allow Dots in Registry and Schema Names for CreateRegistry, CreateSchema; Fixed issue when duplicate keys are present and not returned as part of QuerySchemaVersionMetadata. + +## __AWS Identity and Access Management__ + - ### Features + - AWS Identity and Access Management GetAccessKeyLastUsed API will throw a custom error if customer public key is not found for access keys. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS WAFV2__ + - ### Features + - Added custom request handling and custom response support in rule actions and default action; Added the option to inspect the web request body as parsed and filtered JSON. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - This release adds support for Event Subscriptions to DocumentDB. + +## __Amazon Location Service__ + - ### Features + - Amazon Location added support for specifying pricing plan information on resources in alignment with our cost model. + +# __2.16.29__ __2021-03-26__ +## __AWS IoT Wireless__ + - ### Features + - Support tag-on-create for WirelessDevice. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch Events__ + - ### Features + - Add support for SageMaker Model Builder Pipelines Targets to EventBridge + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release adds an optional parameter named FlowDefinition in PutIntegrationRequest. + +## __Amazon EventBridge__ + - ### Features + - Add support for SageMaker Model Builder Pipelines Targets to EventBridge + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe now supports tagging words that match your vocabulary filter for batch transcription. + +# __2.16.28__ __2021-03-25__ +## __Amazon Lookout for Metrics__ + - ### Features + - Allowing uppercase alphabets for RDS and Redshift database names. + +# __2.16.27__ __2021-03-25__ +## __AWS Elemental MediaLive__ + - ### Features + - EML now supports handling HDR10 and HLG 2020 color space from a Link input. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Removing Freemarker version 2.3.24 since this package is not used in the code. + +## __Alexa For Business__ + - ### Features + - Added support for enabling and disabling data retention in the CreateProfile and UpdateProfile APIs and retrieving the state of data retention for a profile in the GetProfile API. + +## __Amazon Lookout for Metrics__ + - ### Features + - Amazon Lookout for Metrics is now generally available. You can use Lookout for Metrics to monitor your data for anomalies. For more information, see the Amazon Lookout for Metrics Developer Guide. + +## __Amazon Rekognition__ + - ### Features + - "This release introduces AWS tagging support for Amazon Rekognition collections, stream processors, and Custom Label models." + +## __Amazon SageMaker Service__ + - ### Features + - This feature allows customer to specify the environment variables in their CreateTrainingJob requests. + +## __Amazon Simple Queue Service__ + - ### Features + - Documentation updates for Amazon SQS + +# __2.16.26__ __2021-03-24__ +## __AWS Greengrass__ + - ### Features + - Updated the parameters to make name required for CreateGroup API. + +## __AWS S3 Control__ + - ### Features + - Documentation updates for s3-control + +## __Amazon Elastic Compute Cloud__ + - ### Features + - maximumEfaInterfaces added to DescribeInstanceTypes API + +## __Amazon Route 53__ + - ### Features + - Documentation updates for route53 + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation updates for Amazon S3 + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release allows SSM Explorer customers to enable OpsData sources across their organization when creating a resource data sync. + +# __2.16.25__ __2021-03-23__ +## __AWS Cost Explorer Service__ + - ### Features + - You can now create cost categories with inherited value rules and specify default values for any uncategorized costs. + +## __AWS Fault Injection Simulator__ + - ### Features + - Updated maximum allowed size of action parameter from 64 to 1024 + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for IAM operations and descriptions. + +## __Amazon GameLift__ + - ### Features + - GameLift adds support for using event notifications to monitor game session placements. Specify an SNS topic or use CloudWatch Events to track activity for a game session queue. + +## __Amazon Redshift__ + - ### Features + - Removed APIs to control AQUA on clusters. + +# __2.16.24__ __2021-03-22__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Use HTTPs for AWS API Documentation links in javadocs + - Contributed by: [@Carey-AWS](https://github.com/Carey-AWS) + + - ### Documentations + - Implements web metrics tracking and standard AWS footer for javadocs, and adds a link to submit feedback about the javadocs + - Contributed by: [@Carey-AWS](https://github.com/Carey-AWS) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for UEFI boot on selected AMD- and Intel-based EC2 instances. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API adds support for publishing sensitive data findings to AWS Security Hub and specifying which categories of findings to publish to Security Hub. + +## __Amazon Redshift__ + - ### Features + - Added support to enable AQUA in Amazon Redshift clusters. + +## __CodeArtifact__ + - ### Features + - Documentation updates for CodeArtifact + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@Carey-AWS](https://github.com/Carey-AWS) +# __2.16.23__ __2021-03-19__ +## __Amazon Elastic Compute Cloud__ + - ### Features + - X2gd instances are the next generation of memory-optimized instances powered by AWS-designed, Arm-based AWS Graviton2 processors. + +## __Amazon SageMaker Service__ + - ### Features + - Adding authentication support for pulling images stored in private Docker registries to build containers for real-time inference. + +# __2.16.22__ __2021-03-18__ +## __AWS S3 Control__ + - ### Features + - S3 Object Lambda is a new S3 feature that enables users to apply their own custom code to process the output of a standard S3 GET request by automatically invoking a Lambda function with a GET request + +## __AWS SDK for Java v2__ + - ### Features + - Upgrade Netty version to 4.1.60 + +## __AWS SecurityHub__ + - ### Features + - New object for separate provider and customer values. New objects track S3 Public Access Block configuration and identify sensitive data. BatchImportFinding requests are limited to 100 findings. + +## __Amazon Redshift__ + - ### Features + - Add new fields for additional information about VPC endpoint for clusters with reallocation enabled, and a new field for total storage capacity for all clusters. + +## __Amazon Simple Storage Service__ + - ### Features + - S3 Object Lambda is a new S3 feature that enables users to apply their own custom code to process the output of a standard S3 GET request by automatically invoking a Lambda function with a GET request + +## __Auto Scaling__ + - ### Features + - Amazon EC2 Auto Scaling Instance Refresh now supports phased deployments. + +# __2.16.21__ __2021-03-17__ +## __AWS Batch__ + - ### Features + - Making serviceRole an optional parameter when creating a compute environment. If serviceRole is not provided then Service Linked Role will be created (or reused if it already exists). + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon SageMaker Service__ + - ### Features + - Support new target device ml_eia2 in SageMaker CreateCompilationJob API + +# __2.16.20__ __2021-03-16__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS Lambda__ + - ### Features + - Allow empty list for function response types + +## __AWS MediaConnect__ + - ### Features + - This release adds support for the SRT-listener protocol on sources and outputs. + +## __AWS MediaTailor__ + - ### Features + - MediaTailor channel assembly is a new manifest-only service that allows you to assemble linear streams using your existing VOD content. + +## __Access Analyzer__ + - ### Features + - This release adds support for the ValidatePolicy API. IAM Access Analyzer is adding over 100 policy checks and actionable recommendations that help you validate your policies during authoring. + +## __Amazon DynamoDB__ + - ### Features + - Change STANDARD mode retry count which was 2 for DynamoDB to match LEGACY retry count which is 8. + +## __Amazon GameLift__ + - ### Features + - GameLift expands to six new AWS Regions, adds support for multi-location fleets to streamline management of hosting resources, and lets you customize more of the game session placement process. + +## __AmazonMWAA__ + - ### Features + - This release adds UPDATE_FAILED and UNAVAILABLE MWAA environment states. + +# __2.16.19__ __2021-03-15__ +## __AWS CodeDeploy__ + - ### Features + - AWS CodeDeploy can now detect instances running an outdated revision of your application and automatically update them with the latest revision. + +## __AWS Fault Injection Simulator__ + - ### Features + - Initial release of AWS Fault Injection Simulator, a managed service that enables you to perform fault injection experiments on your AWS workloads + +## __Amazon EC2 Container Service__ + - ### Features + - This is for ecs exec feature release which includes two new APIs - execute-command and update-cluster and an AWS CLI customization for execute-command API + +## __Amazon Elastic MapReduce__ + - ### Features + - Amazon EMR customers can now specify Resource Group to target Capacity Reservations in their EMR clusters with instance fleets using allocation strategy. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - AWS Transcribe now supports real-time transcription for Chinese (zh-CN) and confidence scores in the transcription output. + +# __2.16.18__ __2021-03-12__ +## __AWS Cost and Usage Report Service__ + - ### Features + - - Added optional billingViewArn field for OSG. + +## __AWS MediaTailor__ + - ### Features + - MediaTailor channel assembly is a new manifest-only service that allows you to assemble linear streams using your existing VOD content. + +## __Amazon WorkSpaces__ + - ### Features + - Adds API support for WorkSpaces bundle management operations. + +# __2.16.17__ __2021-03-11__ +## __AWS Elemental MediaLive__ + - ### Features + - MediaLive supports the ability to apply a canned ACL to output sent to an AWS S3 bucket; supports ability to specify position for EBU-TT and TTML output captions converted from Teletext source. + +## __AWS Network Firewall__ + - ### Features + - Correct the documentation about how you can provide rule group rules + +## __AWS WAFV2__ + - ### Features + - Correct the documentation about JSON body parsing behavior and IP set update behavior + +## __Amazon Comprehend__ + - ### Features + - ContainsPiiEntities API analyzes the input text for the presence of personally identifiable information(PII) and returns the labels of identified PII entity types such as name, address etc. + +## __Amazon S3__ + - ### Bugfixes + - Fixed an issue where presigned URLs for access point objects could bypass encoding, causing an IllegalArgumentException. + +# __2.16.16__ __2021-03-10__ +## __AWS Backup__ + - ### Features + - Added support for enabling continuous backups. + +## __AWS SDK for Java v2__ + - ### Features + - Include the retry mode STANDARD or LEGACY in the user agents list. + +## __Access Analyzer__ + - ### Features + - This release adds support to preview IAM Access Analyzer findings for a resource before deploying resource permission changes. + +## __Amazon Simple Storage Service__ + - ### Features + - Adding ID element to the CORSRule schema + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Systems Manager support for tagging OpsMetadata. + +# __2.16.15__ __2021-03-09__ +## __AWS IoT Wireless__ + - ### Features + - Add max value to Seq in SendDataToWirelessDevice API" + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CodeGuru Profiler__ + - ### Features + - Update documentation to include Python. Add ConflictException for DeleteProfilingGroup. Add FrameMetricValue. + +## __Amazon Elastic File System__ + - ### Features + - AWS EFS is introducing one-zone file systems. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for Amazon RDS Proxy endpoints. + +## __Auto Scaling__ + - ### Features + - EC2 Auto Scaling now supports setting a local time zone for cron expressions in scheduled actions, removing the need to adjust for Daylight Saving Time (DST) + +# __2.16.14__ __2021-03-08__ +## __AWS Lambda__ + - ### Features + - Documentation updates for Lambda. Constraint updates to AddLayerVersionPermission's Action and OrganizationId parameters, and AddPermission's Principal and SourceAccount parameters. + +## __AWS S3 Control__ + - ### Features + - Documentation updates for Amazon S3 + +## __Amazon Elastic MapReduce__ + - ### Features + - Amazon EMR customers can now specify how EC2 On-Demand Capacity Reservations are used in their EMR clusters with instance fleets using allocation strategy. + +## __Amazon Kinesis Video Streams Archived Media__ + - ### Features + - Increase the maximum HLS and MPEG-DASH manifest size from 1,000 to 5,000 fragments. + +## __Amazon Simple Storage Service__ + - ### Features + - Amazon S3 Documentation updates + +## __Auto Scaling__ + - ### Features + - Documentation updates for autoscaling for capacity-optimized-prioritized SpotAllocationStrategy + +# __2.16.13__ __2021-03-05__ +## __AWS CodePipeline__ + - ### Features + - Updated the parameters to make actionType required for UpdateActionType + +## __AWS Elemental MediaLive__ + - ### Features + - Medialive now supports the ability to transfer AWS Elemental Link devices to another region. + +## __AWS License Manager__ + - ### Features + - License Manager Automated Discovery now supports Exclusion Filters. + +## __AWS Network Firewall__ + - ### Features + - Added a new UpdateToken output field to the PerObjectStatus as part of firewall sync state. This is added to track which version of the object the firewall is in sync or pending synchronization. + +## __AWS Shield__ + - ### Features + - Add support for tagging of Shield protection and protection group resources. + +## __Amazon Appflow__ + - ### Features + - Documentation updates for arn:aws:trebuchet:::service:v1:decb008d-e0d8-44a4-b93c-092f0355d523 + +## __Amazon Athena__ + - ### Features + - Adds APIs to create, list, update, and delete prepared SQL statements that have optional placeholder parameters. A prepared statement can use different values for these parameters each time it is run. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Expands EC2/Spot Fleet capacity-optimized allocation strategy to allow users to prioritize instance pools. Fleet attempts to fulfill priorities on a best-effort basis but optimizes for capacity first. + +# __2.16.12__ __2021-03-04__ +## __AWS Cloud Map__ + - ### Features + - Supports creating API-only services under DNS namespace. Add namespace syntax validation. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch Events__ + - ### Features + - Introducing support for EventBridge Api Destinations - any HTTP APIs as Targets, with managed authorization via EventBridge Connections. + +## __Amazon EventBridge__ + - ### Features + - Introducing support for EventBridge Api Destinations - any HTTP APIs as Targets, with managed authorization via EventBridge Connections. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds the ResolvedOutputS3Uri to the DescribeFeatureGroup API to indicate the S3 prefix where offline data is stored in a feature group + +## __AmazonMWAA__ + - ### Features + - This release introduces a new MinWorker parameter to the CreateEnvironment and UpdateEnvironment APIs. MinWorker allows the users to set a minimum worker count for worker auto-scaling operations. + +# __2.16.11__ __2021-03-03__ +## __AWS Certificate Manager__ + - ### Features + - Adds 2 new APIs to add and retrieve account configuration in AWS Certificate Manager. + +## __AWS CodeBuild__ + - ### Features + - AWS CodeBuild now supports Session Manager debugging for batch builds. + +## __AWS Secrets Manager__ + - ### Features + - Added support for multi-Region secrets APIs ReplicateSecretToRegions, RemoveRegionsFromReplication, and StopReplicationToReplica + +## __AWS Well-Architected Tool__ + - ### Features + - This release supports tagging on AWS Well-Architected workloads. + +## __Amazon CloudWatch Events__ + - ### Features + - Adds TraceHeader to PutEventsRequestEntry to support AWS X-Ray trace-ids on events generated using the PutEvents operation. + +## __Amazon Elasticsearch Service__ + - ### Features + - AWS ElasticSearch Feature : Support for adding tags in elastic search domain during domain creation + +## __Amazon Forecast Service__ + - ### Features + - Added new StopResource operation that stops Amazon Forecast resource jobs that are in progress. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API includes miscellaneous updates and improvements to the documentation. + +# __2.16.10__ __2021-03-02__ +## __AWS Compute Optimizer__ + - ### Features + - Documentation updates for Compute Optimizer + +## __AWS DataSync__ + - ### Features + - Additional API Support to update NFS/SMB/ObjectStorage locations + +## __AWS Direct Connect__ + - ### Features + - Doc only update for AWS Direct Connect that fixes several customer-reported issues + +## __AWS IoT Wireless__ + - ### Features + - Add ARN & Tags for PartnerAccount related APIs and WirelessGatewayTaskDefinition related APIs + +## __Amazon EventBridge__ + - ### Features + - Adds TraceHeader to PutEventsRequestEntry to support AWS X-Ray trace-ids on events generated using the PutEvents operation. + +## __Amazon Managed Blockchain__ + - ### Features + - Updates for Ethereum general availability release. + +# __2.16.9__ __2021-03-01__ +## __AWS CodePipeline__ + - ### Features + - Added a new field to the ListPipelines API to allow maximum search results of 1000 + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Alexa For Business__ + - ### Features + - Added support for optional tags in CreateAddressBook, CreateConferenceProvider, CreateContact, CreateGatewayGroup, CreateNetworkProfile and RegisterAVSDevice APIs. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding new error code AdmissionRequestDenied for Addons in EKS + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Add Support for Patch Manger Baseline Override parameter. + +# __2.16.8__ __2021-02-26__ +## __AWS Single Sign-On Admin__ + - ### Features + - Relax constraint on List* API pagination tokens to include underscore character + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Amazon EKS now supports adding KMS envelope encryption to existing clusters to enhance security for secrets + +## __Amazon Elastic MapReduce__ + - ### Features + - Added UpdateStudio API that allows updating a few attributes of an EMR Studio. + +## __Amazon Simple Storage Service__ + - ### Features + - Add RequestPayer to GetObjectTagging and PutObjectTagging. + +# __2.16.7__ __2021-02-25__ +## __AWS Glue DataBrew__ + - ### Features + - This SDK release adds two new dataset features: 1) support for specifying the file format for a dataset, and 2) support for specifying whether the first row of a CSV or Excel file contains a header. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix for module-path tests failure reported in [#2240](https://github.com/aws/aws-sdk-java-v2/issues/2240) + +## __AWS Transfer Family__ + - ### Features + - Corrected the upper limit for TestIdentityProvider input lengths to 1024 characters + +## __Amazon Detective__ + - ### Features + - Changed "master account" to "administrator account." A new AdministratorId field replaces the deprecated MasterId field. Added an option to disable email notifications for member account invitations. + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Lightsail + +## __EC2 Image Builder__ + - ### Features + - This release introduces a new API (ListImagePackages) for listing packages installed on an image, and adds support for GP3 volume types, and for specifying a time zone in an image pipeline schedule. + +# __2.16.6__ __2021-02-24__ +## __AWS Compute Optimizer__ + - ### Features + - Documentation updates for Compute Optimizer + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - AWS Elemental MediaPackage provides access logs that capture detailed information about requests sent to a customer's MediaPackage VOD packaging group. + +## __Amazon Appflow__ + - ### Features + - # Adding 'Amazon Honeycode' , 'Amazon Lookout for Metrics' and 'Amazon Connect Customer Profiles' as Destinations. + +## __Amazon Elastic Container Registry Public__ + - ### Features + - This release adds support for AWS tags on Amazon ECR Public repositories. + +## __Amazon Elasticsearch Service__ + - ### Features + - Amazon Elasticsearch Service now supports Auto-Tune, which monitors performance metrics and automatically optimizes domains + +# __2.16.5__ __2021-02-23__ +## __AWS Glue__ + - ### Features + - Updating the page size for Glue catalog getter APIs. + +## __AWS IoT Events__ + - ### Features + - This release adds an Analyze feature to AWS IoT Events that lets customers analyze their detector models for runtime issues. + +## __AWS S3 Control__ + - ### Features + - Documentation updates for s3-control + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Service__ + - ### Features + - Documentation updates for AWS Connect (MediaConcurrency Limit). + +## __Amazon Pinpoint__ + - ### Features + - Enables AWS Pinpoint customers to use Entity Id and Template Id when sending SMS message. These parameters can be obtained from the regulatory body of the country where you are trying to send the SMS. + +## __Amazon QuickSight__ + - ### Features + - Documentation updates for QuickSight Row Level Security + +## __Auto Scaling__ + - ### Features + - Adds a new optional IncludeDeletedGroups parameter to the DescribeScalingActivities API. + +## __Redshift Data API Service__ + - ### Features + - This release adds an additional parameter 'ConnectedDatabase' into ListSchemasRequest, ListTablesRequest and DescribeTableRequest to support the metadata sharing across databases. + +# __2.16.4__ __2021-02-22__ +## __AWS S3__ + - ### Bugfixes + - Fix the bug that getUrl in S3Utilities ignores the overriding endpoint in the client. + +## __Amazon SageMaker Runtime__ + - ### Features + - SageMaker Runtime now supports a new TargetContainerHostname header to invoke a model in a specific container if the endpoint hosts multiple containers and is configured to use direct invocation. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker now supports core dump for SageMaker Endpoints and direct invocation of a single container in a SageMaker Endpoint that hosts multiple containers. + +# __2.16.3__ __2021-02-19__ +## __AWS RDS__ + - ### Features + - Add the ability to generate IAM auth tokens for RDS using `RdsUtilities` + - Contributed by: [@abrooksv](https://github.com/abrooksv) + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Relational Database Service__ + - ### Features + - Added awsBackupRecoveryPointArn in ModifyDBInstanceRequest and in the response of ModifyDBInstance. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@abrooksv](https://github.com/abrooksv) +# __2.16.2__ __2021-02-18__ +## __AWS CloudFormation__ + - ### Features + - Adding the 'callAs' parameter to all CloudFormation StackSets APIs except getTemplateSummary to support creating and managing service-managed StackSets with AWS Organizations Delegated Administrators + +## __AWS CodeBuild__ + - ### Features + - AWS CodeBuild now allows you to specify a separate bucket owner as part of the S3 destination in a report group. + +## __AWS Health APIs and Notifications__ + - ### Features + - Documentation updates for health + +## __Amazon SageMaker Service__ + - ### Features + - This release adds expires-in-seconds parameter to the CreatePresignedDomainUrl API for support of a configurable TTL. + +# __2.16.1__ __2021-02-17__ +## __AWS Config__ + - ### Features + - Added INSUFFICIENT_DATA in ConformancePackComplianceType. + +## __AWS SDK for Java v2__ + - ### Features + - Add GraalVM Native Image configurations for SDK classes + - Created a new archetype, `archetype-app-quickstart`, which allows you to create a simple application with SDK dependencies + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release includes a new filter for describe-vpc-endpoint-services. + +## __Amazon Lookout for Vision__ + - ### Features + - This release for Amazon Lookout for Vision includes documentation updates and a correction to the Status field returned in the response from StartModel and StopModel. + +# __2.16.0__ __2021-02-16__ +## __AWS CodeBuild__ + - ### Features + - This release provides per-project limits for the number of concurrent builds + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Upgrade Jackson dependencies to `2.12.1`. + +## __Amazon DevOps Guru__ + - ### Features + - Amazon DevOps Guru is GA ready. This API update added a describeFeedback Api allows users to view submitted insight feedback. The release date is 02/16/2021 diff --git a/changelogs/2.17.x-CHANGELOG.md b/changelogs/2.17.x-CHANGELOG.md new file mode 100644 index 000000000000..f3ac253aa0bd --- /dev/null +++ b/changelogs/2.17.x-CHANGELOG.md @@ -0,0 +1,7093 @@ +# __2.17.295__ __2022-10-19__ +## __AWS CloudTrail__ + - ### Features + - This release includes support for exporting CloudTrail Lake query results to an Amazon S3 bucket. + +## __AWS Config__ + - ### Features + - This release adds resourceType enums for AppConfig, AppSync, DataSync, EC2, EKS, Glue, GuardDuty, SageMaker, ServiceDiscovery, SES, Route53 types. + +## __AWS S3 Control__ + - ### Features + - Updates internal logic for constructing API endpoints. We have added rule-based endpoints and internal model parameters. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Support App__ + - ### Features + - This release adds the RegisterSlackWorkspaceForOrganization API. You can use the API to register a Slack workspace for an AWS account that is part of an organization. + +## __Amazon Chime SDK Messaging__ + - ### Features + - Documentation updates for Chime Messaging SDK + +## __Amazon Connect Service__ + - ### Features + - This release adds API support for managing phone numbers that can be used across multiple AWS regions through telephony traffic distribution. + +## __Amazon EventBridge__ + - ### Features + - Updates internal logic for constructing API endpoints. We have added rule-based endpoints and internal model parameters. + +## __Amazon Managed Blockchain__ + - ### Features + - Adding new Accessor APIs for Amazon Managed Blockchain + +## __Amazon Simple Storage Service__ + - ### Features + - Updates internal logic for constructing API endpoints. We have added rule-based endpoints and internal model parameters. + +## __Amazon WorkSpaces Web__ + - ### Features + - WorkSpaces Web now supports user access logging for recording session start, stop, and URL navigation. + +## __WS SDK for Java v2__ + - ### Bugfixes + - Fix bug in FIPS configuration handling where setting a non-FIPS region clears the setting. + +# __2.17.294__ __2022-10-18__ +## __AWS Cloud Map__ + - ### Features + - Updated the ListNamespaces API to support the NAME and HTTP_NAME filters, and the BEGINS_WITH filter condition. + +## __AWS SDK for Java v2__ + - ### Features + - Bump jackson-databind version to 2.13.4.2 + - Updated service endpoint metadata. + +## __Amazon Fraud Detector__ + - ### Features + - Documentation Updates for Amazon Fraud Detector + +## __Amazon SageMaker Service__ + - ### Features + - This change allows customers to enable data capturing while running a batch transform job, and configure monitoring schedule to monitoring the captured data. + +## __Amazon Simple Email Service__ + - ### Features + - This release allows subscribers to enable Dedicated IPs (managed) to send email via a fully managed dedicated IP experience. It also adds identities' VerificationStatus in the response of GetEmailIdentity and ListEmailIdentities APIs, and ImportJobs counts in the response of ListImportJobs API. + +# __2.17.293__ __2022-10-17__ +## __AWS Greengrass__ + - ### Features + - This change allows customers to specify FunctionRuntimeOverride in FunctionDefinitionVersion. This configuration can be used if the runtime on the device is different from the AWS Lambda runtime specified for that function. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for C7g, C6g, C6gd, C6gn, M6g, M6gd, R6g, and R6gn Graviton instance types in Amazon SageMaker Inference. + +# __2.17.292__ __2022-10-14__ +## __AWS Elemental MediaConvert__ + - ### Features + - MediaConvert now supports specifying the minimum percentage of the HRD buffer available at the end of each encoded video segment. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.17.291__ __2022-10-13__ +## __AWS Amplify UI Builder__ + - ### Features + - We are releasing the ability for fields to be configured as arrays. + +## __AWS Directory Service__ + - ### Features + - This release adds support for describing and updating AWS Managed Microsoft AD set up. + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports forwarding SCTE-35 messages through the Event Signaling and Management (ESAM) API, and can read those SCTE-35 messages from an inactive source. + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - This release adds SPEKE v2 support for MediaPackage VOD. Speke v2 is an upgrade to the existing SPEKE API to support multiple encryption keys, based on an encryption contract selected by the customer. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for the AWS Identity and Access Management API Reference. + +## __AWS IoT FleetWise__ + - ### Features + - Documentation update for AWS IoT FleetWise + +## __AWS Panorama__ + - ### Features + - Pause and resume camera stream processing with SignalApplicationInstanceNodeInstances. Reboot an appliance with CreateJobForDevices. More application state information in DescribeApplicationInstance response. + +## __AWS RDS DataService__ + - ### Features + - Doc update to reflect no support for schema parameter on BatchExecuteStatement API + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Update RelatedItem enum to support Tasks + +## __AWS Transfer Family__ + - ### Features + - This release adds an option for customers to configure workflows that are triggered when files are only partially received from a client due to premature session disconnect. + +## __Amazon Appflow__ + - ### Features + - With this update, you can choose which Salesforce API is used by Amazon AppFlow to transfer data to or from your Salesforce account. You can choose the Salesforce REST API or Bulk API 2.0. You can also choose for Amazon AppFlow to pick the API automatically. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for a secondary email and a mobile number for Amazon Connect instance users. + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release updates the GetRecommendations API to include a trigger event list for classifying and grouping recommendations. + +## __Amazon DynamoDB__ + - ### Features + - Add locale converter to enhanced DynamoDB client + - Contributed by: [@thomasturrell](https://github.com/thomasturrell) + +## __Amazon DynamoDB Enhanced__ + - ### Features + - Treat @java.beans.Transient as @DynamoDbIgnore in BeanTableSchema and ImmutableTableSchema. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation update to address tickets. + +## __Amazon GuardDuty__ + - ### Features + - Add UnprocessedDataSources to CreateDetectorResponse which specifies the data sources that couldn't be enabled during the CreateDetector request. In addition, update documentations. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Support of AmazonLinux2022 by Patch Manager + +## __Amazon Translate__ + - ### Features + - This release enables customers to specify multiple target languages in asynchronous batch translation requests. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@thomasturrell](https://github.com/thomasturrell) +# __2.17.290__ __2022-10-07__ +## __AWS IoT Greengrass V2__ + - ### Features + - This release adds error status details for deployments and components that failed on a device and adds features to improve visibility into component installation. + +## __AWS SDK for Java v2__ + - ### Features + - Add the ability to configure connection timeout, and enabling keep-alive with interval/timeout settings on the AwsCrtAsyncHttpClient to support long-running connections + - Contributed by: [@nikp](https://github.com/nikp) + - Updated service endpoint metadata. + +## __Amazon CodeGuru Reviewer__ + - ### Features + - Documentation update to replace broken link. + +## __Amazon QuickSight__ + - ### Features + - Amazon QuickSight now supports SecretsManager Secret ARN in place of CredentialPair for DataSource creation and update. This release also has some minor documentation updates and removes CountryCode as a required parameter in GeoSpatialColumnGroup + +## __Elastic Load Balancing__ + - ### Features + - Gateway Load Balancer adds a new feature (target_failover) for customers to rebalance existing flows to a healthy target after marked unhealthy or deregistered. This allows graceful patching/upgrades of target appliances during maintenance windows, and helps reduce unhealthy target failover time. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@nikp](https://github.com/nikp) +# __2.17.289__ __2022-10-06__ +## __AWS Resilience Hub__ + - ### Features + - Documentation change for AWS Resilience Hub. Doc-only update to fix Documentation layout + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Adds support for automatically transforming a FIPS pesudo region (e.g. "fips-us-west-2"), into a standard region name + setting the `fips_enabled` flag to `true`. + +# __2.17.288__ __2022-10-05__ +## __AWS Glue__ + - ### Features + - This SDK release adds support to sync glue jobs with source control provider. Additionally, a new parameter called SourceControlDetails will be added to Job model. + +## __AWS Network Firewall__ + - ### Features + - StreamExceptionPolicy configures how AWS Network Firewall processes traffic when a network connection breaks midstream + +## __AWS Outposts__ + - ### Features + - This release adds the Asset state information to the ListAssets response. The ListAssets request supports filtering on Asset state. + +# __2.17.287__ __2022-10-04__ +## __AWS S3 Control__ + - ### Features + - S3 Object Lambda adds support to allow customers to intercept HeadObject and ListObjects requests and introduce their own compute. These requests were previously proxied to S3. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Build headers with two-digit day of month to meet RFC 822 reporting requirement + - Contributed by: [@dave-fn](https://github.com/dave-fn) + +## __Amazon Connect Cases__ + - ### Features + - This release adds APIs for Amazon Connect Cases. Cases allows your agents to quickly track and manage customer issues that require multiple interactions, follow-up tasks, and teams in your contact center. For more information, see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html + +## __Amazon Connect Service__ + - ### Features + - Updated the CreateIntegrationAssociation API to support the CASES_DOMAIN IntegrationType. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation updates to address various Amazon ECS tickets. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Added EnableNetworkAddressUsageMetrics flag for ModifyVpcAttribute, DescribeVpcAttribute APIs. + +## __Amazon WorkMail__ + - ### Features + - This release adds support for impersonation roles in Amazon WorkMail. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@dave-fn](https://github.com/dave-fn) +# __2.17.286__ __2022-10-03__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Access Analyzer__ + - ### Features + - AWS IAM Access Analyzer policy validation introduces new checks for role trust policies. As customers author a policy, IAM Access Analyzer policy validation evaluates the policy for any issues to make it easier for customers to author secure policies. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adding an imdsSupport attribute to EC2 AMIs + +## __Amazon Import/Export Snowball__ + - ### Features + - Adds support for V3_5C. This is a refreshed AWS Snowball Edge Compute Optimized device type with 28TB SSD, 104 vCPU and 416GB memory (customer usable). + +# __2.17.285__ __2022-09-30__ +## __AWS CodeDeploy__ + - ### Features + - This release allows you to override the alarm configurations when creating a deployment. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SSO OIDC__ + - ### Features + - Documentation updates for the IAM Identity Center OIDC CLI Reference. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - This release adds support for archival of single-volume snapshots created by Amazon Data Lifecycle Manager policies + +## __Amazon DevOps Guru__ + - ### Features + - This release adds filter feature on AddNotificationChannel API, enable customer to configure the SNS notification messages by Severity or MessageTypes + +## __Amazon SageMaker Runtime__ + - ### Features + - A new parameter called EnableExplanations is added to InvokeEndpoint API to enable on-demand SageMaker Clarify online explainability requests. + +## __Amazon SageMaker Service__ + - ### Features + - A new parameter called ExplainerConfig is added to CreateEndpointConfig API to enable SageMaker Clarify online explainability feature. + +# __2.17.284__ __2022-09-29__ +## __AWS Certificate Manager__ + - ### Features + - This update returns additional certificate details such as certificate SANs and allows sorting in the ListCertificates API. + +## __AWS Migration Hub Orchestrator__ + - ### Features + - Introducing AWS MigrationHubOrchestrator. This is the first public release of AWS MigrationHubOrchestrator. + +## __AWS Proton__ + - ### Features + - This release adds an option to delete pipeline provisioning repositories using the UpdateAccountSettings API + +## __AWS SDK for Java v2__ + - ### Features + - Provide the ability to set a custom socket factory when building an HTTP client + - Contributed by: [@dave-fn](https://github.com/dave-fn) + - Updated service endpoint metadata. + + - ### Bugfixes + - Update RequestBody/AsyncRequestBody.fromString(String, Charset) to use the provided charset in the content-type. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __Amazon Elastic Compute Cloud__ + - ### Features + - u-3tb1 instances are powered by Intel Xeon Platinum 8176M (Skylake) processors and are purpose-built to run large in-memory databases. + +## __Amazon FSx__ + - ### Features + - This release adds support for Amazon File Cache. + +## __Amazon Polly__ + - ### Features + - Added support for the new Cantonese voice - Hiujin. Hiujin is available as a Neural voice only. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Training Managed Warm Pools let you retain provisioned infrastructure to reduce latency for repetitive training workloads. + +## __Amazon Translate__ + - ### Features + - This release enables customers to access control rights on Translate resources like Parallel Data and Custom Terminology using Tag Based Authorization. + +## __Amazon WorkSpaces__ + - ### Features + - This release includes diagnostic log uploading feature. If it is enabled, the log files of WorkSpaces Windows client will be sent to Amazon WorkSpaces automatically for troubleshooting. You can use modifyClientProperty api to enable/disable this feature. + +## __EMR Serverless__ + - ### Features + - This release adds API support to debug Amazon EMR Serverless jobs in real-time with live application UIs + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@dave-fn](https://github.com/dave-fn) +# __2.17.283__ __2022-09-27__ +## __AWS Cost Explorer Service__ + - ### Features + - This release is to support retroactive Cost Categories. The new field will enable you to retroactively apply new and existing cost category rules to previous months. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - My AWS Service (placeholder) - Amazon Kendra now provides a data source connector for DropBox. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-dropbox.html + +## __Amazon Location Service__ + - ### Features + - This release adds place IDs, which are unique identifiers of places, along with a new GetPlace operation, which can be used with place IDs to find a place again later. UnitNumber and UnitType are also added as new properties of places. + +# __2.17.282__ __2022-09-26__ +## __AWS Cost and Usage Report Service__ + - ### Features + - This release adds two new support regions(me-central-1/eu-south-2) for OSG. + +## __AWS IoT FleetWise__ + - ### Features + - General availability (GA) for AWS IoT Fleetwise. It adds AWS IoT Fleetwise to AWS SDK. For more information, see https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/Welcome.html. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release includes support for applying a CloudWatch alarm to Systems Manager capabilities like Automation, Run Command, State Manager, and Maintenance Windows. + +# __2.17.281__ __2022-09-23__ +## __AWS App Runner__ + - ### Features + - AWS App Runner adds a Node.js 16 runtime. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS WAFV2__ + - ### Features + - Add the default specification for ResourceType in ListResourcesForWebACL. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Letting external AWS customers provide ImageId as a Launch Template override in FleetLaunchTemplateOverridesRequest + +## __Amazon Lex Model Building V2__ + - ### Features + - This release introduces additional optional parameters promptAttemptsSpecification to PromptSpecification, which enables the users to configure interrupt setting and Audio, DTMF and Text input configuration for the initial and retry prompt played by the Bot + +## __Amazon Lightsail__ + - ### Features + - This release adds Instance Metadata Service (IMDS) support for Lightsail instances. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release adds new SSM document types ConformancePackTemplate and CloudFormation + +## __AmazonNimbleStudio__ + - ### Features + - Amazon Nimble Studio adds support for on-demand Amazon Elastic Compute Cloud (EC2) G3 and G5 instances, allowing customers to utilize additional GPU instance types for their creative projects. + +# __2.17.280__ __2022-09-22__ +## __AWS Backup Gateway__ + - ### Features + - Changes include: new GetVirtualMachineApi to fetch a single user's VM, improving ListVirtualMachines to fetch filtered VMs as well as all VMs, and improving GetGatewayApi to now also return the gateway's MaintenanceStartTime. + +## __AWS Device Farm__ + - ### Features + - This release adds the support for VPC-ENI based connectivity for private devices on AWS Device Farm. + +## __AWS Glue__ + - ### Features + - Added support for S3 Event Notifications for Catalog Target Crawlers. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SSO Identity Store__ + - ### Features + - Documentation updates for the Identity Store CLI Reference. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Amazon EC2. + +# __2.17.279__ __2022-09-21__ +## __AWS S3 Control__ + - ### Features + - S3 on Outposts launches support for object versioning for Outposts buckets. With S3 Versioning, you can preserve, retrieve, and restore every version of every object stored in your buckets. You can recover from both unintended user actions and application failures. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixed issue where errors were being wrapped by SdkClientException + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports synchronous mode for targeted sentiment API operations. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker now allows customization on Canvas Application settings, including enabling/disabling time-series forecasting and specifying an Amazon Forecast execution role at both the Domain and UserProfile levels. + +# __2.17.278__ __2022-09-20__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for blocked paths to Amazon VPC Reachability Analyzer. + +# __2.17.277__ __2022-09-19__ +## __AWS CloudTrail__ + - ### Features + - This release includes support for importing existing trails into CloudTrail Lake. + +## __AWS MediaConnect__ + - ### Features + - This change allows the customer to use the SRT Caller protocol as part of their flows + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds CapacityAllocations field to DescribeCapacityReservations + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for Amazon RDS Proxy with SQL Server compatibility. + +# __2.17.276__ __2022-09-16__ +## __AWS CodeStar Notifications__ + - ### Features + - This release adds tag based access control for the UntagResource API. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed issue where request used to fail while calculating Trailer based checksum for Async Request body. + +## __Amazon EC2 Container Service__ + - ### Features + - This release supports new task definition sizes. + +# __2.17.275__ __2022-09-15__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DynamoDB__ + - ### Features + - Increased DynamoDB transaction limit from 25 to 100. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This feature allows customers to create tags for vpc-endpoint-connections and vpc-endpoint-service-permissions. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Automatic Model Tuning now supports specifying Hyperband strategy for tuning jobs, which uses a multi-fidelity based tuning strategy to stop underperforming hyperparameter configurations early. + +# __2.17.274__ __2022-09-14__ +## __AWS Amplify UI Builder__ + - ### Features + - Amplify Studio UIBuilder is introducing forms functionality. Forms can be configured from Data Store models, JSON, or from scratch. These forms can then be generated in your project and used like any other React components. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This update introduces API operations to manage and create local gateway route tables, CoIP pools, and VIF group associations. + +# __2.17.273__ __2022-09-13__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Transfer Family__ + - ### Features + - This release introduces the ability to have multiple server host keys for any of your Transfer Family servers that use the SFTP protocol. + +## __AWSKendraFrontendService__ + - ### Features + - This release enables our customer to choose the option of Sharepoint 2019 for the on-premise Sharepoint connector. + +## __Amazon CloudWatch Evidently__ + - ### Features + - This release adds support for the client-side evaluation - powered by AWS AppConfig feature. + +## __Amazon Connect Customer Profiles__ + - ### Features + - Added isUnstructured in response for Customer Profiles Integration APIs + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Two new features for local gateway route tables: support for static routes targeting Elastic Network Interfaces and direct VPC routing. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Fixed the data type of lagDuration that is returned in Describe Source Server API + +# __2.17.272__ __2022-09-12__ +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding support for local Amazon EKS clusters on Outposts + +# __2.17.271__ __2022-09-09__ +## __AWS CloudTrail__ + - ### Features + - This release adds CloudTrail getChannel and listChannels APIs to allow customer to view the ServiceLinkedChannel configurations. + +## __AWS Performance Insights__ + - ### Features + - Increases the maximum values of two RDS Performance Insights APIs. The maximum value of the Limit parameter of DimensionGroup is 25. The MaxResult maximum is now 25 for the following APIs: DescribeDimensionKeys, GetResourceMetrics, ListAvailableResourceDimensions, and ListAvailableResourceMetrics. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release is for supporting Composite Slot Type feature in AWS Lex V2. Composite Slot Type will help developer to logically group coherent slots and maintain their inter-relationships in runtime conversation. + +## __Amazon Lex Runtime V2__ + - ### Features + - This release is for supporting Composite Slot Type feature in AWS Lex V2. Composite Slot Type will help developer to logically group coherent slots and maintain their inter-relationships in runtime conversation. + +## __Amazon Redshift__ + - ### Features + - This release updates documentation for AQUA features and other description updates. + +# __2.17.270__ __2022-09-08__ +## __AWS Common Runtime HTTP Client__ + - ### Features + - Adds support for Https proxy system properties: host, port, user, password + +## __AWS Elemental MediaLive__ + - ### Features + - This change exposes API settings which allow Dolby Atmos and Dolby Vision to be used when running a channel using Elemental Media Live + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon EMR Containers__ + - ### Features + - EMR on EKS now allows running Spark SQL using the newly introduced Spark SQL Job Driver in the Start Job Run API + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support to send VPC Flow Logs to kinesis-data-firehose as new destination type + +## __Amazon Lookout for Metrics__ + - ### Features + - Release dimension value filtering feature to allow customers to define dimension filters for including only a subset of their dataset to be used by LookoutMetrics. + +## __Amazon Route 53__ + - ### Features + - Amazon Route 53 now supports the Middle East (UAE) Region (me-central-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds Mode to AutoMLJobConfig. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release adds support for Systems Manager State Manager Association tagging. + +## __Apache HTTP Client__ + - ### Features + - Adds support for Https proxy system properties: host, port, user, password + +## __Netty NIO HTTP Client__ + - ### Features + - Adds support for Https proxy system properties: host, port, user, password + +# __2.17.269__ __2022-09-07__ +## __AWS Data Exchange__ + - ### Features + - Documentation updates for AWS Data Exchange. + +## __AWS IoT SiteWise__ + - ### Features + - Allow specifying units in Asset Properties + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix for NPE when Http Checksum algorithm is set for a request with Empty payload. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Amazon EC2. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adds support for EKS Addons ResolveConflicts "preserve" flag. Also adds new update failed status for EKS Addons. + +## __Amazon FSx__ + - ### Features + - Documentation update for Amazon FSx. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Hosting now allows customization on ML instance storage volume size, model data download timeout and inference container startup ping health check timeout for each ProductionVariant in CreateEndpointConfig API. + +## __Amazon Simple Notification Service__ + - ### Features + - Amazon SNS introduces the Data Protection Policy APIs, which enable customers to attach a data protection policy to an SNS topic. This allows topic owners to enable the new message data protection feature to audit and block sensitive data that is exchanged through their topics. + +## __Inspector2__ + - ### Features + - This release adds new fields like fixAvailable, fixedInVersion and remediation to the finding model. The requirement to have vulnerablePackages in the finding model has also been removed. The documentation has been updated to reflect these changes. + +# __2.17.268__ __2022-09-06__ +## __AWS SSO Identity Store__ + - ### Features + - Documentation updates for the Identity Store CLI Reference. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds HyperParameterTuningJob type in Search API. + +# __2.17.267__ __2022-09-02__ +## __AWS Elemental MediaPackage__ + - ### Features + - Added support for AES_CTR encryption to CMAF origin endpoints + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Cognito Identity Provider__ + - ### Features + - This release adds a new "AuthSessionValidity" field to the UserPoolClient in Cognito. Application admins can configure this value for their users' authentication duration, which is currently fixed at 3 minutes, up to 15 minutes. Setting this field will also apply to the SMS MFA authentication flow. + +## __Amazon Connect Service__ + - ### Features + - This release adds search APIs for Routing Profiles and Queues, which can be used to search for those resources within a Connect Instance. + +## __Amazon SageMaker Service__ + - ### Features + - This release enables administrators to attribute user activity and API calls from Studio notebooks, Data Wrangler and Canvas to specific users even when users share the same execution IAM role. ExecutionRoleIdentityConfig at Sagemaker domain level enables this feature. + +# __2.17.266__ __2022-09-01__ +## __AWS Control Tower__ + - ### Features + - This release contains the first SDK for AWS Control Tower. It introduces a new set of APIs: EnableControl, DisableControl, GetControlOperation, and ListEnabledControls. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CodeGuru Reviewer__ + - ### Features + - Documentation updates to fix formatting issues in CLI and SDK documentation. + +## __Amazon Route 53__ + - ### Features + - Documentation updates for Amazon Route 53. + +# __2.17.265__ __2022-08-31__ +## __AWS IoT Things Graph__ + - ### Features + - This release deprecates all APIs of the ThingsGraph service + +## __AWS RDS DataService__ + - ### Features + - Documentation updates for RDS Data API + +## __AWS SSO Identity Store__ + - ### Features + - Expand IdentityStore API to support Create, Read, Update, Delete and Get operations for User, Group and GroupMembership resources. + +## __Amazon CloudFront__ + - ### Features + - Update API documentation for CloudFront origin access control (OAC) + +## __Amazon Interactive Video Service__ + - ### Features + - IVS Merge Fragmented Streams. This release adds support for recordingReconnectWindow field in IVS recordingConfigurations. For more information see https://docs.aws.amazon.com/ivs/latest/APIReference/Welcome.html + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Inference Recommender now accepts Inference Recommender fields: Domain, Task, Framework, SamplePayloadUrl, SupportedContentTypes, SupportedInstanceTypes, directly in our CreateInferenceRecommendationsJob API through ContainerConfig + +# __2.17.264__ __2022-08-30__ +## __AWS IoT Greengrass V2__ + - ### Features + - Adds topologyFilter to ListInstalledComponentsRequest which allows filtration of components by ROOT or ALL (including root and dependency components). Adds lastStatusChangeTimestamp to ListInstalledComponents response to show the last time a component changed state on a device. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SSO Identity Store__ + - ### Features + - Documentation updates for the Identity Store CLI Reference. + +## __AWS Single Sign-On__ + - ### Features + - Documentation updates for the AWS IAM Identity Center Portal CLI Reference. + +## __AWS Single Sign-On Admin__ + - ### Features + - Documentation updates for the AWS IAM Identity Center CLI Reference. + +## __Amazon Lookout for Equipment__ + - ### Features + - This release adds new apis for providing labels. + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API adds support for using allow lists to define specific text and text patterns to ignore when inspecting data sources for sensitive data. + +# __2.17.263__ __2022-08-29__ +## __AWS SDK for Java v2__ + - ### Features + - Bump CRT version to 0.19.2 + - Updated service endpoint metadata. + +## __Amazon FSx__ + - ### Features + - Documentation updates for Amazon FSx for NetApp ONTAP. + +## __Amazon S3 Transfer Manager__ + - ### Bugfixes + - Added usage of createAnonymousCredentials to fix issue where NPE was thrown when AnonymousCredentialsProvider was passed in + +## __Amazon Voice ID__ + - ### Features + - Amazon Connect Voice ID now detects voice spoofing. When a prospective fraudster tries to spoof caller audio using audio playback or synthesized speech, Voice ID will return a risk score and outcome to indicate the how likely it is that the voice is spoofed. + +## __S3 Transfer Manager__ + - ### Bugfixes + - Fixed the file name mapping issue in downloadDirectory. See [#3366](https://github.com/aws/aws-sdk-java-v2/issues/3366) + +# __2.17.262__ __2022-08-26__ +## __AWS Elemental MediaPackage__ + - ### Features + - This release adds Ads AdTriggers and AdsOnDeliveryRestrictions to describe calls for CMAF endpoints on MediaPackage. + +## __Amazon Relational Database Service__ + - ### Features + - Removes support for RDS Custom from DBInstanceClass in ModifyDBInstance + +# __2.17.261__ __2022-08-25__ +## __AWS IoT Wireless__ + - ### Features + - This release includes a new feature for the customers to enable the LoRa gateways to send out beacons for Class B devices and an option to select one or more gateways for Class C devices when sending the LoRaWAN downlink messages. + +## __AWS Panorama__ + - ### Features + - Support sorting and filtering in ListDevices API, and add more fields to device listings and single device detail + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SSO OIDC__ + - ### Features + - Updated required request parameters on IAM Identity Center's OIDC CreateToken action. + +## __Amazon GameLift__ + - ### Features + - This release adds support for eight EC2 local zones as fleet locations; Atlanta, Chicago, Dallas, Denver, Houston, Kansas City (us-east-1-mci-1a), Los Angeles, and Phoenix. It also adds support for C5d, C6a, C6i, and R5d EC2 instance families. + +## __Amazon Interactive Video Service Chat__ + - ### Features + - Documentation change for IVS Chat API Reference. Doc-only update to add a paragraph on ARNs to the Welcome section. + +## __Elastic Load Balancing__ + - ### Features + - Documentation updates for ELBv2. Gateway Load Balancer now supports Configurable Flow Stickiness, enabling you to configure the hashing used to maintain stickiness of flows to a specific target appliance. + +# __2.17.260__ __2022-08-24__ +## __AWS Config__ + - ### Features + - AWS Config now supports ConformancePackTemplate documents in SSM Docs for the deployment and update of conformance packs. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed an issue in sync clients where empty response payloads could cause a null pointer exception. + +## __AWS Transfer Family__ + - ### Features + - Documentation updates for AWS Transfer Family + +## __Amazon CloudFront__ + - ### Features + - Adds support for CloudFront origin access control (OAC), making it possible to restrict public access to S3 bucket origins in all AWS Regions, those with SSE-KMS, and more. + +## __Amazon Interactive Video Service__ + - ### Features + - Documentation Change for IVS API Reference - Doc-only update to type field description for CreateChannel and UpdateChannel actions and for Channel data type. Also added Amazon Resource Names (ARNs) paragraph to Welcome section. + +## __Amazon QuickSight__ + - ### Features + - Added a new optional property DashboardVisual under ExperienceConfiguration parameter of GenerateEmbedUrlForAnonymousUser and GenerateEmbedUrlForRegisteredUser API operations. This supports embedding of specific visuals in QuickSight dashboards. + +# __2.17.259__ __2022-08-23__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix signature mismatch exception generated when signing query parameters with empty-value keys. + +## __AWS Single Sign-On Admin__ + - ### Features + - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) + +## __Amazon Relational Database Service__ + - ### Features + - RDS for Oracle supports Oracle Data Guard switchover and read replica backups. + +# __2.17.258__ __2022-08-22__ +## __AWS IoT SiteWise__ + - ### Features + - Enable non-unique asset names under different hierarchies + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Added new resource details objects to ASFF, including resources for AwsBackupBackupVault, AwsBackupBackupPlan and AwsBackupRecoveryPoint. Added FixAvailable, FixedInVersion and Remediation to Vulnerability. + +## __AWS Support App__ + - ### Features + - This is the initial SDK release for the AWS Support App in Slack. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Update document for volume clone + +## __Amazon Elastic Compute Cloud__ + - ### Features + - R6a instances are powered by 3rd generation AMD EPYC (Milan) processors delivering all-core turbo frequency of 3.6 GHz. C6id, M6id, and R6id instances are powered by 3rd generation Intel Xeon Scalable processor (Ice Lake) delivering all-core turbo frequency of 3.5 GHz. + +## __Amazon Forecast Query Service__ + - ### Features + - releasing What-If Analysis APIs + +## __Amazon Forecast Service__ + - ### Features + - releasing What-If Analysis APIs and update ARN regex pattern to be more strict in accordance with security recommendation + +## __Amazon Lex Model Building V2__ + - ### Features + - This release introduces a new feature to stop a running BotRecommendation Job for Automated Chatbot Designer. + +# __2.17.257__ __2022-08-19__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - This release adds support for a new authentication type - Personal Access Token (PAT) for confluence server. + +## __Amazon Connect Service__ + - ### Features + - This release adds SearchSecurityProfiles API which can be used to search for Security Profile resources within a Connect Instance. + +## __Amazon Interactive Video Service Chat__ + - ### Features + - Documentation Change for IVS Chat API Reference - Doc-only update to change text/description for tags field. + +## __Amazon Lookout for Metrics__ + - ### Features + - This release is to make GetDataQualityMetrics API publicly available. + +# __2.17.256__ __2022-08-18__ +## __AWS Network Manager__ + - ### Features + - Add TransitGatewayPeeringAttachmentId property to TransitGatewayPeering Model + +## __Amazon Chime SDK Media Pipelines__ + - ### Features + - The Amazon Chime SDK now supports live streaming of real-time video from the Amazon Chime SDK sessions to streaming platforms such as Amazon IVS and Amazon Elemental MediaLive. We have also added support for concatenation to create a single media capture file. + +## __Amazon CloudWatch__ + - ### Features + - Add support for managed Contributor Insights Rules + +## __Amazon Cognito Identity Provider__ + - ### Features + - This change is being made simply to fix the public documentation based on the models. We have included the PasswordChange and ResendCode events, along with the Pass, Fail and InProgress status. We have removed the Success and Failure status which are never returned by our APIs. + +## __Amazon DynamoDB__ + - ### Features + - This release adds support for importing data from S3 into a new DynamoDB table + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for VPN log options , a new feature allowing S2S VPN connections to send IKE activity logs to CloudWatch Logs + +# __2.17.255__ __2022-08-17__ +## __AWS App Mesh__ + - ### Features + - AWS App Mesh release to support Multiple Listener and Access Log Format feature + +## __AWS Lake Formation__ + - ### Features + - This release adds a new API support "AssumeDecoratedRoleWithSAML" and also release updates the corresponding documentation. + +## __AWS Lambda__ + - ### Features + - Added support for customization of Consumer Group ID for MSK and Kafka Event Source Mappings. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager. + +## __AWSKendraFrontendService__ + - ### Features + - This release adds Zendesk connector (which allows you to specify Zendesk SAAS platform as data source), Proxy Support for Sharepoint and Confluence Server (which allows you to specify the proxy configuration if proxy is required to connect to your Sharepoint/Confluence Server as data source). + +## __Amazon Lex Model Building V2__ + - ### Features + - This release introduces support for enhanced conversation design with the ability to define custom conversation flows with conditional branching and new bot responses. + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for Internet Protocol Version 6 (IPv6) for RDS Aurora database clusters. + +## __AmazonConnectCampaignService__ + - ### Features + - Updated exceptions for Amazon Connect Outbound Campaign api's. + +# __2.17.254__ __2022-08-16__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog__ + - ### Features + - Documentation updates for Service Catalog + +## __Amazon Rekognition__ + - ### Features + - This release adds APIs which support copying an Amazon Rekognition Custom Labels model and managing project policies across AWS account. + +# __2.17.253__ __2022-08-15__ +## __AWS SSO Identity Store__ + - ### Features + - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) + +## __AWS Single Sign-On__ + - ### Features + - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) + +## __Amazon CloudFront__ + - ### Features + - Adds Http 3 support to distributions + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release introduces a new API PutFeedback that allows submitting feedback to Wisdom on content relevance. + +# __2.17.252__ __2022-08-12__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Chime SDK Messaging__ + - ### Features + - The Amazon Chime SDK now supports channels with up to one million participants with elastic channels. + +## __Amazon Interactive Video Service__ + - ### Features + - Updates various list api MaxResults ranges + +## __Amazon Personalize Runtime__ + - ### Features + - This release provides support for promotions in AWS Personalize runtime. + +## __Amazon Prometheus Service__ + - ### Features + - This release adds log APIs that allow customers to manage logging for their Amazon Managed Service for Prometheus workspaces. + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for RDS Custom to DBInstanceClass in ModifyDBInstance + +# __2.17.251__ __2022-08-11__ +## __AWS Backup Storage__ + - ### Features + - This is the first public release of AWS Backup Storage. We are exposing some previously-internal APIs for use by external services. These APIs are not meant to be used directly by customers. + +## __AWS Glue__ + - ### Features + - Add support for Python 3.9 AWS Glue Python Shell jobs + +## __AWS Private 5G__ + - ### Features + - This is the initial SDK release for AWS Private 5G. AWS Private 5G is a managed service that makes it easy to deploy, operate, and scale your own private mobile network at your on-premises location. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.17.250__ __2022-08-10__ +## __Amazon Data Lifecycle Manager__ + - ### Features + - This release adds support for excluding specific data (non-boot) volumes from multi-volume snapshot sets created by snapshot lifecycle policies + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for excluding specific data (non-root) volumes from multi-volume snapshot sets created from instances. + +## __URL Connection HTTP Client__ + - ### Bugfixes + - Fix for S3Client with URL Connection http client fails with EOFException when executing HeadObjectRequest for gzip encodeFix to S3Client fails with EOFException. + +# __2.17.249__ __2022-08-09__ +## __Amazon Augmented AI Runtime__ + - ### Features + - Fix bug with parsing ISO-8601 CreationTime in Java SDK in DescribeHumanLoop + +## __Amazon CloudWatch__ + - ### Features + - Various quota increases related to dimensions and custom metrics + +## __Amazon Location Service__ + - ### Features + - Amazon Location Service now allows circular geofences in BatchPutGeofence, PutGeofence, and GetGeofence APIs. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Automatic Model Tuning now supports specifying multiple alternate EC2 instance types to make tuning jobs more robust when the preferred instance type is not available due to insufficient capacity. + +# __2.17.248__ __2022-08-08__ +## __AWS Glue__ + - ### Features + - Add an option to run non-urgent or non-time sensitive Glue Jobs on spare capacity + +## __AWS IoT Wireless__ + - ### Features + - AWS IoT Wireless release support for sidewalk data reliability. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SSO Identity Store__ + - ### Features + - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) + +## __AWS SSO OIDC__ + - ### Features + - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) + +## __AWS Single Sign-On__ + - ### Features + - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) + +## __AWS Single Sign-On Admin__ + - ### Features + - Documentation updates to reflect service rename - AWS IAM Identity Center (successor to AWS Single Sign-On) + +## __Amazon Pinpoint__ + - ### Features + - Adds support for Advance Quiet Time in Journeys. Adds RefreshOnSegmentUpdate and WaitForQuietTime to JourneyResponse. + +## __Amazon QuickSight__ + - ### Features + - A series of documentation updates to the QuickSight API reference. + +# __2.17.247__ __2022-08-04__ +## __AWS Config__ + - ### Features + - Add resourceType enums for Athena, GlobalAccelerator, Detective and EC2 types + +## __AWS Database Migration Service__ + - ### Features + - Documentation updates for Database Migration Service (DMS). + +## __AWS IoT__ + - ### Features + - The release is to support attach a provisioning template to CACert for JITP function, Customer now doesn't have to hardcode a roleArn and templateBody during register a CACert to enable JITP. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Adds support for Tags on Amazon Chime SDK WebRTC sessions + +# __2.17.246__ __2022-08-03__ +## __AWS WAFV2__ + - ### Features + - You can now associate an AWS WAF web ACL with an Amazon Cognito user pool. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Add a new exception type, ForbiddenException, that is returned when request is not allowed + +# __2.17.245__ __2022-08-02__ +## __AWS License Manager User Subscriptions__ + - ### Features + - This release supports user based subscription for Microsoft Visual Studio Professional and Enterprise on EC2. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Personalize__ + - ### Features + - This release adds support for incremental bulk ingestion for the Personalize CreateDatasetImportJob API. + +# __2.17.244__ __2022-08-01__ +## __AWS Config__ + - ### Features + - Documentation update for PutConfigRule and PutOrganizationConfigRule + +## __AWS SDK for Java v2__ + - ### Bugfixes + - AWS-JSON services use the Fault trait to designate exceptions that are the service's fault (i.e. 500), rather than HTTP status code bindings like REST services. In cases where the response being unmarshalled does *NOT* have a status code (e.g. because the response was constructed rather from some other data rather than an actual HTTP response), the status code will default to 500 for faults and 400 for non-faults. + +## __Amazon WorkSpaces__ + - ### Features + - This release introduces ModifySamlProperties, a new API that allows control of SAML properties associated with a WorkSpaces directory. The DescribeWorkspaceDirectories API will now additionally return SAML properties in its responses. + +# __2.17.243__ __2022-07-29__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Shield__ + - ### Features + - AWS Shield Advanced now supports filtering for ListProtections and ListProtectionGroups. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Amazon EC2. + +## __Amazon FSx__ + - ### Features + - Documentation updates for Amazon FSx + +# __2.17.242__ __2022-07-28__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for VM Import/Export. + +## __Amazon Elasticsearch Service__ + - ### Features + - This release adds support for gp3 EBS (Elastic Block Store) storage. + +## __Amazon Lookout for Vision__ + - ### Features + - This release introduces support for image segmentation models and updates CPU accelerator options for models hosted on edge devices. + +## __Amazon OpenSearch Service__ + - ### Features + - This release adds support for gp3 EBS (Elastic Block Store) storage. + +# __2.17.241__ __2022-07-27__ +## __AWS Audit Manager__ + - ### Features + - This release adds an exceeded quota exception to several APIs. We added a ServiceQuotaExceededException for the following operations: CreateAssessment, CreateControl, CreateAssessmentFramework, and UpdateAssessmentStatus. + +## __AWS Config__ + - ### Features + - This release adds ListConformancePackComplianceScores API to support the new compliance score feature, which provides a percentage of the number of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations in the conformance pack. + +## __AWS Global Accelerator__ + - ### Features + - Global Accelerator now supports dual-stack accelerators, enabling support for IPv4 and IPv6 traffic. + +## __AWS Marketplace Catalog Service__ + - ### Features + - The SDK for the StartChangeSet API will now automatically set and use an idempotency token in the ClientRequestToken request parameter if the customer does not provide it. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Chime__ + - ### Features + - Chime VoiceConnector will now support ValidateE911Address which will allow customers to prevalidate their addresses included in their SIP invites for emergency calling + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new English and Hindi voice - Kajal. Kajal is available as Neural voice only. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Adding doc updates for OpsCenter support in Service Setting actions. + +## __Amazon WorkSpaces__ + - ### Features + - Added CreateWorkspaceImage API to create a new WorkSpace image from an existing WorkSpace. + +# __2.17.240__ __2022-07-26__ +## __AWS AppSync__ + - ### Features + - Adds support for a new API to evaluate mapping templates with mock data, allowing you to remotely unit test your AppSync resolvers and functions. + +## __AWS SecurityHub__ + - ### Features + - Documentation updates for AWS Security Hub + +## __AWS Transfer Family__ + - ### Features + - AWS Transfer Family now supports Applicability Statement 2 (AS2), a network protocol used for the secure and reliable transfer of critical Business-to-Business (B2B) data over the public internet using HTTP/HTTPS as the transport mechanism. + +## __Amazon Detective__ + - ### Features + - Added the ability to get data source package information for the behavior graph. Graph administrators can now start (or stop) optional datasources on the behavior graph. + +## __Amazon GuardDuty__ + - ### Features + - Amazon GuardDuty introduces a new Malware Protection feature that triggers malware scan on selected EC2 instance resources, after the service detects a potentially malicious activity. + +## __Amazon Lookout for Vision__ + - ### Features + - This release introduces support for the automatic scaling of inference units used by Amazon Lookout for Vision models. + +## __Amazon Macie 2__ + - ### Features + - This release adds support for retrieving (revealing) sample occurrences of sensitive data that Amazon Macie detects and reports in findings. + +## __Amazon Rekognition__ + - ### Features + - This release introduces support for the automatic scaling of inference units used by Amazon Rekognition Custom Labels models. + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for using RDS Proxies with RDS for MariaDB databases. + +# __2.17.239__ __2022-07-25__ +## __Auto Scaling__ + - ### Features + - Documentation update for Amazon EC2 Auto Scaling. + +# __2.17.238__ __2022-07-22__ +## __AWS Account__ + - ### Features + - This release enables customers to manage the primary contact information for their AWS accounts. For more information, see https://docs.aws.amazon.com/accounts/latest/reference/API_Operations.html + +## __AWS Elemental MediaLive__ + - ### Features + - Link devices now support remote rebooting. Link devices now support maintenance windows. Maintenance windows allow a Link device to install software updates without stopping the MediaLive channel. The channel will experience a brief loss of input from the device while updates are installed. + +## __AWS IoT Core Device Advisor__ + - ### Features + - Added new service feature (Early access only) - Long Duration Test, where customers can test the IoT device to observe how it behaves when the device is in operation for longer period. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fix issue in IMDS credentials provider that causes expired credentials to be vended for a short period of time after the credentials provider is inactive for a long time. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Added support for EC2 M1 Mac instances. For more information, please visit aws.amazon.com/mac. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds the "ModifyActivityStream" API with support for audit policy state locking and unlocking. + +## __Amazon Transcribe Service__ + - ### Features + - Remove unsupported language codes for StartTranscriptionJob and update VocabularyFileUri for UpdateMedicalVocabulary + +# __2.17.237__ __2022-07-21__ +## __AWS Database Migration Service__ + - ### Features + - Documentation updates for Database Migration Service (DMS). + +## __AWS EC2 Instance Connect__ + - ### Features + - This release includes a new exception type "EC2InstanceUnavailableException" for SendSSHPublicKey and SendSerialConsoleSSHPublicKey APIs. + +## __AWS IoT SiteWise__ + - ### Features + - Added asynchronous API to ingest bulk historical and current data into IoT SiteWise. + +## __AWS Network Firewall__ + - ### Features + - Network Firewall now supports referencing dynamic IP sets from stateful rule groups, for IP sets stored in Amazon VPC prefix lists. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now provides Oauth2 support for SharePoint Online. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html + +## __Amazon Athena__ + - ### Features + - This feature allows customers to retrieve runtime statistics for completed queries + +## __Amazon CloudWatch__ + - ### Features + - Adding support for the suppression of Composite Alarm actions + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Enable copy-on-write restore type + +## __Amazon Fraud Detector__ + - ### Features + - The release introduces Account Takeover Insights (ATI) model. The ATI model detects fraud relating to account takeover. This release also adds support for new variable types: ARE_CREDENTIALS_VALID and SESSION_ID and adds new structures to Model Version APIs. + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for creating an RDS Proxy for an RDS for MariaDB database. + +## __Amazon S3 Transfer Manager__ + - ### Bugfixes + - Fixed an issue where using S3ClientConfiguration.Builder.endpointOverride could cause AWS_ERROR_INVALID_ARGUMENT. + +# __2.17.236__ __2022-07-20__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - AWS Certificate Manager (ACM) Private Certificate Authority (PCA) documentation updates + +## __AWS IoT__ + - ### Features + - GA release the ability to enable/disable IoT Fleet Indexing for Device Defender and Named Shadow information, and search them through IoT Fleet Indexing APIs. This includes Named Shadow Selection as a part of the UpdateIndexingConfiguration API. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.17.235__ __2022-07-19__ +## __AWS Glue__ + - ### Features + - Documentation updates for AWS Glue Job Timeout and Autoscaling + +## __Amazon DevOps Guru__ + - ### Features + - Added new APIs for log anomaly detection feature. + +## __Amazon SageMaker Service__ + - ### Features + - Fixed an issue with cross account QueryLineage + +## __Amazon Sagemaker Edge Manager__ + - ### Features + - Amazon SageMaker Edge Manager provides lightweight model deployment feature to deploy machine learning models on requested devices. + +## __Amazon WorkSpaces__ + - ### Features + - Increased the character limit of the login message from 850 to 2000 characters. + +# __2.17.234__ __2022-07-18__ +## __AWS Application Discovery Service__ + - ### Features + - Add AWS Agentless Collector details to the GetDiscoverySummary API response + +## __AWS Elemental MediaPackage__ + - ### Features + - This release adds "IncludeIframeOnlyStream" for Dash endpoints and increases the number of supported video and audio encryption presets for Speke v2 + +## __AWS Key Management Service__ + - ### Features + - Added support for the SM2 KeySpec in China Partition Regions + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Single Sign-On Admin__ + - ### Features + - AWS SSO now supports attaching customer managed policies and a permissions boundary to your permission sets. This release adds new API operations to manage and view the customer managed policies and the permissions boundary for a given permission set. + +## __Amazon ElastiCache__ + - ### Features + - Adding AutoMinorVersionUpgrade in the DescribeReplicationGroups API + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Amazon EC2. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Edge Manager provides lightweight model deployment feature to deploy machine learning models on requested devices. + +# __2.17.233__ __2022-07-15__ +## __AWS DataSync__ + - ### Features + - Documentation updates for AWS DataSync regarding configuring Amazon FSx for ONTAP location security groups and SMB user permissions. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS WAFV2__ + - ### Features + - This SDK release provide customers ability to add sensitivity level for WAF SQLI Match Statements. + +## __Amazon CloudWatch Evidently__ + - ### Features + - This release adds support for the new segmentation feature. + +## __Amazon DynamoDB Enhanced__ + - ### Bugfixes + - Adding usage of ExpressionNames to VersionedRecord, thereby allowing version attributes with reserved words and special characters + +## __Elastic Disaster Recovery Service__ + - ### Features + - Changed existing APIs to allow choosing a dynamic volume type for replicating volumes, to reduce costs for customers. + +## __S3 Transfer Manager (Developer Preview)__ + - ### Bugfixes + - Fixed possible security issue in `S3TransferManager`s `downloadDirectory` operation where files could be downloaded to a sibling directory of the destination directory if the key contained relative paths. + +# __2.17.232__ __2022-07-14__ +## __AWS Config__ + - ### Features + - Update ResourceType enum with values for Route53Resolver, Batch, DMS, Workspaces, Stepfunctions, SageMaker, ElasticLoadBalancingV2, MSK types + +## __AWS Glue__ + - ### Features + - This release adds an additional worker type for Glue Streaming jobs. + +## __AWS Outposts__ + - ### Features + - This release adds the ShipmentInformation and AssetInformationList fields to the GetOrder API response. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - This release adds AccessControlConfigurations which allow you to redefine your document level access control without the need for content re-indexing. + +## __Amazon Athena__ + - ### Features + - This release updates data types that contain either QueryExecutionId, NamedQueryId or ExpectedBucketOwner. Ids must be between 1 and 128 characters and contain only non-whitespace characters. ExpectedBucketOwner must be 12-digit string. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds flow logs for Transit Gateway to allow customers to gain deeper visibility and insights into network traffic through their Transit Gateways. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for G5, P4d, and C6i instance types in Amazon SageMaker Inference and increases the number of hyperparameters that can be searched from 20 to 30 in Amazon SageMaker Automatic Model Tuning + +## __AmazonNimbleStudio__ + - ### Features + - Amazon Nimble Studio adds support for IAM-based access to AWS resources for Nimble Studio components and custom studio components. Studio Component scripts use these roles on Nimble Studio workstation to mount filesystems, access S3 buckets, or other configured resources in the Studio's AWS account + +## __CodeArtifact__ + - ### Features + - This release introduces Package Origin Controls, a mechanism used to counteract Dependency Confusion attacks. Adds two new APIs, PutPackageOriginConfiguration and DescribePackage, and updates the ListPackage, DescribePackageVersion and ListPackageVersion APIs in support of the feature. + +## __Firewall Management Service__ + - ### Features + - Adds support for strict ordering in stateful rule groups in Network Firewall policies. + +## __Inspector2__ + - ### Features + - This release adds support for Inspector V2 scan configurations through the get and update configuration APIs. Currently this allows configuring ECR automated re-scan duration to lifetime or 180 days or 30 days. + +# __2.17.231__ __2022-07-13__ +## __Amazon AppConfig__ + - ### Features + - Adding Create, Get, Update, Delete, and List APIs for new two new resources: Extensions and ExtensionAssociations. + +## __URL Connection Client__ + - ### Bugfixes + - Set the `Accept` header for `UrlConnectionHttpClient` because the default one does not comply with RFC 7231. See https://bugs.openjdk.org/browse/JDK-8163921 + +# __2.17.230__ __2022-07-12__ +## __AWS Network Manager__ + - ### Features + - This release adds general availability API support for AWS Cloud WAN. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.17.229__ __2022-07-11__ +## __AWS SDK for Java v2__ + - ### Features + - Jitter credential provider cache refresh times. + - Log a warning when an extreme number of async credential providers are running in parallel, because it could indicate that the user is not closing their clients or credential providers when they are done using them. + - Share background refresh threads across async credential providers to reduce base SDK resource consumption. + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Build, manage, and monitor a unified global network that connects resources running across your cloud and on-premises environments using the AWS Cloud WAN APIs. + +## __Amazon Redshift__ + - ### Features + - This release adds a new --snapshot-arn field for describe-cluster-snapshots, describe-node-configuration-options, restore-from-cluster-snapshot, authorize-snapshot-acsess, and revoke-snapshot-acsess APIs. It allows customers to give a Redshift snapshot ARN or a Redshift Serverless ARN as input. + +## __Redshift Serverless__ + - ### Features + - Removed prerelease language for GA launch. + +# __2.17.228__ __2022-07-08__ +## __AWS Backup__ + - ### Features + - This release adds support for authentication using IAM user identity instead of passed IAM role, identified by excluding the IamRoleArn field in the StartRestoreJob API. This feature applies to only resource clients with a destructive restore nature (e.g. SAP HANA). + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Requests which are defined with AuthType as None should not be signed or authorized by the SDK. + +# __2.17.227__ __2022-07-07__ +## __AWS Database Migration Service__ + - ### Features + - New api to migrate event subscriptions to event bridge rules + +## __AWS IoT__ + - ### Features + - This release adds support to register a CA certificate without having to provide a verification certificate. This also allows multiple AWS accounts to register the same CA in the same region. + +## __AWS IoT Wireless__ + - ### Features + - Adds 5 APIs: PutPositionConfiguration, GetPositionConfiguration, ListPositionConfigurations, UpdatePosition, GetPosition for the new Positioning Service feature which enables customers to configure solvers to calculate position of LoRaWAN devices, or specify position of LoRaWAN devices & gateways. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Adds support for AppKeys and TenantIds in Amazon Chime SDK WebRTC sessions + +## __Amazon SageMaker Service__ + - ### Features + - Heterogeneous clusters: the ability to launch training jobs with multiple instance types. This enables running component of the training job on the instance type that is most suitable for it. e.g. doing data processing and augmentation on CPU instances and neural network training on GPU instances + +# __2.17.226__ __2022-07-06__ +## __AWS CloudFormation__ + - ### Features + - My AWS Service (placeholder) - Add a new feature Account-level Targeting for StackSet operation + +## __Synthetics__ + - ### Features + - This release introduces Group feature, which enables users to group cross-region canaries. + +# __2.17.225__ __2022-07-05__ +## __AWS Config__ + - ### Features + - Updating documentation service limits + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Adds support for tagging incident-record on creation by providing incident tags in the template within a response-plan. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release introduces additional optional parameters "messageSelectionStrategy" to PromptSpecification, which enables the users to configure the bot to play messages in orderly manner. + +## __Amazon QuickSight__ + - ### Features + - This release allows customers to programmatically create QuickSight accounts with Enterprise and Enterprise + Q editions. It also releases allowlisting domains for embedding QuickSight dashboards at runtime through the embedding APIs. + +## __Amazon Relational Database Service__ + - ### Features + - Adds waiters support for DBCluster. + +## __IAM Roles Anywhere__ + - ### Features + - IAM Roles Anywhere allows your workloads such as servers, containers, and applications to obtain temporary AWS credentials and use the same IAM roles and policies that you have configured for your AWS workloads to access AWS resources. + +# __2.17.224__ __2022-07-01__ +## __AWS Database Migration Service__ + - ### Features + - Added new features for AWS DMS version 3.4.7 that includes new endpoint settings for S3, OpenSearch, Postgres, SQLServer and Oracle. + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for additional retention periods to Performance Insights. + +# __2.17.223__ __2022-06-30__ +## __AWS Glue__ + - ### Features + - This release adds tag as an input of CreateDatabase + +## __AWS Price List Service__ + - ### Features + - Documentation update for GetProducts Response. + +## __AWS Well-Architected Tool__ + - ### Features + - Added support for UpdateGlobalSettings API. Added status filter to ListWorkloadShares and ListLensShares. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now provides a data source connector for alfresco + +## __Amazon Athena__ + - ### Features + - This feature introduces the API support for Athena's parameterized query and BatchGetPreparedStatement API. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release adds the optional MinAllowedConfidenceScoreForMerging parameter to the CreateDomain, UpdateDomain, and GetAutoMergingPreview APIs in Customer Profiles. This parameter is used as a threshold to influence the profile auto-merging step of the Identity Resolution process. + +## __Amazon EMR__ + - ### Features + - This release adds support for the ExecutionRoleArn parameter in the AddJobFlowSteps and DescribeStep APIs. Customers can use ExecutionRoleArn to specify the IAM role used for each job they submit using the AddJobFlowSteps API. + +## __Amazon WorkMail__ + - ### Features + - This release adds support for managing user availability configurations in Amazon WorkMail. + +## __AmazonMWAA__ + - ### Features + - Documentation updates for Amazon Managed Workflows for Apache Airflow. + +# __2.17.222__ __2022-06-29__ +## __AWS Common Runtime HTTP Client__ + - ### Bugfixes + - Improve connection reusing by keying connection pools using hostname + port, instead of the full URI. + +## __AWS Elemental MediaLive__ + - ### Features + - This release adds support for automatic renewal of MediaLive reservations at the end of each reservation term. Automatic renewal is optional. This release also adds support for labelling accessibility-focused audio and caption tracks in HLS outputs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon AppStream__ + - ### Features + - Includes support for StreamingExperienceSettings in CreateStack and UpdateStack APIs + +## __Amazon EMR__ + - ### Features + - This release introduces additional optional parameter "Throughput" to VolumeSpecification to enable user to configure throughput for gp3 ebs volumes. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds: UpdateFeatureGroup, UpdateFeatureMetadata, DescribeFeatureMetadata APIs; FeatureMetadata type in Search API; LastModifiedTime, LastUpdateStatus, OnlineStoreTotalSizeBytes in DescribeFeatureGroup API. + +## __Amazon Translate__ + - ### Features + - Added ListLanguages API which can be used to list the languages supported by Translate. + +## __Elastic Load Balancing__ + - ### Features + - This release adds two attributes for ALB. One, helps to preserve the host header and the other helps to modify, preserve, or remove the X-Forwarded-For header in the HTTP request. + +## __Redshift Serverless__ + - ### Features + - Add new API operations for Amazon Redshift Serverless, a new way of using Amazon Redshift without needing to manually manage provisioned clusters. The new operations let you interact with Redshift Serverless resources, such as create snapshots, list VPC endpoints, delete resource policies, and more. + +# __2.17.221__ __2022-06-28__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports Amazon FSx for NetApp ONTAP locations. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new spread placement group to EC2 Placement Groups: host level spread, which spread instances between physical hosts, available to Outpost customers only. CreatePlacementGroup and DescribePlacementGroups APIs were updated with a new parameter: SpreadLevel to support this feature. + +## __Amazon Polly__ + - ### Features + - Add 4 new neural voices - Pedro (es-US), Liam (fr-CA), Daniel (de-DE) and Arthur (en-GB). + +## __FinSpace Public API__ + - ### Features + - Release new API GetExternalDataViewAccessDetails + +# __2.17.220__ __2022-06-27__ +## __AWS IoT__ + - ### Features + - This release ease the restriction for the input of tag value to align with AWS standard, now instead of min length 1, we change it to min length 0. + +# __2.17.219__ __2022-06-24__ +## __AWS Glue__ + - ### Features + - This release enables the new ListCrawls API for viewing the AWS Glue Crawler run history. + +## __AWS RDS DataService__ + - ### Features + - Documentation updates for RDS Data API + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.17.218__ __2022-06-23__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has released support for automatic DolbyVision metadata generation when converting HDR10 to DolbyVision. + +## __AWS Migration Hub Refactor Spaces__ + - ### Features + - This release adds the new API UpdateRoute that allows route to be updated to ACTIVE/INACTIVE state. In addition, CreateRoute API will now allow users to create route in ACTIVE/INACTIVE state. + +## __Amazon Lookout for Equipment__ + - ### Features + - This release adds visualizations to the scheduled inference results. Users will be able to see interference results, including diagnostic results from their running inference schedulers. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Ground Truth now supports Virtual Private Cloud. Customers can launch labeling jobs and access to their private workforce in VPC mode. + +## __Application Migration Service__ + - ### Features + - New and modified APIs for the Post-Migration Framework + +# __2.17.217__ __2022-06-22__ +## __AWS Price List Service__ + - ### Features + - This release introduces 1 update to the GetProducts API. The serviceCode attribute is now required when you use the GetProductsRequest. + +## __AWS Transfer Family__ + - ### Features + - Until today, the service supported only RSA host keys and user keys. Now with this launch, Transfer Family has expanded the support for ECDSA and ED25519 host keys and user keys, enabling customers to support a broader set of clients by choosing RSA, ECDSA, and ED25519 host and user keys. + +## __Amazon API Gateway__ + - ### Features + - Documentation updates for Amazon API Gateway + +# __2.17.216__ __2022-06-21__ +## __AWS Well-Architected Tool__ + - ### Features + - Adds support for lens tagging, Adds support for multiple helpful-resource urls and multiple improvement-plan urls. + +## __Amazon EC2 Container Service__ + - ### Features + - Amazon ECS UpdateService now supports the following parameters: PlacementStrategies, PlacementConstraints and CapacityProviderStrategy. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Private IP VPNs, a new feature allowing S2S VPN connections to use private ip addresses as the tunnel outside ip address over Direct Connect as transport. + +# __2.17.215__ __2022-06-20__ +## __AWS Directory Service__ + - ### Features + - This release adds support for describing and updating AWS Managed Microsoft AD settings + +## __AWS Outposts__ + - ### Features + - This release adds the AssetLocation structure to the ListAssets response. AssetLocation includes the RackElevation for an Asset. + +## __Managed Streaming for Kafka__ + - ### Features + - Documentation updates to use Az Id during cluster creation. + +# __2.17.214__ __2022-06-17__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Service__ + - ### Features + - This release updates these APIs: UpdateInstanceAttribute, DescribeInstanceAttribute and ListInstanceAttributes. You can use it to programmatically enable/disable High volume outbound communications using attribute type HIGH_VOLUME_OUTBOUND on the specified Amazon Connect instance. + +## __Amazon DynamoDB__ + - ### Features + - Doc only update for DynamoDB service + +## __Amazon DynamoDB Streams__ + - ### Features + - Doc only update for DynamoDB service + +## __AmazonConnectCampaignService__ + - ### Features + - Added Amazon Connect high volume outbound communications SDK. + +# __2.17.213__ __2022-06-16__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __AWS SecurityHub__ + - ### Features + - Added Threats field for security findings. Added new resource details for ECS Container, ECS Task, RDS SecurityGroup, Kinesis Stream, EC2 TransitGateway, EFS AccessPoint, CloudFormation Stack, CloudWatch Alarm, VPC Peering Connection and WAF Rules + +## __Redshift Data API Service__ + - ### Features + - This release adds a new --workgroup-name field to operations that connect to an endpoint. Customers can now execute queries against their serverless workgroups. + +# __2.17.212__ __2022-06-15__ +## __AWS Service Catalog App Registry__ + - ### Features + - This release adds a new API ListAttributeGroupsForApplication that returns associated attribute groups of an application. In addition, the UpdateApplication and UpdateAttributeGroup APIs will not allow users to update the 'Name' attribute. + +## __Amazon GuardDuty__ + - ### Features + - Adds finding fields available from GuardDuty Console. Adds FreeTrial related operations. Deprecates the use of various APIs related to Master Accounts and Replace them with Administrator Accounts. + +## __Amazon WorkSpaces__ + - ### Features + - Added new field "reason" to OperationNotSupportedException. Receiving this exception in the DeregisterWorkspaceDirectory API will now return a reason giving more context on the failure. + +## __FinSpace Public API__ + - ### Features + - This release adds a new set of APIs, GetPermissionGroup, DisassociateUserFromPermissionGroup, AssociateUserToPermissionGroup, ListPermissionGroupsByUser, ListUsersByPermissionGroup. + +# __2.17.211__ __2022-06-14__ +## __AWS Budgets__ + - ### Features + - Add a budgets ThrottlingException. Update the CostFilters value pattern. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for rules that constrain Automatic-ABR rendition selection when generating ABR package ladders. + +## __Amazon Lookout for Metrics__ + - ### Features + - Adding filters to Alert and adding new UpdateAlert API. + +# __2.17.210__ __2022-06-13__ +## __AWS Outposts__ + - ### Features + - This release adds API operations AWS uses to install Outpost servers. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Do not start periodically refreshing async credential providers until they have been used at least once. + +# __2.17.209__ __2022-06-10__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS STS__ + - ### Features + - Adding New WebIdentityTokenFileCredentialsProvider in sts that accepts STSClient + +## __Amazon Fraud Detector__ + - ### Features + - Documentation updates for Amazon Fraud Detector (AWSHawksNest) + +# __2.17.208__ __2022-06-09__ +## __Amazon Chime SDK Meetings__ + - ### Features + - Adds support for live transcription in AWS GovCloud (US) Regions. + +# __2.17.207__ __2022-06-08__ +## __AWS Database Migration Service__ + - ### Features + - This release adds DMS Fleet Advisor APIs and exposes functionality for DMS Fleet Advisor. It adds functionality to create and modify fleet advisor instances, and to collect and analyze information about the local data infrastructure. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Removals + - Remove the `netty-reactive-streams-http` depdendency. It is unused after [#1629](https://github.com/aws/aws-sdk-java-v2/issues/1629), and we have no plans to use the upstream version in the future. + +## __AWSMainframeModernization__ + - ### Features + - AWS Mainframe Modernization service is a managed mainframe service and set of tools for planning, migrating, modernizing, and running mainframe workloads on AWS + +## __Amazon Neptune__ + - ### Features + - This release adds support for Neptune to be configured as a global database, with a primary DB cluster in one region, and up to five secondary DB clusters in other regions. + +## __Amazon Redshift__ + - ### Features + - Adds new API GetClusterCredentialsWithIAM to return temporary credentials. + +# __2.17.206__ __2022-06-07__ +## __AWS Audit Manager__ + - ### Features + - This release introduces 2 updates to the Audit Manager API. The roleType and roleArn attributes are now required when you use the CreateAssessment or UpdateAssessment operation. We also added a throttling exception to the RegisterAccount API operation. + +## __AWS Cost Explorer Service__ + - ### Features + - Added two new APIs to support cost allocation tags operations: ListCostAllocationTags, UpdateCostAllocationTagsStatus. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.17.205__ __2022-06-06__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Chime SDK Messaging__ + - ### Features + - This release adds support for searching channels by members via the SearchChannels API, removes required restrictions for Name and Mode in UpdateChannel API and enhances CreateChannel API by exposing member and moderator list as well as channel id as optional parameters. + +## __Amazon Connect Service__ + - ### Features + - This release adds a new API, GetCurrentUserData, which returns real-time details about users' current activity. + +# __2.17.204__ __2022-06-02__ +## __AWS Proton__ + - ### Features + - Add new "Components" API to enable users to Create, Delete and Update AWS Proton components. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now provides a data source connector for GitHub. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-github.html + +## __Amazon CloudWatch Application Insights__ + - ### Features + - Provide Account Level onboarding support through CFN/CLI + +## __Amazon Connect Service__ + - ### Features + - This release adds the following features: 1) New APIs to manage (create, list, update) task template resources, 2) Updates to startTaskContact API to support task templates, and 3) new TransferContact API to programmatically transfer in-progress tasks via a contact flow. + +## __Amazon Voice ID__ + - ### Features + - Added a new attribute ServerSideEncryptionUpdateDetails to Domain and DomainSummary. + +## __CodeArtifact__ + - ### Features + - Documentation updates for CodeArtifact + +# __2.17.203__ __2022-06-01__ +## __AWS Backup Gateway__ + - ### Features + - Adds GetGateway and UpdateGatewaySoftwareNow API and adds hypervisor name to UpdateHypervisor API + +## __Amazon Chime SDK Meetings__ + - ### Features + - Adds support for centrally controlling each participant's ability to send and receive audio, video and screen share within a WebRTC session. Attendee capabilities can be specified when the attendee is created and updated during the session with the new BatchUpdateAttendeeCapabilitiesExcept API. + +## __Amazon Forecast Service__ + - ### Features + - Added Format field to Import and Export APIs in Amazon Forecast. Added TimeSeriesSelector to Create Forecast API. + +## __Amazon Route 53__ + - ### Features + - Add new APIs to support Route 53 IP Based Routing + +# __2.17.202__ __2022-05-31__ +## __AWS IoT SiteWise__ + - ### Features + - This release adds the following new optional field to the IoT SiteWise asset resource: assetDescription. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Amazon Cognito now supports IP Address propagation for all unauthenticated APIs (e.g. SignUp, ForgotPassword). + +## __Amazon Lookout for Metrics__ + - ### Features + - Adding backtest mode to detectors using the Cloudwatch data source. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Notebook Instances now support Jupyter Lab 3. + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe now supports automatic language identification for multi-lingual audio in batch mode. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Changed existing APIs and added new APIs to accommodate using multiple AWS accounts with AWS Elastic Disaster Recovery. + +# __2.17.201__ __2022-05-27__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports TLS encryption in transit, file system policies and access points for EFS locations. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Appflow__ + - ### Features + - Adding the following features/changes: Parquet output that preserves typing from the source connector, Failed executions threshold before deactivation for scheduled flows, increasing max size of access and refresh token from 2048 to 4096 + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Notebook Instances now allows configuration of Instance Metadata Service version and Amazon SageMaker Studio now supports G5 instance types. + +## __EMR Serverless__ + - ### Features + - This release adds support for Amazon EMR Serverless, a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive. + +# __2.17.200__ __2022-05-26__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - C7g instances, powered by the latest generation AWS Graviton3 processors, provide the best price performance in Amazon EC2 for compute-intensive workloads. + +## __Amazon Forecast Service__ + - ### Features + - Introduced a new field in Auto Predictor as Time Alignment Boundary. It helps in aligning the timestamps generated during Forecast exports + +## __Amazon Lightsail__ + - ### Features + - Amazon Lightsail now supports the ability to configure a Lightsail Container Service to pull images from Amazon ECR private repositories in your account. + +## __EMR Serverless Web Service__ + - ### Features + - This release adds support for Amazon EMR Serverless, a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive. + +# __2.17.199__ __2022-05-25__ +## __AWS App Runner__ + - ### Features + - Documentation-only update added for CodeConfiguration. + +## __AWS CloudFormation__ + - ### Features + - Add a new parameter statusReason to DescribeStackSetOperation output for additional details + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __Amazon API Gateway__ + - ### Features + - Documentation updates for Amazon API Gateway + +## __Amazon FSx__ + - ### Features + - This release adds root squash support to FSx for Lustre to restrict root level access from clients by mapping root users to a less-privileged user/group with limited permissions. + +## __Amazon Lookout for Metrics__ + - ### Features + - Adding AthenaSourceConfig for MetricSet APIs to support Athena as a data source. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot adds support for manually selecting features from the input dataset using the CreateAutoMLJob API. + +## __Amazon Voice ID__ + - ### Features + - VoiceID will now automatically expire Speakers if they haven't been accessed for Enrollment, Re-enrollment or Successful Auth for three years. The Speaker APIs now return a "LastAccessedAt" time for Speakers, and the EvaluateSession API returns "SPEAKER_EXPIRED" Auth Decision for EXPIRED Speakers. + +# __2.17.198__ __2022-05-24__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for rules that constrain Automatic-ABR rendition selection when generating ABR package ladders. + +## __AWS Network Manager__ + - ### Features + - This release adds Multi Account API support for a TGW Global Network, to enable and disable AWSServiceAccess with AwsOrganizations for Network Manager service and dependency CloudFormation StackSets service. + +## __AWS SDK for Java v2__ + - ### Features + - Bump CRT version to 0.16.10, which contains M1 support [#2942](https://github.com/aws/aws-sdk-java-v2/issues/2942) + - Updated service endpoint metadata. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Amazon Cognito now supports requiring attribute verification (ex. email and phone number) before update. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Stop Protection feature enables customers to protect their instances from accidental stop actions. + +## __Amazon Interactive Video Service Chat__ + - ### Features + - Doc-only update. For MessageReviewHandler structure, added timeout period in the description of the fallbackResult field + +# __2.17.197__ __2022-05-23__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon ElastiCache__ + - ### Features + - Added support for encryption in transit for Memcached clusters. Customers can now launch Memcached cluster with encryption in transit enabled when using Memcached version 1.6.12 or later. + +## __Amazon Forecast Service__ + - ### Features + - New APIs for Monitor that help you understand how your predictors perform over time. + +## __Amazon Personalize__ + - ### Features + - Adding modelMetrics as part of DescribeRecommender API response for Personalize. + +# __2.17.196__ __2022-05-20__ +## __Amazon CloudWatch Logs__ + - ### Features + - Doc-only update to publish the new valid values for log retention + +## __Amazon Comprehend__ + - ### Features + - Comprehend releases 14 new entity types for DetectPiiEntities and ContainsPiiEntities APIs. + +# __2.17.195__ __2022-05-19__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Lookout for Metrics__ + - ### Features + - In this release we added SnsFormat to SNSConfiguration to support human readable alert. + +## __GameSparks__ + - ### Features + - This release adds an optional DeploymentResult field in the responses of GetStageDeploymentIntegrationTests and ListStageDeploymentIntegrationTests APIs. + +# __2.17.194__ __2022-05-18__ +## __AWS App Mesh__ + - ### Features + - This release updates the existing Create and Update APIs for meshes and virtual nodes by adding a new IP preference field. This new IP preference field can be used to control the IP versions being used with the mesh and allows for IPv6 support within App Mesh. + +## __AWS Batch__ + - ### Features + - Documentation updates for AWS Batch. + +## __AWS IoT Events Data__ + - ### Features + - Introducing new API for deleting detectors: BatchDeleteDetector. + +## __AWS IoT Greengrass V2__ + - ### Features + - This release adds the new DeleteDeployment API operation that you can use to delete deployment resources. This release also adds support for discontinued AWS-provided components, so AWS can communicate when a component has any issues that you should consider before you deploy it. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Transfer Family__ + - ### Features + - AWS Transfer Family now supports SetStat server configuration option, which provides the ability to ignore SetStat command issued by file transfer clients, enabling customers to upload files without any errors. + +## __Amazon DynamoDB Enhanced Client__ + - ### Features + - Introducing the UpdateExpression API in the enhanced client and the capability to use update expressions in the extension framework. Additionally, the new AtomicCounterExtension utilizes this feature to provide atomic counter support for users through tagging and annotations. + +## __Amazon QuickSight__ + - ### Features + - API UpdatePublicSharingSettings enables IAM admins to enable/disable account level setting for public access of dashboards. When enabled, owners/co-owners for dashboards can enable public access on their dashboards. These dashboards can only be accessed through share link or embedding. + +# __2.17.193__ __2022-05-17__ +## __AWS Glue__ + - ### Features + - This release adds a new optional parameter called codeGenNodeConfiguration to CRUD job APIs that allows users to manage visual jobs via APIs. The updated CreateJob and UpdateJob will create jobs that can be viewed in Glue Studio as a visual graph. GetJob can be used to get codeGenNodeConfiguration. + +## __AWS Key Management Service__ + - ### Features + - Add HMAC best practice tip, annual rotation of AWS managed keys. + +## __S3 Transfer Manager (Developer Preview)__ + - ### Features + - Add serialization capability to ResumableFileDownload, allowing users to persist paused downloads + +# __2.17.192__ __2022-05-16__ +## __AWS Application Discovery Service__ + - ### Features + - Add Migration Evaluator Collector details to the GetDiscoverySummary API response + +## __AWS Resilience Hub__ + - ### Features + - In this release, we are introducing support for Amazon Elastic Container Service, Amazon Route 53, AWS Elastic Disaster Recovery, AWS Backup in addition to the existing supported Services. This release also supports Terraform file input from S3 and scheduling daily assessments + +## __AWS SDK for Java v2__ + - ### Features + - Bump CRT version to 0.16.8 + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for AWS Security Token Service. + +## __AWS Service Catalog__ + - ### Features + - Updated the descriptions for the ListAcceptedPortfolioShares API description and the PortfolioShareType parameters. + +## __Amazon CloudFront__ + - ### Features + - Introduced a new error (TooLongCSPInResponseHeadersPolicy) that is returned when the value of the Content-Security-Policy header in a response headers policy exceeds the maximum allowed length. + +## __Amazon Rekognition__ + - ### Features + - Documentation updates for Amazon Rekognition. + +## __Amazon WorkSpaces Web__ + - ### Features + - Amazon WorkSpaces Web now supports Administrator timeout control + +# __2.17.191__ __2022-05-13__ +## __Amazon Managed Grafana__ + - ### Features + - This release adds APIs for creating and deleting API keys in an Amazon Managed Grafana workspace. + +# __2.17.190__ __2022-05-12__ +## __AWS IoT__ + - ### Features + - Documentation update for China region ListMetricValues for IoT + +## __AWS Lambda__ + - ### Features + - Lambda releases NodeJs 16 managed runtime to be available in all commercial regions. + +## __AWS Outposts__ + - ### Features + - Documentation updates for AWS Outposts. + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Adding support for dynamic SSM Runbook parameter values. Updating validation pattern for engagements. Adding ConflictException to UpdateReplicationSet API contract. + +## __AWS Transfer Family__ + - ### Features + - AWS Transfer Family now accepts ECDSA keys for server host keys + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now provides a data source connector for Jira. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-jira.html + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release introduces a target type Gateway Load Balancer Endpoint for mirrored traffic. Customers can now specify GatewayLoadBalancerEndpoint option during the creation of a traffic mirror target. + +## __Amazon Interactive Video Service Chat__ + - ### Features + - Documentation-only updates for IVS Chat API Reference. + +## __Amazon Lightsail__ + - ### Features + - This release adds support to include inactive database bundles in the response of the GetRelationalDatabaseBundles request. + +## __Amazon WorkSpaces__ + - ### Features + - Increased the character limit of the login message from 600 to 850 characters. + +## __FinSpace Public API__ + - ### Features + - We've now deprecated CreateSnapshot permission for creating a data view, instead use CreateDataView permission. + +# __2.17.189__ __2022-05-11__ +## __AWS Secrets Manager__ + - ### Features + - Doc only update for Secrets Manager that fixes several customer-reported issues. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release updates AWS PrivateLink APIs to support IPv6 for PrivateLink Services and Endpoints of type 'Interface'. + +# __2.17.188__ __2022-05-10__ +## __AWS Compute Optimizer__ + - ### Features + - Documentation updates for Compute Optimizer + +## __AWS Migration Hub Refactor Spaces__ + - ### Features + - AWS Migration Hub Refactor Spaces documentation only update to fix a formatting issue. + +## __AWS SDK for Java v2__ + - ### Features + - Bump `aws-crt` version from `0.16.1` to `0.16.7` + + - ### Bugfixes + - DynamoDBEnhanced - Fix handling attribute names with special characters including `/` + +## __Amazon EMR__ + - ### Features + - This release updates the Amazon EMR ModifyInstanceGroups API to support "MERGE" type cluster reconfiguration. Also, added the ability to specify a particular Amazon Linux release for all nodes in a cluster launch request. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Added support for using NitroTPM and UEFI Secure Boot on EC2 instances. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adds BOTTLEROCKET_ARM_64_NVIDIA and BOTTLEROCKET_x86_64_NVIDIA AMI types to EKS managed nodegroups + +## __S3 Transfer Manager (Developer Preview)__ + - ### Bugfixes + - Fixed a bug in `S3TransferManager#uploadDirectory` and `S3TransferManager#downloadDirectory` where failedUploads or failedDownloads did not contain all failed transfers + - Fixed cancellation logic in `S3TransferManager#downloadDirectory` + +# __2.17.187__ __2022-05-09__ +## __AWS Cloud Control API__ + - ### Features + - SDK release for Cloud Control API to include paginators for Python SDK. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Systems Manager Incident Manager Contacts__ + - ### Features + - Fixed an error in the DescribeEngagement example for AWS Incident Manager. + +## __Amazon CloudWatch Evidently__ + - ### Features + - Add detail message inside GetExperimentResults API response to indicate experiment result availability + +# __2.17.186__ __2022-05-06__ +## __AWS Elemental MediaPackage__ + - ### Features + - This release adds Dvb Dash 2014 as an available profile option for Dash Origin Endpoints. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Documentation updates for Security Hub API reference + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add new state values for IPAMs, IPAM Scopes, and IPAM Pools. + +## __Amazon Location Service__ + - ### Features + - Amazon Location Service now includes a MaxResults parameter for ListGeofences requests. + +## __Amazon Redshift__ + - ### Features + - Introduces new field 'LoadSampleData' in CreateCluster operation. Customers can now specify 'LoadSampleData' option during creation of a cluster, which results in loading of sample data in the cluster that is created. + +## __Amazon Relational Database Service__ + - ### Features + - Various documentation improvements. + +# __2.17.185__ __2022-05-05__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports a new ObjectTags Task API option that can be used to control whether Object Tags are transferred. + +## __AWS IoT__ + - ### Features + - AWS IoT Jobs now allows you to create up to 100,000 active continuous and snapshot jobs by using concurrency control. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - AWS Kendra now supports hierarchical facets for a query. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/filtering.html + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 I4i instances are powered by 3rd generation Intel Xeon Scalable processors and feature up to 30 TB of local AWS Nitro SSD storage + +# __2.17.184__ __2022-05-04__ +## __AWS Backup__ + - ### Features + - Adds support to 2 new filters about job complete time for 3 list jobs APIs in AWS Backup + +## __AWS IoT Secure Tunneling__ + - ### Features + - This release introduces a new API RotateTunnelAccessToken that allow revoking the existing tokens and generate new tokens + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Lightsail + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release adds the TargetMaps parameter in SSM State Manager API. + +# __2.17.183__ __2022-05-03__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for allocating Dedicated Hosts on AWS Outposts. The AllocateHosts API now accepts an OutpostArn request parameter, and the DescribeHosts API now includes an OutpostArn response parameter. + +## __Amazon Kinesis Video Streams__ + - ### Features + - Add support for multiple image feature related APIs for configuring image generation and notification of a video stream. Add "GET_IMAGES" to the list of supported API names for the GetDataEndpoint API. + +## __Amazon Kinesis Video Streams Archived Media__ + - ### Features + - Add support for GetImages API for retrieving images from a video stream + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Autopilot adds new metrics for all candidate models generated by Autopilot experiments; RStudio on SageMaker now allows users to bring your own development environment in a custom image. + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation only update for doc bug fixes for the S3 API docs. + +# __2.17.182__ __2022-05-02__ +## __AWS Organizations__ + - ### Features + - This release adds the INVALID_PAYMENT_INSTRUMENT as a fail reason and an error message. + +## __AWS Outposts__ + - ### Features + - This release adds a new API called ListAssets to the Outposts SDK, which lists the hardware assets in an Outpost. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Synthetics__ + - ### Features + - CloudWatch Synthetics has introduced a new feature to provide customers with an option to delete the underlying resources that Synthetics canary creates when the user chooses to delete the canary. + +# __2.17.181__ __2022-04-29__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK nows supports creation of Dolby Vision profile 8.1, the ability to generate black frames of video, and introduces audio-only DASH and CMAF support. + +## __AWS WAFV2__ + - ### Features + - You can now inspect all request headers and all cookies. You can now specify how to handle oversize body contents in your rules that inspect the body. + +## __Amazon CodeGuru Reviewer__ + - ### Features + - Amazon CodeGuru Reviewer now supports suppressing recommendations from being generated on specific files and directories. + +## __Amazon Relational Database Service__ + - ### Features + - Feature - Adds support for Internet Protocol Version 6 (IPv6) on RDS database instances. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Update the StartChangeRequestExecution, adding TargetMaps to the Runbook parameter + +# __2.17.180__ __2022-04-28__ +## __AWS Audit Manager__ + - ### Features + - This release adds documentation updates for Audit Manager. We provided examples of how to use the Custom_ prefix for the keywordValue attribute. We also provided more details about the DeleteAssessmentReport operation. + +## __AWS Network Firewall__ + - ### Features + - AWS Network Firewall adds support for stateful threat signature AWS managed rule groups. + +## __Amazon Connect Service__ + - ### Features + - This release introduces an API for changing the current agent status of a user in Connect. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support to query the public key and creation date of EC2 Key Pairs. Additionally, the format (pem or ppk) of a key pair can be specified when creating a new key pair. + +## __Amazon GuardDuty__ + - ### Features + - Documentation update for API description. + +## __Braket__ + - ### Features + - This release enables Braket Hybrid Jobs with Embedded Simulators to have multiple instances. + +## __S3 Transfer Manager (Develper Preview)__ + - ### Features + - Add `DownloadDirectoryRequest.Builder#downloadFileRequestTransformer` and `DownloadDirectoryRequest.Builder#listObjectsRequestTranformer` to allow users to modify requests during directory downloads. + +# __2.17.179__ __2022-04-27__ +## __AWS Amplify__ + - ### Features + - Documentation only update to support the Amplify GitHub App feature launch + +## __AWS CloudTrail__ + - ### Features + - Increases the retention period maximum to 2557 days. Deprecates unused fields of the ListEventDataStores API response. Updates documentation. + +## __AWS IoT Wireless__ + - ### Features + - Add list support for event configurations, allow to get and update event configurations by resource type, support LoRaWAN events; Make NetworkAnalyzerConfiguration as a resource, add List, Create, Delete API support; Add FCntStart attribute support for ABP WirelessDevice. + +## __AWS SDK for Java v2__ + - ### Features + - Expose an option in `AsyncResponseTransformer#toFile` to allow overwriting and appending existing file. + +## __Amazon Chime SDK Media Pipelines__ + - ### Features + - For Amazon Chime SDK meetings, the Amazon Chime Media Pipelines SDK allows builders to capture audio, video, and content share streams. You can also capture meeting events, live transcripts, and data messages. The pipelines save the artifacts to an Amazon S3 bucket that you designate. + +## __Amazon Lookout for Equipment__ + - ### Features + - This release adds the following new features: 1) Introduces an option for automatic schema creation 2) Now allows for Ingestion of data containing most common errors and allows automatic data cleaning 3) Introduces new API ListSensorStatistics that gives further information about the ingested data + +## __Amazon Rekognition__ + - ### Features + - This release adds support to configure stream-processor resources for label detections on streaming-videos. UpateStreamProcessor API is also launched with this release, which could be used to update an existing stream-processor. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot adds support for custom validation dataset and validation ratio through the CreateAutoMLJob and DescribeAutoMLJob APIs. + +## __S3 Transfer Manager (Develper Preview)__ + - ### Features + - Implement pause and resume for `S3TransferManager#downloadFile` + - S3TransferManager#downloadFile now by default replaces existing file if it already exists instead of throwing FileAlreadyExistsException. See [#3108](https://github.com/aws/aws-sdk-java-v2/issues/3108) + +# __2.17.178__ __2022-04-26__ +## __AWS Glue__ + - ### Features + - This release adds documentation for the APIs to create, read, delete, list, and batch read of AWS Glue custom patterns, and for Lake Formation configuration settings in the AWS Glue crawler. + +## __AWS Network Firewall__ + - ### Features + - AWS Network Firewall now enables customers to use a customer managed AWS KMS key for the encryption of their firewall resources. + +## __AWS Price List Service__ + - ### Features + - Documentation updates for Price List API + +## __Amazon CloudFront__ + - ### Features + - CloudFront now supports the Server-Timing header in HTTP responses sent from CloudFront. You can use this header to view metrics that help you gain insights about the behavior and performance of CloudFront. To use this header, enable it in a response headers policy. + +## __Amazon Interactive Video Service Chat__ + - ### Features + - Adds new APIs for IVS Chat, a feature for building interactive chat experiences alongside an IVS broadcast. + +## __Amazon Lightsail__ + - ### Features + - This release adds support for Lightsail load balancer HTTP to HTTPS redirect and TLS policy configuration. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Inference Recommender now accepts customer KMS key ID for encryption of endpoints and compilation outputs created during inference recommendation. + +# __2.17.177__ __2022-04-25__ +## __AWS RDS DataService__ + - ### Features + - Support to receive SQL query results in the form of a simplified JSON string. This enables developers using the new JSON string format to more easily convert it to an object using popular JSON string parsing libraries. + +## __AWS SecurityHub__ + - ### Features + - Security Hub now lets you opt-out of auto-enabling the defaults standards (CIS and FSBP) in accounts that are auto-enabled with Security Hub via Security Hub's integration with AWS Organizations. + +## __Amazon Connect Service__ + - ### Features + - This release adds SearchUsers API which can be used to search for users with a Connect Instance + +## __Amazon GameLift__ + - ### Features + - Documentation updates for Amazon GameLift. + +## __AmazonMQ__ + - ### Features + - This release adds the CRITICAL_ACTION_REQUIRED broker state and the ActionRequired API property. CRITICAL_ACTION_REQUIRED informs you when your broker is degraded. ActionRequired provides you with a code which you can use to find instructions in the Developer Guide on how to resolve the issue. + +# __2.17.176__ __2022-04-22__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix to ignore empty strings while marshalling list of strings in header field. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Include additional exceptions types. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for waiters that automatically poll for a deleted NAT Gateway until it reaches the deleted state. + +# __2.17.175__ __2022-04-21__ +## __AWS Glue__ + - ### Features + - This release adds APIs to create, read, delete, list, and batch read of Glue custom entity types + +## __AWS IoT SiteWise__ + - ### Features + - This release adds 3 new batch data query APIs : BatchGetAssetPropertyValue, BatchGetAssetPropertyValueHistory and BatchGetAssetPropertyAggregates + +## __AWS IoT TwinMaker__ + - ### Features + - General availability (GA) for AWS IoT TwinMaker. For more information, see https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/Welcome.html + +## __AWS MediaTailor__ + - ### Features + - This release introduces tiered channels and adds support for live sources. Customers using a STANDARD channel can now create programs using live sources. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __AWS Storage Gateway__ + - ### Features + - This release adds support for minimum of 5 character length virtual tape barcodes. + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release updates the GetRecommendations API to include a trigger event list for classifying and grouping recommendations. + +## __Amazon ElastiCache__ + - ### Features + - Doc only update for ElastiCache + +## __Amazon Lookout for Metrics__ + - ### Features + - Added DetectMetricSetConfig API for detecting configuration required for creating metric set from provided S3 data source. + +# __2.17.174__ __2022-04-20__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Prevent IndexOutOfBoundsException when PutObject tagging is an empty set. + +## __Amazon Connect Service__ + - ### Features + - This release adds APIs to search, claim, release, list, update, and describe phone numbers. You can also use them to associate and disassociate contact flows to phone numbers. + +## __Amazon Macie 2__ + - ### Features + - Sensitive data findings in Amazon Macie now indicate how Macie found the sensitive data that produced a finding (originType). + +## __Amazon Relational Database Service__ + - ### Features + - Added a new cluster-level attribute to set the capacity range for Aurora Serverless v2 instances. + +## __Application Migration Service__ + - ### Features + - Removed required annotation from input fields in Describe operations requests. Added quotaValue to ServiceQuotaExceededException + +# __2.17.173__ __2022-04-19__ +## __AWS Key Management Service__ + - ### Features + - Adds support for KMS keys and APIs that generate and verify HMAC codes + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Transfer Family__ + - ### Features + - This release contains corrected HomeDirectoryMappings examples for several API functions: CreateAccess, UpdateAccess, CreateUser, and UpdateUser,. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now provides a data source connector for Quip. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-quip.html + +## __Amazon Personalize__ + - ### Features + - Adding StartRecommender and StopRecommender APIs for Personalize. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new Austrian German voice - Hannah. Hannah is available as Neural voice only. + +## __Amazon Redshift__ + - ### Features + - Introduces new fields for LogDestinationType and LogExports on EnableLogging requests and Enable/Disable/DescribeLogging responses. Customers can now select CloudWatch Logs as a destination for their Audit Logs. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Added offset support for specifying the number of days to wait after the date and time specified by a CRON expression when creating SSM association. + +## __Amazon Textract__ + - ### Features + - This release adds support for specifying and extracting information from documents using the Queries feature within Analyze Document API + +## __Amazon WorkLink__ + - ### Features + - Amazon WorkLink is no longer supported. This will be removed in a future version of the SDK. + +## __Auto Scaling__ + - ### Features + - EC2 Auto Scaling now adds default instance warm-up times for all scaling activities, health check replacements, and other replacement events in the Auto Scaling instance lifecycle. + +# __2.17.172__ __2022-04-15__ +## __Amazon Athena__ + - ### Features + - This release adds subfields, ErrorMessage, Retryable, to the AthenaError response object in the GetQueryExecution API when a query fails. + +## __Amazon Lightsail__ + - ### Features + - This release adds support to describe the synchronization status of the account-level block public access feature for your Amazon Lightsail buckets. + +## __Amazon Relational Database Service__ + - ### Features + - Removes Amazon RDS on VMware with the deletion of APIs related to Custom Availability Zones and Media installation + +# __2.17.171__ __2022-04-14__ +## __AWS Batch__ + - ### Features + - Enables configuration updates for compute environments with BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies. + +## __AWS Glue__ + - ### Features + - Auto Scaling for Glue version 3.0 and later jobs to dynamically scale compute resources. This SDK change provides customers with the auto-scaled DPU usage + +## __AWS SDK for Java v2__ + - ### Features + - Automatically refresh credentials in the background when async credential refreshes are enabled, even if traffic is low. + - Updated service endpoint metadata. + +## __Amazon AppStream__ + - ### Features + - Includes updates for create and update fleet APIs to manage the session scripts locations for Elastic fleets. + +## __Amazon Appflow__ + - ### Features + - Enables users to pass custom token URL parameters for Oauth2 authentication during create connector profile + +## __Amazon CloudWatch__ + - ### Features + - Updates documentation for additional statistics in CloudWatch Metric Streams. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Amazon EC2. + +# __2.17.170__ __2022-04-13__ +## __Amazon CloudWatch__ + - ### Features + - Adds support for additional statistics in CloudWatch Metric Streams. + +## __Amazon FSx__ + - ### Features + - This release adds support for deploying FSx for ONTAP file systems in a single Availability Zone. + +# __2.17.169__ __2022-04-12__ +## __AWS IoT TwinMaker__ + - ### Features + - This release adds the following new features: 1) ListEntities API now supports search using ExternalId. 2) BatchPutPropertyValue and GetPropertyValueHistory API now allows users to represent time in sub-second level precisions. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DevOps Guru__ + - ### Features + - This release adds new APIs DeleteInsight to deletes the insight along with the associated anomalies, events and recommendations. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - X2idn and X2iedn instances are powered by 3rd generation Intel Xeon Scalable processors with an all-core turbo frequency up to 3.5 GHzAmazon EC2. C6a instances are powered by 3rd generation AMD EPYC processors. + +## __Amazon Elastic File System__ + - ### Features + - Amazon EFS adds support for a ThrottlingException when using the CreateAccessPoint API if the account is nearing the AccessPoint limit(120). + +# __2.17.168__ __2022-04-11__ +## __AWS Amplify UI Builder__ + - ### Features + - In this release, we have added the ability to bind events to component level actions. + +## __AWS App Runner__ + - ### Features + - This release adds tracing for App Runner services with X-Ray using AWS Distro for OpenTelemetry. New APIs: CreateObservabilityConfiguration, DescribeObservabilityConfiguration, ListObservabilityConfigurations, and DeleteObservabilityConfiguration. Updated APIs: CreateService and UpdateService. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon WorkSpaces__ + - ### Features + - Added API support that allows customers to create GPU-enabled WorkSpaces using EC2 G4dn instances. + +# __2.17.167__ __2022-04-08__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for the pass-through of WebVTT styling to WebVTT outputs, pass-through of KLV metadata to supported formats, and improved filter support for processing 444/RGB content. + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - This release adds ScteMarkersSource as an available field for Dash Packaging Configurations. When set to MANIFEST, MediaPackage will source the SCTE-35 markers from the manifest. When set to SEGMENTS, MediaPackage will source the SCTE-35 markers from the segments. + +## __AWS WAFV2__ + - ### Features + - Add a new CurrentDefaultVersion field to ListAvailableManagedRuleGroupVersions API response; add a new VersioningSupported boolean to each ManagedRuleGroup returned from ListAvailableManagedRuleGroups API response. + +# __2.17.166__ __2022-04-07__ +## __AWS Performance Insights__ + - ### Features + - Adds support for DocumentDB to the Performance Insights API. + +## __Amazon API Gateway__ + - ### Features + - ApiGateway CLI command get-usage now includes usagePlanId, startDate, and endDate fields in the output to match documentation. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Added support to enable/disable performance insights when creating or modifying db instances + +## __Amazon EventBridge__ + - ### Features + - Adds new EventBridge Endpoint resources for disaster recovery, multi-region failover, and cross-region replication capabilities to help you build resilient event-driven applications. + +## __Amazon Personalize__ + - ### Features + - This release provides tagging support in AWS Personalize. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon Sagemaker Notebook Instances now supports G5 instance types + +# __2.17.165__ __2022-04-06__ +## __AWS Config__ + - ### Features + - Add resourceType enums for AWS::EMR::SecurityConfiguration and AWS::SageMaker::CodeRepository + +## __AWS Lambda__ + - ### Features + - This release adds new APIs for creating and managing Lambda Function URLs and adds a new FunctionUrlAuthType parameter to the AddPermission API. Customers can use Function URLs to create built-in HTTPS endpoints on their functions. + +## __AWS Panorama__ + - ### Features + - Added Brand field to device listings. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + - Upgrade jackson-databind to 2.13.2.2 + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now provides a data source connector for Box. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-box.html + +# __2.17.164__ __2022-04-05__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports Amazon FSx for OpenZFS locations. + +## __AWS S3 Control__ + - ### Features + - Documentation-only update for doc bug fixes for the S3 Control API docs. + +## __AWS SDK for Java v2__ + - ### Features + - Bump CRT version to `0.16.1`. + + - ### Bugfixes + - Refresh IMDS credentials more aggressively. + +## __AWS SecurityHub__ + - ### Features + - Added additional ASFF details for RdsSecurityGroup AutoScalingGroup, ElbLoadBalancer, CodeBuildProject and RedshiftCluster. + +## __Amazon FSx__ + - ### Features + - Provide customers more visibility into file system status by adding new "Misconfigured Unavailable" status for Amazon FSx for Windows File Server. + +# __2.17.163__ __2022-04-04__ +## __AWS IoT__ + - ### Features + - AWS IoT - AWS IoT Device Defender adds support to list metric datapoints collected for IoT devices through the ListMetricValues API + +## __AWS Proton__ + - ### Features + - SDK release to support tagging for AWS Proton Repository resource + +## __AWS Server Migration Service__ + - ### Features + - Revised product update notice for SMS console deprecation. + +## __AWS Service Catalog__ + - ### Features + - This release adds ProvisioningArtifictOutputKeys to DescribeProvisioningParameters to reference the outputs of a Provisioned Product and deprecates ProvisioningArtifactOutputs. + +# __2.17.162__ __2022-04-01__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Service__ + - ### Features + - This release updates these APIs: UpdateInstanceAttribute, DescribeInstanceAttribute and ListInstanceAttributes. You can use it to programmatically enable/disable multi-party conferencing using attribute type MULTI_PARTY_CONFERENCING on the specified Amazon Connect instance. + +# __2.17.161__ __2022-03-31__ +## __AWS Audit Manager__ + - ### Features + - This release adds documentation updates for Audit Manager. The updates provide data deletion guidance when a customer deregisters Audit Manager or deregisters a delegated administrator. + +## __AWS Cloud Control API__ + - ### Features + - SDK release for Cloud Control API in Amazon Web Services China (Beijing) Region, operated by Sinnet, and Amazon Web Services China (Ningxia) Region, operated by NWCD + +## __AWS Glue DataBrew__ + - ### Features + - This AWS Glue Databrew release adds feature to support ORC as an input format. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fix NPE thrown from serializing/deserializing a structure that has map type with null values + +## __Amazon Managed Grafana__ + - ### Features + - This release adds tagging support to the Managed Grafana service. New APIs: TagResource, UntagResource and ListTagsForResource. Updates: add optional field tags to support tagging while calling CreateWorkspace. + +## __Amazon Pinpoint SMS Voice V2__ + - ### Features + - Amazon Pinpoint now offers a version 2.0 suite of SMS and voice APIs, providing increased control over sending and configuration. This release is a new SDK for sending SMS and voice messages called PinpointSMSVoiceV2. + +## __Amazon WorkSpaces__ + - ### Features + - Added APIs that allow you to customize the logo, login message, and help links in the WorkSpaces client login page. To learn more, visit https://docs.aws.amazon.com/workspaces/latest/adminguide/customize-branding.html + +## __Route53 Recovery Cluster__ + - ### Features + - This release adds a new API "ListRoutingControls" to list routing control states using the highly reliable Route 53 ARC data plane endpoints. + +## __URLConnection HTTP Client__ + - ### Features + - ProxyConfiguration support for UrlConnectionHttpClient. + +# __2.17.160__ __2022-03-30__ +## __AWS IoT__ + - ### Features + - Doc only update for IoT that fixes customer-reported issues. + +## __AWS IoT Data Plane__ + - ### Features + - Update the default AWS IoT Core Data Plane endpoint from VeriSign signed to ATS signed. If you have firewalls with strict egress rules, configure the rules to grant you access to data-ats.iot.[region].amazonaws.com or data-ats.iot.[region].amazonaws.com.cn. + +## __AWS SDK for Java v2__ + - ### Features + - Extend union type improvements to additional services: dynamodb, dynamodbstreams, iot, sagemaker, clouddirectory, iotanalytics, kendra, marketplaceentitlement, quicksight, s3, xray. + - Remove unnecessary dependencies on JDK modules not in java.base. This didn't remove all of the dependencies on such modules, just the unnecessary ones. + + - ### Bugfixes + - Fix issue where the `contentLength` specified on the `RequestBody` is not honored. Fixes [#2908](https://github.com/aws/aws-sdk-java-v2/issues/2908). + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release simplifies the auto-recovery configuration process enabling customers to set the recovery behavior to disabled or default + +## __Amazon FSx__ + - ### Features + - This release adds support for modifying throughput capacity for FSx for ONTAP file systems. + +## __Firewall Management Service__ + - ### Features + - AWS Firewall Manager now supports the configuration of third-party policies that can use either the centralized or distributed deployment models. + +# __2.17.159__ __2022-03-29__ +## __AWS Organizations__ + - ### Features + - This release provides the new CloseAccount API that enables principals in the management account to close any member account within an organization. + +## __AWS SDK for Java v2__ + - ### Features + - Allow services to model structures with mutually exclusive fields (union types). Such structures have additional static constructors and the ability to query for which field is populated. Services which support this feature at launch: accessanalyzer, appconfig, appconfigdata, appmesh, connect, emrcontainers, evidently, grafana, groundstation, healthlake, inspector2, iottwinmaker, migrationhubstrategy, nimble, panorama, proton, rdsdata, redshiftdata, s3control, snowdevicemanagement, ssmincidents, transcribe, wisdom. + - Allow specifying the profile file and name used by the instance profile credentials provider. + - Improve resilience of instance profile credentials provider to short-term outages. Credentials that are close to expiration or expired can still be used to sign calls when the instance metadata service appears to be having issues. Services are now responsible for determining whether the credentials have actually expired. + - Include SDK user-agent in container credential provider calls. + - Use the client's profile file and name for instance profile credentials when the default credentials provider is not overridden. + + - ### Bugfixes + - Moved HttpCredentialsProvider (base class of ContainerCredentialsProvider and InstanceProfileCredentialsProvider) from private to public. This fixes an issue where public classes extended an internal class. Some components of this type were modified to allow it to be public. + +# __2.17.158__ __2022-03-28__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - Updating service name entities + +## __AWS Elemental MediaLive__ + - ### Features + - This release adds support for selecting a maintenance window. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.17.157__ __2022-03-25__ +## __AWS Batch__ + - ### Features + - Bug Fix: Fixed a bug where shapes were marked as unboxed and were not serialized and sent over the wire, causing an API error from the service. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This is release adds support for Amazon VPC Reachability Analyzer to analyze path through a Transit Gateway. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This Patch Manager release supports creating, updating, and deleting Patch Baselines for Rocky Linux OS. + +# __2.17.156__ __2022-03-24__ +## __AWS Config__ + - ### Features + - Added new APIs GetCustomRulePolicy and GetOrganizationCustomRulePolicy, and updated existing APIs PutConfigRule, DescribeConfigRule, DescribeConfigRuleEvaluationStatus, PutOrganizationConfigRule, DescribeConfigRule to support a new feature for building AWS Config rules with AWS CloudFormation Guard + +## __AWS Lambda__ + - ### Features + - Adds support for increased ephemeral storage (/tmp) up to 10GB for Lambda functions. Customers can now provision up to 10 GB of ephemeral storage per function instance, a 20x increase over the previous limit of 512 MB. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Transcribe Service__ + - ### Features + - This release adds an additional parameter for subtitling with Amazon Transcribe batch jobs: outputStartIndex. + +# __2.17.155__ __2022-03-23__ +## __AWS Audit Manager__ + - ### Features + - This release updates 1 API parameter, the SnsArn attribute. The character length and regex pattern for the SnsArn attribute have been updated, which enables you to deselect an SNS topic when using the UpdateSettings operation. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Transfer Family__ + - ### Features + - Documentation updates for AWS Transfer Family to describe how to remove an associated workflow from a server. + +## __Amazon ElastiCache__ + - ### Features + - Doc only update for ElastiCache + +## __Amazon Elastic Block Store__ + - ### Features + - Increased the maximum supported value for the Timeout parameter of the StartSnapshot API from 60 minutes to 4320 minutes. Changed the HTTP error code for ConflictException from 503 to 409. + +## __Amazon Redshift__ + - ### Features + - This release adds a new [--encrypted | --no-encrypted] field in restore-from-cluster-snapshot API. Customers can now restore an unencrypted snapshot to a cluster encrypted with AWS Managed Key or their own KMS key. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Update AddTagsToResource, ListTagsForResource, and RemoveTagsFromResource APIs to reflect the support for tagging Automation resources. Includes other minor documentation updates. + +## __GameSparks__ + - ### Features + - Released the preview of Amazon GameSparks, a fully managed AWS service that provides a multi-service backend for game developers. + +# __2.17.154__ __2022-03-22__ +## __AWS Cost Explorer Service__ + - ### Features + - Added three new APIs to support tagging and resource-level authorization on Cost Explorer resources: TagResource, UntagResource, ListTagsForResource. Added optional parameters to CreateCostCategoryDefinition, CreateAnomalySubscription and CreateAnomalyMonitor APIs to support Tag On Create. + +## __AWS Lake Formation__ + - ### Features + - The release fixes the incorrect permissions called out in the documentation - DESCRIBE_TAG, ASSOCIATE_TAG, DELETE_TAG, ALTER_TAG. This trebuchet release fixes the corresponding SDK and documentation. + +## __AWS SDK for Java v2__ + - ### Features + - Bump up jackson version 2.13.1 -> 2.13.2 + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation only update to address tickets + +## __Amazon Location Service__ + - ### Features + - Amazon Location Service now includes a MaxResults parameter for GetDevicePositionHistory requests. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new Catalan voice - Arlet. Arlet is available as Neural voice only. + +# __2.17.153__ __2022-03-21__ +## __AWS MediaConnect__ + - ### Features + - This release adds support for selecting a maintenance window. + +## __AWS Resource Access Manager__ + - ### Features + - Document improvements to the RAM API operations and parameter descriptions. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Add support for media replication to link multiple WebRTC media sessions together to reach larger and global audiences. Participants connected to a replica session can be granted access to join the primary session and can switch sessions with their existing WebRTC connection + +## __Amazon EC2 Container Registry__ + - ### Features + - This release includes a fix in the DescribeImageScanFindings paginated output. + +## __Amazon QuickSight__ + - ### Features + - AWS QuickSight Service Features - Expand public API support for group management. + +# __2.17.152__ __2022-03-18__ +## __AWS Glue__ + - ### Features + - Added 9 new APIs for AWS Glue Interactive Sessions: ListSessions, StopSession, CreateSession, GetSession, DeleteSession, RunStatement, GetStatement, ListStatements, CancelStatement + +# __2.17.151__ __2022-03-16__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - AWS Certificate Manager (ACM) Private Certificate Authority (CA) now supports customizable certificate subject names and extensions. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Removed incorrect validation pattern for IncidentRecordSource.invokedBy + +## __AWSBillingConductor__ + - ### Features + - This is the initial SDK release for AWS Billing Conductor. The AWS Billing Conductor is a customizable billing service, allowing you to customize your billing data to match your desired business structure. + +## __Amazon S3 on Outposts__ + - ### Features + - S3 on Outposts is releasing a new API, ListSharedEndpoints, that lists all endpoints associated with S3 on Outpost, that has been shared by Resource Access Manager (RAM). + +## __AmplifyBackend__ + - ### Features + - Adding the ability to customize Cognito verification messages for email and SMS in CreateBackendAuth and UpdateBackendAuth. Adding deprecation documentation for ForgotPassword in CreateBackendAuth and UpdateBackendAuth + +## __S3 Transfer Manager (Preview)__ + - ### Bugfixes + - Fixed the bug in the transfer manager where files were downloaded sequentially in downloadDirectory. See [#3092](https://github.com/aws/aws-sdk-java-v2/issues/3092) + +# __2.17.150__ __2022-03-15__ +## __AWS Data Exchange__ + - ### Features + - This feature enables data providers to use the RevokeRevision operation to revoke subscriber access to a given revision. Subscribers are unable to interact with assets within a revoked revision. + +## __AWS RoboMaker__ + - ### Features + - This release deprecates ROS, Ubuntu and Gazbeo from RoboMaker Simulation Service Software Suites in favor of user-supplied containers and Relaxed Software Suites. + +## __AWS SDK for Java v2__ + - ### Features + - Bump CRT version to `0.15.23`. + + - ### Bugfixes + - Fixed an issue where NPE could be thrown when a request failed before API call timer started + +## __Amazon Cognito Identity Provider__ + - ### Features + - Updated EmailConfigurationType and SmsConfigurationType to reflect that you can now choose Amazon SES and Amazon SNS resources in the same Region. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation only update to address tickets + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds the Cascade parameter to the DeleteIpam API. Customers can use this parameter to automatically delete their IPAM, including non-default scopes, pools, cidrs, and allocations. There mustn't be any pools provisioned in the default public scope to use this parameter. + +## __Amazon Keyspaces__ + - ### Features + - Fixing formatting issues in CLI and SDK documentation + +## __Amazon Location Service__ + - ### Features + - New HERE style "VectorHereExplore" and "VectorHereExploreTruck". + +## __Amazon Relational Database Service__ + - ### Features + - Various documentation improvements + +## __S3 Transfer Manager__ + - ### Features + - Add Copy support to S3 Transfer Manager + +# __2.17.149__ __2022-03-14__ +## __AWS Config__ + - ### Features + - Add resourceType enums for AWS::ECR::PublicRepository and AWS::EC2::LaunchTemplate + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now provides a data source connector for Slack. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-slack.html + +## __Amazon ElastiCache__ + - ### Features + - Doc only update for ElastiCache + +## __Amazon Timestream Query__ + - ### Features + - Amazon Timestream Scheduled Queries now support Timestamp datatype in a multi-measure record. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - The default tlsNegotiationTimeout is now 5 seconds instead of 2 seconds to account for potential startup latency. + +# __2.17.148__ __2022-03-11__ +## __AWS Lambda__ + - ### Features + - Adds PrincipalOrgID support to AddPermission API. Customers can use it to manage permissions to lambda functions at AWS Organizations level. + +## __AWS Outposts__ + - ### Features + - This release adds address filters for listSites + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager. + +## __Amazon Chime__ + - ### Features + - Chime VoiceConnector Logging APIs will now support MediaMetricLogs. Also CreateMeetingDialOut now returns AccessDeniedException. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for enabling Rich Messaging when starting a new chat session via the StartChatContact API. Rich Messaging enables the following formatting options: bold, italics, hyperlinks, bulleted lists, and numbered lists. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - Amazon Transcribe StartTranscription API now supports additional parameters for Language Identification feature: customVocabularies and customFilterVocabularies + +# __2.17.147__ __2022-03-10__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Transfer Family__ + - ### Features + - Adding more descriptive error types for managed workflows + +## __Amazon Lex Model Building V2__ + - ### Features + - This release makes slotTypeId an optional parameter in CreateSlot and UpdateSlot APIs in Amazon Lex V2 for model building. Customers can create and update slots without specifying a slot type id. + +## __Amazon Transcribe Service__ + - ### Features + - Documentation fix for API `StartMedicalTranscriptionJobRequest`, now showing min sample rate as 16khz + +# __2.17.146__ __2022-03-09__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports extracting the sentiment associated with entities such as brands, products and services from text documents. + +# __2.17.145__ __2022-03-08__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for reading timecode from AVCHD sources and now provides the ability to segment WebVTT at the same interval as the video and audio in HLS packages. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Introducing a new enum for NodeGroup error code: Ec2SubnetMissingIpv6Assignment + +## __Amazon Keyspaces__ + - ### Features + - Adding link to CloudTrail section in Amazon Keyspaces Developer Guide + +# __2.17.144__ __2022-03-07__ +## __AWS Migration Hub Refactor Spaces__ + - ### Features + - AWS Migration Hub Refactor Spaces documentation update. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Adds support for Transcribe language identification feature to the StartMeetingTranscription API. + +## __Amazon EC2 Container Service__ + - ### Features + - Amazon ECS UpdateService API now supports additional parameters: loadBalancers, propagateTags, enableECSManagedTags, and serviceRegistries + +# __2.17.143__ __2022-03-04__ +## __AWS Security Token Service__ + - ### Features + - Documentation updates for AWS Security Token Service. + +## __AWS Transfer Family__ + - ### Features + - Add waiters for server online and offline. + +## __Amazon Connect Service__ + - ### Features + - This release updates the *InstanceStorageConfig APIs so they support a new ResourceType: REAL_TIME_CONTACT_ANALYSIS_SEGMENTS. Use this resource type to enable streaming for real-time contact analysis and to associate the Kinesis stream where real-time contact analysis segments will be published. + +## __Amazon DevOps Guru__ + - ### Features + - Amazon DevOps Guru now integrates with Amazon CodeGuru Profiler. You can view CodeGuru Profiler recommendations for your AWS Lambda function in DevOps Guru. This feature is enabled by default for new customers as of 3/4/2022. Existing customers can enable this feature with UpdateEventSourcesConfig. + +## __Amazon DynamoDB Enhanced Client__ + - ### Bugfixes + - Bugfix for handling attribute names with `+` character + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Amazon EC2. + +## __Amazon Macie__ + - ### Features + - Amazon Macie Classic (macie) has been discontinued and is no longer available. A new Amazon Macie (macie2) is now available with significant design improvements and additional features. + +## __Synthetics__ + - ### Features + - Allow custom handler function. + +# __2.17.142__ __2022-03-03__ +## __AWS IoT Greengrass V2__ + - ### Features + - Doc only update that clarifies Create Deployment section. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now suggests spell corrections for a query. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/query-spell-check.html + +## __Amazon Appflow__ + - ### Features + - Launching Amazon AppFlow Marketo as a destination connector SDK. + +## __Amazon FSx__ + - ### Features + - This release adds support for data repository associations to use root ("/") as the file system path + +## __Amazon Timestream Query__ + - ### Features + - Documentation only update for SDK and CLI + +# __2.17.141__ __2022-03-02__ +## __AWS CloudTrail__ + - ### Features + - Add bytesScanned field into responses of DescribeQuery and GetQueryResults. + +## __Amazon Athena__ + - ### Features + - This release adds support for S3 Object Ownership by allowing the S3 bucket owner full control canned ACL to be set when Athena writes query results to S3 buckets. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release adds support for tracking images lastRecordedPullTime. + +## __Amazon GameLift__ + - ### Features + - Minor updates to address errors. + +## __Amazon Keyspaces__ + - ### Features + - This release adds support for data definition language (DDL) operations + +# __2.17.140__ __2022-03-01__ +## __AWS Elemental MediaPackage__ + - ### Features + - This release adds Hybridcast as an available profile option for Dash Origin Endpoints. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for Multi-AZ DB clusters. + +## __Application Migration Service__ + - ### Features + - Add support for GP3 and IO2 volume types. Add bootMode to LaunchConfiguration object (and as a parameter to UpdateLaunchConfigurationRequest). + +## __Managed Streaming for Kafka Connect__ + - ### Features + - Adds operation for custom plugin deletion (DeleteCustomPlugin) and adds new StateDescription field to DescribeCustomPlugin and DescribeConnector responses to return errors from asynchronous resource creation. + +# __2.17.139__ __2022-02-28__ +## __AWS Amplify__ + - ### Features + - Add repositoryCloneMethod field for hosting an Amplify app. This field shows what authorization method is used to clone the repo: SSH, TOKEN, or SIGV4. + +## __AWS Amplify UI Builder__ + - ### Features + - We are adding the ability to configure workflows and actions for components. + +## __AWS Fault Injection Simulator__ + - ### Features + - This release adds logging support for AWS Fault Injection Simulator experiments. Experiment templates can now be configured to send experiment activity logs to Amazon CloudWatch Logs or to an S3 bucket. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Service Catalog App Registry__ + - ### Features + - AppRegistry is deprecating Application and Attribute-Group Name update feature. In this release, we are marking the name attributes for Update APIs as deprecated to give a heads up to our customers. + +## __Amazon Athena__ + - ### Features + - This release adds support for updating an existing named query. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for new AMI property 'lastLaunchedTime' + +## __Amazon FSx__ + - ### Features + - This release adds support for the following FSx for OpenZFS features: snapshot lifecycle transition messages, force flag for deleting file systems with child resources, LZ4 data compression, custom record sizes, and unsetting volume quotas and reservations. + +## __FinSpace Public API__ + - ### Features + - Add new APIs for managing Users and Permission Groups. + +## __Route53 Recovery Cluster__ + - ### Features + - This release adds a new API option to enable overriding safety rules to allow routing control state updates. + +# __2.17.138__ __2022-02-25__ +## __AWS Panorama__ + - ### Features + - Added NTP server configuration parameter to ProvisionDevice operation. Added alternate software fields to DescribeDevice response + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon ElastiCache__ + - ### Features + - Doc only update for ElastiCache + +# __2.17.137__ __2022-02-24__ +## __AWS Glue DataBrew__ + - ### Features + - This AWS Glue Databrew release adds feature to merge job outputs into a max number of files for S3 File output type. + +## __AWS S3 Control__ + - ### Features + - Amazon S3 Batch Operations adds support for new integrity checking capabilities in Amazon S3. + +## __AWS Transfer Family__ + - ### Features + - Support automatic pagination when listing AWS Transfer Family resources. + +## __Amazon Lightsail__ + - ### Features + - This release adds support to delete and create Lightsail default key pairs that you can use with Lightsail instances. + +## __Amazon Route 53__ + - ### Features + - SDK doc update for Route 53 to update some parameters with new information. + +## __Amazon Simple Storage Service__ + - ### Features + - This release adds support for new integrity checking capabilities in Amazon S3. You can choose from four supported checksum algorithms for data integrity checking on your upload and download requests. In addition, AWS SDK can automatically calculate a checksum as it streams data into S3 + +## __Auto Scaling__ + - ### Features + - You can now hibernate instances in a warm pool to stop instances without deleting their RAM contents. You can now also return instances to the warm pool on scale in, instead of always terminating capacity that you will need later. + +## __Firewall Management Service__ + - ### Features + - AWS Firewall Manager now supports the configuration of AWS Network Firewall policies with either centralized or distributed deployment models. This release also adds support for custom endpoint configuration, where you can choose which Availability Zones to create firewall endpoints in. + +# __2.17.136__ __2022-02-23__ +## __AWS Lambda__ + - ### Features + - Lambda releases .NET 6 managed runtime to be available in all commercial regions. + +## __AWS SDK for Java v2__ + - ### Features + - Add `ClientOverrideConfiguration` getter to `SdkClientBuilder`. Allows for changing multiple overrides on a client through the client builder alone. + - Contributed by: [@smswz](https://github.com/smswz) + - Updated service endpoint metadata. + +## __AWS Transfer Family__ + - ### Features + - The file input selection feature provides the ability to use either the originally uploaded file or the output file from the previous workflow step, enabling customers to make multiple copies of the original file while keeping the source file intact for file archival. + +## __Amazon Textract__ + - ### Features + - Added support for merged cells and column header for table response. + +## __URL Connection HTTP Client__ + - ### Bugfixes + - Fix "java.net.ProtocolException: Server rejected operation" when the HTTP response has no response content. If the response includes content, update the exception message to say that the Apache HTTP client may fix the problem. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@smswz](https://github.com/smswz) +# __2.17.135__ __2022-02-22__ +## __AWS App Runner__ + - ### Features + - AWS App Runner adds a Java platform (Corretto 8, Corretto 11 runtimes) and a Node.js 14 runtime. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS WAFV2__ + - ### Features + - Updated descriptions for logging configuration. + +## __Amazon Translate__ + - ### Features + - This release enables customers to use translation settings for formality customization in their synchronous translation output. + +## __S3 Transfer Manager__ + - ### Features + - Add support for filtering objects as part of S3 Transfer Manager's DownloadDirectory API + +# __2.17.134__ __2022-02-21__ +## __AWS SDK for Java v2__ + - ### Features + - Support adding http checksum for requests and validation of http checksum for responses based on HttpChecksum traits defined in the model. + - Updated service endpoint metadata. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release introduces apis CreateIntegrationWorkflow, DeleteWorkflow, ListWorkflows, GetWorkflow and GetWorkflowSteps. These apis are used to manage and view integration workflows. + +## __Amazon DynamoDB__ + - ### Features + - DynamoDB ExecuteStatement API now supports Limit as a request parameter to specify the maximum number of items to evaluate. If specified, the service will process up to the Limit and the results will include a LastEvaluatedKey value to continue the read in a subsequent operation. + +## __EC2 Image Builder__ + - ### Features + - This release adds support to enable faster launching for Windows AMIs created by EC2 Image Builder. + +# __2.17.133__ __2022-02-18__ +## __AWS Budgets__ + - ### Features + - This change introduces DescribeBudgetNotificationsForAccount API which returns budget notifications for the specified account + +## __AWS Transfer Family__ + - ### Features + - Properties for Transfer Family used with SFTP, FTP, and FTPS protocols. Display Banners are bodies of text that can be displayed before and/or after a user authenticates onto a server using one of the previously mentioned protocols. + +## __Amazon GameLift__ + - ### Features + - Increase string list limit from 10 to 100. + +# __2.17.132__ __2022-02-17__ +## __AWS Backup__ + - ### Features + - AWS Backup add new S3_BACKUP_OBJECT_FAILED and S3_RESTORE_OBJECT_FAILED event types in BackupVaultNotifications events list. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS SDK for Java v2__ + - ### Features + - Update SDK to be able to successfully build using JDK 17. + - Updated service endpoint metadata. + +## __Amazon CloudWatch Evidently__ + - ### Features + - Add support for filtering list of experiments and launches by status + +## __Amazon Redshift__ + - ### Features + - SDK release for Cross region datasharing and cost-control for cross region datasharing + +# __2.17.131__ __2022-02-16__ +## __AWS Budgets__ + - ### Features + - Adds support for auto-adjusting budgets, a new budget method alongside fixed and planned. Auto-adjusting budgets introduces new metadata to configure a budget limit baseline using a historical lookback average or current period forecast. + +## __AWS Cost Explorer Service__ + - ### Features + - AWS Cost Anomaly Detection now supports SNS FIFO topic subscribers. + +## __AWS Glue__ + - ### Features + - Support for optimistic locking in UpdateTable + +## __AWS SDK for Java v2__ + - ### Features + - Add support for setting the default `RegionScope` used by the Sigv4a signer implementations. If the region scope to use is not supplied to the signing methods, the signers will default to this scope first and then the normal signing region. + + - ### Removals + - Removed codegen-resources from service jars, which reduces SDK artifact size. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Assorted ticket fixes and updates for AWS Systems Manager. + +## __Netty NIO Async HTTP Client__ + - ### Bugfixes + - Fixed an issue in Netty async http client where NPE was thrown when the execution got cancelled before executionId was attached to the channel. + +## __S3 Transfer Manager__ + - ### Features + - Implement downloadDirectory API in the S3TransferManager + + - ### Bugfixes + - A couple of minor refactoring on the S3TransferManager. 1. `CompletedDirectoryUpload#failedTransfers` now returns `List` instead of `Collection`. 2. `UploadDirectoryOverrideConfiguration#uploadFileRequestTransformer` now returns `Consumer` instead of `Optional>` it will be no-op if no uploadFileRequestTransformer is provided + +# __2.17.130__ __2022-02-14__ +## __Amazon Appflow__ + - ### Features + - Launching Amazon AppFlow SAP as a destination connector SDK. + +## __Amazon Athena__ + - ### Features + - This release adds a subfield, ErrorType, to the AthenaError response object in the GetQueryExecution API when a query fails. + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for determining which Aurora PostgreSQL versions support Babelfish. + +# __2.17.129__ __2022-02-11__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Always return an empty SDK bytes when services model their response payload as a blob. Previously, it would either return null, empty bytes or throw an exception depending on the protocol, HTTP client and whether the service was using chunked encoding for their responses. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Documentation updates for AWS Systems Manager. + +# __2.17.128__ __2022-02-10__ +## __AWS CloudFormation__ + - ### Features + - This SDK release adds AWS CloudFormation Hooks HandlerErrorCodes + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS WAFV2__ + - ### Features + - Adds support for AWS WAF Fraud Control account takeover prevention (ATP), with configuration options for the new managed rule group AWSManagedRulesATPRuleSet and support for application integration SDKs for Android and iOS mobile apps. + +## __Amazon Lookout for Vision__ + - ### Features + - This release makes CompilerOptions in Lookout for Vision's StartModelPackagingJob's Configuration object optional. + +## __Amazon Pinpoint__ + - ### Features + - This SDK release adds a new paramater creation date for GetApp and GetApps Api call + +## __Amazon Simple Notification Service__ + - ### Features + - Customer requested typo fix in API documentation. + +# __2.17.127__ __2022-02-09__ +## __AWS CloudFormation__ + - ### Features + - This SDK release is for the feature launch of AWS CloudFormation Hooks. + +# __2.17.126__ __2022-02-08__ +## __AWS App Runner__ + - ### Features + - This release adds support for App Runner to route outbound network traffic of a service through an Amazon VPC. New API: CreateVpcConnector, DescribeVpcConnector, ListVpcConnectors, and DeleteVpcConnector. Updated API: CreateService, DescribeService, and UpdateService. + +## __AWS S3 Control__ + - ### Features + - This release adds support for S3 Batch Replication. Batch Replication lets you replicate existing objects, already replicated objects to new destinations, and objects that previously failed to replicate. Customers will receive object-level visibility of progress and a detailed completion report. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now provides a data source connector for Amazon FSx. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-fsx.html + +## __Amazon DynamoDB Enhanced Client__ + - ### Features + - Added logging to 'software.amazon.awssdk.enhanced.dynamodb.beans', which will assist when debugging the behavior of BeanTableSchema and ImmutableTableSchema. + +## __Amazon SageMaker Service__ + - ### Features + - Autopilot now generates an additional report with information on the performance of the best model, such as a Confusion matrix and Area under the receiver operating characteristic (AUC-ROC). The path to the report can be found in CandidateArtifactLocations. + +# __2.17.125__ __2022-02-07__ +## __AWS Audit Manager__ + - ### Features + - This release updates 3 API parameters. UpdateAssessmentFrameworkControlSet now requires the controls attribute, and CreateAssessmentFrameworkControl requires the id attribute. Additionally, UpdateAssessmentFramework now has a minimum length constraint for the controlSets attribute. + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Update RelatedItem enum to support SSM Automation + +## __Amazon EventBridge__ + - ### Features + - Documentation updates for EventBridge + +## __Synthetics__ + - ### Features + - Adding names parameters to the Describe APIs. + +# __2.17.124__ __2022-02-04__ +## __AWS Lake Formation__ + - ### Features + - Add support for calling Update Table Objects without a TransactionId. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Athena__ + - ### Features + - You can now optionally specify the account ID that you expect to be the owner of your query results output location bucket in Athena. If the account ID of the query results bucket owner does not match the specified account ID, attempts to output to the bucket will fail with an S3 permissions error. + +## __Amazon Relational Database Service__ + - ### Features + - updates for RDS Custom for Oracle 12.1 support + +# __2.17.123__ __2022-02-03__ +## __AWS RoboMaker__ + - ### Features + - The release deprecates the use various APIs of RoboMaker Deployment Service in favor of AWS IoT GreenGrass v2.0. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSMarketplace Metering__ + - ### Features + - Add CustomerAWSAccountId to ResolveCustomer API response and increase UsageAllocation limit to 2500. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - adds support for AMIs in Recycle Bin + +## __Amazon Recycle Bin__ + - ### Features + - Add EC2 Image recycle bin support. + +# __2.17.122__ __2022-02-02__ +## __AWS Cost Explorer Service__ + - ### Features + - Doc-only update for Cost Explorer API that adds INVOICING_ENTITY dimensions + +## __AWS Fault Injection Simulator__ + - ### Features + - Added GetTargetResourceType and ListTargetResourceTypesAPI actions. These actions return additional details about resource types and parameters that can be targeted by FIS actions. Added a parameters field for the targets that can be specified in experiment templates. + +## __AWS Glue__ + - ### Features + - Launch Protobuf support for AWS Glue Schema Registry + +## __AWS IoT__ + - ### Features + - This release adds support for configuring AWS IoT logging level per client ID, source IP, or principal ID. + +## __AWS SDK for Java v2__ + - ### Features + - Add new AsyncResponseTransformer: toPublisher(). This transformer makes it more convenient for users to directly consume a streaming-response payload (i.e., S3 GetObject) with async clients. This also allows users of Reactor/RxJava to more easily consume a streaming response (e.g., via Flux#from(Publisher)). + - Only include non-null Extended Request IDs in exception messages + + - ### Documentations + - Improve documentation & add warnings for FUTURE_COMPLETION_EXECUTOR + +## __Amazon Appflow__ + - ### Features + - Launching Amazon AppFlow Custom Connector SDK. + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports sharing and importing custom trained models from one AWS account to another within the same region. + +## __Amazon DynamoDB__ + - ### Features + - Documentation update for DynamoDB Java SDK. + +## __Amazon EMR__ + - ### Features + - Documentation updates for Amazon EMR. + +## __Amazon ElastiCache__ + - ### Features + - Documentation update for AWS ElastiCache + +## __Amazon Elasticsearch Service__ + - ### Features + - Allows customers to get progress updates for blue/green deployments + +## __Amazon Personalize__ + - ### Features + - Adding minRecommendationRequestsPerSecond attribute to recommender APIs. + +# __2.17.121__ __2022-01-28__ +## __AWS AppConfig Data__ + - ### Features + - Documentation updates for AWS AppConfig Data. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Secrets Manager__ + - ### Features + - Feature are ready to release on Jan 28th + +## __Amazon AppConfig__ + - ### Features + - Documentation updates for AWS AppConfig + +## __Amazon Athena__ + - ### Features + - This release adds a field, AthenaError, to the GetQueryExecution response object when a query fails. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Doc updates for Cognito user pools API Reference. + +## __Amazon SageMaker Service__ + - ### Features + - This release added a new NNA accelerator compilation support for Sagemaker Neo. + +# __2.17.120__ __2022-01-27__ +## __AWS Amplify__ + - ### Features + - Doc only update to the description of basicauthcredentials to describe the required encoding and format. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for configuring a custom chat duration when starting a new chat session via the StartChatContact API. The default value for chat duration is 25 hours, minimum configurable value is 1 hour (60 minutes) and maximum configurable value is 7 days (10,080 minutes). + +## __Amazon Elastic Compute Cloud__ + - ### Features + - X2ezn instances are powered by Intel Cascade Lake CPUs that deliver turbo all core frequency of up to 4.5 GHz and up to 100 Gbps of networking bandwidth + +## __Amazon OpenSearch Service__ + - ### Features + - Allows customers to get progress updates for blue/green deployments + +## __Managed Streaming for Kafka__ + - ### Features + - Amazon MSK has updated the CreateCluster and UpdateBrokerStorage API that allows you to specify volume throughput during cluster creation and broker volume updates. + +# __2.17.119__ __2022-01-26__ +## __AWS SecurityHub__ + - ### Features + - Adding top level Sample boolean field + +## __Amazon CodeGuru Reviewer__ + - ### Features + - Added failure state and adjusted timeout in waiter + +## __Amazon Elastic Block Store__ + - ### Features + - Documentation updates for Amazon EBS Direct APIs. + +## __Amazon Fraud Detector__ + - ### Features + - Added new APIs for viewing past predictions and obtaining prediction metadata including prediction explanations: ListEventPredictions and GetEventPredictionMetadata + +## __Amazon SageMaker Service__ + - ### Features + - API changes relating to Fail steps in model building pipeline and add PipelineExecutionFailureReason in PipelineExecutionSummary. + +# __2.17.118__ __2022-01-25__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for custom vocabularies to be used with Contact Lens. Custom vocabularies improve transcription accuracy for one or more specific words. + +## __Amazon Elastic File System__ + - ### Features + - Use Amazon EFS Replication to replicate your Amazon EFS file system in the AWS Region of your preference. + +## __Amazon FSx__ + - ### Features + - This release adds support for growing SSD storage capacity and growing/shrinking SSD IOPS for FSx for ONTAP file systems. + +## __Amazon GuardDuty__ + - ### Features + - Amazon GuardDuty expands threat detection coverage to protect Amazon Elastic Kubernetes Service (EKS) workloads. + +# __2.17.117__ __2022-01-24__ +## __AWS Route53 Recovery Readiness__ + - ### Features + - Updated documentation for Route53 Recovery Readiness APIs. + +# __2.17.116__ __2022-01-21__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for 4K AV1 output resolutions & 10-bit AV1 color, the ability to ingest sidecar Dolby Vision XML metadata files, and the ability to flag WebVTT and IMSC tracks for accessibility in HLS. + +## __Amazon Transcribe Service__ + - ### Features + - Add support for granular PIIEntityTypes when using Batch ContentRedaction. + +# __2.17.115__ __2022-01-20__ +## __AWS Fault Injection Simulator__ + - ### Features + - Added action startTime and action endTime timestamp fields to the ExperimentAction object + +## __AWS MediaTailor__ + - ### Features + - This release adds support for multiple Segment Delivery Configurations. Users can provide a list of names and URLs when creating or editing a source location. When retrieving content, users can send a header to choose which URL should be used to serve content. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Prevent duplicate ExecutionAttribute names and fix name for FIPS_ENDPOINT_ENABLED attribute + - sets tableSchema field when provisioning the extension context in ChainExtension#afterRead + - Contributed by: [@alvinsee](https://github.com/alvinsee) + +## __Amazon Connect Service__ + - ### Features + - This release adds tagging support for UserHierarchyGroups resource. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - C6i, M6i and R6i instances are powered by a third-generation Intel Xeon Scalable processor (Ice Lake) delivering all-core turbo frequency of 3.5 GHz + +## __Amazon GuardDuty__ + - ### Features + - Amazon GuardDuty findings now include remoteAccountDetails under AwsApiCallAction section if instance credential is exfiltrated. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Verify that the content-length header matches the content returned by the service. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@alvinsee](https://github.com/alvinsee) +# __2.17.114__ __2022-01-19__ +## __AWS EC2 Instance Connect__ + - ### Features + - Adds support for ED25519 keys. PushSSHPublicKey Availability Zone parameter is now optional. Adds EC2InstanceStateInvalidException for instances that are not running. This was previously a service exception, so this may require updating your code to handle this new exception. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed an issue where the clientName was not overridden if an SdkAsyncHttpClient instance was provided + +## __Amazon Macie 2__ + - ### Features + - This release of the Amazon Macie API introduces stricter validation of requests to create custom data identifiers. + +# __2.17.113__ __2022-01-18__ +## __AWS CloudTrail__ + - ### Features + - This release fixes a documentation bug in the description for the readOnly field selector in advanced event selectors. The description now clarifies that users omit the readOnly field selector to select both Read and Write management events. + +## __AWS Storage Gateway__ + - ### Features + - Documentation update for adding bandwidth throttling support for S3 File Gateways. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add support for AWS Client VPN client login banner and session timeout. + +## __Amazon Interactive Video Service__ + - ### Features + - This release adds support for the new Thumbnail Configuration property for Recording Configurations. For more information see https://docs.aws.amazon.com/ivs/latest/userguide/record-to-s3.html + +## __Amazon Location Service__ + - ### Features + - This release adds the CalculateRouteMatrix API which calculates routes for the provided departure and destination positions. The release also deprecates the use of pricing plan across all verticals. + +# __2.17.112__ __2022-01-14__ +## __AWS Config__ + - ### Features + - Update ResourceType enum with values for CodeDeploy, EC2 and Kinesis resources + +## __AWS Resource Access Manager__ + - ### Features + - This release adds the ListPermissionVersions API which lists the versions for a given permission. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Do not fail with a parsing error when receiving 0-length chunk-encoded responses for XML services. + +## __Amazon CloudWatch Application Insights__ + - ### Features + - Application Insights support for Active Directory and SharePoint + +## __Amazon Honeycode__ + - ### Features + - Added read and write api support for multi-select picklist. And added errorcode field to DescribeTableDataImportJob API output, when import job fails. + +## __Amazon Lookout for Metrics__ + - ### Features + - This release adds a new DeactivateAnomalyDetector API operation. + +# __2.17.111__ __2022-01-13__ +## __AWS Glue__ + - ### Features + - This SDK release adds support to pass run properties when starting a workflow run + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon ElastiCache__ + - ### Features + - AWS ElastiCache for Redis has added a new Engine Log LogType in LogDelivery feature. You can now publish the Engine Log from your Amazon ElastiCache for Redis clusters to Amazon CloudWatch Logs and Amazon Kinesis Data Firehose. + +## __Amazon Lex Runtime V2__ + - ### Features + - This release adds support for sending hints to Amazon Lex V2 runtime APIs. Bot developers can provide runtime hints to help improve the recognition of slot values. + +## __Amazon Pinpoint__ + - ### Features + - Adds JourneyChannelSettings to WriteJourneyRequest + +## __Amazon S3__ + - ### Bugfixes + - Retry on InternalError error code, which fixes an issue where 200s followed by a failure were not retried. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - AWS Systems Manager adds category support for DescribeDocument API + +## __AmazonNimbleStudio__ + - ### Features + - Amazon Nimble Studio now supports validation for Launch Profiles. Launch Profiles now report static validation results after create/update to detect errors in network or active directory configuration. + +## __Apache HTTP Client__ + - ### Bugfixes + - Do not reuse connections that receive a 5xx service response. + +# __2.17.110__ __2022-01-12__ +## __AWS Performance Insights__ + - ### Features + - This release adds three Performance Insights APIs. Use ListAvailableResourceMetrics to get available metrics, GetResourceMetadata to get feature metadata, and ListAvailableResourceDimensions to list available dimensions. The AdditionalMetrics field in DescribeDimensionKeys retrieves per-SQL metrics. + +## __Amazon ElastiCache__ + - ### Features + - Doc only update for ElastiCache + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Hpc6a instances are powered by a third-generation AMD EPYC processors (Milan) delivering all-core turbo frequency of 3.4 GHz + +## __Amazon Honeycode__ + - ### Features + - Honeycode is releasing new APIs to allow user to create, delete and list tags on resources. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release adds support for Custom vocabulary in Amazon Lex V2 APIs for model building. Customers can give Amazon Lex V2 more information about how to process audio conversations with a bot by creating a custom vocabulary in a specific language. + +## __Firewall Management Service__ + - ### Features + - Shield Advanced policies for Amazon CloudFront resources now support automatic application layer DDoS mitigation. The max length for SecurityServicePolicyData ManagedServiceData is now 8192 characters, instead of 4096. + +# __2.17.109__ __2022-01-11__ +## __AWS Cost Explorer Service__ + - ### Features + - Doc only update for Cost Explorer API that fixes missing clarifications for MatchOptions definitions + +## __AWS IoT Events Data__ + - ### Features + - This release provides documentation updates for Timer.timestamp in the IoT Events API Reference Guide. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix an issue where the error response handler is not set for eventstream operations on XML services, for example `SelectObjectContent` for Amazon S3. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports advanced query language and query-less search. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - EC2 Capacity Reservations now supports RHEL instance platforms (RHEL with SQL Server Standard, RHEL with SQL Server Enterprise, RHEL with SQL Server Web, RHEL with HA, RHEL with HA and SQL Server Standard, RHEL with HA and SQL Server Enterprise) + +## __Amazon Relational Database Service__ + - ### Features + - This release adds the db-proxy event type to support subscribing to RDS Proxy events. + +## __Amazon WorkSpaces__ + - ### Features + - Introducing new APIs for Workspaces audio optimization with Amazon Connect: CreateConnectClientAddIn, DescribeConnectClientAddIns, UpdateConnectClientAddIn and DeleteConnectClientAddIn. + +## __FinSpace Public API__ + - ### Features + - Documentation updates for FinSpace. + +# __2.17.108__ __2022-01-10__ +## __AWS Compute Optimizer__ + - ### Features + - Adds support for new Compute Optimizer capability that makes it easier for customers to optimize their EC2 instances by leveraging multiple CPU architectures. + +## __AWS Glue DataBrew__ + - ### Features + - This SDK release adds support for specifying a Bucket Owner for an S3 location. + +## __AWS SDK for Java v2__ + - ### Features + - Bump up jackson version `2.12.3` -> `2.13.1` + +## __Amazon Elastic Compute Cloud__ + - ### Features + - New feature: Updated EC2 API to support faster launching for Windows images. Optimized images are pre-provisioned, using snapshots to launch instances up to 65% faster. + +## __Amazon Lookout for Metrics__ + - ### Features + - This release adds FailureType in the response of DescribeAnomalyDetector. + +## __Amazon Transcribe Service__ + - ### Features + - Documentation updates for Amazon Transcribe. + +# __2.17.107__ __2022-01-07__ +## __AWS Elemental MediaLive__ + - ### Features + - This release adds support for selecting the Program Date Time (PDT) Clock source algorithm for HLS outputs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + - Upgrade Netty version to 4.1.72 + +# __2.17.106__ __2022-01-06__ +## __AWS AppSync__ + - ### Features + - AppSync: AWS AppSync now supports configurable batching sizes for AWS Lambda resolvers, Direct AWS Lambda resolvers and pipeline functions + +## __AWS IoT Wireless__ + - ### Features + - Downlink Queue Management feature provides APIs for customers to manage the queued messages destined to device inside AWS IoT Core for LoRaWAN. Customer can view, delete or purge the queued message(s). It allows customer to preempt the queued messages and let more urgent messages go through. + +## __AWS MediaTailor__ + - ### Features + - This release adds support for filler slate when updating MediaTailor channels that use the linear playback mode. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release introduces On-Demand Capacity Reservation support for Cluster Placement Groups, adds Tags on instance Metadata, and includes documentation updates for Amazon EC2. + +## __Amazon Elasticsearch Service__ + - ### Features + - Amazon OpenSearch Service adds support for Fine Grained Access Control for existing domains running Elasticsearch version 6.7 and above + +## __Amazon OpenSearch Service__ + - ### Features + - Amazon OpenSearch Service adds support for Fine Grained Access Control for existing domains running Elasticsearch version 6.7 and above + +## __AmazonMWAA__ + - ### Features + - This release adds a "Source" field that provides the initiator of an update, such as due to an automated patch from AWS or due to modification via Console or API. + +# __2.17.105__ __2022-01-05__ +## __AWS CloudTrail__ + - ### Features + - This release adds support for CloudTrail Lake, a new feature that lets you run SQL-based queries on events that you have aggregated into event data stores. New APIs have been added for creating and managing event data stores, and creating, running, and managing queries in CloudTrail Lake. + +## __AWS Glue__ + - ### Features + - Add Delta Lake target support for Glue Crawler and 3rd Party Support for Lake Formation + +## __AWS IoT__ + - ### Features + - This release adds an automatic retry mechanism for AWS IoT Jobs. You can now define a maximum number of retries for each Job rollout, along with the criteria to trigger the retry for FAILED/TIMED_OUT/ALL(both FAILED an TIMED_OUT) job. + +## __AWS Lake Formation__ + - ### Features + - Add new APIs for 3rd Party Support for Lake Formation + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Log request ID and extended request ID with the request logger and requestId logger. See [#2876](https://github.com/aws/aws-sdk-java-v2/issues/2876) + +## __Amazon AppStream__ + - ### Features + - Includes APIs for App Entitlement management regarding entitlement and entitled application association. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation update for ticket fixes. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new API called ModifyVpcEndpointServicePayerResponsibility which allows VPC endpoint service owners to take payer responsibility of their VPC Endpoint connections. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Amazon EKS now supports running applications using IPv6 address space + +## __Amazon Import/Export Snowball__ + - ### Features + - Updating validation rules for interfaces used in the Snowball API to tighten security of service. + +## __Amazon QuickSight__ + - ### Features + - Multiple Doc-only updates for Amazon QuickSight. + +## __Amazon S3__ + - ### Features + - Add support for `SelectObjectContent`. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker now supports running training jobs on ml.g5 instance types. + +# __2.17.104__ __2022-01-04__ +## __AWS S3 Control__ + - ### Features + - Documentation updates for the renaming of Glacier to Glacier Flexible Retrieval. + +## __Amazon Rekognition__ + - ### Features + - This release introduces a new field IndexFacesModelVersion, which is the version of the face detect and storage model that was used when indexing the face vector. + +## __Amazon Simple Storage Service__ + - ### Features + - Minor doc-based updates based on feedback bugs received. + +# __2.17.103__ __2022-01-03__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added strength levels to the Sharpness Filter and now permits OGG files to be specified as sidecar audio inputs. + +## __AWS IoT Greengrass V2__ + - ### Features + - This release adds the API operations to manage the Greengrass role associated with your account and to manage the core device connectivity information. Greengrass V2 customers can now depend solely on Greengrass V2 SDK for all the API operations needed to manage their fleets. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Add null check for nonProxyHosts in Apache HTTP Client ProxyConfiguration. + +## __Amazon Detective__ + - ### Features + - Added and updated API operations to support the Detective integration with AWS Organizations. New actions are used to manage the delegated administrator account and the integration configuration. + +## __Amazon Relational Database Service__ + - ### Features + - Multiple doc-only updates for Relational Database Service (RDS) + +## __Amazon SageMaker Service__ + - ### Features + - The release allows users to pass pipeline definitions as Amazon S3 locations and control the pipeline execution concurrency using ParallelismConfiguration. It also adds support of EMR jobs as pipeline steps. + +## __Apache HTTP Client__ + - ### Bugfixes + - Stop auto-enabling TLS protocol versions + +# __2.17.102__ __2021-12-21__ +## __AWS MediaConnect__ + - ### Features + - You can now use the Fujitsu-QoS protocol for your MediaConnect sources and outputs to transport content to and from Fujitsu devices. + +## __AWS SDK for Java v2__ + - ### Features + - Updated SDK default configurations. + - Updated service endpoint metadata. + +## __AWS Transfer Family__ + - ### Features + - Property for Transfer Family used with the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. + +## __Amazon Chime SDK Messaging__ + - ### Features + - The Amazon Chime SDK now supports updating message attributes via channel flows + +## __Amazon Lookout for Metrics__ + - ### Features + - This release adds support for Causal Relationships. Added new ListAnomalyGroupRelatedMetrics API operation and InterMetricImpactDetails API data type + +## __Amazon QLDB__ + - ### Features + - Amazon QLDB now supports journal exports in JSON and Ion Binary formats. This release adds an optional OutputFormat parameter to the ExportJournalToS3 API. + +## __Amazon WorkMail__ + - ### Features + - This release allows customers to change their email monitoring configuration in Amazon WorkMail. + +## __AmazonNimbleStudio__ + - ### Features + - Amazon Nimble Studio adds support for users to upload files during a streaming session using NICE DCV native client or browser. + +## __EC2 Image Builder__ + - ### Features + - Added a note to infrastructure configuration actions and data types concerning delivery of Image Builder event messages to encrypted SNS topics. The key that's used to encrypt the SNS topic must reside in the account that Image Builder runs under. + +# __2.17.101__ __2021-12-20__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports FSx Lustre Locations. + +## __AWS SDK for Java v2__ + - ### Features + - Introduce a defaults mode configuration that determines how certain default configuration options are resolved in the SDK. See `DefaultsMode` for more information. + - Updated SDK default configurations. + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - Added new resource details objects to ASFF, including resources for Firewall, and RuleGroup, FirewallPolicy Added additional details for AutoScalingGroup, LaunchConfiguration, and S3 buckets. + +## __Amazon API Gateway__ + - ### Features + - Documentation updates for Amazon API Gateway + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release adds an optional parameter, ObjectTypeNames to the PutIntegration API to support multiple object types per integration option. Besides, this release introduces Standard Order Objects which contain data from third party systems and each order object belongs to a specific profile. + +## __Amazon DevOps Guru__ + - ### Features + - Adds Tags support to DescribeOrganizationResourceCollectionHealth + +## __Amazon Forecast Service__ + - ### Features + - Adds ForecastDimensions field to the DescribeAutoPredictorResponse + +## __Amazon Location Service__ + - ### Features + - Making PricingPlan optional as part of create resource API. + +## __Amazon Redshift__ + - ### Features + - This release adds API support for managed Redshift datashares. Customers can now interact with a Redshift datashare that is managed by a different service, such as AWS Data Exchange. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds a new ContentType field in AutoMLChannel for SageMaker CreateAutoMLJob InputDataConfig. + +## __Apache HTTP Client__ + - ### Features + - Add "ConcurrencyAcquireDuration" metric for apache-client + +## __EC2 Image Builder__ + - ### Features + - This release adds support for importing and exporting VM Images as part of the Image Creation workflow via EC2 VM Import/Export. + +## __FinSpace Public API__ + - ### Features + - Make dataset description optional and allow s3 export for dataviews + +## __Metrics__ + - ### Features + - Add pretty-format support to LoggingMetricPublisher + +## __Netty NIO HTTP Client__ + - ### Features + - If `tlsNegotiationTimeout` is not configured, it will be set to the resolved `connectionTimeout`. By default, `tlsNegotiationTimeout` is now 2s instead of 10s + + - ### Bugfixes + - Ensure in-use channels are not incorrectly closed + +# __2.17.100__ __2021-12-13__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Make `ProcessCredentialsProvider` closeable, so that the internal credentials cache (which may be async and need to be closed) can be closed. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __Netty NIO HTTP Client__ + - ### Features + - Add "ConcurrencyAcquireDuration" metric for netty-nio-client + +# __2.17.99__ __2021-12-09__ +## __AWS Network Firewall__ + - ### Features + - This release adds support for managed rule groups. + +## __AWS Route53 Recovery Control Config__ + - ### Features + - This release adds tagging supports to Route53 Recovery Control Configuration. New APIs: TagResource, UntagResource and ListTagsForResource. Updates: add optional field `tags` to support tagging while calling CreateCluster, CreateControlPanel and CreateSafetyRule. + +## __AWS Savings Plans__ + - ### Features + - Adds the ability to specify Savings Plans hourly commitments using five digits after the decimal point. + +## __AWS Server Migration Service__ + - ### Features + - This release adds SMS discontinuation information to the API and CLI references. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds waiters support for internet gateways. + +## __Amazon Lex Model Building V2__ + - ### Features + - Added support for grammar slot type in Amazon Lex. You can author your own grammar in the XML format per the SRGS specification to collect information in a conversation. + +## __Amazon Route 53 Domains__ + - ### Features + - Amazon Route 53 domain registration APIs now support filtering and sorting in the ListDomains API, deleting a domain by using the DeleteDomain API and getting domain pricing information by using the ListPrices API. + +# __2.17.98__ __2021-12-08__ +## __AWS Comprehend Medical__ + - ### Features + - This release adds a new set of APIs (synchronous and batch) to support the SNOMED-CT ontology. + +## __AWS Health APIs and Notifications__ + - ### Features + - Documentation updates for AWS Health + +## __AWS IoT__ + - ### Features + - This release allows customer to enable caching of custom authorizer on HTTP protocol for clients that use persistent or Keep-Alive connection in order to reduce the number of Lambda invocations. + +## __AWS Outposts__ + - ### Features + - This release adds the UpdateOutpost API. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Support__ + - ### Features + - Documentation updates for AWS Support. + +## __Amazon CloudWatch Logs__ + - ### Features + - This release adds AWS Organizations support as condition key in destination policy for cross account Subscriptions in CloudWatch Logs. + +## __Amazon Lookout for Vision__ + - ### Features + - This release adds new APIs for packaging an Amazon Lookout for Vision model as an AWS IoT Greengrass component. + +## __Amazon SageMaker Service__ + - ### Features + - This release added a new Ambarella device(amba_cv2) compilation support for Sagemaker Neo. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Ensure initial channel used for protocol detection is released before re-acquiring + +# __2.17.97__ __2021-12-06__ +## __AWS AppSync__ + - ### Features + - AWS AppSync now supports custom domain names, allowing you to associate a domain name that you own with an AppSync API in your account. + +## __Amazon Location Service__ + - ### Features + - This release adds support for Accuracy position filtering, position metadata and autocomplete for addresses and points of interest based on partial or misspelled free-form text. + +## __Amazon Route 53__ + - ### Features + - Add PriorRequestNotComplete exception to UpdateHostedZoneComment API + +## __Amazon S3__ + - ### Bugfixes + - Fixed an issue that resulted in a NullPointerException when an invalid or global region was used on an S3 client. Fixes [#2885](https://github.com/aws/aws-sdk-java-v2/issues/2885). + +## __URL Connection Http Client__ + - ### Features + - Lower memory consumption for HTTP requests by enabling fixed-length streaming mode. + - Contributed by: [@rtyley](https://github.com/rtyley) + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@rtyley](https://github.com/rtyley) +# __2.17.96__ __2021-12-03__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix to set TokenBucket capacity correctly when requested amount greater than capacity + +## __Amazon Rekognition__ + - ### Features + - This release added new KnownGender types for Celebrity Recognition. + +# __2.17.95__ __2021-12-02__ +## __AWS Amplify UI Builder__ + - ### Features + - This release introduces the actions and data types for the new Amplify UI Builder API. The Amplify UI Builder API provides a programmatic interface for creating and configuring user interface (UI) component libraries and themes for use in Amplify applications. + +## __AWS Network Manager__ + - ### Features + - This release adds API support for AWS Cloud WAN. + +## __AWS Resource Access Manager__ + - ### Features + - This release adds the ability to use the new ResourceRegionScope parameter on List operations that return lists of resources or resource types. This new parameter filters the results by letting you differentiate between global or regional resource types. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Complete the future returned by SdkPublisher.subscribe or filter exceptionally if the subscriber or predicate throws an exception. + +# __2.17.94__ __2021-12-01__ +## __AWS Direct Connect__ + - ### Features + - Adds SiteLink support to private and transit virtual interfaces. SiteLink is a new Direct Connect feature that allows routing between Direct Connect points of presence. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Shield__ + - ### Features + - This release adds API support for Automatic Application Layer DDoS Mitigation for AWS Shield Advanced. Customers can now enable automatic DDoS mitigation in count or block mode for layer 7 protected resources. + +## __AWSKendraFrontendService__ + - ### Features + - Experience Builder allows customers to build search applications without writing code. Analytics Dashboard provides quality and usability metrics for Kendra indexes. Custom Document Enrichment allows customers to build a custom ingestion pipeline to pre-process documents and generate metadata. + +## __Amazon DevOps Guru__ + - ### Features + - DevOps Guru now provides detailed, database-specific analyses of performance issues and recommends corrective actions for Amazon Aurora database instances with Performance Insights turned on. You can also use AWS tags to choose which resources to analyze and define your applications. + +## __Amazon DynamoDB__ + - ### Features + - Add support for Table Classes and introduce the Standard Infrequent Access table class. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Amazon VPC IP Address Manager (IPAM), which enables you to plan, track, and monitor IP addresses for your workloads. This release also adds support for VPC Network Access Analyzer, which enables you to analyze network access to resources in your Virtual Private Clouds. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release introduces a new feature, Automated Chatbot Designer, that helps customers automatically create a bot design from existing conversation transcripts. The feature uses machine learning to discover most common intents and the information needed to fulfill them. + +## __Amazon SageMaker Runtime__ + - ### Features + - Adding new exception types for InvokeEndpoint + +## __Amazon SageMaker Service__ + - ### Features + - This release enables - 1/ Inference endpoint configuration recommendations and ability to run custom load tests to meet performance needs. 2/ Deploy serverless inference endpoints. 3/ Query, filter and retrieve end-to-end ML lineage graph, and incorporate model quality/bias detection in ML workflow. + +# __2.17.93__ __2021-11-30__ +## __AWS Backup Gateway__ + - ### Features + - Initial release of AWS Backup gateway which enables you to centralize and automate protection of on-premises VMware and VMware Cloud on AWS workloads using AWS Backup. + +## __AWS Glue__ + - ### Features + - Support for DataLake transactions + +## __AWS IoT__ + - ### Features + - Added the ability to enable/disable IoT Fleet Indexing for Device Defender and Named Shadow information, and search them through IoT Fleet Indexing APIs. + +## __AWS IoT TwinMaker__ + - ### Features + - AWS IoT TwinMaker makes it faster and easier to create, visualize and monitor digital twins of real-world systems like buildings, factories and industrial equipment to optimize operations. Learn more: https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/Welcome.html (New Service) (Preview) + +## __AWS Lake Formation__ + - ### Features + - This release adds support for row and cell-based access control in Lake Formation. It also adds support for Lake Formation Governed Tables, which support ACID transactions and automatic storage optimizations. + +## __AWS Outposts__ + - ### Features + - This release adds the SupportedHardwareType parameter to CreateOutpost. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Storage Gateway__ + - ### Features + - Added gateway type VTL_SNOW. Added new SNOWBALL HostEnvironment for gateways running on a Snowball device. Added new field HostEnvironmentId to serve as an identifier for the HostEnvironment on which the gateway is running. + +## __Access Analyzer__ + - ### Features + - AWS IAM Access Analyzer now supports policy validation for resource policies attached to S3 buckets and access points. You can run additional policy checks by specifying the S3 resource type you want to attach to your resource policy. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Is4gen and Im4gn instances. This release also adds a new subnet attribute, enableLniAtDeviceIndex, to support local network interfaces, which are logical networking components that connect an EC2 instance to your on-premises network. + +## __Amazon FSx__ + - ### Features + - This release adds support for the FSx for OpenZFS file system type, FSx for Lustre file systems with the Persistent_2 deployment type, and FSx for Lustre file systems with Amazon S3 data repository associations and automatic export policies. + +## __Amazon Import/Export Snowball__ + - ### Features + - Tapeball is to integrate tape gateway onto snowball, it enables customer to transfer local data on the tape to snowball,and then ingest the data into tape gateway on the cloud. + +## __Amazon Kinesis__ + - ### Features + - Amazon Kinesis Data Streams now supports on demand streams. + +## __Amazon Simple Storage Service__ + - ### Features + - Introduce Amazon S3 Glacier Instant Retrieval storage class and a new setting in S3 Object Ownership to disable ACLs for bucket and the objects in it. + +## __Amazon WorkSpaces Web__ + - ### Features + - This is the initial SDK release for Amazon WorkSpaces Web. Amazon WorkSpaces Web is a low-cost, fully managed WorkSpace built to deliver secure web-based workloads and software-as-a-service (SaaS) application access to users within existing web browsers. + +## __Managed Streaming for Kafka__ + - ### Features + - This release adds three new V2 APIs. CreateClusterV2 for creating both provisioned and serverless clusters. DescribeClusterV2 for getting information about provisioned and serverless clusters and ListClustersV2 for listing all clusters (both provisioned and serverless) in your account. + +## __Redshift Data API Service__ + - ### Features + - Data API now supports serverless queries. + +# __2.17.92__ __2021-11-29__ +## __AWS Compute Optimizer__ + - ### Features + - Adds support for the enhanced infrastructure metrics paid feature. Also adds support for two new sets of resource efficiency metrics, including savings opportunity metrics and performance improvement opportunity metrics. + +## __AWS Data Exchange__ + - ### Features + - This release enables providers and subscribers to use Data Set, Job, and Asset operations to work with API assets from Amazon API Gateway. In addition, this release enables subscribers to use the SendApiAsset operation to invoke a provider's Amazon API Gateway API that they are entitled to. + +## __AWS IoT SiteWise__ + - ### Features + - AWS IoT SiteWise now supports retention configuration for the hot tier storage. + +## __AWS Well-Architected Tool__ + - ### Features + - This update provides support for Well-Architected API users to use custom lens features. + +## __Amazon CloudWatch Evidently__ + - ### Features + - Introducing Amazon CloudWatch Evidently. This is the first public release of Amazon CloudWatch Evidently. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release adds supports for pull through cache rules and enhanced scanning. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for G5g and M6a instances. This release also adds support for Amazon EBS Snapshots Archive, a feature that enables you to archive your EBS snapshots; and Recycle Bin, a feature that enables you to protect your EBS snapshots against accidental deletion. + +## __Amazon Recycle Bin__ + - ### Features + - This release adds support for Recycle Bin. + +## __Amazon Simple Storage Service__ + - ### Features + - Amazon S3 Event Notifications adds Amazon EventBridge as a destination and supports additional event types. The PutBucketNotificationConfiguration API can now skip validation of Amazon SQS, Amazon SNS and AWS Lambda destinations. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Added two new attributes to DescribeInstanceInformation called SourceId and SourceType along with new string filters SourceIds and SourceTypes to filter instance records. + +## __CloudWatch RUM__ + - ### Features + - This is the first public release of CloudWatch RUM + +## __Inspector2__ + - ### Features + - This release adds support for the new Amazon Inspector API. The new Amazon Inspector can automatically discover and scan Amazon EC2 instances and Amazon ECR container images for software vulnerabilities and unintended network exposure, and report centralized findings across multiple AWS accounts. + +# __2.17.91__ __2021-11-28__ +## __AWS Migration Hub Refactor Spaces__ + - ### Features + - This is the initial SDK release for AWS Migration Hub Refactor Spaces + +## __Amazon Personalize__ + - ### Features + - This release adds API support for Recommenders and BatchSegmentJobs. + +## __Amazon Personalize Runtime__ + - ### Features + - This release adds inference support for Recommenders. + +## __Amazon Textract__ + - ### Features + - This release adds support for synchronously analyzing identity documents through a new API: AnalyzeID + +# __2.17.90__ __2021-11-26__ +## __AWS IoT Core Device Advisor__ + - ### Features + - Documentation update for Device Advisor GetEndpoint API + +## __AWS Outposts__ + - ### Features + - This release adds new APIs for working with Outpost sites and orders. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2. + +## __Amazon Pinpoint__ + - ### Features + - Added a One-Time Password (OTP) management feature. You can use the Amazon Pinpoint API to generate OTP codes and send them to your users as SMS messages. Your apps can then call the API to verify the OTP codes that your users input + +## __Application Migration Service__ + - ### Features + - Application Migration Service now supports an additional replication method that does not require agent installation on each source server. This option is available for source servers running on VMware vCenter versions 6.7 and 7.0. + +## __Auto Scaling__ + - ### Features + - Documentation updates for Amazon EC2 Auto Scaling. + +# __2.17.89__ __2021-11-24__ +## __AWS IoT SiteWise__ + - ### Features + - AWS IoT SiteWise now accepts data streams that aren't associated with any asset properties. You can organize data by updating data stream associations. + +## __AWS Lambda__ + - ### Features + - Remove Lambda function url apis + +## __AWS Proton__ + - ### Features + - This release adds APIs for getting the outputs and provisioned stacks for Environments, Pipelines, and ServiceInstances. You can now add tags to EnvironmentAccountConnections. It also adds APIs for working with PR-based provisioning. Also, it adds APIs for syncing templates with a git repository. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release introduces a new auto-merging feature for profile matching. The auto-merging configurations can be set via CreateDomain API or UpdateDomain API. You can use GetIdentityResolutionJob API and ListIdentityResolutionJobs API to fetch job status. + +## __Amazon ElastiCache__ + - ### Features + - Doc only update for ElastiCache + +## __Amazon Timestream Query__ + - ### Features + - Releasing Amazon Timestream Scheduled Queries. It makes real-time analytics more performant and cost-effective for customers by calculating and storing frequently accessed aggregates, and other computations, typically used in operational dashboards, business reports, and other analytics applications + +## __Amazon Timestream Write__ + - ### Features + - This release adds support for multi-measure records and magnetic store writes. Multi-measure records allow customers to store multiple measures in a single table row. Magnetic store writes enable customers to write late arrival data (data with timestamp in the past) directly into the magnetic store. + +## __Amazon Translate__ + - ### Features + - This release enables customers to use translation settings to mask profane words and phrases in their translation output. + +## __Auto Scaling__ + - ### Features + - Customers can now configure predictive scaling policies to proactively scale EC2 Auto Scaling groups based on any CloudWatch metrics that more accurately represent the load on the group than the four predefined metrics. They can also use math expressions to further customize the metrics. + +## __EC2 Image Builder__ + - ### Features + - This release adds support for sharing AMIs with Organizations within an EC2 Image Builder Distribution Configuration. + +# __2.17.88__ __2021-11-23__ +## __AWS Backup__ + - ### Features + - This release adds new opt-in settings for advanced features for DynamoDB backups + +## __AWS IoT__ + - ### Features + - This release introduces a new feature, Managed Job Template, for AWS IoT Jobs Service. Customers can now use service provided managed job templates to easily create jobs for supported standard job actions. + +## __AWS IoT Core Device Advisor__ + - ### Features + - This release introduces a new feature for Device Advisor: ability to execute multiple test suites in parallel for given customer account. You can use GetEndpoint API to get the device-level test endpoint and call StartSuiteRun with "parallelRun=true" to run suites in parallel. + +## __AWS IoT Wireless__ + - ### Features + - Two new APIs, GetNetworkAnalyzerConfiguration and UpdateNetworkAnalyzerConfiguration, are added for the newly released Network Analyzer feature which enables customers to view real-time frame information and logs from LoRaWAN devices and gateways. + +## __AWS Lambda__ + - ### Features + - Release Lambda event source filtering for SQS, Kinesis Streams, and DynamoDB Streams. + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for AWS Security Token Service. + +## __Amazon DynamoDB__ + - ### Features + - DynamoDB PartiQL now supports ReturnConsumedCapacity, which returns capacity units consumed by PartiQL APIs if the request specified returnConsumedCapacity parameter. PartiQL APIs include ExecuteStatement, BatchExecuteStatement, and ExecuteTransaction. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation update for ARM support on Amazon ECS. + +## __Amazon ElastiCache__ + - ### Features + - Adding support for r6gd instances for Redis with data tiering. In a cluster with data tiering enabled, when available memory capacity is exhausted, the least recently used data is automatically tiered to solid state drives for cost-effective capacity scaling with minimal performance impact. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new parameter ipv6Native to the allow creation of IPv6-only subnets using the CreateSubnet operation, and the operation ModifySubnetAttribute includes new parameters to modify subnet attributes to use resource-based naming and enable DNS resolutions for Private DNS name. + +## __Amazon Macie 2__ + - ### Features + - Documentation updates for Amazon Macie + +## __Amazon OpenSearch Service__ + - ### Features + - This release adds an optional parameter dry-run for the UpdateDomainConfig API to perform basic validation checks, and detect the deployment type that will be required for the configuration change, without actually applying the change. + +## __Amazon Redshift__ + - ### Features + - This release adds support for reserved node exchange with restore/resize + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for Multi-AZ DB clusters for RDS for MySQL and RDS for PostgreSQL. + +## __Amazon Simple Queue Service__ + - ### Features + - Amazon SQS adds a new queue attribute, SqsManagedSseEnabled, which enables server-side queue encryption using SQS owned encryption keys. + +## __Amazon Simple Storage Service__ + - ### Features + - Introduce two new Filters to S3 Lifecycle configurations - ObjectSizeGreaterThan and ObjectSizeLessThan. Introduce a new way to trigger actions on noncurrent versions by providing the number of newer noncurrent versions along with noncurrent days. + +## __Amazon WorkSpaces__ + - ### Features + - Documentation updates for Amazon WorkSpaces + +## __Elastic Load Balancing__ + - ### Features + - This release allows you to create internal Application and Network Load Balancers in dualstack mode. This release also adds an attribute to block internet gateway (IGW) access to the load balancer, preventing unintended access to your internal load balancers through an internet gateway. + +## __FinSpace Public API__ + - ### Features + - Update documentation for createChangeset API. + +# __2.17.87__ __2021-11-22__ +## __AWS CloudFormation__ + - ### Features + - This release include SDK changes for the feature launch of Stack Import to Service Managed StackSet. + +## __AWS Database Migration Service__ + - ### Features + - Added new S3 endpoint settings to allow to convert the current UTC time into a specified time zone when a date partition folder is created. Using with 'DatePartitionedEnabled'. + +## __AWS S3 Control__ + - ### Features + - Added Amazon CloudWatch publishing option for S3 Storage Lens metrics. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Adds all fields in RequestOverrideConfiguration when a builder is created from an instance + +## __Amazon Chime SDK Meetings__ + - ### Features + - Added new APIs for enabling Echo Reduction with Voice Focus. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for UpdateContactFlowMetadata, DeleteContactFlow and module APIs. For details, see the Release Notes in the Amazon Connect Administrator Guide. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding missing exceptions to RegisterCluster operation + +## __Amazon Elasticsearch Service__ + - ### Features + - This release adds an optional parameter dry-run for the UpdateElasticsearchDomainConfig API to perform basic validation checks, and detect the deployment type that will be required for the configuration change, without actually applying the change. + +## __Amazon QuickSight__ + - ### Features + - Add support for Exasol data source, 1 click enterprise embedding and email customization. + +## __Amazon Relational Database Service__ + - ### Features + - Adds local backup support to Amazon RDS on AWS Outposts. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Adds new parameter to CreateActivation API . This parameter is for "internal use only". + +## __Amazon Transcribe Streaming Service__ + - ### Features + - This release adds language identification support for streaming transcription. + +## __Braket__ + - ### Features + - This release adds support for Amazon Braket Hybrid Jobs. + +## __FinSpace Public API__ + - ### Features + - Add new APIs for managing Datasets, Changesets, and Dataviews. + +# __2.17.86__ __2021-11-19__ +## __AWS Batch__ + - ### Features + - Documentation updates for AWS Batch. + +## __AWS CloudFormation__ + - ### Features + - The StackSets ManagedExecution feature will allow concurrency for non-conflicting StackSet operations and queuing the StackSet operations that conflict at a given time for later execution. + +## __AWS Elemental MediaLive__ + - ### Features + - This release adds support for specifying a SCTE-35 PID on input. MediaLive now supports SCTE-35 PID selection on inputs containing one or more active SCTE-35 PIDs. + +## __AWS Lambda__ + - ### Features + - Add support for Lambda Function URLs. Customers can use Function URLs to create built-in HTTPS endpoints on their functions. + +## __Amazon AppStream__ + - ### Features + - Includes APIs for managing resources for Elastic fleets: applications, app blocks, and application-fleet associations. + +## __Amazon CloudWatch Application Insights__ + - ### Features + - Application Insights now supports monitoring for HANA + +## __Amazon Lex Runtime V2__ + - ### Features + - Now supports styled slots in Lex V2 runtime. Customers can provide inputs like "a as in apple b for beta" which will be resolved to "ab" as slot value. + +## __Amazon Redshift__ + - ### Features + - Added support of default IAM role for CreateCluster, RestoreFromClusterSnapshot and ModifyClusterIamRoles APIs + +## __DynamoDB Enhanced Client__ + - ### Features + - Adds operation type labels to each operation and propagates to the extension write context + +# __2.17.85__ __2021-11-18__ +## __AWS Audit Manager__ + - ### Features + - This release introduces a new feature for Audit Manager: Dashboard views. You can now view insights data for your active assessments, and quickly identify non-compliant evidence that needs to be remediated. + +## __AWS Glue DataBrew__ + - ### Features + - This SDK release adds the following new features: 1) PII detection in profile jobs, 2) Data quality rules, enabling validation of data quality in profile jobs, 3) SQL query-based datasets for Amazon Redshift and Snowflake data sources, and 4) Connecting DataBrew datasets with Amazon AppFlow flows. + +## __AWS Lambda__ + - ### Features + - Added support for CLIENT_CERTIFICATE_TLS_AUTH and SERVER_ROOT_CA_CERTIFICATE as SourceAccessType for MSK and Kafka event source mappings. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon AppConfig__ + - ### Features + - Add Type to support feature flag configuration profiles + +## __Amazon Chime__ + - ### Features + - Adds new Transcribe API parameters to StartMeetingTranscription, including support for content identification and redaction (PII & PHI), partial results stabilization, and custom language models. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Adds new Transcribe API parameters to StartMeetingTranscription, including support for content identification and redaction (PII & PHI), partial results stabilization, and custom language models. + +## __Amazon CloudWatch__ + - ### Features + - CloudWatch Anomaly Detection now supports anomaly detectors that use metric math as input. + +## __Amazon Forecast Service__ + - ### Features + - NEW CreateExplanability API that helps you understand how attributes such as price, promotion, etc. contributes to your forecasted values; NEW CreateAutoPredictor API that trains up to 40% more accurate forecasting model, saves up to 50% of retraining time, and provides model level explainability. + +## __Amazon Interactive Video Service__ + - ### Features + - Add APIs for retrieving stream session information and support for filtering live streams by health. For more information, see https://docs.aws.amazon.com/ivs/latest/userguide/stream-health.html + +## __Amazon Lex Model Building V2__ + - ### Features + - Added support for Polly Neural TTS (NTTS) voices. Customers can choose between 'standard' and 'neural' for Polly Engine configuration per locale when creating or updating an Amazon Lex bot. + +## __Managed Streaming for Kafka__ + - ### Features + - Amazon MSK has added a new API that allows you to update the connectivity settings for an existing cluster to enable public accessibility. + +## __Redshift Data API Service__ + - ### Features + - Rolling back Data API serverless features until dependencies are live. + +# __2.17.84__ __2021-11-17__ +## __AWS AppConfig Data__ + - ### Features + - AWS AppConfig Data is a new service that allows you to retrieve configuration deployed by AWS AppConfig. See the AppConfig user guide for more details on getting started. https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon API Gateway__ + - ### Features + - Documentation updates for Amazon API Gateway. + +## __Amazon DevOps Guru__ + - ### Features + - Add paginator for DescribeResourceCollectionHealth + +## __Amazon Simple Notification Service__ + - ### Features + - Amazon SNS introduces the PublishBatch API, which enables customers to publish up to 10 messages per API request. The new API is valid for Standard and FIFO topics. + +## __AmplifyBackend__ + - ### Features + - New APIs to support the Amplify Storage category. Add and manage file storage in your Amplify app backend. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Introducing AWS Elastic Disaster Recovery (AWS DRS), a new service that minimizes downtime and data loss with fast, reliable recovery of on-premises and cloud-based applications using affordable storage, minimal compute, and point-in-time recovery. + +## __Redshift Data API Service__ + - ### Features + - Data API now supports serverless requests. + +# __2.17.83__ __2021-11-16__ +## __AWS CloudTrail__ + - ### Features + - CloudTrail Insights now supports ApiErrorRateInsight, which enables customers to identify unusual activity in their AWS account based on API error codes and their rate. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Location Service__ + - ### Features + - This release adds the support for Relevance, Distance, Time Zone, Language and Interpolated Address for Geocoding and Reverse Geocoding. + +## __DynamoDB Enhanced Client__ + - ### Features + - Implement `DescribeTable` operation in `DynamoDbTable` and `DynamoDbAsyncTable` + +# __2.17.82__ __2021-11-15__ +## __AWS Database Migration Service__ + - ### Features + - Add Settings in JSON format for the source GCP MySQL endpoint + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + - Use System Property Proxy Settings for Netty and AWS Common Runtime (CRT) HTTP Clients. See [#2321](https://github.com/aws/aws-sdk-java-v2/issues/2321), [#1793](https://github.com/aws/aws-sdk-java-v2/issues/1793) + - Contributed by: [@erin889](https://github.com/erin889) + + - ### Bugfixes + - Update the REST-JSON marshalling logic to conform to the standard expected behavior WRT to the `Content-Type` of the request. + +## __AWS Transfer Family__ + - ### Features + - AWS Transfer Family now supports integrating a custom identity provider using AWS Lambda + +## __AWS WAFV2__ + - ### Features + - Your options for logging web ACL traffic now include Amazon CloudWatch Logs log groups and Amazon S3 buckets. + +## __Amazon AppStream__ + - ### Features + - This release includes support for images of AmazonLinux2 platform type. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds a new VPC Subnet attribute "EnableDns64." When enabled on IPv6 Subnets, the Amazon-Provided DNS Resolver returns synthetic IPv6 addresses for IPv4-only destinations. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding Tags support to Cluster Registrations. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Adds support for Session Reason and Max Session Duration for Systems Manager Session Manager. + +## __Migration Hub Strategy Recommendations__ + - ### Features + - AWS SDK for Migration Hub Strategy Recommendations. It includes APIs to start the portfolio assessment, import portfolio data for assessment, and to retrieve recommendations. For more information, see the AWS Migration Hub documentation at https://docs.aws.amazon.com/migrationhub/index.html + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@erin889](https://github.com/erin889) +# __2.17.81__ __2021-11-12__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added automatic modes for GOP configuration and added the ability to ingest screen recordings generated by Safari on MacOS 12 Monterey. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Service__ + - ### Features + - This release adds APIs for creating and managing scheduled tasks. Additionally, adds APIs to describe and update a contact and list associated references. + +## __Amazon DevOps Guru__ + - ### Features + - Add support for cross account APIs. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - C6i instances are powered by a third-generation Intel Xeon Scalable processor (Ice Lake) delivering all-core turbo frequency of 3.5 GHz. G5 instances feature up to 8 NVIDIA A10G Tensor Core GPUs and second generation AMD EPYC processors. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This Patch Manager release supports creating Patch Baselines for RaspberryPi OS (formerly Raspbian) + +# __2.17.80__ __2021-11-11__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon DynamoDB__ + - ### Features + - Updated Help section for "dynamodb update-contributor-insights" API + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release provides an additional route target for the VPC route table. + +## __Amazon Translate__ + - ### Features + - This release enables customers to import Multi-Directional Custom Terminology and use Multi-Directional Custom Terminology in both real-time translation and asynchronous batch translation. + +# __2.17.79__ __2021-11-10__ +## __AWS Backup__ + - ### Features + - AWS Backup SDK provides new options when scheduling backups: select supported services and resources that are assigned to a particular tag, linked to a combination of tags, or can be identified by a partial tag value, and exclude resources from their assignments. + +## __AWS Resilience Hub__ + - ### Features + - Initial release of AWS Resilience Hub, a managed service that enables you to define, validate, and track the resilience of your applications on AWS + +## __AWS SDK for Java__ + - ### Features + - Added a new `dualstackEnabled` property to every client builder, which can be used to make calls be invoked against AWS endpoints which return IPv6 records. This can also be enabled via the `AWS_USE_DUALSTACK_ENDPOINT` environment variable, `aws.useDualstackEndpoint` system property, or the `use_dualstack_endpoint` profile file property. + +## __AWS SDK for Java v2__ + - ### Features + - Added a new `fipsEnabled` property to every client builder, which can be used to make calls be invoked against AWS endpoints which are FIPS compliant. This can also be enabled via the `AWS_USE_FIPS_ENDPOINT` environment variable, `aws.useFipsEndpoint` system property, or the `use_fips_endpoint` profile file property. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for container instance health. + +## __Amazon S3__ + - ### Deprecations + - Deprecated `S3Configuration.Builder`'s `dualstackEnabled` in favor of the new service-standard `S3ClientBuilder.dualstackEnabled`. + +## __Amazon S3 Control__ + - ### Deprecations + - Deprecated `S3ControlConfiguration.Builder`'s `dualstackEnabled` in favor of the new service-standard `S3ControlClientBuilder.dualstackEnabled`. + - Deprecated `S3ControlConfiguration.Builder`'s `fipsModeEnabled` in favor of the new service-standard `S3ControlClientBuilder.fipsEnabled`. + +## __Apache HTTP Client__ + - ### Features + - Add DNS resolver override support for Apache HTTP Client + +# __2.17.78__ __2021-11-09__ +## __AWS Batch__ + - ### Features + - Adds support for scheduling policy APIs. + +## __AWS Health APIs and Notifications__ + - ### Features + - Documentation updates for AWS Health. + +## __AWS IoT Greengrass V2__ + - ### Features + - This release adds support for Greengrass core devices running Windows. You can now specify name of a Windows user to run a component. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +# __2.17.77__ __2021-11-08__ +## __AWS WAFV2__ + - ### Features + - You can now configure rules to run a CAPTCHA check against web requests and, as needed, send a CAPTCHA challenge to the client. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Updated format validation for ids and regions. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds internal validation on the GatewayAssociationState field + +## __Amazon S3__ + - ### Features + - [Breaking Changes] Refactor S3TransferManager (PREVIEW) to support non-file-based transfers. This release refactors the S3TransferManager interface hierarchy and client API to differentiate between file-based and non-file-based transfers, allowing arbitrary object transfers. As a result, some S3TransferManager method signatures have changed in a backwards-incompatible way. Most notably, `Upload upload(UploadRequest)` becomes `FileUpload uploadFile(UploadFileRequest)`, and likewise for download variants. Please see https://github.com/aws/aws-sdk-java-v2/pull/2817 for a full list of changes. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker CreateEndpoint and UpdateEndpoint APIs now support additional deployment configuration to manage traffic shifting options and automatic rollback monitoring. DescribeEndpoint now shows new in-progress deployment details with stage status. + +# __2.17.76__ __2021-11-05__ +## __AWS Resource Groups Tagging API__ + - ### Features + - Documentation updates and improvements. + +## __AWS SDK for Java v2__ + - ### Features + - Added the profile key `duration_seconds` to class `ProfileProperty` + - Contributed by: [@abrooksv](https://github.com/abrooksv) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - DescribeInstances now returns customer-owned IP addresses for instances running on an AWS Outpost. + +## __Amazon Translate__ + - ### Features + - This release enable customers to use their own KMS keys to encrypt output files when they submit a batch transform job. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@abrooksv](https://github.com/abrooksv) +# __2.17.75__ __2021-11-04__ +## __AWS IoT Wireless__ + - ### Features + - Adding APIs for the FUOTA (firmware update over the air) and multicast for LoRaWAN devices and APIs to support event notification opt-in feature for Sidewalk related events. A few existing APIs need to be modified for this new feature. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Chime SDK Meetings__ + - ### Features + - The Amazon Chime SDK Meetings APIs allow software developers to create meetings and attendees for interactive audio, video, screen and content sharing in custom meeting applications which use the Amazon Chime SDK. + +## __Amazon Connect Service__ + - ### Features + - This release adds CRUD operation support for Security profile resource in Amazon Connect + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new instance replacement strategy for EC2 Fleet, Spot Fleet. Now you can select an action to perform when your instance gets a rebalance notification. EC2 Fleet, Spot Fleet can launch a replacement then terminate the instance that received notification after a termination delay + +## __Amazon SageMaker Service__ + - ### Features + - ListDevices and DescribeDevice now show Edge Manager agent version. + +# __2.17.74__ __2021-11-03__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports Hadoop Distributed File System (HDFS) Locations + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Connect Participant Service__ + - ### Features + - This release adds a new boolean attribute - Connect Participant - to the CreateParticipantConnection API, which can be used to mark the participant as connected. + +## __Amazon Macie 2__ + - ### Features + - This release adds support for specifying the severity of findings that a custom data identifier produces, based on the number of occurrences of text that matches the detection criteria. + +## __FinSpace User Environment Management service__ + - ### Features + - Adds superuser and data-bundle parameters to CreateEnvironment API + +# __2.17.73__ __2021-11-02__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudFront__ + - ### Features + - CloudFront now supports response headers policies to add HTTP headers to the responses that CloudFront sends to viewers. You can use these policies to add CORS headers, control browser caching, and more, without modifying your origin or writing any code. + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect Chat now supports real-time message streaming. + +## __AmazonNimbleStudio__ + - ### Features + - Amazon Nimble Studio adds support for users to stop and start streaming sessions. + +## __Netty NIO HTTP Client__ + - ### Features + - Allow users to configure tlsNegotiationTimeout on NettyNioAsyncHttpClient + +# __2.17.72__ __2021-11-01__ +## __AWS Network Manager__ + - ### Features + - This release adds API support to aggregate resources, routes, and telemetry data across a Global Network. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Lightsail__ + - ### Features + - This release adds support to enable access logging for buckets in the Lightsail object storage service. + +## __Amazon Neptune__ + - ### Features + - Adds support for major version upgrades to ModifyDbCluster API + +## __Amazon Rekognition__ + - ### Features + - This Amazon Rekognition Custom Labels release introduces the management of datasets with projects + +# __2.17.71__ __2021-10-29__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch Application Insights__ + - ### Features + - Added Monitoring support for SQL Server Failover Cluster Instance. Additionally, added a new API to allow one-click monitoring of containers resources. + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect Chat now supports real-time message streaming. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Support added for AMI sharing with organizations and organizational units in ModifyImageAttribute API + +## __Amazon Rekognition__ + - ### Features + - This release added new attributes to Rekognition Video GetCelebrityRecognition API operations. + +## __Amazon Transcribe Service__ + - ### Features + - Transcribe and Transcribe Call Analytics now support automatic language identification along with custom vocabulary, vocabulary filter, custom language model and PII redaction. + +## __S3TransferManager__ + - ### Bugfixes + - Fix potentially flaky S3TransferManagerListenerTests + +# __2.17.70__ __2021-10-28__ +## __AWS Systems Manager Incident Manager__ + - ### Features + - Updating documentation, adding new field to ConflictException to indicate earliest retry timestamp for some operations, increase maximum length of nextToken fields + +## __Amazon Connect Participant Service__ + - ### Features + - This release adds a new boolean attribute - Connect Participant - to the CreateParticipantConnection API, which can be used to mark the participant as connected. + +## __Amazon EC2 Container Service__ + - ### Features + - Amazon ECS now supports running Fargate tasks on Windows Operating Systems Families which includes Windows Server 2019 Core and Windows Server 2019 Full. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Added new read-only DenyAllIGWTraffic network interface attribute. Added support for DL1 24xlarge instances powered by Habana Gaudi Accelerators for deep learning model training workloads + +## __Amazon GameLift__ + - ### Features + - Added support for Arm-based AWS Graviton2 instances, such as M6g, C6g, and R6g. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for RStudio on SageMaker. + +# __2.17.69__ __2021-10-27__ +## __AWS DynamoDB Enhanced Client__ + - ### Features + - Added support for @DynamoDBAutoGeneratedTimestamp that can be used for auto updated the last updated timestamp for a record. + +## __AWS SDK for Java v2__ + - ### Features + - Provide an error message if a AsyncRequestBody.fromFile source file changes length or update time while the SDK is reading from the file. + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds: attribute-based instance type selection for EC2 Fleet, Spot Fleet, a feature that lets customers express instance requirements as attributes like vCPU, memory, and storage; and Spot placement score, a feature that helps customers identify an optimal location to run Spot workloads. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - EKS managed node groups now support BOTTLEROCKET_x86_64 and BOTTLEROCKET_ARM_64 AMI types. + +## __Amazon SageMaker Service__ + - ### Features + - This release allows customers to describe one or more versioned model packages through BatchDescribeModelPackage, update project via UpdateProject, modify and read customer metadata properties using Create, Update and Describe ModelPackage and enables cross account registration of model packages. + +## __Amazon Textract__ + - ### Features + - This release adds support for asynchronously analyzing invoice and receipt documents through two new APIs: StartExpenseAnalysis and GetExpenseAnalysis + +## __Auto Scaling__ + - ### Features + - This release adds support for attribute-based instance type selection, a new EC2 Auto Scaling feature that lets customers express their instance requirements as a set of attributes, such as vCPU, memory, and storage. + +# __2.17.68__ __2021-10-26__ +## __Amazon Chime SDK Identity__ + - ### Features + - The Amazon Chime SDK now supports push notifications through Amazon Pinpoint + +## __Amazon Chime SDK Messaging__ + - ### Features + - The Amazon Chime SDK now supports push notifications through Amazon Pinpoint + +## __Amazon EMR Containers__ + - ### Features + - This feature enables auto-generation of certificate to secure the managed-endpoint and removes the need for customer provided certificate-arn during managed-endpoint setup. + +## __Amazon S3__ + - ### Bugfixes + - Raise an exception instead of hanging when a put-object content-length exceeds the data written by the async request body. + - Truncate the async request body when the content-length is shorter than the request body, instead of raising a "Data read has a different checksum" exception. + +# __2.17.67__ __2021-10-25__ +## __AWS Audit Manager__ + - ### Features + - This release introduces a new feature for Audit Manager: Custom framework sharing. You can now share your custom frameworks with another AWS account, or replicate them into another AWS Region under your own account. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support to create a VPN Connection that is not attached to a Gateway at the time of creation. Use this to create VPNs associated with Core Networks, or modify your VPN and attach a gateway using the modify API after creation. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for Amazon RDS Custom, which is a new RDS management type that gives you full access to your database and operating system. For more information, see https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html + +## __Amazon Route 53 Resolver__ + - ### Features + - New API for ResolverConfig, which allows autodefined rules for reverse DNS resolution to be disabled for a VPC + +# __2.17.66__ __2021-10-22__ +## __AWS Audit Manager__ + - ### Features + - This release introduces character restrictions for ControlSet names. We updated regex patterns for the following attributes: ControlSet, CreateAssessmentFrameworkControlSet, and UpdateAssessmentFrameworkControlSet. + +## __Amazon Chime__ + - ### Features + - Chime VoiceConnector and VoiceConnectorGroup APIs will now return an ARN. + +## __Amazon QuickSight__ + - ### Features + - Added QSearchBar option for GenerateEmbedUrlForRegisteredUser ExperienceConfiguration to support Q search bar embedding + +## __S3TransferManager__ + - ### Features + - Add support for S3TransferManager TransferListeners + +# __2.17.65__ __2021-10-21__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Update the REST-JSON marshalling logic to conform to the standard expected behavior WRT to the `Content-Type` of the request. + +## __Amazon Connect Service__ + - ### Features + - Released Amazon Connect hours of operation API for general availability (GA). This API also supports AWS CloudFormation. For more information, see Amazon Connect Resource Type Reference in the AWS CloudFormation User Guide. + +# __2.17.64__ __2021-10-20__ +## __AWS Direct Connect__ + - ### Features + - This release adds 4 new APIS, which needs to be public able + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for specifying caption time delta in milliseconds and the ability to apply color range legalization to source content other than AVC video. + +## __AWS Elemental MediaPackage__ + - ### Features + - When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output. + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - MediaPackage passes through digital video broadcasting (DVB) subtitles into the output. + +## __AWS Panorama__ + - ### Features + - General availability for AWS Panorama. AWS SDK for Panorama includes APIs to manage your devices and nodes, and deploy computer vision applications to the edge. For more information, see the AWS Panorama documentation at http://docs.aws.amazon.com/panorama + +## __AWS SDK for Java v2__ + - ### Features + - Add missing @Override annotations + +## __AWS SecurityHub__ + - ### Features + - Added support for cross-Region finding aggregation, which replicates findings from linked Regions to a single aggregation Region. Added operations to view, enable, update, and delete the finding aggregation. + +## __Amazon Appflow__ + - ### Features + - Feature to add support for JSON-L format for S3 as a source. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - This release adds custom language support for streaming transcription. + +# __2.17.63__ __2021-10-19__ +## __AWS Data Exchange__ + - ### Features + - This release adds support for our public preview of AWS Data Exchange for Amazon Redshift. This enables data providers to list products including AWS Data Exchange datashares for Amazon Redshift, giving subscribers read-only access to provider data in Amazon Redshift. + +## __Amazon Chime SDK Messaging__ + - ### Features + - The Amazon Chime SDK now allows developers to execute business logic on in-flight messages before they are delivered to members of a messaging channel with channel flows. + +# __2.17.62__ __2021-10-18__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Allow AwsErrorDetails to be serialized using Java serialization + +## __Amazon Interactive Video Service__ + - ### Features + - Bug fix: remove unsupported maxResults and nextToken pagination parameters from ListTagsForResource + +## __Amazon QuickSight__ + - ### Features + - AWS QuickSight Service Features - Add IP Restriction UI and public APIs support. + +# __2.17.61__ __2021-10-15__ +## __AWS Glue__ + - ### Features + - Enable S3 event base crawler API. + +## __Amazon Elastic File System__ + - ### Features + - EFS adds documentation for a new exception for short identifiers to be thrown after its migration to long resource identifiers. + +# __2.17.60__ __2021-10-14__ +## __AWS RoboMaker__ + - ### Features + - Adding support to GPU simulation jobs as well as non-ROS simulation jobs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixes a bug in XML error unmarshalling where error responses with empty body won't populate the requestId field. Affects Amazon S3 API calls such as Head object + +## __Amazon SageMaker Service__ + - ### Features + - This release updates the provisioning artifact ID to an optional parameter in CreateProject API. The provisioning artifact ID defaults to the latest provisioning artifact ID of the product if you don't provide one. + +## __Auto Scaling__ + - ### Features + - Amazon EC2 Auto Scaling now supports filtering describe Auto Scaling groups API using tags + +## __Elastic Load Balancing__ + - ### Features + - Adds new option to filter by availability on each type of load balancer when describing ssl policies. + +# __2.17.59__ __2021-10-13__ +## __AWS Config__ + - ### Features + - Adding Config support for AWS::OpenSearch::Domain + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Storage Gateway__ + - ### Features + - Adding support for Audit Logs on NFS shares and Force Closing Files on SMB shares. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for additional VPC Flow Logs delivery options to S3, such as Apache Parquet formatted files, Hourly partitions and Hive-compatible S3 prefixes + +## __Amazon Kinesis Analytics__ + - ### Features + - Support for Apache Flink 1.13 in Kinesis Data Analytics. Changed the required status of some Update properties to better fit the corresponding Create properties. + +## __Amazon WorkMail__ + - ### Features + - This release adds APIs for adding, removing and retrieving details of mail domains + +# __2.17.58__ __2021-10-12__ +## __AWS MediaTailor__ + - ### Features + - MediaTailor now supports ad prefetching. + +## __AWS SDK for Java v2__ + - ### Features + - Reduce base delay of STANDARD retry mode to 100ms for non-throttling responses. This reduces tail latency in the event of transient failures. + - Updated service endpoint metadata. + +## __Amazon CloudSearch__ + - ### Features + - Adds an additional validation exception for Amazon CloudSearch configuration APIs for better error handling. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation only update to address tickets. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - EncryptionSupport for InstanceStorageInfo added to DescribeInstanceTypes API + +# __2.17.57__ __2021-10-11__ +## __AWS Elemental MediaLive__ + - ### Features + - This release adds support for Transport Stream files as an input type to MediaLive encoders. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation update for Amazon EC2. + +## __Amazon Fraud Detector__ + - ### Features + - New model type: Transaction Fraud Insights, which is optimized for online transaction fraud. Stored Events, which allows customers to send and store data directly within Amazon Fraud Detector. Batch Import, which allows customers to upload a CSV file of historic event data for processing and storage + +## __Elastic Load Balancing__ + - ### Features + - Enable support for ALB IPv6 Target Groups (IP Address Type) + +# __2.17.56__ __2021-10-08__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert has added the ability to set account policies which control access restrictions for HTTP, HTTPS, and S3 content sources. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __AWS SecurityHub__ + - ### Features + - Added new resource details objects to ASFF, including resources for WAF rate-based rules, EC2 VPC endpoints, ECR repositories, EKS clusters, X-Ray encryption, and OpenSearch domains. Added additional details for CloudFront distributions, CodeBuild projects, ELB V2 load balancers, and S3 buckets. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release removes a requirement for filters on SearchLocalGatewayRoutes operations. + +## __Amazon Lex Model Building V2__ + - ### Features + - Added configuration support for an Amazon Lex bot to provide fulfillment progress updates to users while their requests are being processed. See documentation for more details: https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html + +## __Amazon Lex Runtime V2__ + - ### Features + - Added configuration support for an Amazon Lex bot to provide fulfillment progress updates to users while their requests are being processed. See documentation for more details: https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - When executing a request, it's possible for multiple threads to interact and modify the channel pipeline without synchronizing which can cause issues. This commit fixes this issue by ensuring that code that modifies the pipeline all run within the context of the channel's event loop. + +# __2.17.55__ __2021-10-07__ +## __AWS Backup__ + - ### Features + - Launch of AWS Backup Vault Lock, which protects your backups from malicious and accidental actions, works with existing backup policies, and helps you meet compliance requirements. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports indexing and querying documents in different languages. + +## __Amazon Chime__ + - ### Features + - This release enables customers to configure Chime MediaCapturePipeline via API. + +## __Amazon Kinesis Firehose__ + - ### Features + - Allow support for Amazon Opensearch Service(successor to Amazon Elasticsearch Service) as a Kinesis Data Firehose delivery destination. + +## __Amazon Managed Grafana__ + - ### Features + - Initial release of the SDK for Amazon Managed Grafana API. + +## __Schemas__ + - ### Features + - Removing unused request/response objects. + +# __2.17.54__ __2021-10-06__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports integration with AWS SSO + +## __Amazon FSx__ + - ### Features + - This release adds support for Lustre 2.12 to FSx for Lustre. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds a new TrainingInputMode FastFile for SageMaker Training APIs. + +## __AmplifyBackend__ + - ### Features + - Adding a new field 'AmplifyFeatureFlags' to the response of the GetBackend operation. It will return a stringified version of the cli.json file for the given Amplify project. + +## __DynamoDB Enhanced Client__ + - ### Features + - This commit introduces DynamoDbTable#updateItemWithResponse() that allows customers to specify additional parameters on the request such as ReturnConsumedCapacity to get additional information the service response. + +# __2.17.53__ __2021-10-05__ +## __AWS Backup__ + - ### Features + - AWS Backup Audit Manager framework report. + +## __AWS Glue__ + - ### Features + - This release adds tag as an input of CreateConnection + +## __Amazon DynamoDB__ + - ### Features + - Allow parallel scan via DynamoDBEnhanced client and modify ScanEnhancedRequest to support totalSegments and segment parameters. + The corresponding github issue is https://github.com/aws/aws-sdk-java-v2/issues/1851 + - Contributed by: [@asanthan-amazon](https://github.com/asanthan-amazon) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Released Capacity Reservation Fleet, a feature of Amazon EC2 Capacity Reservations, which provides a way to manage reserved capacity across instance types. For more information: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-fleets.html + +## __Amazon Location Service__ + - ### Features + - Add support for PositionFiltering. + +## __Amazon WorkMail__ + - ### Features + - This release allows customers to change their inbound DMARC settings in Amazon WorkMail. + +## __Application Auto Scaling__ + - ### Features + - With this release, Application Auto Scaling adds support for Amazon Neptune. Customers can now automatically add or remove Read Replicas of their Neptune clusters to keep the average CPU Utilization at the target value specified by the customers. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@asanthan-amazon](https://github.com/asanthan-amazon) +# __2.17.52__ __2021-10-04__ +## __AWS CodeBuild__ + - ### Features + - CodeBuild now allows you to select how batch build statuses are sent to the source provider for a project. + +## __AWS Key Management Service__ + - ### Features + - Added SDK examples for ConnectCustomKeyStore, CreateCustomKeyStore, CreateKey, DeleteCustomKeyStore, DescribeCustomKeyStores, DisconnectCustomKeyStore, GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, GetPublicKey, ReplicateKey, Sign, UpdateCustomKeyStore and Verify APIs + +## __Amazon Elastic File System__ + - ### Features + - EFS adds a new exception for short identifiers to be thrown after its migration to long resource identifiers. + +# __2.17.51__ __2021-10-01__ +## __AWS App Runner__ + - ### Features + - This release contains several minor bug fixes. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - When "AutoApprovable" is true for a Change Template, then specifying --auto-approve (boolean) in Start-Change-Request-Execution will create a change request that bypasses approver review. (except for change calendar restrictions) + +## __Synthetics__ + - ### Features + - CloudWatch Synthetics now enables customers to choose a customer managed AWS KMS key or an Amazon S3-managed key instead of an AWS managed key (default) for the encryption of artifacts that the canary stores in Amazon S3. CloudWatch Synthetics also supports artifact S3 location updation now. + +# __2.17.50__ __2021-09-30__ +## __AWS Account__ + - ### Features + - This release of the Account Management API enables customers to manage the alternate contacts for their AWS accounts. For more information, see https://docs.aws.amazon.com/accounts/latest/reference/accounts-welcome.html + +## __AWS Cloud Control API__ + - ### Features + - Initial release of the SDK for AWS Cloud Control API + +## __AWS Data Exchange__ + - ### Features + - This release enables subscribers to set up automatic exports of newly published revisions using the new EventAction API. + +## __AWS Network Firewall__ + - ### Features + - This release adds support for strict ordering for stateful rule groups. Using strict ordering, stateful rules are evaluated in the exact order in which you provide them. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Macie 2__ + - ### Features + - Amazon S3 bucket metadata now indicates whether an error or a bucket's permissions settings prevented Amazon Macie from retrieving data about the bucket or the bucket's objects. + +## __Amazon WorkMail__ + - ### Features + - This release adds support for mobile device access overrides management in Amazon WorkMail. + +## __Amazon WorkSpaces__ + - ### Features + - Added CreateUpdatedWorkspaceImage API to update WorkSpace images with latest software and drivers. Updated DescribeWorkspaceImages API to display if there are updates available for WorkSpace images. + +# __2.17.49__ __2021-09-29__ +## __AWS Lambda__ + - ### Features + - Adds support for Lambda functions powered by AWS Graviton2 processors. Customers can now select the CPU architecture for their functions. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Prometheus Service__ + - ### Features + - This release adds alert manager and rule group namespace APIs + +## __Amazon Simple Email Service__ + - ### Features + - This release includes the ability to use 2048 bits RSA key pairs for DKIM in SES, either with Easy DKIM or Bring Your Own DKIM. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Update `netty-tcnative-boringssl-static` to `2.0.43.Final` to fix issues loading the native libraries on some platforms. + +# __2.17.48__ __2021-09-28__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Bug fix to handle DocumentType for Explicit payload members. + +## __AWS Transfer Family__ + - ### Features + - Added changes for managed workflows feature APIs. + +## __EC2 Image Builder__ + - ### Features + - Fix description for AmiDistributionConfiguration Name property, which actually refers to the output AMI name. Also updated for consistent terminology to use "base" image, and another update to fix description text. + +# __2.17.47__ __2021-09-27__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon AppIntegrations Service__ + - ### Features + - The Amazon AppIntegrations service enables you to configure and reuse connections to external applications. + +## __Amazon Connect Service__ + - ### Features + - This release updates a set of APIs: CreateIntegrationAssociation, ListIntegrationAssociations, CreateUseCase, and StartOutboundVoiceContact. You can use it to create integrations with Amazon Pinpoint for the Amazon Connect Campaigns use case, Amazon Connect Voice ID, and Amazon Connect Wisdom. + +## __Amazon Connect Wisdom Service__ + - ### Features + - Released Amazon Connect Wisdom, a feature of Amazon Connect, which provides real-time recommendations and search functionality in general availability (GA). For more information, see https://docs.aws.amazon.com/wisdom/latest/APIReference/Welcome.html. + +## __Amazon Pinpoint__ + - ### Features + - Added support for journey with contact center activity + +## __Amazon Voice ID__ + - ### Features + - Released the Amazon Voice ID SDK, for usage with the Amazon Connect Voice ID feature released for Amazon Connect. + +## __Elastic Load Balancing__ + - ### Features + - Adds new ALB-type target group to facilitate forwarding traffic from NLB to ALB + +# __2.17.46__ __2021-09-24__ +## __AWS License Manager__ + - ### Features + - AWS License Manager now allows customers to get the LicenseArn in the Checkout API Response. + +## __AWS SDK for Java v2__ + - ### Features + - Remove SDK usage of global execution.interceptors files. This reduces the need for customers to use a special transformer for execution.interceptors files when they are creating an uber-jar of all SDK modules. Customers should still consider using such an appender, in case other libraries rely on execution.interceptors files. + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - DescribeInstances now returns Platform Details, Usage Operation, and Usage Operation Update Time. + +## __DynamoDB Enhanced Client__ + - ### Features + - Annotated immutable class introspector now ignores 'toBuilder' method allowing easier integration with libraries that auto-generate this method on immutable data classes. + - Contributed by: [@bmaizels](https://github.com/bmaizels) + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@bmaizels](https://github.com/bmaizels) +# __2.17.45__ __2021-09-23__ +## __AWS AppSync__ + - ### Features + - Documented the new OpenSearchServiceDataSourceConfig data type. Added deprecation notes to the ElasticsearchDataSourceConfig data type. + +## __AWS Elemental MediaConvert__ + - ### Features + - This release adds style and positioning support for caption or subtitle burn-in from rich text sources such as TTML. This release also introduces configurable image-based trick play track generation. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Added cutoff behavior support for preventing new task invocations from starting when the maintenance window cutoff time is reached. + +# __2.17.44__ __2021-09-22__ +## __AWS Elemental MediaPackage VOD__ + - ### Features + - MediaPackage VOD will now return the current processing statuses of an asset's endpoints. The status can be QUEUED, PROCESSING, PLAYABLE, or FAILED. + +## __AWS Identity and Access Management__ + - ### Features + - Added changes to OIDC API about not using port numbers in the URL. + +## __AWS License Manager__ + - ### Features + - AWS License Manager now allows customers to change their Windows Server or SQL license types from Bring-Your-Own-License (BYOL) to License Included or vice-versa (using the customer's media). + +## __AWS MediaTailor__ + - ### Features + - This release adds support to configure logs for playback configuration. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS WAFV2__ + - ### Features + - Added the regex match rule statement, for matching web requests against a single regular expression. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release adds support for utterances statistics for bots built using Lex V2 console and APIs. For details, see: https://docs.aws.amazon.com/lexv2/latest/dg/monitoring-utterances.html + +## __EC2 Image Builder__ + - ### Features + - This feature adds support for specifying GP3 volume throughput and configuring instance metadata options for instances launched by EC2 Image Builder. + +# __2.17.43__ __2021-09-21__ +## __AWS IoT__ + - ### Features + - This release adds support for verifying, viewing and filtering AWS IoT Device Defender detect violations with four verification states. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Update Sigv4a signer to include the port in the Host header, when the port does not match the standard port for the protocol. This allows requests to endpoints with non-standard ports to succeed. + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports versioning of custom models, improved training with ONE_DOC_PER_FILE text documents for custom entity recognition, ability to provide specific test sets during training, and live migration to new model endpoints. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release adds additional support for repository replication + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This update adds support for downloading configuration templates using new APIs (GetVpnConnectionDeviceTypes and GetVpnConnectionDeviceSampleConfiguration) and Internet Key Exchange version 2 (IKEv2) parameters for many popular CGW devices. + +## __DynamoDB Enhanced Client__ + - ### Features + - This commit introduces DynamoDbTable#deleteItemWithResponse() that allows customers to specify additional parameters on the request such as ReturnConsumedCapacity to get additional information the service response. + +## __Managed Streaming for Kafka__ + - ### Features + - Added StateInfo to ClusterInfo + +## __S3 Transfer Manager__ + - ### Bugfixes + - Fix the NPE thrown when calling `S3TransferManager.create()` + +# __2.17.42__ __2021-09-17__ +## __AWS Database Migration Service__ + - ### Features + - Optional flag force-planned-failover added to reboot-replication-instance API call. This flag can be used to test a planned failover scenario used during some maintenance operations. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elasticsearch Service__ + - ### Features + - This release adds an optional parameter in the ListDomainNames API to filter domains based on the engine type (OpenSearch/Elasticsearch). + +## __Amazon OpenSearch Service__ + - ### Features + - This release adds an optional parameter in the ListDomainNames API to filter domains based on the engine type (OpenSearch/Elasticsearch). + +# __2.17.41__ __2021-09-16__ +## __AWS RoboMaker__ + - ### Features + - Adding support to create container based Robot and Simulation applications by introducing an environment field + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Macie 2__ + - ### Features + - This release adds support for specifying which managed data identifiers are used by a classification job, and retrieving a list of managed data identifiers that are available. + +## __Amazon Pinpoint__ + - ### Features + - This SDK release adds a new feature for Pinpoint campaigns, in-app messaging. + +## __Amazon SageMaker Service__ + - ### Features + - Add API for users to retry a failed pipeline execution or resume a stopped one. + +## __Amazon Simple Storage Service__ + - ### Features + - Add support for access point arn filtering in S3 CW Request Metrics + +## __Amazon Transcribe Service__ + - ### Features + - This release adds support for subtitling with Amazon Transcribe batch jobs. + +## __DynamoDB Enhanced Client__ + - ### Features + - This commit introduces DynamoDbTable#putItemWithResponse() that allows customers to specify additional parameters on the request such as ReturnValues to get additional information the service response. + +## __Managed Streaming for Kafka Connect__ + - ### Features + - This is the initial SDK release for Amazon Managed Streaming for Apache Kafka Connect (MSK Connect). + +# __2.17.40__ __2021-09-14__ +## __AWS SDK for Java v2__ + - ### Features + - Upgrade Netty to 4.1.68 + +## __AWS WAFV2__ + - ### Features + - This release adds support for including rate based rules in a rule group. + +## __Amazon Chime__ + - ### Features + - Adds support for SipHeaders parameter for CreateSipMediaApplicationCall. + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now allows you to train and run PDF and Word documents for custom entity recognition. With PDF and Word formats, you can extract information from documents containing headers, lists and tables. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for vt1 3xlarge, 6xlarge and 24xlarge instances powered by Xilinx Alveo U30 Media Accelerators for video transcoding workloads + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for "Project Search" + +## __Amazon Transcribe Streaming Service__ + - ### Features + - Amazon Transcribe now supports PII Identification and Redaction for streaming transcription. + +# __2.17.39__ __2021-09-13__ +## __AWS IoT__ + - ### Features + - AWS IoT Rules Engine adds OpenSearch action. The OpenSearch rule action lets you stream data from IoT sensors and applications to Amazon OpenSearch Service which is a successor to Amazon Elasticsearch Service. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for T3 instances on Amazon EC2 Dedicated Hosts. + +## __S3 Transfer Manager__ + - ### Features + - Now users can pass `File` to `DownloadRequest` and `UploadRequest` in `S3TransferManager`. + +# __2.17.38__ __2021-09-10__ +## __AWS CloudFormation__ + - ### Features + - Doc only update for CloudFormation that fixes several customer-reported issues. + +## __AWS SDK for Java v2__ + - ### Features + - Add support for authenticated corporate proxies + - Contributed by: [@guillepb10](https://github.com/guillepb10) + - Updated service endpoint metadata. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release updates terminology around KMS keys. + +## __Amazon QuickSight__ + - ### Features + - Add new data source type for Amazon OpenSearch (successor to Amazon ElasticSearch). + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for providing a custom timeout value for finding a scaling point during autoscaling in Aurora Serverless v1. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for "Lifecycle Configurations" to SageMaker Studio + +## __Amazon Transcribe Service__ + - ### Features + - This release adds an API option for startTranscriptionJob and startMedicalTranscriptionJob that allows the user to specify encryption context key value pairs for batch jobs. + +## __DynamoDB Enhanced Client__ + - ### Bugfixes + - Fix `PutItemEnhancedRequest` and `DeleteItemEnhancedRequest` to include `ConditionExpression` in their `equals()` and `hashCode()` calculations. + - Fixes for `UpdateItemEnhancedRequest`: + - Include `ConditionExpression` in `toBuilder()` + - Include `ConditionExpression` in `equals()` and `hashCode()` calculations + +## __S3 Transfer Manager__ + - ### Bugfixes + - Remove extra question mark when query parameters are provided in transfer manager + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@guillepb10](https://github.com/guillepb10) +# __2.17.37__ __2021-09-09__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CodeGuru Reviewer__ + - ### Features + - The Amazon CodeGuru Reviewer API now includes the RuleMetadata data object and a Severity attribute on a RecommendationSummary object. A RuleMetadata object contains information about a rule that generates a recommendation. Severity indicates how severe the issue associated with a recommendation is. + +## __Amazon EMR__ + - ### Features + - This release enables customers to login to EMR Studio using AWS Identity and Access Management (IAM) identities or identities in their Identity Provider (IdP) via IAM. + +## __Amazon Lookout for Equipment__ + - ### Features + - Added OffCondition parameter to CreateModel API + +# __2.17.36__ __2021-09-08__ +## __AWS Resource Access Manager__ + - ### Features + - A minor text-only update that fixes several customer issues. + +## __AWS SDK for Java v2__ + - ### Features + - Improve performance of generated enum methods + +## __Amazon OpenSearch Service__ + - ### Features + - Updated Configuration APIs for Amazon OpenSearch Service (successor to Amazon Elasticsearch Service) + +## __Managed Streaming for Kafka__ + - ### Features + - Amazon MSK has added a new API that allows you to update the encrypting and authentication settings for an existing cluster. + +# __2.17.35__ __2021-09-07__ +## __AWS Elemental MediaPackage__ + - ### Features + - SPEKE v2 support for live CMAF packaging type. SPEKE v2 is an upgrade to the existing SPEKE API to support multiple encryption keys, it supports live DASH currently. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Systems Manager Incident Manager Contacts__ + - ### Features + - Added SDK examples for SSM-Contacts. + +## __AWS X-Ray__ + - ### Features + - Updated references to AWS KMS keys and customer managed keys to reflect current terminology. + +## __Amazon ElastiCache__ + - ### Features + - Doc only update for ElastiCache + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding RegisterCluster and DeregisterCluster operations, to support connecting external clusters to EKS. + +## __Amazon Forecast Service__ + - ### Features + - Predictor creation now supports selecting an accuracy metric to optimize in AutoML and hyperparameter optimization. This release adds additional accuracy metrics for predictors - AverageWeightedQuantileLoss, MAPE and MASE. + +## __Amazon Prometheus Service__ + - ### Features + - This release adds tagging support for Amazon Managed Service for Prometheus workspace. + +## __DynamoDB Enhanced Client__ + - ### Features + - Allow customers to specify `ReturnValuesOnConditionCheckFailure` for `TransactWriteItems`. Addresses [#2283](https://github.com/aws/aws-sdk-java-v2/issues/2283). + +# __2.17.34__ __2021-09-03__ +## __AWS Outposts__ + - ### Features + - This release adds a new API CreateOrder. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Chime SDK Identity__ + - ### Features + - Documentation updates for Chime + +## __Amazon Chime SDK Messaging__ + - ### Features + - Documentation updates for Chime + +## __Amazon CodeGuru Reviewer__ + - ### Features + - Added support for CodeInconsistencies detectors + +## __Amazon Fraud Detector__ + - ### Features + - Enhanced GetEventPrediction API response to include risk scores from imported SageMaker models + +## __Amazon S3__ + - ### Features + - Adds multi-region support for S3 access points as well as Sigv4 Asymmetric signing + +# __2.17.33__ __2021-09-02__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - Private Certificate Authority Service now allows customers to enable an online certificate status protocol (OCSP) responder service on their private certificate authorities. Customers can also optionally configure a custom CNAME for their OCSP responder. + +## __AWS S3 Control__ + - ### Features + - S3 Multi-Region Access Points provide a single global endpoint to access a data set that spans multiple S3 buckets in different AWS Regions. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS SecurityHub__ + - ### Features + - New ASFF Resources: AwsAutoScalingLaunchConfiguration, AwsEc2VpnConnection, AwsEcrContainerImage. Added KeyRotationStatus to AwsKmsKey. Added AccessControlList, BucketLoggingConfiguration,BucketNotificationConfiguration and BucketNotificationConfiguration to AwsS3Bucket. + +## __AWS Transfer Family__ + - ### Features + - AWS Transfer Family introduces Managed Workflows for creating, executing, monitoring, and standardizing post file transfer processing + +## __Access Analyzer__ + - ### Features + - Updates service API, documentation, and paginators to support multi-region access points from Amazon S3. + +## __Amazon Elastic Block Store__ + - ### Features + - Documentation updates for Amazon EBS direct APIs. + +## __Amazon Elastic File System__ + - ### Features + - Adds support for EFS Intelligent-Tiering, which uses EFS Lifecycle Management to monitor file access patterns and is designed to automatically transition files to and from your corresponding Infrequent Access (IA) storage classes. + +## __Amazon FSx__ + - ### Features + - Announcing Amazon FSx for NetApp ONTAP, a new service that provides fully managed shared storage in the AWS Cloud with the data access and management capabilities of ONTAP. + +## __Amazon Lex Model Building Service__ + - ### Features + - Lex now supports Korean (ko-KR) locale. + +## __Amazon QuickSight__ + - ### Features + - This release adds support for referencing parent datasets as sources in a child dataset. + +## __Schemas__ + - ### Features + - This update include the support for Schema Discoverer to discover the events sent to the bus from another account. The feature will be enabled by default when discoverer is created or updated but can also be opt-in or opt-out by specifying the value for crossAccount. + +# __2.17.32__ __2021-09-01__ +## __AWS CloudTrail__ + - ### Features + - Documentation updates for CloudTrail + +## __AWS Config__ + - ### Features + - Documentation updates for config + +## __AWS MediaTailor__ + - ### Features + - This release adds support for wall clock programs in LINEAR channels. + +## __AWS SDK for Java v2__ + - ### Features + - Added new convenience methods to SdkPublisher: doAfterOnError, doAfterOnComplete, and doAfterCancel. + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixed an issue where event streams might fail with ClassCastException or NoSuchElementExceptions + +## __AWS Service Catalog App Registry__ + - ### Features + - Introduction of GetAssociatedResource API and GetApplication response extension for Resource Groups support. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Added LaunchTemplate support for the IMDS IPv6 endpoint + +# __2.17.31__ __2021-08-31__ +## __AWS Compute Optimizer__ + - ### Features + - Documentation updates for Compute Optimizer + +## __AWS IoT__ + - ### Features + - Added Create/Update/Delete/Describe/List APIs for a new IoT resource named FleetMetric. Added a new Fleet Indexing query API named GetBucketsAggregation. Added a new field named DisconnectedReason in Fleet Indexing query response. Updated their related documentations. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon MemoryDB__ + - ### Features + - Documentation updates for MemoryDB + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new South African English voice - Ayanda. Ayanda is available as Neural voice only. + +## __Amazon Simple Queue Service__ + - ### Features + - Amazon SQS adds a new queue attribute, RedriveAllowPolicy, which includes the dead-letter queue redrive permission parameters. It defines which source queues can specify dead-letter queues as a JSON object. + +# __2.17.30__ __2021-08-30__ +## __AWS CloudFormation__ + - ### Features + - AWS CloudFormation allows you to iteratively develop your applications when failures are encountered without rolling back successfully provisioned resources. By specifying stack failure options, you can troubleshoot resources in a CREATE_FAILED or UPDATE_FAILED status. + +## __AWS CodeBuild__ + - ### Features + - Documentation updates for CodeBuild + +## __AWS Key Management Service__ + - ### Features + - This release has changes to KMS nomenclature to remove the word master from both the "Customer master key" and "CMK" abbreviation and replace those naming conventions with "KMS key". + +## __Amazon Kinesis Firehose__ + - ### Features + - This release adds the Dynamic Partitioning feature to Kinesis Data Firehose service for S3 destinations. + +# __2.17.29__ __2021-08-27__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon EMR__ + - ### Features + - Amazon EMR now supports auto-terminating idle EMR clusters. You can specify the idle timeout value when enabling auto-termination for both running and new clusters and Amazon EMR automatically terminates the cluster when idle timeout kicks in. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds the BootMode flag to the ImportImage API and showing the detected BootMode of an ImportImage task. + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation updates for Amazon S3. + +# __2.17.28__ __2021-08-26__ +## __AWS Compute Optimizer__ + - ### Features + - Adds support for 1) the AWS Graviton (AWS_ARM64) recommendation preference for Amazon EC2 instance and Auto Scaling group recommendations, and 2) the ability to get the enrollment statuses for all member accounts of an organization. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Support added for resizing VPC prefix lists + +## __Amazon Rekognition__ + - ### Features + - This release added new attributes to Rekognition RecognizeCelebities and GetCelebrityInfo API operations. + +## __Amazon Transcribe Service__ + - ### Features + - This release adds support for batch transcription in six new languages - Afrikaans, Danish, Mandarin Chinese (Taiwan), New Zealand English, South African English, and Thai. + +# __2.17.27__ __2021-08-25__ +## __AWS DataSync__ + - ### Features + - Added include filters to CreateTask and UpdateTask, and added exclude filters to StartTaskExecution, giving customers more granular control over how DataSync transfers files, folders, and objects. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon CloudWatch Events__ + - ### Features + - AWS CWEvents adds an enum of EXTERNAL for EcsParameters LaunchType for PutTargets API + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Support added for IMDS IPv6 endpoint + +## __Amazon EventBridge__ + - ### Features + - AWS EventBridge adds an enum of EXTERNAL for EcsParameters LaunchType for PutTargets API + +## __Firewall Management Service__ + - ### Features + - AWS Firewall Manager now supports triggering resource cleanup workflow when account or resource goes out of policy scope for AWS WAF, Security group, AWS Network Firewall, and Amazon Route 53 Resolver DNS Firewall policies. + +# __2.17.26__ __2021-08-24__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added MBAFF encoding support for AVC video and the ability to pass encryption context from the job settings to S3. + +## __AWS IoT Data Plane__ + - ### Features + - Updated Publish with support for new Retain flag and added two new API operations: GetRetainedMessage, ListRetainedMessages. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix `NullPointerException` in `RetryPolicy.hashCode()`. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new New Zealand English voice - Aria. Aria is available as Neural voice only. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Updated Parameter Store property for logging improvements. + +## __Amazon Transcribe Service__ + - ### Features + - This release adds support for feature tagging with Amazon Transcribe batch jobs. + +# __2.17.25__ __2021-08-23__ +## __AWS Backup__ + - ### Features + - AWS Backup - Features: Evaluate your backup activity and generate audit reports. + +## __AWS Database Migration Service__ + - ### Features + - Amazon AWS DMS service now support Redis target endpoint migration. Now S3 endpoint setting is capable to setup features which are used to be configurable only in extract connection attributes. + +## __AWS Glue__ + - ### Features + - Add support for Custom Blueprints + +## __AWS IoT SiteWise__ + - ### Features + - Documentation updates for AWS IoT SiteWise + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon API Gateway__ + - ### Features + - Adding some of the pending releases (1) Adding WAF Filter to GatewayResponseType enum (2) Ensuring consistent error model for all operations (3) Add missing BRE to GetVpcLink operation + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Added AMI deprecation support for Amazon Data Lifecycle Manager EBS-backed AMI policies. + +## __Amazon Fraud Detector__ + - ### Features + - Updated an element of the DescribeModelVersion API response (LogitMetrics -> logOddsMetrics) for clarity. Added new exceptions to several APIs to protect against unlikely scenarios. + +# __2.17.24__ __2021-08-20__ +## __AWS RoboMaker__ + - ### Features + - Documentation updates for RoboMaker + +## __Amazon Comprehend__ + - ### Features + - Add tagging support for Comprehend async inference job. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - encryptionInTransitSupported added to DescribeInstanceTypes API + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adds support for EKS add-ons "preserve" flag, which allows customers to maintain software on their EKS clusters after removing it from EKS add-ons management. + +# __2.17.23__ __2021-08-19__ +## __AWS SDK for Java v2__ + - ### Features + - Implement ADAPTIVE retry mode. ADAPTIVE mode builds on STANDARD retry mode and adds rate limiting of requests when the client is throttled. + + Adaptive retry mode dynamically limits the rate of AWS requests to maximize success rate. This may be at the expense of request latency. Adaptive retry mode is not recommended when predictable latency is important. + + Warning: Adaptive retry mode assumes that the client is working against a single resource (e.g. one DynamoDB Table or one S3 Bucket). If you use a single client for multiple resources, throttling or outages associated with one resource will result in increased latency and failures when accessing all other resources via the same client. When using adaptive retry mode, we recommend using a single client per resource. + - Updated service endpoint metadata. + +## __Amazon Appflow__ + - ### Features + - This release adds support for SAPOData connector and extends Veeva connector for document extraction. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - The ImportImage API now supports the ability to create AMIs with AWS-managed licenses for Microsoft SQL Server for both Windows and Linux. + +## __Amazon MemoryDB__ + - ### Features + - AWS MemoryDB SDK now supports all APIs for newly launched MemoryDB service. + +## __Application Auto Scaling__ + - ### Features + - This release extends Application Auto Scaling support for replication group of Amazon ElastiCache Redis clusters. Auto Scaling monitors and automatically expands node group count and number of replicas per node group when a critical usage threshold is met or according to customer-defined schedule. + +# __2.17.22__ __2021-08-18__ +## __AWS CodeBuild__ + - ### Features + - CodeBuild now allows you to make the build results for your build projects available to the public without requiring access to an AWS account. + +## __Amazon Route 53__ + - ### Features + - Documentation updates for route53 + +## __Amazon Route 53 Resolver__ + - ### Features + - Documentation updates for Route 53 Resolver + +## __Amazon SageMaker Runtime__ + - ### Features + - Amazon SageMaker Runtime now supports InvokeEndpointAsync to asynchronously invoke endpoints that were created with the AsyncInferenceConfig object in the EndpointConfig. Asynchronous invocations support larger payload sizes in Amazon S3 and longer processing times. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker now supports Asynchronous Inference endpoints. Adds PlatformIdentifier field that allows Notebook Instance creation with different platform selections. Increases the maximum number of containers in multi-container endpoints to 15. Adds more instance types to InstanceType field. + +# __2.17.21__ __2021-08-17__ +## __AWS Cloud9__ + - ### Features + - Added DryRun parameter to CreateEnvironmentEC2 API. Added ManagedCredentialsActions parameter to UpdateEnvironment API + +## __AWS Cost Explorer Service__ + - ### Features + - This release is a new feature for Cost Categories: Split charge rules. Split charge rules enable you to allocate shared costs between your cost category values. + +## __Amazon CloudDirectory__ + - ### Features + - Documentation updates for clouddirectory + +## __Amazon CloudWatch Logs__ + - ### Features + - Documentation-only update for CloudWatch Logs + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for EC2 ED25519 key pairs for authentication + +# __2.17.20__ __2021-08-16__ +## __AWS CodeBuild__ + - ### Features + - CodeBuild now allows you to select how batch build statuses are sent to the source provider for a project. + +## __AWS Config__ + - ### Features + - Update ResourceType enum with values for Backup Plan, Selection, Vault, RecoveryPoint; ECS Cluster, Service, TaskDefinition; EFS AccessPoint, FileSystem; EKS Cluster; ECR Repository resources + +## __AWS Directory Service__ + - ### Features + - This release adds support for describing client authentication settings. + +## __AWS IoT SiteWise__ + - ### Features + - AWS IoT SiteWise added query window for the interpolation interval. AWS IoT SiteWise computes each interpolated value by using data points from the timestamp of each interval minus the window to the timestamp of each interval plus the window. + +## __AWS License Manager__ + - ### Features + - AWS License Manager now allows end users to call CheckoutLicense API using new CheckoutType PERPETUAL. Perpetual checkouts allow sellers to check out a quantity of entitlements to be drawn down for consumption. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation updates for Amazon S3 + +## __Netty NIO HTTP Client__ + - ### Features + - Upgrade Netty version to 4.1.66.Final + +# __2.17.19__ __2021-08-13__ +## __Amazon Connect Customer Profiles__ + - ### Features + - This release introduces Standard Profile Objects, namely Asset and Case which contain values populated by data from third party systems and belong to a specific profile. This release adds an optional parameter, ObjectFilter to the ListProfileObjects API in order to search for these Standard Objects. + +## __Amazon EMR__ + - ### Features + - Amazon EMR customers can now specify custom AMIs at the instance level in their clusters. This allows using custom AMIs in clusters that have instances with different instruction set architectures, e.g. m5.xlarge (x86) and m6g.xlarge (ARM). + +## __Amazon ElastiCache__ + - ### Features + - This release adds ReplicationGroupCreateTime field to ReplicationGroup which indicates the UTC time when ElastiCache ReplicationGroup is created + +## __Amazon QuickSight__ + - ### Features + - Documentation updates for QuickSight. + +## __URL Connection Http Client__ + - ### Bugfixes + - Fixed connection pooling for HTTPS endpoints. Previously, each request would create a new connection. + +# __2.17.18__ __2021-08-12__ +## __AWS Glue DataBrew__ + - ### Features + - This SDK release adds support for the output of a recipe job results to Tableau Hyper format. + +## __AWS Lambda__ + - ### Features + - Lambda Python 3.9 runtime launch + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixed an issue where request-level overrides (e.g. credentials) were not applied to endpoint discovery calls. + +## __Amazon API Gateway__ + - ### Features + - Adding support for ACM imported or private CA certificates for mTLS enabled domain names + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot adds new metrics for all candidate models generated by Autopilot experiments. + +## __AmazonApiGatewayV2__ + - ### Features + - Adding support for ACM imported or private CA certificates for mTLS enabled domain names + +# __2.17.17__ __2021-08-11__ +## __AWS CodeBuild__ + - ### Features + - CodeBuild now allows you to make the build results for your build projects available to the public without requiring access to an AWS account. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Use "full jitter" & updated base delay for STANDARD retry mode defaults + + - ### Documentations + - Create a shared, project-level IntelliJ inspection profile + - Move IntelliJ code style & copyright configuration to project-level settings + +## __AWS Snow Device Management__ + - ### Features + - AWS Snow Family customers can remotely monitor and operate their connected AWS Snowcone devices. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation updates for ECS. + +## __Amazon Elastic Block Store__ + - ### Features + - Documentation updates for Amazon EBS direct APIs. + +## __Amazon Route 53__ + - ### Features + - Documentation updates for route53 + +## __AmazonNimbleStudio__ + - ### Features + - Add new attribute 'ownedBy' in Streaming Session APIs. 'ownedBy' represents the AWS SSO Identity Store User ID of the owner of the Streaming Session resource. + +# __2.17.16__ __2021-08-10__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Fix issue in `FileAsyncRequestBody` where the underlying file channel would only be closed when enough requests are sent to read *past* the end of the file; if just enough requests are sent to read to the end of the file, the file is not closed, leaving an open file descriptor around longer than it needs to be. + +## __Amazon Chime__ + - ### Features + - Add support for "auto" in Region field of StartMeetingTranscription API request. + +## __Amazon S3 Transfer Manager [Preview]__ + - ### Features + - This release includes the preview release of the Amazon S3 Transfer Manager. Visit our [Developer Guide](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/transfer-manager.html) for more information. + +# __2.17.15__ __2021-08-09__ +## __AWS WAFV2__ + - ### Features + - This release adds APIs to support versioning feature of AWS WAF Managed rule groups + +## __Amazon Rekognition__ + - ### Features + - This release adds support for four new types of segments (opening credits, content segments, slates, and studio logos), improved accuracy for credits and shot detection and new filters to control black frame detection. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Documentation updates for AWS Systems Manager. + +# __2.17.14__ __2021-08-06__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __Amazon Athena__ + - ### Features + - Documentation updates for Athena. + +## __Amazon Chime SDK Identity__ + - ### Features + - The Amazon Chime SDK Identity APIs allow software developers to create and manage unique instances of their messaging applications. + +## __Amazon Chime SDK Messaging__ + - ### Features + - The Amazon Chime SDK Messaging APIs allow software developers to send and receive messages in custom messaging applications. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for agent status and hours of operation. For details, see the Release Notes in the Amazon Connect Administrator Guide. + +## __Amazon Lightsail__ + - ### Features + - This release adds support to track when a bucket access key was last used. + +## __Amazon S3__ + - ### Bugfixes + - Fixed an issue where checksum validation only considered the first 4 bytes of the 16 byte checksum, creating the potential for corrupted downloads to go undetected. + +## __Synthetics__ + - ### Features + - Documentation updates for Visual Monitoring feature and other doc ticket fixes. + +# __2.17.13__ __2021-08-05__ +## __Amazon Lex Model Building V2__ + - ### Features + - Customers can now toggle the active field on prompts and responses. + +## __Auto Scaling__ + - ### Features + - EC2 Auto Scaling adds configuration checks and Launch Template validation to Instance Refresh. + +# __2.17.12__ __2021-08-04__ +## __AWS SDK for Java v2__ + - ### Features + - Add customization.config support for setting default RetryMode + - Updated service endpoint metadata. + + - ### Bugfixes + - Fixed an issue where a bean-based marshallers for request and response models would fail for fluent setters that happened to start with "set", like "settings". + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Documentation updates for Incident Manager. + +## __Amazon EventBridge__ + - ### Features + - Documentation updates to add EC2 Image Builder as a target on PutTargets. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds AutomaticRestartTime to the DescribeDBInstances and DescribeDBClusters operations. AutomaticRestartTime indicates the time when a stopped DB instance or DB cluster is restarted automatically. + +## __Amazon Transcribe Service__ + - ### Features + - This release adds support for call analytics (batch) within Amazon Transcribe. + +## __EC2 Image Builder__ + - ### Features + - Updated list actions to include a list of valid filters that can be used in the request. + +# __2.17.11__ __2021-08-03__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added control over the passthrough of XDS captions metadata to outputs. + +## __AWS Glue__ + - ### Features + - Add ConcurrentModificationException to create-table, delete-table, create-database, update-database, delete-database + +## __AWS IoT SiteWise__ + - ### Features + - My AWS Service (placeholder) - This release introduces custom Intervals and offset for tumbling window in metric for AWS IoT SiteWise. + +## __AWS Proton__ + - ### Features + - Docs only add idempotent create apis + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Add IntelliJ .ipr files to gitignore + +## __Amazon Redshift__ + - ### Features + - API support for Redshift Data Sharing feature. + +# __2.17.10__ __2021-08-02__ +## __AWS IoT Greengrass V2__ + - ### Features + - This release adds support for component system resource limits and idempotent Create operations. You can now specify the maximum amount of CPU and memory resources that each component can use. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Don't attempt to use empty session tokens + +## __AWS Savings Plans__ + - ### Bugfixes + - Setting default content type to 'application/json' since the service does not accept 'x-amz-json-' + +## __AWS Systems Manager Incident Manager Contacts__ + - ### Features + - Added new attribute in AcceptCode API. AcceptCodeValidation takes in two values - ENFORCE, IGNORE. ENFORCE forces validation of accept code and IGNORE ignores it which is also the default behavior; Corrected TagKeyList length from 200 to 50 + +# __2.17.9__ __2021-07-30__ +## __AWS AppSync__ + - ### Features + - AWS AppSync now supports a new authorization mode allowing you to define your own authorization logic using an AWS Lambda function. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Secrets Manager__ + - ### Features + - Add support for KmsKeyIds in the ListSecretVersionIds API response + +## __Amazon SageMaker Service__ + - ### Features + - API changes with respect to Lambda steps in model building pipelines. Adds several waiters to async Sagemaker Image APIs. Add more instance types to AppInstanceType field + +## __Elastic Load Balancing__ + - ### Features + - Client Port Preservation ALB Attribute Launch + +# __2.17.8__ __2021-07-29__ +## __AWS IoT__ + - ### Features + - Increase maximum credential duration of role alias to 12 hours. + +## __AWS IoT SiteWise__ + - ### Features + - Added support for AWS IoT SiteWise Edge. You can now create an AWS IoT SiteWise gateway that runs on AWS IoT Greengrass V2. With the gateway, you can collect local server and equipment data, process the data, and export the selected data from the edge to the AWS Cloud. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + + - ### Bugfixes + - Correctly handle multi-value headers in Aws4Signer + +## __AWS Savings Plans__ + - ### Features + - Documentation update for valid Savings Plans offering ID pattern + +## __Amazon Chime__ + - ### Features + - Adds support for live transcription of meetings with Amazon Transcribe and Amazon Transcribe Medical. The new APIs, StartMeetingTranscription and StopMeetingTranscription, control the generation of user-attributed transcriptions sent to meeting clients via Amazon Chime SDK data messages. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for G4ad xlarge and 2xlarge instances powered by AMD Radeon Pro V520 GPUs and AMD 2nd Generation EPYC processors + +# __2.17.7__ __2021-07-28__ +## __AWS CloudFormation__ + - ### Features + - SDK update to support Importing existing Stacks to new/existing Self Managed StackSet - Stack Import feature. + +## __AWS Single Sign-On Admin__ + - ### Features + - Documentation updates for arn:aws:trebuchet:::service:v1:03a2216d-1cda-4696-9ece-1387cb6f6952 + +# __2.17.6__ __2021-07-27__ +## __AWS Batch__ + - ### Features + - Add support for ListJob filters + +## __AWS IoT Analytics__ + - ### Features + - IoT Analytics now supports creating a dataset resource with IoT SiteWise MultiLayerStorage data stores, enabling customers to query industrial data within the service. This release includes adding JOIN functionality for customers to query multiple data sources in a dataset. + +## __AWS IoT Wireless__ + - ### Features + - Add SidewalkManufacturingSn as an identifier to allow Customer to query WirelessDevice, in the response, AmazonId is added in the case that Sidewalk device is return. + +## __AWS Route53 Recovery Control Config__ + - ### Features + - Amazon Route 53 Application Recovery Controller's routing control - Routing Control Configuration APIs help you create and delete clusters, control panels, routing controls and safety rules. State changes (On/Off) of routing controls are not part of configuration APIs. + +## __AWS Route53 Recovery Readiness__ + - ### Features + - Amazon Route 53 Application Recovery Controller's readiness check capability continually monitors resource quotas, capacity, and network routing policies to ensure that the recovery environment is scaled and configured to take over when needed. + +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Shield__ + - ### Features + - Change name of DDoS Response Team (DRT) to Shield Response Team (SRT) + +## __Amazon Lex Model Building V2__ + - ### Features + - Add waiters that automatically poll for resource status for asynchronous operations, such as building a bot + +## __Amazon QuickSight__ + - ### Features + - Add support to use row-level security with tags when embedding dashboards for users not provisioned in QuickSight + +## __Amazon Route 53__ + - ### Features + - This release adds support for the RECOVERY_CONTROL health check type to be used in conjunction with Route53 Application Recovery Controller. + +## __Redshift Data API Service__ + - ### Features + - Added structures to support new Data API operation BatchExecuteStatement, used to execute multiple SQL statements within a single transaction. + +## __Route53 Recovery Cluster__ + - ### Features + - Amazon Route 53 Application Recovery Controller's routing control - Routing Control Data Plane APIs help you update the state (On/Off) of the routing controls to reroute traffic across application replicas in a 100% available manner. + +# __2.17.5__ __2021-07-26__ +## __AWS Proton__ + - ### Features + - Documentation-only update links + +## __AWS S3 Control__ + - ### Features + - S3 Access Point aliases can be used anywhere you use S3 bucket names to access data in S3 + +## __AWS SDK for Java v2__ + - ### Features + - Annotate and document members that are modeled as deprecated + +## __AWS SSO Identity Store__ + - ### Features + - Documentation updates for SSO API Ref. + +## __Amazon CloudWatch__ + - ### Features + - SDK update to support creation of Cross-Account Metric Alarms and update API documentation. + +## __Amazon S3__ + - ### Documentations + - Deprecate S3 CopySource parameter for CopyObject & UploadPartCopy + +## __Amazon Textract__ + - ### Features + - Adds support for AnalyzeExpense, a new API to extract relevant data such as contact information, items purchased, and vendor name, from almost any invoice or receipt without the need for any templates or configuration. + +## __Synthetics__ + - ### Features + - CloudWatch Synthetics now supports visual testing in its canaries. + +# __2.17.4__ __2021-07-23__ +## __AWS SecurityHub__ + - ### Features + - Added product name, company name, and Region fields for security findings. Added details objects for RDS event subscriptions and AWS ECS services. Added fields to the details for AWS Elasticsearch domains. + +## __Amazon S3 on Outposts__ + - ### Features + - Add on-premise access type support for endpoints + +## __EC2 Image Builder__ + - ### Features + - Update to documentation to reapply missing change to SSM uninstall switch default value and improve description. + +# __2.17.3__ __2021-07-22__ +## __AWS Elemental MediaLive__ + - ### Features + - MediaLive now supports passing through style data on WebVTT caption outputs. + +## __AWS Glue DataBrew__ + - ### Features + - This SDK release adds two new features: 1) Output to Native JDBC destinations and 2) Adding configurations to profile jobs + +## __AWS S3 Control__ + - ### Features + - Documentation updates for Amazon S3-control + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release allows customers to assign prefixes to their elastic network interface and to reserve IP blocks in their subnet CIDRs. These reserved blocks can be used to assign prefixes to elastic network interfaces or be excluded from auto-assignment. + +## __Amazon QLDB__ + - ### Features + - Amazon QLDB now supports ledgers encrypted with customer managed KMS keys. Changes in CreateLedger, UpdateLedger and DescribeLedger APIs to support the changes. + +## __Amazon S3__ + - ### Features + - Add support for more user-friendly CopyObject source parameters + +## __Elastic Load Balancing__ + - ### Features + - Adds support for enabling TLS protocol version and cipher suite headers to be sent to backend targets for Application Load Balancers. + +# __2.17.2__ __2021-07-21__ +## __AWS CodeBuild__ + - ### Features + - AWS CodeBuild now allows you to set the access permissions for build artifacts, project artifacts, and log files that are uploaded to an Amazon S3 bucket that is owned by another account. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS Lambda__ + - ### Features + - New ResourceConflictException error code for PutFunctionEventInvokeConfig, UpdateFunctionEventInvokeConfig, and DeleteFunctionEventInvokeConfig operations. + +## __AWS Proton__ + - ### Features + - Documentation updates for AWS Proton + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now provides a data source connector for Amazon WorkDocs. For more information, see https://docs.aws.amazon.com/kendra/latest/dg/data-source-workdocs.html + +## __Amazon Elastic MapReduce__ + - ### Features + - EMR now supports new DescribeReleaseLabel and ListReleaseLabel APIs. They can provide Amazon EMR release label details. You can programmatically list available releases and applications for a specific Amazon EMR release label. + +## __Amazon Personalize__ + - ### Features + - My AWS Service (placeholder) - Making minProvisionedTPS an optional parameter when creating a campaign. If not provided, it defaults to 1. + +## __Amazon Relational Database Service__ + - ### Features + - Adds the OriginalSnapshotCreateTime field to the DBSnapshot response object. This field timestamps the underlying data of a snapshot and doesn't change when the snapshot is copied. + +## __Elastic Load Balancing__ + - ### Features + - Adds support for enabling TLS protocol version and cipher suite headers to be sent to backend targets for Application Load Balancers. + +# __2.17.1__ __2021-07-20__ +## __AWS Compute Optimizer__ + - ### Features + - Documentation updates for Compute Optimizer + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Added idempotency to the CreateVolume API using the ClientToken request parameter + +# __2.17.0__ __2021-07-19__ +## __AWS Direct Connect__ + - ### Features + - Documentation updates for directconnect + +## __AWS Health APIs and Notifications__ + - ### Features + - In the Health API, the maximum number of entities for the EventFilter and EntityFilter data types has changed from 100 to 99. This change is related to an internal optimization of the AWS Health service. + +## __AWS RoboMaker__ + - ### Features + - This release allows customers to create a new version of WorldTemplates with support for Doors. + +## __AWS SDK for Java v2__ + - ### Features + - Moved Jackson from an external SDK dependency to an internal dependency: https://aws.amazon.com/blogs/developer/the-aws-sdk-for-java-2-17-removes-its-external-dependency-on-jackson/ + +## __Amazon EMR Containers__ + - ### Features + - Updated DescribeManagedEndpoint and ListManagedEndpoints to return failureReason and stateDetails in API response. + +## __Amazon Location Service__ + - ### Features + - Add five new API operations: UpdateGeofenceCollection, UpdateMap, UpdatePlaceIndex, UpdateRouteCalculator, UpdateTracker. + +## __EC2 Image Builder__ + - ### Features + - Documentation updates for reversal of default value for additional instance configuration SSM switch, plus improved descriptions for semantic versioning. diff --git a/changelogs/2.18.x-CHANGELOG.md b/changelogs/2.18.x-CHANGELOG.md new file mode 100644 index 000000000000..af07990c44f1 --- /dev/null +++ b/changelogs/2.18.x-CHANGELOG.md @@ -0,0 +1,1376 @@ +# __2.18.41__ __2022-12-16__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports the use of tags with task executions. With this new feature, you can apply tags each time you execute a task, giving you greater control and management over your task executions. + +## __AWS IoT FleetWise__ + - ### Features + - Updated error handling for empty resource names in "UpdateSignalCatalog" and "GetModelManifest" operations. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Appflow__ + - ### Features + - This release updates the ListConnectorEntities API action so that it returns paginated responses that customers can retrieve with next tokens. + +## __Amazon CloudFront__ + - ### Features + - Updated documentation for CloudFront + +## __Amazon Elastic File System__ + - ### Features + - General documentation updates for EFS. + +## __Amazon GuardDuty__ + - ### Features + - This release provides the valid characters for the Description and Name field. + +## __Amazon S3__ + - ### Bugfixes + - Do not prefix copy-source with / when using the sourceBucket and sourceKey APIs. + +## __Amazon S3 Transfer Manager__ + - ### Features + - Change default `targetThroughputInGbps` from 5 to 10 + +## __Amazon SageMaker Service__ + - ### Features + - AWS sagemaker - Features: This release adds support for random seed, it's an integer value used to initialize a pseudo-random number generator. Setting a random seed will allow the hyperparameter tuning search strategies to produce more consistent configurations for the same tuning job. + +# __2.18.40__ __2022-12-15__ +## __AWS Backup Gateway__ + - ### Features + - This release adds support for VMware vSphere tags, enabling customer to protect VMware virtual machines using tag-based policies for AWS tags mapped from vSphere tags. This release also adds support for customer-accessible gateway-hypervisor interaction log and upload bandwidth rate limit schedule. + +## __AWS Glue__ + - ### Features + - This release adds support for AWS Glue Crawler with native DeltaLake tables, allowing Crawlers to classify Delta Lake format tables and catalog them for query engines to query against. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - Added new resource details objects to ASFF, including resources for AwsEc2LaunchTemplate, AwsSageMakerNotebookInstance, AwsWafv2WebAcl and AwsWafv2RuleGroup. + +## __AWSMainframeModernization__ + - ### Features + - Adds an optional create-only `KmsKeyId` property to Environment and Application resources. + +## __Amazon Connect Service__ + - ### Features + - Added support for "English - New Zealand" and "English - South African" to be used with Amazon Connect Custom Vocabulary APIs. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for container port ranges in ECS, a new capability that allows customers to provide container port ranges to simplify use cases where multiple ports are in use in a container. This release updates TaskDefinition mutation APIs and the Task description APIs. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Add support for Windows managed nodes groups. + +## __Amazon Kinesis__ + - ### Features + - Added StreamARN parameter for Kinesis Data Streams APIs. Added a new opaque pagination token for ListStreams. SDKs will auto-generate Account Endpoint when accessing Kinesis Data Streams. + +## __Amazon Location Service__ + - ### Features + - This release adds support for a new style, "VectorOpenDataStandardLight" which can be used with the new data source, "Open Data Maps (Preview)". + +## __Amazon S3 Transfer Manager__ + - ### Features + - Do not base 64 encode when writing `ResumableFileDownload` to disk. + - Flattened and removed OverrideConfigurations such that these can be configured directly to S3TransferManagerBuilder, upload and transfer Requests. Also refactored certain attributes and API names to represent better meaningful names. + - Moved POJO classes to `software.amazon.awssdk.transfer.s3.model` and moved configuration classes to `software.amazon.awssdk.transfer.s3.config` + - Rename `DownloadDirectoryRequest.destinationDirectory` to `destination`. + - Rename `ResumableFileDownload`'s `to` and `writeTo` methods to `serializeTo` to make it clear that these aren't affecting the download. + - Rename `UploadDirectoryRequest.prefix` and `delimiter` to `s3Prefix` and `s3Delimiter` to make it clear these are S3 parameters, not file-system parameters. + + - ### Bugfixes + - Allow pausing a resumed download, even if the resumed download hasn't started. + - Fixed issues in S3 Transfer Manager resumeDownloadFile API where errors were being wrapped by SdkClientException + - Require setting the bytes transferred on transfer progress snapshots. This prevents programming bugs where the caller forgets to set the value and it gets defaulted to 0. + + - ### Removals + - Backward incompatible changes after removing s3ClientConfiguration() from builder API of S3TransferManager Interface. + - Added crtBuilder in S3AsyncClient Interface. + - Backward incompatible changes after changing args of test() API in DownloadFilter Interface from DownloadFileContext to S3Object. + - Make `aws-crt` an optional dependency in `s3-transfer-manager` module. Customers need to explicitly add `aws-crt` dependency if they want to use CRT-based Transfer Manager + - Remove UploadDirectoryRequest's override configuration's `recursive` option. The same functionality can be achieved with `UploadDirectoryRequest.builder().maxDepth(1)` or S3TransferManager.builder().maxUploadDirectoryDepth(1). + - Remove `DownloadDirectoryRequest.prefix` and `delimiter`. The same functionality is already available via the `listObjectsV2RequestTransformer`. + - Removed charset options from `ResumableFileDownload`'s string options, because there's no reason to choose something other than UTF-8. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Inference Recommender now allows customers to load tests their models on various instance types using private VPC. + +## __Amazon Translate__ + - ### Features + - Raised the input byte size limit of the Text field in the TranslateText API to 10000 bytes. + +# __2.18.39__ __2022-12-14__ +## __AWS Cost Explorer Service__ + - ### Features + - This release supports percentage-based thresholds on Cost Anomaly Detection alert subscriptions. + +## __AWS Network Manager__ + - ### Features + - Appliance Mode support for AWS Cloud WAN. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch__ + - ### Features + - Adding support for Metrics Insights Alarms + +## __Amazon SageMaker Metrics Service__ + - ### Features + - Update SageMaker Metrics documentation. + +## __Redshift Data API Service__ + - ### Features + - This release adds a new --client-token field to ExecuteStatement and BatchExecuteStatement operations. Customers can now run queries with the additional client token parameter to ensures idempotency. + +# __2.18.38__ __2022-12-13__ +## __AWS CloudTrail__ + - ### Features + - Merging mainline branch for service model into mainline release branch. There are no new APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Relational Database Service__ + - ### Features + - This deployment adds ClientPasswordAuthType field to the Auth structure of the DBProxy. + +# __2.18.36__ __2022-12-12__ +## __AWS Migration Hub Refactor Spaces__ + - ### Features + - This release adds support for Lambda alias service endpoints. Lambda alias ARNs can now be passed into CreateService. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - Documents the naming requirement for logging destinations that you use with web ACLs. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release allows custom strings in PartyType and Gender through 2 new attributes in the CreateProfile and UpdateProfile APIs: PartyTypeString and GenderString. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release updates DescribeFpgaImages to show supported instance types of AFIs in its response. + +## __Amazon Kinesis Video Streams__ + - ### Features + - This release adds support for public preview of Kinesis Video Stream at Edge enabling customers to provide configuration for the Kinesis Video Stream EdgeAgent running on an on-premise IoT device. Customers can now locally record from cameras and stream videos to the cloud on configured schedule. + +## __Amazon Lookout for Vision__ + - ### Features + - This documentation update adds kms:GenerateDataKey as a required permission to StartModelPackagingJob. + +## __Amazon Rekognition__ + - ### Features + - Adds support for "aliases" and "categories", inclusion and exclusion filters for labels and label categories, and aggregating labels by video segment timestamps for Stored Video Label Detection APIs. + +## __Amazon Relational Database Service__ + - ### Features + - Update the RDS API model to support copying option groups during the CopyDBSnapshot operation + +## __Amazon SageMaker Metrics Service__ + - ### Features + - This release introduces support SageMaker Metrics APIs. + +# __2.18.35__ __2022-12-09__ +## __AWS Elemental MediaLive__ + - ### Features + - Link devices now support buffer size (latency) configuration. A higher latency value means a longer delay in transmitting from the device to MediaLive, but improved resiliency. A lower latency value means a shorter delay, but less resiliency. + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - This release provides the approximate number of assets in a packaging group. + +## __AWS IoT FleetWise__ + - ### Features + - Deprecated assignedValue property for actuators and attributes. Added a message to invalid nodes and invalid decoder manifest exceptions. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed an issue that could cause exception to be thrown from `CombinedResponseAsyncHttpResponseHandler#onStream` when `onError` got invoked first + +## __Amazon CloudWatch Logs__ + - ### Features + - Doc-only update for CloudWatch Logs, for Tagging Permissions clarifications + +## __Amazon S3__ + - ### Bugfixes + - Fixed an issue that could result in exceptions or signature validation failures when signing or presigning S3 requests using the signer directly when paths contain encoded or path traversal characters. + +# __2.18.34__ __2022-12-08__ +## __AWS IoT TwinMaker__ + - ### Features + - This release adds the following new features: 1) New APIs for managing a continuous sync of assets and asset models from AWS IoT SiteWise. 2) Support user friendly names for component types (ComponentTypeName) and properties (DisplayName). + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Auto Scaling__ + - ### Features + - Adds support for metric math for target tracking scaling policies, saving you the cost and effort of publishing a custom metric to CloudWatch. Also adds support for VPC Lattice by adding the Attach/Detach/DescribeTrafficSources APIs and a new health check type to the CreateAutoScalingGroup API. + +## __Migration Hub Strategy Recommendations__ + - ### Features + - This release adds known application filtering, server selection for assessments, support for potential recommendations, and indications for configuration and assessment status. For more information, see the AWS Migration Hub documentation at https://docs.aws.amazon.com/migrationhub/index.html + +# __2.18.33__ __2022-12-07__ +## __AWS Cost Explorer Service__ + - ### Features + - This release adds the LinkedAccountName field to the GetAnomalies API response under RootCause + +## __AWS Key Management Service__ + - ### Features + - Updated examples and exceptions for External Key Store (XKS). + +## __AWS SDK for Java v2__ + - ### Features + - Adding utilities for signing CloudFront URLs and cookies + - Updated endpoint and partition metadata. + +## __Amazon CloudFront__ + - ### Features + - Introducing UpdateDistributionWithStagingConfig that can be used to promote the staging configuration to the production. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adds support for EKS add-ons configurationValues fields and DescribeAddonConfiguration function + +## __Amazon S3__ + - ### Bugfixes + - S3 query param validation + + The SDK will raise SdkClientException when a null value is set for a member marked with the required trait. + +# __2.18.32__ __2022-12-06__ +## __AWS SDK for Java v2__ + - ### Features + - Adding utilities for signing CloudFront URLs and cookies + - Updated endpoint and partition metadata. + +## __AWSBillingConductor__ + - ### Features + - This release adds the Tiering Pricing Rule feature. + +## __Amazon Connect Service__ + - ### Features + - This release provides APIs that enable you to programmatically manage rules for Contact Lens conversational analytics and third party applications. For more information, see https://docs.aws.amazon.com/connect/latest/APIReference/rules-api.html + +## __Amazon DynamoDB__ + - ### Features + - Endpoint Ruleset update: Use http instead of https for the "local" region. + +## __Amazon DynamoDB Streams__ + - ### Features + - Endpoint Ruleset update: Use http instead of https for the "local" region. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds the BlueGreenDeploymentNotFoundFault to the AddTagsToResource, ListTagsForResource, and RemoveTagsFromResource operations. + +## __Amazon SageMaker Feature Store Runtime__ + - ### Features + - For online + offline Feature Groups, added ability to target PutRecord and DeleteRecord actions to only online store, or only offline store. If target store parameter is not specified, actions will apply to both stores. + +# __2.18.31__ __2022-12-05__ +## __AWS Cost Explorer Service__ + - ### Features + - This release introduces two new APIs that offer a 1-click experience to refresh Savings Plans recommendations. The two APIs are StartSavingsPlansPurchaseRecommendationGeneration and ListSavingsPlansPurchaseRecommendationGeneration. + +## __AWS SDK for Java v2__ + - ### Features + - Support for clients with AWS Query protocol migrating towards AwsJson in order to support custom error codes. + - Contributed by: [@ziyanli-amazon](https://github.com/ziyanli-amazon) + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2. + +## __Amazon Interactive Video Service Chat__ + - ### Features + - Adds PendingVerification error type to messaging APIs to block the resource usage for accounts identified as being fraudulent. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds the InvalidDBInstanceStateFault to the RestoreDBClusterFromSnapshot operation. + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe now supports creating custom language models in the following languages: Japanese (ja-JP) and German (de-DE). + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@ziyanli-amazon](https://github.com/ziyanli-amazon) +# __2.18.30__ __2022-12-02__ +## __AWS AppSync__ + - ### Features + - Fixes the URI for the evaluatecode endpoint to include the /v1 prefix (ie. "/v1/dataplane-evaluatecode"). + +## __AWS Elemental MediaConvert__ + - ### Features + - The AWS Elemental MediaConvert SDK has added support for configurable ID3 eMSG box attributes and the ability to signal them with InbandEventStream tags in DASH and CMAF outputs. + +## __AWS Elemental MediaLive__ + - ### Features + - Updates to Event Signaling and Management (ESAM) API and documentation. + +## __AWS Proton__ + - ### Features + - CreateEnvironmentAccountConnection RoleArn input is now optional + +## __AWS SDK for Java v2__ + - ### Features + - Added AsyncResponseBody.fromInputStream and AsyncRequestBody.forBlockingInputStream, allowing streaming operation requests to be written to like an input stream. + + - ### Bugfixes + - This changes fixes the previously incorrect handling of `hostPrefix` in services, causing requests for some services to have the wrong URL. This change also undoes the suppression of rules-based endpoint generation for all services apart from EventBridge, S3, and S3 Control, which was implemented in [#3520](https://github.com/aws/aws-sdk-java-v2/issues/3520) because of the previously mentioned `hostPrefix` issue. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation updates for Amazon ECS + +## __Amazon Polly__ + - ### Features + - Add language code for Finnish (fi-FI) + +## __Amazon Simple Notification Service__ + - ### Features + - This release adds the message payload-filtering feature to the SNS Subscribe, SetSubscriptionAttributes, and GetSubscriptionAttributes API actions + +## __Firewall Management Service__ + - ### Features + - AWS Firewall Manager now supports Fortigate Cloud Native Firewall as a Service as a third-party policy type. + +## __Redshift Serverless__ + - ### Features + - Add Table Level Restore operations for Amazon Redshift Serverless. Add multi-port support for Amazon Redshift Serverless endpoints. Add Tagging support to Snapshots and Recovery Points in Amazon Redshift Serverless. + +# __2.18.29__ __2022-12-01__ +## __AWS SDK for Java v2__ + - ### Features + - Added AsyncRequestBody.forBlockingOutputStream, allowing streaming operation requests to be written to like an output stream. + - Updated endpoint and partition metadata. + + - ### Bugfixes + - This fixes an issue with the client option validation where the client builder is incorrectly validating that a value for the SIGNER option is present, even when it's not required (because the service does not use AWS auth). + + This change only does the appropriate validations based on the authtypes present in the service model. + +## __AWS Step Functions__ + - ### Features + - This release adds support for the AWS Step Functions Map state in Distributed mode. The changes include a new MapRun resource and several new and modified APIs. + +## __Amazon CodeCatalyst__ + - ### Features + - This release adds operations that support customers using the AWS Toolkits and Amazon CodeCatalyst, a unified software development service that helps developers develop, deploy, and maintain applications in the cloud. For more information, see the documentation. + +## __Amazon Comprehend__ + - ### Features + - Comprehend now supports semi-structured documents (such as PDF files or image files) as inputs for custom analysis using the synchronous APIs (ClassifyDocument and DetectEntities). + +## __Amazon EventBridge Pipes__ + - ### Features + - AWS introduces new Amazon EventBridge Pipes which allow you to connect sources (SQS, Kinesis, DDB, Kafka, MQ) to Targets (14+ EventBridge Targets) without any code, with filtering, batching, input transformation, and an optional Enrichment stage (Lambda, StepFunctions, ApiGateway, ApiDestinations) + +## __Amazon GameLift__ + - ### Features + - GameLift introduces a new feature, GameLift Anywhere. GameLift Anywhere allows you to integrate your own compute resources with GameLift. You can also use GameLift Anywhere to iteratively test your game servers without uploading the build to GameLift for every iteration. + +# __2.18.28__ __2022-11-30__ +## __AWS Data Exchange__ + - ### Features + - This release enables data providers to license direct access to data in their Amazon S3 buckets or AWS Lake Formation data lakes through AWS Data Exchange. Subscribers get read-only access to the data and can use it in downstream AWS services, like Amazon Athena, without creating or managing copies. + +## __AWS Glue__ + - ### Features + - This release adds support for AWS Glue Data Quality, which helps you evaluate and monitor the quality of your data and includes the API for creating, deleting, or updating data quality rulesets, runs and evaluations. + +## __AWS S3 Control__ + - ### Features + - Amazon S3 now supports cross-account access points. S3 bucket owners can now allow trusted AWS accounts to create access points associated with their bucket. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Access Analyzer__ + - ### Features + - This release adds support for S3 cross account access points. IAM Access Analyzer will now produce public or cross account findings when it detects bucket delegation to external account access points. + +## __Amazon Athena__ + - ### Features + - This release includes support for using Apache Spark in Amazon Athena. + +## __Amazon DocumentDB Elastic Clusters__ + - ### Features + - Launched Amazon DocumentDB Elastic Clusters. You can now use the SDK to create, list, update and delete Amazon DocumentDB Elastic Cluster resources + +## __Amazon SageMaker Service__ + - ### Features + - Added Models as part of the Search API. Added Model shadow deployments in realtime inference, and shadow testing in managed inference. Added support for shared spaces, geospatial APIs, Model Cards, AutoMLJobStep in pipelines, Git repositories on user profiles and domains, Model sharing in Jumpstart. + +## __Amazon SageMaker geospatial capabilities__ + - ### Features + - This release provides Amazon SageMaker geospatial APIs to build, train, deploy and visualize geospatial models. + +# __2.18.27__ __2022-11-29__ +## __AWS Key Management Service__ + - ### Features + - AWS KMS introduces the External Key Store (XKS), a new feature for customers who want to protect their data with encryption keys stored in an external key management system under their control. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SimSpace Weaver__ + - ### Features + - AWS SimSpace Weaver is a new service that helps customers build spatial simulations at new levels of scale - resulting in virtual worlds with millions of dynamic entities. See the AWS SimSpace Weaver developer guide for more details on how to get started. https://docs.aws.amazon.com/simspaceweaver + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for AWS Verified Access and the Hpc6id Amazon EC2 compute optimized instance type, which features 3rd generation Intel Xeon Scalable processors. + +## __Amazon Kinesis Firehose__ + - ### Features + - Allow support for the Serverless offering for Amazon OpenSearch Service as a Kinesis Data Firehose delivery destination. + +## __Amazon Omics__ + - ### Features + - Amazon Omics is a new, purpose-built service that can be used by healthcare and life science organizations to store, query, and analyze omics data. The insights from that data can be used to accelerate scientific discoveries and improve healthcare. + +## __Amazon Security Lake__ + - ### Features + - Amazon Security Lake automatically centralizes security data from cloud, on-premises, and custom sources into a purpose-built data lake stored in your account. Security Lake makes it easier to analyze security data, so you can improve the protection of your workloads, applications, and data + +## __OpenSearch Service Serverless__ + - ### Features + - Publish SDK for Amazon OpenSearch Serverless + +# __2.18.26__ __2022-11-28__ +## __AWS ARC - Zonal Shift__ + - ### Features + - Amazon Route 53 Application Recovery Controller Zonal Shift is a new service that makes it easy to shift traffic away from an Availability Zone in a Region. See the developer guide for more information: https://docs.aws.amazon.com/r53recovery/latest/dg/what-is-route53-recovery.html + +## __AWS Compute Optimizer__ + - ### Features + - Adds support for a new recommendation preference that makes it possible for customers to optimize their EC2 recommendations by utilizing an external metrics ingestion service to provide metrics. + +## __AWS Config__ + - ### Features + - With this release, you can use AWS Config to evaluate your resources for compliance with Config rules before they are created or updated. Using Config rules in proactive mode enables you to test and build compliant resource templates or check resource configurations at the time they are provisioned. + +## __AWS Glue__ + - ### Features + - This release allows the creation of Custom Visual Transforms (Dynamic Transforms) to be created via AWS Glue CLI/SDK. + +## __AWS Lambda__ + - ### Features + - Adds support for Lambda SnapStart, which helps improve the startup performance of functions. Customers can now manage SnapStart based functions via CreateFunction and UpdateFunctionConfiguration APIs + +## __AWS License Manager User Subscriptions__ + - ### Features + - AWS now offers fully-compliant, Amazon-provided licenses for Microsoft Office Professional Plus 2021 Amazon Machine Images (AMIs) on Amazon EC2. These AMIs are now available on the Amazon EC2 console and on AWS Marketplace to launch instances on-demand without any long-term licensing commitments. + +## __AWS S3 Control__ + - ### Features + - Added two new APIs to support Amazon S3 Multi-Region Access Point failover controls: GetMultiRegionAccessPointRoutes and SubmitMultiRegionAccessPointRoutes. The failover control APIs are supported in the following Regions: us-east-1, us-west-2, eu-west-1, ap-southeast-2, and ap-northeast-1. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - Adding StandardsManagedBy field to DescribeStandards API response + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Introduces ENA Express, which uses AWS SRD and dynamic routing to increase throughput and minimize latency, adds support for trust relationships between Reachability Analyzer and AWS Organizations to enable cross-account analysis, and adds support for Infrastructure Performance metric subscriptions. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adds support for additional EKS add-ons metadata and filtering fields + +## __Amazon FSx__ + - ### Features + - This release adds support for 4GB/s / 160K PIOPS FSx for ONTAP file systems and 10GB/s / 350K PIOPS FSx for OpenZFS file systems (Single_AZ_2). For FSx for ONTAP, this also adds support for DP volumes, snapshot policy, copy tags to backups, and Multi-AZ route table updates. + +## __Amazon Macie 2__ + - ### Features + - Added support for configuring Macie to continually sample objects from S3 buckets and inspect them for sensitive data. Results appear in statistics, findings, and other data that Macie provides. + +## __Amazon QuickSight__ + - ### Features + - This release adds new Describe APIs and updates Create and Update APIs to support the data model for Dashboards, Analyses, and Templates. + +## __Inspector2__ + - ### Features + - This release adds support for Inspector to scan AWS Lambda. + +# __2.18.25__ __2022-11-27__ +## __AWS Backup__ + - ### Features + - AWS Backup introduces support for legal hold and application stack backups. AWS Backup Audit Manager introduces support for cross-Region, cross-account reports. + +## __AWS IoT__ + - ### Features + - Job scheduling enables the scheduled rollout of a Job with start and end times and a customizable end behavior when end time is reached. This is available for continuous and snapshot jobs. Added support for MQTT5 properties to AWS IoT TopicRule Republish Action. + +## __AWS IoT Data Plane__ + - ### Features + - This release adds support for MQTT5 properties to AWS IoT HTTP Publish API. + +## __AWS IoT Wireless__ + - ### Features + - This release includes a new feature for customers to calculate the position of their devices by adding three new APIs: UpdateResourcePosition, GetResourcePosition, and GetPositionEstimate. + +## __AWS Organizations__ + - ### Features + - This release introduces delegated administrator for AWS Organizations, a new feature to help you delegate the management of your Organizations policies, enabling you to govern your AWS organization in a decentralized way. You can now allow member accounts to manage Organizations policies. + +## __AWS SDK for Java v2__ + - ### Features + - Added AsyncResponseTransformer.toBlockingInputStream, allowing streaming operation responses to be read as if they're an InputStream. + - Updated endpoint and partition metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports preview of table information from HTML tables in the search results. The most relevant cells with their corresponding rows, columns are displayed as a preview in the search result. The most relevant table cell or cells are also highlighted in table preview. + +## __Amazon CloudWatch__ + - ### Features + - Adds cross-account support to the GetMetricData API. Adds cross-account support to the ListMetrics API through the usage of the IncludeLinkedAccounts flag and the new OwningAccounts field. + +## __Amazon CloudWatch Logs__ + - ### Features + - Updates to support CloudWatch Logs data protection and CloudWatch cross-account observability + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for ECS Service Connect, a new capability that simplifies writing and operating resilient distributed applications. This release updates the TaskDefinition, Cluster, Service mutation APIs with Service connect constructs and also adds a new ListServicesByNamespace API. + +## __Amazon Elastic File System__ + - ### Features + - This release adds elastic as a new ThroughputMode value for EFS file systems and adds AFTER_1_DAY as a value for TransitionToIARules. + +## __Amazon Relational Database Service__ + - ### Features + - This release enables new Aurora and RDS feature called Blue/Green Deployments that makes updates to databases safer, simpler and faster. + +## __Amazon Textract__ + - ### Features + - This release adds support for classifying and splitting lending documents by type, and extracting information by using the Analyze Lending APIs. This release also includes support for summarized information of the processed lending document package, in addition to per document results. + +## __Amazon Transcribe Service__ + - ### Features + - This release adds support for 'inputType' for post-call and real-time (streaming) Call Analytics within Amazon Transcribe. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - This release adds support for real-time (streaming) and post-call Call Analytics within Amazon Transcribe. + +## __Application Migration Service__ + - ### Features + - This release adds support for Application and Wave management. We also now support custom post-launch actions. + +## __CloudWatch Observability Access Manager__ + - ### Features + - Amazon CloudWatch Observability Access Manager is a new service that allows configuration of the CloudWatch cross-account observability feature. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Non breaking changes to existing APIs, and additional APIs added to support in-AWS failing back using AWS Elastic Disaster Recovery. + +# __2.18.24__ __2022-11-23__ +## __AWS SDK for Java v2__ + - ### Features + - When a request fails after SDK retries, include the retried failure messages as "suppressed" exceptions. Stack traces for these suppressed exceptions are not preserved. + - When raising an exception as a result of a service response, if service does not return a error message, include the error code or HTTP status code in exception messages instead of the string "null". + +## __Amazon Managed Grafana__ + - ### Features + - This release includes support for configuring a Grafana workspace to connect to a datasource within a VPC as well as new APIs for configuring Grafana settings. + +## __Amazon Recycle Bin__ + - ### Features + - This release adds support for Rule Lock for Recycle Bin, which allows you to lock retention rules so that they can no longer be modified or deleted. + +# __2.18.23__ __2022-11-22__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Appflow__ + - ### Features + - Adding support for Amazon AppFlow to transfer the data to Amazon Redshift databases through Amazon Redshift Data API service. This feature will support the Redshift destination connector on both public and private accessible Amazon Redshift Clusters and Amazon Redshift Serverless. + +## __Amazon Kinesis Analytics__ + - ### Features + - Support for Apache Flink 1.15 in Kinesis Data Analytics. + +# __2.18.22__ __2022-11-21__ +## __Amazon Route 53__ + - ### Features + - Amazon Route 53 now supports the Asia Pacific (Hyderabad) Region (ap-south-2) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. + +# __2.18.21__ __2022-11-18__ +## __AWS Audit Manager__ + - ### Features + - This release introduces a new feature for Audit Manager: Evidence finder. You can now use evidence finder to quickly query your evidence, and add the matching evidence results to an assessment report. + +## __AWS Glue__ + - ### Features + - AWSGlue Crawler - Adding support for Table and Column level Comments with database level datatypes for JDBC based crawler. + +## __AWS IoT RoboRunner__ + - ### Features + - AWS IoT RoboRunner is a new service that makes it easy to build applications that help multi-vendor robots work together seamlessly. See the IoT RoboRunner developer guide for more details on getting started. https://docs.aws.amazon.com/iotroborunner/latest/dev/iotroborunner-welcome.html + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Service Catalog__ + - ### Features + - This release 1. adds support for Principal Name Sharing with Service Catalog portfolio sharing. 2. Introduces repo sourced products which are created and managed with existing SC APIs. These products are synced to external repos and auto create new product versions based on changes in the repo. + +## __AWS Step Functions__ + - ### Features + - This release adds support for using Step Functions service integrations to invoke any cross-account AWS resource, even if that service doesn't support resource-based policies or cross-account calls. See https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html + +## __AWS Systems Manager for SAP__ + - ### Features + - AWS Systems Manager for SAP provides simplified operations and management of SAP applications such as SAP HANA. With this release, SAP customers and partners can automate and simplify their SAP system administration tasks such as backup/restore of SAP HANA. + +## __AWS Transfer Family__ + - ### Features + - Adds a NONE encryption algorithm type to AS2 connectors, providing support for skipping encryption of the AS2 message body when a HTTPS URL is also specified. + +## __Amazon Appflow__ + - ### Features + - AppFlow provides a new API called UpdateConnectorRegistration to update a custom connector that customers have previously registered. With this API, customers no longer need to unregister and then register a connector to make an update. + +## __Amazon Chime SDK Voice__ + - ### Features + - Amazon Chime Voice Connector, Voice Connector Group and PSTN Audio Service APIs are now available in the Amazon Chime SDK Voice namespace. See https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html for more details. + +## __Amazon CloudFront__ + - ### Features + - CloudFront API support for staging distributions and associated traffic management policies. + +## __Amazon Connect Service__ + - ### Features + - Added AllowedAccessControlTags and TagRestrictedResource for Tag Based Access Control on Amazon Connect Webpage + +## __Amazon DynamoDB__ + - ### Features + - Updated minor fixes for DynamoDB documentation. + +## __Amazon DynamoDB Streams__ + - ### Features + - Updated minor fixes for DynamoDB documentation. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for copying an Amazon Machine Image's tags when copying an AMI. + +## __Amazon QuickSight__ + - ### Features + - This release adds the following: 1) Asset management for centralized assets governance 2) QuickSight Q now supports public embedding 3) New Termination protection flag to mitigate accidental deletes 4) Athena data sources now accept a custom IAM role 5) QuickSight supports connectivity to Databricks + +## __Amazon SageMaker Service__ + - ### Features + - Added DisableProfiler flag as a new field in ProfilerConfig + +# __2.18.20__ __2022-11-17__ +## __AWS Amplify__ + - ### Features + - Adds a new value (WEB_COMPUTE) to the Platform enum that allows customers to create Amplify Apps with Server-Side Rendering support. + +## __AWS AppSync__ + - ### Features + - This release introduces the APPSYNC_JS runtime, and adds support for JavaScript in AppSync functions and AppSync pipeline resolvers. + +## __AWS Database Migration Service__ + - ### Features + - Adds support for Internet Protocol Version 6 (IPv6) on DMS Replication Instances + +## __AWS Lambda__ + - ### Features + - Add Node 18 (nodejs18.x) support to AWS Lambda. + +## __AWS S3 Control__ + - ### Features + - Added 34 new S3 Storage Lens metrics to support additional customer use cases. + +## __AWS SDK for Java v2__ + - ### Features + - Provide the contents of stderr as part of the exception in the case of non zero RCs returned from the external process in `ProcessCredentialProvider`. See [#3377](https://github.com/aws/aws-sdk-java-v2/issues/3377) + - Stop using execution.interceptors reflective loading for internal interceptors. This will reduce the chance of shading errors. + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager. + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for AWS Security Token Service. + +## __AWS SecurityHub__ + - ### Features + - Added SourceLayerArn and SourceLayerHash field for security findings. Updated AwsLambdaFunction Resource detail + +## __AWS Service Catalog App Registry__ + - ### Features + - This release adds support for tagged resource associations, which allows you to associate a group of resources with a defined resource tag key and value to the application. + +## __Amazon Appflow__ + - ### Features + - AppFlow simplifies the preparation and cataloging of SaaS data into the AWS Glue Data Catalog where your data can be discovered and accessed by AWS analytics and ML services. AppFlow now also supports data field partitioning and file size optimization to improve query performance and reduce cost. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new optional parameter "privateIpAddress" for the CreateNatGateway API. PrivateIPAddress will allow customers to select a custom Private IPv4 address instead of having it be auto-assigned. + +## __Amazon Interactive Video Service Chat__ + - ### Features + - Adds LoggingConfiguration APIs for IVS Chat - a feature that allows customers to store and record sent messages in a chat room to S3 buckets, CloudWatch logs, or Kinesis firehose. + +## __Amazon Personalize__ + - ### Features + - This release provides support for creation and use of metric attributions in AWS Personalize + +## __Amazon Polly__ + - ### Features + - Add two new neural voices - Ola (pl-PL) and Hala (ar-AE). + +## __Amazon Textract__ + - ### Features + - This release adds support for specifying and extracting information from documents using the Signatures feature within Analyze Document API + +## __Amazon WorkSpaces__ + - ### Features + - The release introduces CreateStandbyWorkspaces, an API that allows you to create standby WorkSpaces associated with a primary WorkSpace in another Region. DescribeWorkspaces now includes related WorkSpaces properties. DescribeWorkspaceBundles and CreateWorkspaceBundle now return more bundle details. + +## __CloudWatch RUM__ + - ### Features + - CloudWatch RUM now supports custom events. To use custom events, create an app monitor or update an app monitor with CustomEvent Status as ENABLED. + +## __EMR Serverless__ + - ### Features + - Adds support for AWS Graviton2 based applications. You can now select CPU architecture when creating new applications or updating existing ones. + +## __Elastic Load Balancing__ + - ### Features + - Provides new target group attributes to turn on/off cross zone load balancing and configure target group health for Network Load Balancers and Application Load Balancers. Provides improvements to health check configuration for Network Load Balancers. + +# __2.18.19__ __2022-11-16__ +## __AWS Batch__ + - ### Features + - Documentation updates related to Batch on EKS + +## __AWS CloudFormation__ + - ### Features + - Added UnsupportedTarget HandlerErrorCode for use with CFN Resource Hooks + +## __AWS Comprehend Medical__ + - ### Features + - This release supports new set of entities and traits. It also adds new category (BEHAVIORAL_ENVIRONMENTAL_SOCIAL). + +## __AWS IoT TwinMaker__ + - ### Features + - This release adds the following: 1) ExecuteQuery API allows users to query their AWS IoT TwinMaker Knowledge Graph 2) Pricing plan APIs allow users to configure and manage their pricing mode 3) Support for property groups and tabular property values in existing AWS IoT TwinMaker APIs. + +## __AWS Proton__ + - ### Features + - Add support for sorting and filtering in ListServiceInstances + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Add support for PagerDuty integrations on ResponsePlan, IncidentRecord, and RelatedItem APIs + +## __AWS Transfer Family__ + - ### Features + - Allow additional operations to throw ThrottlingException + +## __AWS X-Ray__ + - ### Features + - This release adds new APIs - PutResourcePolicy, DeleteResourcePolicy, ListResourcePolicies for supporting resource based policies for AWS X-Ray. + +## __AWSBillingConductor__ + - ### Features + - This release adds a new feature BillingEntity pricing rule. + +## __Amazon Connect Service__ + - ### Features + - This release adds a new MonitorContact API for initiating monitoring of ongoing Voice and Chat contacts. + +## __Amazon ElastiCache__ + - ### Features + - for Redis now supports AWS Identity and Access Management authentication access to Redis clusters starting with redis-engine version 7.0 + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adds support for customer-provided placement groups for Kubernetes control plane instances when creating local EKS clusters on Outposts + +## __Amazon Personalize Events__ + - ### Features + - This release provides support for creation and use of metric attributions in AWS Personalize + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for container databases (CDBs) to Amazon RDS Custom for Oracle. A CDB contains one PDB at creation. You can add more PDBs using Oracle SQL. You can also customize your database installation by setting the Oracle base, Oracle home, and the OS user name and group. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release adds support for cross account access in CreateOpsItem, UpdateOpsItem and GetOpsItem. It introduces new APIs to setup resource policies for SSM resources: PutResourcePolicy, GetResourcePolicies and DeleteResourcePolicy. + +# __2.18.18__ __2022-11-15__ +## __AWS IoT Greengrass V2__ + - ### Features + - Adds new parent target ARN paramater to CreateDeployment, GetDeployment, and ListDeployments APIs for the new subdeployments feature. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Systems Manager for SAP__ + - ### Features + - AWS Systems Manager for SAP provides simplified operations and management of SAP applications such as SAP HANA. With this release, SAP customers and partners can automate and simplify their SAP system administration tasks such as backup/restore of SAP HANA. + +## __Amazon Connect Service__ + - ### Features + - This release updates the APIs: UpdateInstanceAttribute, DescribeInstanceAttribute, and ListInstanceAttributes. You can use it to programmatically enable/disable enhanced contact monitoring using attribute type ENHANCED_CONTACT_MONITORING on the specified Amazon Connect instance. + +## __Amazon Route 53__ + - ### Features + - Amazon Route 53 now supports the Europe (Spain) Region (eu-south-2) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. + +## __Amazon WorkSpaces__ + - ### Features + - This release introduces ModifyCertificateBasedAuthProperties, a new API that allows control of certificate-based auth properties associated with a WorkSpaces directory. The DescribeWorkspaceDirectories API will now additionally return certificate-based auth properties in its responses. + +## __Netty NIO Http Client__ + - ### Bugfixes + - Fix for Netty based client request getting stuck if connection is reset after recieveing Http Continue response. + +# __2.18.17__ __2022-11-14__ +## __AWS Lake Formation__ + - ### Features + - This release adds a new parameter "Parameters" in the DataLakeSettings. + +## __AWS Proton__ + - ### Features + - Add support for CodeBuild Provisioning + +## __AWS X-Ray__ + - ### Features + - This release enhances GetServiceGraph API to support new type of edge to represent links between SQS and Lambda in event-driven applications. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release enhances the SearchProfiles API by providing functionality to search for profiles using multiple keys and logical operators. + +## __Amazon Managed Blockchain__ + - ### Features + - Updating the API docs data type: NetworkEthereumAttributes, and the operations DeleteNode, and CreateNode to also include the supported Goerli network. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for restoring an RDS Multi-AZ DB cluster snapshot to a Single-AZ deployment or a Multi-AZ DB instance deployment. + +## __Amazon WorkDocs__ + - ### Features + - Added 2 new document related operations, DeleteDocumentVersion and RestoreDocumentVersions. + +# __2.18.16__ __2022-11-11__ +## __AWS Glue__ + - ### Features + - Added links related to enabling job bookmarks. + +## __AWS IoT__ + - ### Features + - This release add new api listRelatedResourcesForAuditFinding and new member type IssuerCertificates for Iot device device defender Audit. + +## __AWS License Manager__ + - ### Features + - AWS License Manager now supports onboarded Management Accounts or Delegated Admins to view granted licenses aggregated from all accounts in the organization. + +## __AWS Marketplace Catalog Service__ + - ### Features + - Added three new APIs to support tagging and tag-based authorization: TagResource, UntagResource, and ListTagsForResource. Added optional parameters to the StartChangeSet API to support tagging a resource while making a request to create it. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - Documentation updates for Security Hub + +## __AWS Systems Manager Incident Manager__ + - ### Features + - RelatedItems now have an ID field which can be used for referencing them else where. Introducing event references in TimelineEvent API and increasing maximum length of "eventData" to 12K characters. + +## __Amazon Rekognition__ + - ### Features + - Adding support for ImageProperties feature to detect dominant colors and image brightness, sharpness, and contrast, inclusion and exclusion filters for labels and label categories, new fields to the API response, "aliases" and "categories" + +# __2.18.15__ __2022-11-10__ +## __AWS Resource Explorer__ + - ### Features + - Text only updates to some Resource Explorer descriptions. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for task scale-in protection with updateTaskProtection and getTaskProtection APIs. UpdateTaskProtection API can be used to protect a service managed task from being terminated by scale-in events and getTaskProtection API to get the scale-in protection status of a task. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new price capacity optimized allocation strategy for Spot Instances to help customers optimize provisioning of Spot Instances via EC2 Auto Scaling, EC2 Fleet, and Spot Fleet. It allocates Spot Instances based on both spare capacity availability and Spot Instance price. + +## __Amazon Elasticsearch Service__ + - ### Features + - Amazon OpenSearch Service now offers managed VPC endpoints to connect to your Amazon OpenSearch Service VPC-enabled domain in a Virtual Private Cloud (VPC). This feature allows you to privately access OpenSearch Service domain without using public IPs or requiring traffic to traverse the Internet. + +## __Amazon EventBridge Scheduler__ + - ### Features + - AWS introduces the new Amazon EventBridge Scheduler. EventBridge Scheduler is a serverless scheduler that allows you to create, run, and manage tasks from one central, managed service. + +## __Auto Scaling__ + - ### Features + - This release adds a new price capacity optimized allocation strategy for Spot Instances to help customers optimize provisioning of Spot Instances via EC2 Auto Scaling, EC2 Fleet, and Spot Fleet. It allocates Spot Instances based on both spare capacity availability and Spot Instance price. + +# __2.18.14__ __2022-11-09__ +## __AWS Elemental MediaPackage VOD__ + - ### Features + - This release adds "IncludeIframeOnlyStream" for Dash endpoints. + +## __AWS Ground Station__ + - ### Features + - This release adds the preview of customer-provided ephemeris support for AWS Ground Station, allowing space vehicle owners to provide their own position and trajectory information for a satellite. + +## __Amazon Connect Cases__ + - ### Features + - This release adds the ability to disable templates through the UpdateTemplate API. Disabling templates prevents customers from creating cases using the template. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html + +## __Amazon Connect Service__ + - ### Features + - This release adds new fields SignInUrl, UserArn, and UserId to GetFederationToken response payload. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 Trn1 instances, powered by AWS Trainium chips, are purpose built for high-performance deep learning training. u-24tb1.112xlarge and u-18tb1.112xlarge High Memory instances are purpose-built to run large in-memory databases. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - This will release hi-IN and th-TH + +# __2.18.13__ __2022-11-08__ +## __AWS Certificate Manager__ + - ### Features + - Support added for requesting elliptic curve certificate key algorithm types P-256 (EC_prime256v1) and P-384 (EC_secp384r1). + +## __AWS Resource Explorer__ + - ### Features + - This is the initial SDK release for AWS Resource Explorer. AWS Resource Explorer lets your users search for and discover your AWS resources across the AWS Regions in your account. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWSBillingConductor__ + - ### Features + - This release adds the Recurring Custom Line Item feature along with a new API ListCustomLineItemVersions. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release enables sharing of EC2 Placement Groups across accounts and within AWS Organizations using Resource Access Manager + +## __Amazon Lightsail__ + - ### Features + - This release adds support for Amazon Lightsail to automate the delegation of domains registered through Amazon Route 53 to Lightsail DNS management and to automate record creation for DNS validation of Lightsail SSL/TLS certificates. + +## __Amazon OpenSearch Service__ + - ### Features + - Amazon OpenSearch Service now offers managed VPC endpoints to connect to your Amazon OpenSearch Service VPC-enabled domain in a Virtual Private Cloud (VPC). This feature allows you to privately access OpenSearch Service domain without using public IPs or requiring traffic to traverse the Internet. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new voices: Elin (sv-SE), Ida (nb-NO), Laura (nl-NL) and Suvi (fi-FI). They are available as neural voices only. + +## __Amazon Route 53__ + - ### Features + - Amazon Route 53 now supports the Europe (Zurich) Region (eu-central-2) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. + +## __Firewall Management Service__ + - ### Features + - AWS Firewall Manager now supports importing existing AWS Network Firewall firewalls into Firewall Manager policies. + +# __2.18.12__ __2022-11-07__ +## __AWS CloudTrail__ + - ### Features + - This release includes support for configuring a delegated administrator to manage an AWS Organizations organization CloudTrail trails and event data stores, and AWS Key Management Service encryption of CloudTrail Lake event data stores. + +## __AWS Elemental MediaConvert__ + - ### Features + - The AWS Elemental MediaConvert SDK has added support for setting the SDR reference white point for HDR conversions and conversion of HDR10 to DolbyVision without mastering metadata. + +## __AWS SDK for Java v2__ + - ### Features + - The SSOCredentialProvider should resolve to SSO Token Provider if the profile has sso_session property defined in it. + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - The geo match statement now adds labels for country and region. You can match requests at the region level by combining a geo match statement with label match statements. + +## __AWS Well-Architected Tool__ + - ### Features + - This release adds support for integrations with AWS Trusted Advisor and AWS Service Catalog AppRegistry to improve workload discovery and speed up your workload reviews. + +## __Amazon Athena__ + - ### Features + - Adds support for using Query Result Reuse + +## __Amazon ElastiCache__ + - ### Features + - Added support for IPv6 and dual stack for Memcached and Redis clusters. Customers can now launch new Redis and Memcached clusters with IPv6 and dual stack networking support. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for two new attributes for attribute-based instance type selection - NetworkBandwidthGbps and AllowedInstanceTypes. + +## __Amazon Lex Model Building V2__ + - ### Features + - Amazon Lex now supports new APIs for viewing and editing Custom Vocabulary in bots. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release includes support for applying a CloudWatch alarm to multi account multi region Systems Manager Automation + +## __Amazon WorkSpaces__ + - ### Features + - This release adds protocols attribute to workspaces properties data type. This enables customers to migrate workspaces from PC over IP (PCoIP) to WorkSpaces Streaming Protocol (WSP) using create and modify workspaces public APIs. + +## __Auto Scaling__ + - ### Features + - This release adds support for two new attributes for attribute-based instance type selection - NetworkBandwidthGbps and AllowedInstanceTypes. + +# __2.18.11__ __2022-11-04__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch Logs__ + - ### Features + - Doc-only update for bug fixes and support of export to buckets encrypted with SSE-KMS + +## __Amazon EMR Containers__ + - ### Features + - Adding support for Job templates. Job templates allow you to create and store templates to configure Spark applications parameters. This helps you ensure consistent settings across applications by reusing and enforcing configuration overrides in data pipelines. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds API support for the recipient of an AMI account share to remove shared AMI launch permissions. + +# __2.18.10__ __2022-11-03__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed an issue that could result in signature mismatch exceptions when requests included . or .. + +## __Amazon MemoryDB__ + - ### Features + - Adding support for r6gd instances for MemoryDB Redis with data tiering. In a cluster with data tiering enabled, when available memory capacity is exhausted, the least recently used data is automatically tiered to solid state drives for cost-effective capacity scaling with minimal performance impact. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker now supports running training jobs on ml.trn1 instance types. + +# __2.18.9__ __2022-11-02__ +## __AWS IoT SiteWise__ + - ### Features + - This release adds the ListAssetModelProperties and ListAssetProperties APIs. You can list all properties that belong to a single asset model or asset using these two new APIs. + +## __AWS S3 Control__ + - ### Features + - S3 on Outposts launches support for Lifecycle configuration for Outposts buckets. With S3 Lifecycle configuration, you can mange objects so they are stored cost effectively. You can manage objects using size-based rules and specify how many noncurrent versions bucket will retain. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Adds support for tagging replication-set on creation. + +## __Amazon S3__ + - ### Bugfixes + - Update CopySourceInterceptor to remove leading slash in header value for ARN source buckets + +## __Amazon SageMaker Service__ + - ### Features + - This release updates Framework model regex for ModelPackage to support new Framework version xgboost, sklearn. + +# __2.18.8__ __2022-11-01__ +## __Amazon Relational Database Service__ + - ### Features + - Relational Database Service - This release adds support for configuring Storage Throughput on RDS database instances. + +## __Amazon Textract__ + - ### Features + - Add ocr results in AnalyzeIDResponse as blocks + +# __2.18.7__ __2022-10-31__ +## __AWS App Runner__ + - ### Features + - This release adds support for private App Runner services. Services may now be configured to be made private and only accessible from a VPC. The changes include a new VpcIngressConnection resource and several new and modified APIs. + +## __AWS IoT__ + - ### Features + - This release adds the Amazon Location action to IoT Rules Engine. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch Logs__ + - ### Features + - SDK release to support tagging for destinations and log groups with TagResource. Also supports tag on create with PutDestination. + +## __Amazon Connect Service__ + - ### Features + - Amazon connect now support a new API DismissUserContact to dismiss or remove terminated contacts in Agent CCP + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Elastic IP transfer is a new Amazon VPC feature that allows you to transfer your Elastic IP addresses from one AWS Account to another. + +## __Amazon Simple Email Service__ + - ### Features + - This release includes support for interacting with the Virtual Deliverability Manager, allowing you to opt in/out of the feature and to retrieve recommendations and metric data. + +## __Amazon Textract__ + - ### Features + - This release introduces additional support for 30+ normalized fields such as vendor address and currency. It also includes OCR output in the response and accuracy improvements for the already supported fields in previous version + +# __2.18.6__ __2022-10-28__ +## __AWS App Runner__ + - ### Features + - AWS App Runner adds .NET 6, Go 1, PHP 8.1 and Ruby 3.1 runtimes. + +## __AWS Cloud9__ + - ### Features + - Update to the documentation section of the Cloud9 API Reference guide. + +## __AWS CloudFormation__ + - ### Features + - This release adds more fields to improves visibility of AWS CloudFormation StackSets information in following APIs: ListStackInstances, DescribeStackInstance, ListStackSetOperationResults, ListStackSetOperations, DescribeStackSetOperation. + +## __AWS MediaTailor__ + - ### Features + - This release introduces support for SCTE-35 segmentation descriptor messages which can be sent within time signal messages. + +## __AWS Private 5G__ + - ### Features + - Fix incorrect endpoint-prefix in endpoint ruleset. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Support App__ + - ### Features + - Fix incorrect endpoint-prefix in endpoint ruleset. + +## __Amazon AppStream__ + - ### Features + - This release includes CertificateBasedAuthProperties in CreateDirectoryConfig and UpdateDirectoryConfig. + +## __GameSparks__ + - ### Features + - Add LATEST as a possible GameSDK Version on snapshot + +# __2.18.5__ __2022-10-27__ +## __AWS Glue__ + - ### Features + - Added support for custom datatypes when using custom csv classifier. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - This release adds the following: Challenge rule action, to silently verify client browsers; rule group rule action override to any valid rule action, not just Count; token sharing between protected applications for challenge/CAPTCHA token; targeted rules option for Bot Control managed rule group. + +## __AWs SDK for Java v2__ + - ### Bugfixes + - We are only enabling rules based endpoints for S3, S3Control, and EventBridge for now in order to roll back incorrect hostprefix handling in the Java SDK. EventBridge are unaffected by this issue because it does not have a `hostPrefix` in its service model. S3 and S3Control have `hostPrefix` in the model, it is handled by the rule set. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Feature supports the replacement of instance root volume using an updated AMI without requiring customers to stop their instance. + +## __Amazon Redshift__ + - ### Features + - This release clarifies use for the ElasticIp parameter of the CreateCluster and RestoreFromClusterSnapshot APIs. + +## __Amazon SageMaker Service__ + - ### Features + - This change allows customers to provide a custom entrypoint script for the docker container to be run while executing training jobs, and provide custom arguments to the entrypoint script. + +## __Firewall Management Service__ + - ### Features + - Add support NetworkFirewall Managed Rule Group Override flag in GetViolationDetails API + +# __2.18.4__ __2022-10-26__ +## __AWS Identity and Access Management__ + - ### Features + - Doc only update that corrects instances of CLI not using an entity. + +## __AWS SDK for Java v2__ + - ### Features + - Update EnhancedAttributeValue to accept Collection + - Contributed by: [@L-Applin](https://github.com/L-Applin) + + - ### Bugfixes + - HttpChecksumResolver.getResolvedChecksumSpecs() first attempts retrieval of checksum from ExecutionAttributes before resolving it + +## __Amazon Neptune__ + - ### Features + - Added a new cluster-level attribute to set the capacity range for Neptune Serverless instances. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Automatic Model Tuning now supports specifying Grid Search strategy for tuning jobs, which evaluates all hyperparameter combinations exhaustively based on the categorical hyperparameters provided. + +## __Managed Streaming for Kafka__ + - ### Features + - This release adds support for Tiered Storage. UpdateStorage allows you to control the Storage Mode for supported storage tiers. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@L-Applin](https://github.com/L-Applin) +# __2.18.3__ __2022-10-25__ +## __AWS MediaTailor__ + - ### Features + - This release is a documentation update + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Access Analyzer__ + - ### Features + - This release adds support for six new resource types in IAM Access Analyzer to help you easily identify public and cross-account access to your AWS resources. Updated service API, documentation, and paginators. + +## __Amazon Location Service__ + - ### Features + - Added new map styles with satellite imagery for map resources using HERE as a data provider. + +## __Amazon Relational Database Service__ + - ### Features + - Relational Database Service - This release adds support for exporting DB cluster data to Amazon S3. + +## __Amazon WorkSpaces__ + - ### Features + - This release adds new enums for supporting Workspaces Core features, including creating Manual running mode workspaces, importing regular Workspaces Core images and importing g4dn Workspaces Core images. + +# __2.18.2__ __2022-10-24__ +## __AWS Batch__ + - ### Features + - This release adds support for AWS Batch on Amazon EKS. + +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - AWS Private Certificate Authority (AWS Private CA) now offers usage modes which are combination of features to address specific use cases. + +## __AWS DataSync__ + - ### Features + - Added support for self-signed certificates when using object storage locations; added BytesCompressed to the TaskExecution response. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Inference Recommender now supports a new API ListInferenceRecommendationJobSteps to return the details of all the benchmark we create for an inference recommendation job. + +# __2.18.1__ __2022-10-21__ +## __Amazon Cognito Identity Provider__ + - ### Features + - This release adds a new "DeletionProtection" field to the UserPool in Cognito. Application admins can configure this value with either ACTIVE or INACTIVE value. Setting this field to ACTIVE will prevent a user pool from accidental deletion. + +## __Amazon SageMaker Service__ + - ### Features + - CreateInferenceRecommenderjob API now supports passing endpoint details directly, that will help customers to identify the max invocation and max latency they can achieve for their model and the associated endpoint along with getting recommendations on other instances. + +## __Amazon Simple Storage Service__ + - ### Features + - S3 on Outposts launches support for automatic bucket-style alias. You can use the automatic access point alias instead of an access point ARN for any object-level operation in an Outposts bucket. + +# __2.18.0__ __2022-10-20__ +## __AWS Global Accelerator__ + - ### Features + - Global Accelerator now supports AddEndpoints and RemoveEndpoints operations for standard endpoint groups. + +## __AWS Resilience Hub__ + - ### Features + - In this release, we are introducing support for regional optimization for AWS Resilience Hub applications. It also includes a few documentation updates to improve clarity. + +## __AWS SDK for Java v2__ + - ### Features + - This release updates internal logic for constructing API endpoints. + + We have added rule-based endpoint providers. Additionally there are new interfaces for endpoint providers and parameters at the service client level. + + The SDK provides service-specific `EndpointProvider` interfaces (e.g. `S3EndpointProvider`), that have a single method `resolveEndpoint`. `resolveEndpoint` accepts a set of parameters (also service specific) and computes an endpoint based on those parameters. All clients have a default implementation, but users are free to implement these to customize their endpoint logic. + + It is important to know that `EndpointProvider`s and the endpoint override on the client are not mutually exclusive. In all existing cases, the endpoint override is passed as a parameter to the the provider and the provider *may* modify it. For example, the S3 provider may add the bucket name as a prefix to the endpoint override for virtual bucket addressing. + + There may be some behavior changes related to endpoint resolution as as the the endpoint resolution is now standardised across SDKs so this release also bumps the minor version of the SDK to `2.18`. + + Notably, there are some changes in S3: when including and endpoint override, the SDK will use virtual bucket addressing as long as the bucket is a valid DNS label. This is different from the previous behavior where this only happens if the endpoint override begins with 's3'. + + In many situations, the exception thrown for validations like including an endpoint override and enabling DualStack has changed to `SdkClientExcpetion` and error messages have changed as well. + - Updated endpoint and partition metadata. + +## __Amazon DevOps Guru__ + - ### Features + - This release adds information about the resources DevOps Guru is analyzing. + +## __CloudWatch RUM__ + - ### Features + - CloudWatch RUM now supports Extended CloudWatch Metrics with Additional Dimensions diff --git a/changelogs/2.19.x-CHANGELOG.md b/changelogs/2.19.x-CHANGELOG.md new file mode 100644 index 000000000000..71909b298e76 --- /dev/null +++ b/changelogs/2.19.x-CHANGELOG.md @@ -0,0 +1,907 @@ +# __2.19.33__ __2023-02-07__ +## __AWS SDK for Java v2__ + - ### Features + - - ProfileCredentialsProvider and ProfileTokenProvider can reload credentials when disk profile changes + - Updated DefaultCredentialsProvider chain for reloading credentials + - Service support classes store ProfileFile as a Supplier interface + - SdkClientOption and SdkExecutionAttributes constants for PROFILE_FILE have been deprecated in favor of PROFILE_FILE_SUPPLIER + - Updated endpoint and partition metadata. + +## __AWS Transfer Family__ + - ### Features + - Updated the documentation for the ImportCertificate API call, and added examples. + +# __2.19.32__ __2023-02-06__ +## __AWS CRT-based S3 Client__ + - ### Bugfixes + - Fix an issue where maxConcurrency configured by the user on the builder was not honored. + +## __AWS Compute Optimizer__ + - ### Features + - AWS Compute optimizer can now infer if Kafka is running on an instance. + +## __AWS Elemental MediaConvert__ + - ### Features + - The AWS Elemental MediaConvert SDK has added improved scene change detection capabilities and a bandwidth reduction filter, along with video quality enhancements, to the AVC encoder. + +## __AWS Outposts__ + - ### Features + - Adds OrderType to Order structure. Adds PreviousOrderId and PreviousLineItemId to LineItem structure. Adds new line item status REPLACED. Increases maximum length of pagination token. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release deprecates the PartyType and Gender enum data types from the Profile model and replaces them with new PartyTypeString and GenderString attributes, which accept any string of length up to 255. + +## __Amazon Fraud Detector__ + - ### Features + - My AWS Service (Amazon Fraud Detector) - This release introduces Cold Start Model Training which optimizes training for small datasets and adds intelligent methods for treating unlabeled data. You can now train Online Fraud Insights or Transaction Fraud Insights models with minimal historical-data. + +# __2.19.31__ __2023-02-03__ +## __AWS Proton__ + - ### Features + - Add new GetResourcesSummary API + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Redshift__ + - ### Features + - Corrects descriptions of the parameters for the API operations RestoreFromClusterSnapshot, RestoreTableFromClusterSnapshot, and CreateCluster. + +# __2.19.30__ __2023-02-02__ +## __AWS CRT HTTP Client__ + - ### Features + - Allow users to enable Post Quantum TLS via `AwsCrtAsyncHttpClient.builder().postQuantumTlsEnabled(true).build()`. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Single Sign-On Admin__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon AppConfig__ + - ### Features + - AWS AppConfig introduces KMS customer-managed key (CMK) encryption of configuration data, along with AWS Secrets Manager as a new configuration data source. S3 objects using SSE-KMS encryption and SSM Parameter Store SecureStrings are also now supported. + +## __Amazon Connect Service__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2. + +## __Amazon Keyspaces__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon QuickSight__ + - ### Features + - QuickSight support for Radar Chart and Dashboard Publish Options + +## __Amazon Redshift__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Elastic Load Balancing__ + - ### Features + - The GWLB Flex Health Check project updates the default values of healthy-threshold-count from 3 to 5 and unhealthy-threshold-count from 3 to 2 + +# __2.19.29__ __2023-02-01__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS MediaTailor__ + - ### Features + - The AWS Elemental MediaTailor SDK for Channel Assembly has added support for program updates, and the ability to clip the end of VOD sources in programs. + +## __AWS SDK for Java v2__ + - ### Features + - EC2 Instance Metadata Client is now generally available - https://github.com/aws/aws-sdk-java-v2/issues/61 + - Updated endpoint and partition metadata. + +## __Amazon DevOps Guru__ + - ### Features + - This release adds filter support ListAnomalyForInsight API. + +## __Amazon Forecast Service__ + - ### Features + - This release will enable customer select INCREMENTAL as ImportModel in Forecast's CreateDatasetImportJob API. Verified latest SDK containing required attribute, following https://w.amazon.com/bin/view/AWS-Seer/Launch/Trebuchet/ + +## __Amazon Simple Notification Service__ + - ### Features + - Additional attributes added for set-topic-attributes. + +# __2.19.28__ __2023-01-31__ +## __AWS AppSync__ + - ### Features + - This release introduces the feature to support EventBridge as AppSync data source. + +## __AWS CRT-based S3 Client__ + - ### Bugfixes + - Fixed an issue where port number was not added to host header. See [#3721](https://github.com/aws/aws-sdk-java-v2/issues/3721) and [#3682](https://github.com/aws/aws-sdk-java-v2/issues/3682). + +## __AWS CloudTrail__ + - ### Features + - Add new "Channel" APIs to enable users to manage channels used for CloudTrail Lake integrations, and "Resource Policy" APIs to enable users to manage the resource-based permissions policy attached to a channel. + +## __AWS CloudTrail Data Service__ + - ### Features + - Add CloudTrail Data Service to enable users to ingest activity events from non-AWS sources into CloudTrail Lake. + +## __AWS Ground Station__ + - ### Features + - DigIF Expansion changes to the Customer APIs. + +## __AWS IoT__ + - ### Features + - Added support for IoT Rules Engine Cloudwatch Logs action batch mode. + +## __AWS Outposts__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - New fields have been added to the AWS Security Finding Format. Compliance.SecurityControlId is a unique identifier for a security control across standards. Compliance.AssociatedStandards contains all enabled standards in which a security control is enabled. + +## __AWS Support__ + - ### Features + - This fixes incorrect endpoint construction when a customer is explicitly setting a region. + +## __Access Analyzer__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon Connect Participant Service__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This launch allows customers to associate up to 8 IP addresses to their NAT Gateways to increase the limit on concurrent connections to a single destination by eight times from 55K to 440K. + +## __Amazon Kinesis__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon OpenSearch Service__ + - ### Features + - Amazon OpenSearch Service adds the option for a VPC endpoint connection between two domains when the local domain uses OpenSearch version 1.3 or 2.3. You can now use remote reindex to copy indices from one VPC domain to another without a reverse proxy. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds two new neural American English voices - Ruth, Stephen + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Automatic Model Tuning now supports more completion criteria for Hyperparameter Optimization. + +## __CodeArtifact__ + - ### Features + - This release introduces a new DeletePackage API, which enables deletion of a package and all of its versions from a repository. + +# __2.19.27__ __2023-01-30__ +## __AWS Application Discovery Service__ + - ### Features + - Update ImportName validation to 255 from the current length of 100 + +## __AWS CloudFormation__ + - ### Features + - This feature provides a method of obtaining which regions a stackset has stack instances deployed in. + +## __AWS Elemental MediaConvert__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon CloudDirectory__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - We add Prefix Lists as a new route destination option for LocalGatewayRoutes. This will allow customers to create routes to Prefix Lists. Prefix List routes will allow customers to group individual CIDR routes with the same target into a single route. + +## __Amazon Simple Workflow Service__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __DynamoDB Enhanced Client__ + - ### Bugfixes + - Cache BeanTableSchema and ImmutableTableSchema to prevent potential metaspace memory leak with JDK 15+. See [#3701](https://github.com/aws/aws-sdk-java-v2/issues/3701). + +## __EC2 Image Builder__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Managed Streaming for Kafka__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +# __2.19.26__ __2023-01-27__ +## __AWS Elastic Beanstalk__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __AWS Fault Injection Simulator__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __AWS Greengrass__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __AWS IoT Greengrass V2__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) in SDK. + +## __AWS MediaTailor__ + - ### Features + - This release introduces the As Run logging type, along with API and documentation updates. + +## __AWS Outposts__ + - ### Features + - Adding support for payment term in GetOrder, CreateOrder responses. + +## __AWSServerlessApplicationRepository__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon AppStream__ + - ### Features + - Fixing the issue where Appstream waiters hang for fleet_started and fleet_stopped. + +## __Amazon Glacier__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +## __Amazon SageMaker Runtime__ + - ### Features + - Amazon SageMaker Runtime which supports InvokeEndpointAsync asynchronously can now invoke endpoints with custom timeout values. Asynchronous invocations support longer processing times. + +## __Amazon SageMaker Service__ + - ### Features + - This release supports running SageMaker Training jobs with container images that are in a private Docker registry. + +## __Application Auto Scaling__ + - ### Features + - Enabled FIPS endpoints for GovCloud (US) regions in SDK. + +# __2.19.25__ __2023-01-26__ +## __AWS CRT HTTP Client__ + - ### Features + - Throw UnsupportedOperationException if the AWS CRT HTTP Client is configured with HTTP/2 protocol. + + - ### Bugfixes + - Fix an issue that could result in resource leak when sending request fails due to errors such as invalid request. + +## __AWS IoT FleetWise__ + - ### Features + - Add model validation to BatchCreateVehicle and BatchUpdateVehicle operations that invalidate requests with an empty vehicles list. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Append Content-encoding header instead of over writing the header when Checksum algorithm is selected along with user set Content-encoding + +## __Amazon EventBridge__ + - ### Features + - Minor comments for Redshift Serverless workgroup target support. + +## __Amazon Simple Storage Service__ + - ### Features + - Allow FIPS to be used with path-style URLs. + +# __2.19.24__ __2023-01-25__ +## __AWS CRT HTTP Client__ + - ### Features + - Remove CRT connection timeout default + +## __AWS CloudFormation__ + - ### Features + - Enabled FIPS aws-us-gov endpoints in SDK. + +## __AWS S3 Control__ + - ### Features + - Add additional endpoint tests for S3 Control. Fix missing endpoint parameters for PutBucketVersioning and GetBucketVersioning. Prior to this fix, those operations may have resulted in an invalid endpoint being resolved. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Security Token Service__ + - ### Features + - Doc only change to update wording in a key topic + +## __AWSMainframeModernization__ + - ### Features + - Add returnCode, batchJobIdentifier in GetBatchJobExecution response, for user to view the batch job execution result & unique identifier from engine. Also removed unused headers from REST APIs + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds new functionality that allows customers to provision IPv6 CIDR blocks through Amazon VPC IP Address Manager (IPAM) as well as allowing customers to utilize IPAM Resource Discovery APIs. + +## __Amazon Polly__ + - ### Features + - Add 5 new neural voices - Sergio (es-ES), Andres (es-MX), Remi (fr-FR), Adriano (it-IT) and Thiago (pt-BR). + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Inference Recommender now decouples from Model Registry and could accept Model Name to invoke inference recommendations job; Inference Recommender now provides CPU/Memory Utilization metrics data in recommendation output. + +## __Redshift Serverless__ + - ### Features + - Added query monitoring rules as possible parameters for create and update workgroup operations. + +# __2.19.23__ __2023-01-24__ +## __AWS CRT HTTP Client__ + - ### Features + - Renamed `readBufferSize` -> `readBufferSizeInBytes`. + - Renamed: `ConnectionHealthChecksConfiguration` -> `ConnectionHealthConfiguration` + Renamed: `allowableThroughputFailureInterval` -> `minimumThroughputTimeout` + Renamed: `minThroughputInBytesPerSecond` -> `minimumThroughputInBps` + Renamed: `AwsCrtAsyncHttpClient.builder().connectionHealthChecksConfiguration` -> `AwsCrtAsyncHttpClient.builder().connectionHealthConfiguration` + + - ### Removals + - Removed `tlsCipherPreference`. + +## __AWS Glue DataBrew__ + - ### Features + - Enabled FIPS us-gov-west-1 endpoints in SDK. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Systems Manager for SAP__ + - ### Features + - This release provides updates to documentation and support for listing operations performed by AWS Systems Manager for SAP. + +## __Amazon Route 53__ + - ### Features + - Amazon Route 53 now supports the Asia Pacific (Melbourne) Region (ap-southeast-4) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. + +# __2.19.22__ __2023-01-23__ +## __AWS Lambda__ + - ### Features + - Release Lambda RuntimeManagementConfig, enabling customers to better manage runtime updates to their Lambda functions. This release adds two new APIs, GetRuntimeManagementConfig and PutRuntimeManagementConfig, as well as support on existing Create/Get/Update function APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Inference now supports P4de instance types. + +# __2.19.21__ __2023-01-20__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - C6in, M6in, M6idn, R6in and R6idn instances are powered by 3rd Generation Intel Xeon Scalable processors (code named Ice Lake) with an all-core turbo frequency of 3.5 GHz. + +## __Amazon Interactive Video Service__ + - ### Features + - API and Doc update. Update to arns field in BatchGetStreamKey. Also updates to operations and structures. + +## __Amazon QuickSight__ + - ### Features + - This release adds support for data bars in QuickSight table and increases pivot table field well limit. + +# __2.19.20__ __2023-01-19__ +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive adds support for SCTE 35 preRollMilliSeconds. + +## __AWS Glue__ + - ### Features + - Release Glue Studio Hudi Data Lake Format for SDK/CLI + +## __AWS Ground Station__ + - ### Features + - Add configurable prepass and postpass times for DataflowEndpointGroup. Add Waiter to allow customers to wait for a contact that was reserved through ReserveContact + +## __AWS Panorama__ + - ### Features + - Added AllowMajorVersionUpdate option to OTAJobConfig to make appliance software major version updates opt-in. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Appflow__ + - ### Features + - Adding support for Salesforce Pardot connector in Amazon AppFlow. + +## __Amazon CloudWatch Logs__ + - ### Features + - Bug fix - Removed the regex pattern validation from CoralModel to avoid potential security issue. + +## __Amazon Connect Participant Service__ + - ### Features + - This release updates Amazon Connect Participant's GetTranscript api to provide transcripts of past chats on a persistent chat session. + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect Chat introduces Persistent Chat, allowing customers to resume previous conversations with context and transcripts carried over from previous chats, eliminating the need to repeat themselves and allowing agents to provide personalized service with access to entire conversation history. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds SSM Parameter Resource Aliasing support to EC2 Launch Templates. Launch Templates can now store parameter aliases in place of AMI Resource IDs. CreateLaunchTemplateVersion and DescribeLaunchTemplateVersions now support a convenience flag, ResolveAlias, to return the resolved parameter value. + +## __Amazon OpenSearch Service__ + - ### Features + - This release adds the enhanced dry run option, that checks for validation errors that might occur when deploying configuration changes and provides a summary of these errors, if any. The feature will also indicate whether a blue/green deployment will be required to apply a change. + +## __Amazon SageMaker Service__ + - ### Features + - HyperParameterTuningJobs now allow passing environment variables into the corresponding TrainingJobs + +## __CodeArtifact__ + - ### Features + - Documentation updates for CodeArtifact + +# __2.19.19__ __2023-01-18__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - Improved the visibility of the guidance for updating AWS WAF resources, such as web ACLs and rule groups. + +## __Amazon CloudWatch__ + - ### Features + - Enable cross-account streams in CloudWatch Metric Streams via Observability Access Manager. + +## __Amazon Elastic File System__ + - ### Features + - Documentation updates for EFS access points limit increase + +## __Amazon Interactive Video Service Chat__ + - ### Features + - Updates the range for a Chat Room's maximumMessageRatePerSecond field. + +# __2.19.18__ __2023-01-17__ +## __AWS Cloud9__ + - ### Features + - Added minimum value to AutomaticStopTimeMinutes parameter. + +## __AWS Network Firewall__ + - ### Features + - Network Firewall now allows creation of dual stack endpoints, enabling inspection of IPv6 traffic. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWSBillingConductor__ + - ### Features + - This release adds support for SKU Scope for pricing plans. + +## __EC2 Image Builder__ + - ### Features + - Add support for AWS Marketplace product IDs as input during CreateImageRecipe for the parent-image parameter. Add support for listing third-party components. + +# __2.19.17__ __2023-01-13__ +## __AWS Outposts__ + - ### Features + - This release adds POWER_30_KVA as an option for PowerDrawKva. PowerDrawKva is part of the RackPhysicalProperties structure in the CreateSite request. + +## __AWS Resource Groups__ + - ### Features + - AWS Resource Groups customers can now turn on Group Lifecycle Events in their AWS account. When you turn this on, Resource Groups monitors your groups for changes to group state or membership. Those changes are sent to Amazon EventBridge as events that you can respond to using rules you create. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - This release updates the responses of UpdateContactFlowContent, UpdateContactFlowMetadata, UpdateContactFlowName and DeleteContactFlow API with empty responses. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2. + +# __2.19.16__ __2023-01-12__ +## __AWS Clean Rooms Service__ + - ### Features + - Initial release of AWS Clean Rooms + +## __AWS Elemental MediaConvert__ + - ### Features + - The AWS Elemental MediaConvert SDK has added support for compact DASH manifest generation, audio normalization using TruePeak measurements, and the ability to clip the sample range in the color corrector. + +## __AWS Lambda__ + - ### Features + - Add support for MaximumConcurrency parameter for SQS event source. Customers can now limit the maximum concurrent invocations for their SQS Event Source Mapping. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - Update documentation for new ListSecrets and DescribeSecret parameters + +## __Amazon CloudWatch Logs__ + - ### Features + - Bug fix: logGroupName is now not a required field in GetLogEvents, FilterLogEvents, GetLogGroupFields, and DescribeLogStreams APIs as logGroupIdentifier can be provided instead + +# __2.19.15__ __2023-01-11__ +## __AWSKendraFrontendService__ + - ### Features + - This release adds support to new document types - RTF, XML, XSLT, MS_EXCEL, CSV, JSON, MD + +# __2.19.14__ __2023-01-10__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Prevent NullPointerException in Netty exception handler + - Contributed by: [@sigurjonviktorsson](https://github.com/sigurjonviktorsson) + +## __Amazon Location Service__ + - ### Features + - This release adds support for two new route travel models, Bicycle and Motorcycle which can be used with Grab data source. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for configuring allocated storage on the CreateDBInstanceReadReplica, RestoreDBInstanceFromDBSnapshot, and RestoreDBInstanceToPointInTime APIs. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@sigurjonviktorsson](https://github.com/sigurjonviktorsson) +# __2.19.13__ __2023-01-09__ +## __AWS Network Firewall__ + - ### Features + - Network Firewall now supports the Suricata rule action reject, in addition to the actions pass, drop, and alert. + +## __AWS Resource Access Manager__ + - ### Features + - Enabled FIPS aws-us-gov endpoints in SDK. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Container Registry Public__ + - ### Features + - This release for Amazon ECR Public makes several change to bring the SDK into sync with the API. + +## __Amazon Kendra Intelligent Ranking__ + - ### Features + - Introducing Amazon Kendra Intelligent Ranking, a new set of Kendra APIs that leverages Kendra semantic ranking capabilities to improve the quality of search results from other search services (i.e. OpenSearch, ElasticSearch, Solr). + +## __Amazon WorkSpaces Web__ + - ### Features + - This release adds support for a new portal authentication type: AWS IAM Identity Center (successor to AWS Single Sign-On). + +# __2.19.12__ __2023-01-06__ +## __AWS Audit Manager__ + - ### Features + - This release introduces a new data retention option in your Audit Manager settings. You can now use the DeregistrationPolicy parameter to specify if you want to delete your data when you deregister Audit Manager. + +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - Added revocation parameter validation: bucket names must match S3 bucket naming rules and CNAMEs conform to RFC2396 restrictions on the use of special characters in URIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +# __2.19.11__ __2023-01-05__ +## __AWS App Runner__ + - ### Features + - This release adds support of securely referencing secrets and configuration data that are stored in Secrets Manager and SSM Parameter Store by adding them as environment secrets in your App Runner service. + +## __AWS SDK for Java v2__ + - ### Features + - Add `s3-transfer-manager` in `aws-sdk-java` module so that it's included in `bundle`. + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - Documentation update for a new Initiation Method value in DescribeContact API + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Amazon Lightsail. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for specifying which certificate authority (CA) to use for a DB instance's server certificate during DB instance creation, as well as other CA enhancements. + +## __AmazonMWAA__ + - ### Features + - MWAA supports Apache Airflow version 2.4.3. + +## __AmplifyBackend__ + - ### Features + - Updated GetBackendAPIModels response to include ModelIntrospectionSchema json string + +## __EMR Serverless__ + - ### Features + - Adds support for customized images. You can now provide runtime images when creating or updating EMR Serverless Applications. + +# __2.19.10__ __2023-01-04__ +## __Amazon CloudWatch Logs__ + - ### Features + - Update to remove sequenceToken as a required field in PutLogEvents calls. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Adding support for QuickSetup Document Type in Systems Manager + +## __Application Auto Scaling__ + - ### Features + - Customers can now use the existing DescribeScalingActivities API to also see the detailed and machine-readable reasons for Application Auto Scaling not scaling their resources and, if needed, take the necessary corrective actions. + +# __2.19.9__ __2023-01-03__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Security Lake__ + - ### Features + - Allow CreateSubscriber API to take string input that allows setting more descriptive SubscriberDescription field. Make souceTypes field required in model level for UpdateSubscriberRequest as it is required for every API call on the backend. Allow ListSubscribers take any String as nextToken param. + +# __2.19.8__ __2022-12-30__ +## __AWS IoT FleetWise__ + - ### Features + - Update documentation - correct the epoch constant value of default value for expiryTime field in CreateCampaign request. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudFront__ + - ### Features + - Extend response headers policy to support removing headers from viewer responses + +# __2.19.7__ __2022-12-29__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - Added owning service filter, include planned deletion flag, and next rotation date response parameter in ListSecrets. + +## __Amazon API Gateway__ + - ### Features + - Documentation updates for Amazon API Gateway + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release extends Wisdom CreateContent and StartContentUpload APIs to support PDF and MicrosoftWord docx document uploading. + +## __Amazon EMR__ + - ### Features + - Added GetClusterSessionCredentials API to allow Amazon SageMaker Studio to connect to EMR on EC2 clusters with runtime roles and AWS Lake Formation-based access control for Apache Spark, Apache Hive, and Presto queries. + +# __2.19.6__ __2022-12-28__ +## __AWS Network Firewall__ + - ### Features + - AWS Network Firewall now provides status messages for firewalls to help you troubleshoot when your endpoint fails. + +## __AWS Route53 Recovery Control Config__ + - ### Features + - Added support for Python paginators in the route53-recovery-control-config List* APIs. + +## __Amazon ElastiCache__ + - ### Features + - This release allows you to modify the encryption in transit setting, for existing Redis clusters. You can now change the TLS configuration of your Redis clusters without the need to re-build or re-provision the clusters or impact application availability. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for Custom Engine Version (CEV) on RDS Custom SQL Server. + +# __2.19.5__ __2022-12-27__ +## __AWS Transfer Family__ + - ### Features + - Add additional operations to throw ThrottlingExceptions + +## __Amazon MemoryDB__ + - ### Features + - This release adds support for MemoryDB Reserved nodes which provides a significant discount compared to on-demand node pricing. Reserved nodes are not physical nodes, but rather a billing discount applied to the use of on-demand nodes in your account. + +# __2.19.4__ __2022-12-23__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Participant Service__ + - ### Features + - Amazon Connect Chat introduces the Message Receipts feature. This feature allows agents and customers to receive message delivered and read receipts after they send a chat message. + +## __Amazon Connect Service__ + - ### Features + - Support for Routing Profile filter, SortCriteria, and grouping by Routing Profiles for GetCurrentMetricData API. Support for RoutingProfiles, UserHierarchyGroups, and Agents as filters, NextStatus and AgentStatusName for GetCurrentUserData. Adds ApproximateTotalCount to both APIs. + +## __Amazon Detective__ + - ### Features + - This release adds a missed AccessDeniedException type to several endpoints. + +## __Amazon FSx__ + - ### Features + - Fix a bug where a recent release might break certain existing SDKs. + +## __Inspector2__ + - ### Features + - Amazon Inspector adds support for scanning NodeJS 18.x and Go 1.x AWS Lambda function runtimes. + +# __2.19.3__ __2022-12-22__ +## __AWS Compute Optimizer__ + - ### Features + - This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for ecs services running on Fargate. + +## __AWS IoT Core Device Advisor__ + - ### Features + - This release adds the following new features: 1) Documentation updates for IoT Device Advisor APIs. 2) Updated required request parameters for IoT Device Advisor APIs. 3) Added new service feature: ability to provide the test endpoint when customer executing the StartSuiteRun API. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect Chat introduces the Idle Participant/Autodisconnect feature, which allows users to set timeouts relating to the activity of chat participants, using the new UpdateParticipantRoleConfig API. + +## __Amazon Kinesis Video WebRTC Storage__ + - ### Features + - Amazon Kinesis Video Streams offers capabilities to stream video and audio in real-time via WebRTC to the cloud for storage, playback, and analytical processing. Customers can use our enhanced WebRTC SDK and cloud APIs to enable real-time streaming, as well as media ingestion to the cloud. + +## __Amazon Relational Database Service__ + - ### Features + - Add support for managing master user password in AWS Secrets Manager for the DBInstance and DBCluster. + +# __2.19.2__ __2022-12-21__ +## __AWS License Manager Linux Subscriptions__ + - ### Features + - AWS License Manager now offers cross-region, cross-account tracking of commercial Linux subscriptions on AWS. This includes subscriptions purchased as part of EC2 subscription-included AMIs, on the AWS Marketplace, or brought to AWS via Red Hat Cloud Access Program. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Support__ + - ### Features + - Documentation updates for the AWS Support API + +## __AWS Transfer Family__ + - ### Features + - This release adds support for Decrypt as a workflow step type. + +## __Amazon Connect Participant Service__ + - ### Features + - Amazon Connect Chat now allows for JSON (application/json) message types to be sent in the SendMessage API. + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect Chat now allows for JSON (application/json) message types to be sent as part of the initial message in the StartChatContact API. + +## __Amazon EventBridge Scheduler__ + - ### Features + - Updated the ListSchedules and ListScheduleGroups APIs to allow the NamePrefix field to start with a number. Updated the validation for executionRole field to support any role name. + +## __Amazon Macie 2__ + - ### Features + - This release adds support for analyzing Amazon S3 objects that use the S3 Glacier Instant Retrieval (Glacier_IR) storage class. + +## __Amazon SageMaker Service__ + - ### Features + - This release enables adding RStudio Workbench support to an existing Amazon SageMaker Studio domain. It allows setting your RStudio on SageMaker environment configuration parameters and also updating the RStudioConnectUrl and RStudioPackageManagerUrl parameters for existing domains + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Doc-only updates for December 2022. + +# __2.19.1__ __2022-12-20__ +## __AWS Batch__ + - ### Features + - Adds isCancelled and isTerminated to DescribeJobs response. + +## __AWS Elemental MediaLive__ + - ### Features + - This release adds support for two new features to AWS Elemental MediaLive. First, you can now burn-in timecodes to your MediaLive outputs. Second, we now now support the ability to decode Dolby E audio when it comes in on an input. + +## __AWS Resource Explorer__ + - ### Features + - Documentation updates for AWS Resource Explorer. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for pagination in the EC2 DescribeImages API. + +## __Amazon Lookout for Equipment__ + - ### Features + - This release adds support for listing inference schedulers by status. + +## __Amazon Route 53 Domains__ + - ### Features + - Use Route 53 domain APIs to change owner, create/delete DS record, modify IPS tag, resend authorization. New: AssociateDelegationSignerToDomain, DisassociateDelegationSignerFromDomain, PushDomain, ResendOperationAuthorization. Updated: UpdateDomainContact, ListOperations, CheckDomainTransferability. + +## __Amazon S3 Transfer Manager__ + - ### Bugfixes + - Add `s3-transfer-manager` to bom so that users can use bom to manage its version. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot adds support for new objective metrics in CreateAutoMLJob API. + +## __Amazon Transcribe Service__ + - ### Features + - Enable our batch transcription jobs for Swedish and Vietnamese. + +## __AmazonNimbleStudio__ + - ### Features + - Amazon Nimble Studio now supports configuring session storage volumes and persistence, as well as backup and restore sessions through launch profiles. + +# __2.19.0__ __2022-12-19__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Include the raw `partitions.json` data as a string within `DefaultPartitionDataProvider` so it doesn't need to be loaded at runtime as a classpath resource. + +## __Amazon Athena__ + - ### Features + - Add missed InvalidRequestException in GetCalculationExecutionCode,StopCalculationExecution APIs. Correct required parameters (Payload and Type) in UpdateNotebook API. Change Notebook size from 15 Mb to 10 Mb. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for alarm-based rollbacks in ECS, a new feature that allows customers to add automated safeguards for Amazon ECS service rolling updates. + +## __Amazon Kinesis Video Streams__ + - ### Features + - Amazon Kinesis Video Streams offers capabilities to stream video and audio in real-time via WebRTC to the cloud for storage, playback, and analytical processing. Customers can use our enhanced WebRTC SDK and cloud APIs to enable real-time streaming, as well as media ingestion to the cloud. + +## __Amazon Kinesis Video WebRTC Storage__ + - ### Features + - Amazon Kinesis Video Streams offers capabilities to stream video and audio in real-time via WebRTC to the cloud for storage, playback, and analytical processing. Customers can use our enhanced WebRTC SDK and cloud APIs to enable real-time streaming, as well as media ingestion to the cloud. + +## __Amazon Relational Database Service__ + - ### Features + - Add support for --enable-customer-owned-ip to RDS create-db-instance-read-replica API for RDS on Outposts. + +## __Amazon S3 Transfer Manager__ + - ### Features + - The Amazon S3 Transfer Manager is now generally available. Visit [Dev Guide](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/transfer-manager.html) for more information, + +## __Amazon SageMaker Service__ + - ### Features + - AWS Sagemaker - Sagemaker Images now supports Aliases as secondary identifiers for ImageVersions. SageMaker Images now supports additional metadata for ImageVersions for better images management. diff --git a/changelogs/2.2.x-CHANGELOG.md b/changelogs/2.2.x-CHANGELOG.md new file mode 100644 index 000000000000..c6918765d0ac --- /dev/null +++ b/changelogs/2.2.x-CHANGELOG.md @@ -0,0 +1,18 @@ +# __2.2.0__ __2018-12-14__ +## __AWS SDK for Java v2__ + - ### Features + - Adds the operation name of the calling API to the ExecutionContext class. This exposes a way to get the API name from within an ExecutionInterceptor. + - Updated to the latest service models. + +## __Amazon S3__ + - ### Bugfixes + - Modify type of S3Object#size member from integer to long. This is a breaking change for customers who are using the size() method currently + - S3 putObject API using UrlConnectionHttpClient goes into infinite loop. See https://github.com/aws/aws-sdk-java-v2/pull/942 for more details. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix a bug where it's possible for an HTTP2 channel pool to be closed while some channels are still being released causing them to be left open and leaked. + +## __URLConnection HTTP Client__ + - ### Features + - Adding a hook to enable custom creation of the initial `HttpURLConnection`. This enables customers to control how a connection is established for a given `URL` including handling any required proxy configuration etc. diff --git a/changelogs/2.20.x-CHANGELOG.md b/changelogs/2.20.x-CHANGELOG.md new file mode 100644 index 000000000000..b1fd0733b87b --- /dev/null +++ b/changelogs/2.20.x-CHANGELOG.md @@ -0,0 +1,4763 @@ +# __2.20.162__ __2023-10-06__ +## __AWS Marketplace Catalog Service__ + - ### Features + - This release adds support for Document type as an alternative for stringified JSON for StartChangeSet, DescribeChangeSet and DescribeEntity APIs + +## __AWS Transfer Family__ + - ### Features + - This release updates the max character limit of PreAuthenticationLoginBanner and PostAuthenticationLoginBanner to 4096 characters + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Elastic Compute Cloud (EC2). + +## __Amazon FSx__ + - ### Features + - After performing steps to repair the Active Directory configuration of a file system, use this action to initiate the process of attempting to recover to the file system. + +## __Amazon QuickSight__ + - ### Features + - NullOption in FilterListConfiguration; Dataset schema/table max length increased; Support total placement for pivot table visual; Lenient mode relaxes the validation to create resources with definition; Data sources can be added to folders; Redshift data sources support IAM Role-based authentication + +# __2.20.161__ __2023-10-05__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - Added new resource detail objects to ASFF, including resources for AwsEventsEventbus, AwsEventsEndpoint, AwsDmsEndpoint, AwsDmsReplicationTask, AwsDmsReplicationInstance, AwsRoute53HostedZone, and AwsMskCluster + +## __AWS Storage Gateway__ + - ### Features + - Add SoftwareVersion to response of DescribeGatewayInformation. + +## __Amazon Omics__ + - ### Features + - Add Etag Support for Omics Storage in ListReadSets and GetReadSetMetadata API + +## __Amazon Relational Database Service__ + - ### Features + - Updates Amazon RDS documentation for corrections and minor improvements. + +## __Amazon Route 53__ + - ### Features + - Add hostedzonetype filter to ListHostedZones API. + +## __Amazon WorkSpaces__ + - ### Features + - This release introduces Manage applications. This feature allows users to manage their WorkSpaces applications by associating or disassociating their WorkSpaces with applications. The DescribeWorkspaces API will now additionally return OperatingSystemName in its responses. + +# __2.20.160__ __2023-10-04__ +## __AWS MediaTailor__ + - ### Features + - Updates DescribeVodSource to include a list of ad break opportunities in the response + +## __AWS SDK for Java v2__ + - ### Features + - Add support for building JDK 21. + - Updated endpoint and partition metadata. + +## __Amazon AppConfig__ + - ### Features + - AWS AppConfig introduces KMS customer-managed key (CMK) encryption support for data saved to AppConfig's hosted configuration store. + +## __Amazon DataZone__ + - ### Features + - Initial release of Amazon DataZone + +## __Amazon SageMaker Service__ + - ### Features + - Adding support for AdditionalS3DataSource, a data source used for training or inference that is in addition to the input dataset or model data. + +## __Application Migration Service__ + - ### Features + - This release includes the following new APIs: ListConnectors, CreateConnector, UpdateConnector, DeleteConnector and UpdateSourceServer to support the source action framework feature. + +# __2.20.159__ __2023-10-03__ +## __AWS Elemental MediaConvert__ + - ### Features + - This release adds the ability to replace video frames without modifying the audio essence. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Well-Architected Tool__ + - ### Features + - AWS Well-Architected now supports Review Templates that allows you to create templates with pre-filled answers for Well-Architected and Custom Lens best practices. + +## __Amazon Connect Service__ + - ### Features + - GetMetricDataV2 API: Update to include new metrics CONTACTS_RESOLVED_IN_X , AVG_HOLD_TIME_ALL_CONTACTS , AVG_RESOLUTION_TIME , ABANDONMENT_RATE , AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS with added features: Interval Period, TimeZone, Negate MetricFilters, Extended date time range. + +## __Amazon Location Service__ + - ### Features + - Amazon Location Service adds support for bounding polygon queries. Additionally, the GeofenceCount field has been added to the DescribeGeofenceCollection API response. + +## __Amazon SageMaker Service__ + - ### Features + - This release allows users to run Selective Execution in SageMaker Pipelines without SourcePipelineExecutionArn if selected steps do not have any dependent steps. + +## __CloudWatch Observability Access Manager__ + - ### Features + - This release adds support for sharing AWS::ApplicationInsights::Application resources. + +# __2.20.158__ __2023-10-02__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Security Token Service__ + - ### Features + - STS API updates for assumeRole + +## __AWS Single Sign-On__ + - ### Features + - Fix FIPS Endpoints in aws-us-gov. + +## __AWS Transfer Family__ + - ### Features + - Documentation updates for AWS Transfer Family + +## __Amazon Bedrock__ + - ### Features + - Provisioned throughput feature with Amazon and third-party base models, and update validators for model identifier and taggable resource ARNs. + +## __Amazon Bedrock Runtime__ + - ### Features + - Add model timeout exception for InvokeModelWithResponseStream API and update validator for invoke model identifier. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Introducing Amazon EC2 R7iz instances with 3.9 GHz sustained all-core turbo frequency and deliver up to 20% better performance than previous generation z1d instances. + +## __Amazon Managed Blockchain__ + - ### Features + - Remove Rinkeby as option from Ethereum APIs + +## __Amazon Relational Database Service__ + - ### Features + - Adds DefaultCertificateForNewLaunches field in the DescribeCertificates API response. + +# __2.20.157__ __2023-09-28__ +## __AWS Budgets__ + - ### Features + - Update DescribeBudgets and DescribeBudgetNotificationsForAccount MaxResults limit to 1000. + +## __AWS IoT FleetWise__ + - ### Features + - AWS IoT FleetWise now supports encryption through a customer managed AWS KMS key. The PutEncryptionConfiguration and GetEncryptionConfiguration APIs were added. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - Correct and improve the documentation for the FieldToMatch option JA3 fingerprint. + +## __Amazon Bedrock__ + - ### Features + - Model Invocation logging added to enable or disable logs in customer account. Model listing and description support added. Provisioned Throughput feature added. Custom model support added for creating custom models. Also includes list, and delete functions for custom model. + +## __Amazon Bedrock Runtime__ + - ### Features + - Run Inference: Added support to run the inference on models. Includes set of APIs for running inference in streaming and non-streaming mode. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for Customer Managed Key encryption for Amazon Verified Access resources + +## __Amazon SageMaker Feature Store Runtime__ + - ### Features + - Feature Store supports read/write of records with collection type features. + +## __Amazon SageMaker Service__ + - ### Features + - Online store feature groups supports Standard and InMemory tier storage types for low latency storage for real-time data retrieval. The InMemory tier supports collection types List, Set, and Vector. + +# __2.20.156__ __2023-09-27__ +## __AWS IoT__ + - ### Features + - Added support for IoT Rules Engine Kafka Action Headers + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Cognito Identity Provider__ + - ### Features + - The UserPoolType Status field is no longer used. + +## __Amazon Kinesis Firehose__ + - ### Features + - Features : Adding support for new data ingestion source to Kinesis Firehose - AWS Managed Services Kafka. + +## __Amazon Textract__ + - ### Features + - This release adds new feature - Layout to Analyze Document API which can automatically extract layout elements such as titles, paragraphs, headers, section headers, lists, page numbers, footers, table areas, key-value areas and figure areas and order the elements as a human would read. + +# __2.20.155__ __2023-09-26__ +## __AWS App Runner__ + - ### Features + - This release allows an App Runner customer to specify a custom source directory to run the build & start command. This change allows App Runner to support monorepo based repositories + +## __AWS CodeDeploy__ + - ### Features + - CodeDeploy now supports In-place and Blue/Green EC2 deployments with multiple Classic Load Balancers and multiple Target Groups. + +## __AWS Lake Formation__ + - ### Features + - This release adds three new API support "CreateLakeFormationOptIn", "DeleteLakeFormationOptIn" and "ListLakeFormationOptIns", and also updates the corresponding documentation. + +## __Amazon AppIntegrations Service__ + - ### Features + - The Amazon AppIntegrations service adds a set of APIs (in preview) to manage third party applications to be used in Amazon Connect agent workspace. + +## __Amazon Connect Service__ + - ### Features + - This release updates a set of Amazon Connect APIs that provides the ability to integrate third party applications in the Amazon Connect agent workspace. + +## __Amazon DynamoDB__ + - ### Features + - Amazon DynamoDB now supports Incremental Export as an enhancement to the existing Export Table + +## __Amazon DynamoDB Enhanced Client__ + - ### Bugfixes + - Provides a clearer exception message when building a ReadBatch or WriteBatch without setting the mappedTableResource (table) + - Contributed by: [@swar8080](https://github.com/swar8080) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - The release includes AWS verified access to support FIPs compliance in North America regions + +## __Amazon Pinpoint__ + - ### Features + - Update documentation for RemoveAttributes to more accurately reflect its behavior when attributes are deleted. + +## __Amazon Simple Storage Service__ + - ### Features + - This release adds a new field COMPLETED to the ReplicationStatus Enum. You can now use this field to validate the replication status of S3 objects using the AWS SDK. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@swar8080](https://github.com/swar8080) +# __2.20.154__ __2023-09-25__ +## __AWS Amplify UI Builder__ + - ### Features + - Support for generating code that is compatible with future versions of amplify project dependencies. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - You can now perform an exact match against the web request's JA3 fingerprint. + +## __Amazon Chime SDK Media Pipelines__ + - ### Features + - Adds support for sending WebRTC audio to Amazon Kineses Video Streams. + +## __Amazon QuickSight__ + - ### Features + - Added ability to tag users upon creation. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release updates the enum values for ResourceType in SSM DescribeInstanceInformation input and ConnectionStatus in GetConnectionStatus output. + +## __EMR Serverless__ + - ### Features + - This release adds support for application-wide default job configurations. + +## __FinSpace Public API__ + - ### Features + - Adding sensitive trait to attributes. Change max SessionDuration from 720 to 60. Correct "ApiAccess" attribute to "apiAccess" to maintain consistency between APIs. + +## __S3TransferManager__ + - ### Bugfixes + - Fix [aws-crt-java issue [#686](https://github.com/aws/aws-sdk-java-v2/issues/686)](https://github.com/awslabs/aws-crt-java/issues/686) S3AsyncClient ignoring trustAllCertificatesEnabled setting + - Contributed by: [@graebm](https://github.com/graebm) + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@graebm](https://github.com/graebm) +# __2.20.153__ __2023-09-22__ +## __AWS Database Migration Service__ + - ### Features + - new vendors for DMS CSF: MongoDB, MariaDB, DocumentDb and Redshift + +## __AWS Elemental MediaConvert__ + - ### Features + - This release supports the creation of of audio-only tracks in CMAF output groups. + +## __AWS SDK for Java v2__ + - ### Features + - Adds support for non-Json String payloads + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fixed an issue in `InputStreamSubscriber` that could cause NPE to be thrown when close and onSubscribed get invoked concurrently. See [#4081](https://github.com/aws/aws-sdk-java-v2/issues/4081) + +## __Amazon CloudWatch Events__ + - ### Features + - Adds sensitive trait to various shapes in Jetstream Connections API model. + +## __Amazon DynamoDB__ + - ### Bugfixes + - Fixed a bug in DynamoDbTable.createTable, where global secondary indices with a partition key matching the default partition key of the table would be created as local secondary indices. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - EC2 M2 Pro Mac instances are powered by Apple M2 Pro Mac Mini computers featuring 12 core CPU, 19 core GPU, 32 GiB of memory, and 16 core Apple Neural Engine and uniquely enabled by the AWS Nitro System through high-speed Thunderbolt connections. + +## __Amazon Elastic File System__ + - ### Features + - Documentation updates for Elastic File System + +## __Amazon GuardDuty__ + - ### Features + - Add `EKS_CLUSTER_NAME` to filter and sort key. + +## __Amazon S3__ + - ### Bugfixes + - Fixed the issue where SdkException is unnecessarily re-wrapped with SdkClientException in S3 multipart client and AWS CRT-based S3 client. See[#4356](https://github.com/aws/aws-sdk-java-v2/issues/4356) + +## __Amazon Simple Storage Servic__ + - ### Bugfixes + - Fix for Cross-region calls failure due to AuthorizationHeaderMalformed errors while using clients with configured region as us-east-1. + +## __Braket__ + - ### Features + - This release adds support to view the device queue depth (the number of queued quantum tasks and hybrid jobs on a device) and queue position for a quantum task and hybrid job. + +## __DynamoDB Enhanced Client__ + - ### Features + - Adds count, scanned count and returned consumed capacity to Page, used by Scan and Query operations + +# __2.20.152__ __2023-09-20__ +## __AWS App Runner__ + - ### Features + - This release adds improvements for managing App Runner auto scaling configuration resources. New APIs: UpdateDefaultAutoScalingConfiguration and ListServicesForAutoScalingConfiguration. Updated API: DeleteAutoScalingConfiguration. + +## __AWS Cloud Map__ + - ### Features + - Adds a new DiscoverInstancesRevision API and also adds InstanceRevision field to the DiscoverInstances API response. + +## __AWS Lambda__ + - ### Features + - Update aws-lambda-java-core version to 1.2.3 + - Contributed by: [@deki](https://github.com/deki) + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SSO OIDC__ + - ### Features + - Update FIPS endpoints in aws-us-gov. + +## __Amazon AppConfig__ + - ### Features + - Enabling boto3 paginators for list APIs and adding documentation around ServiceQuotaExceededException errors + +## __Amazon CloudWatch Logs__ + - ### Features + - Add ClientToken to QueryDefinition CFN Handler in CWL + +## __Amazon Kinesis Video Streams__ + - ### Features + - Updated DescribeMediaStorageConfiguration, StartEdgeConfigurationUpdate, ImageGenerationConfiguration$SamplingInterval, and UpdateMediaStorageConfiguration to match AWS Docs. + +## __Amazon Simple Storage Service__ + - ### Features + - Fix an issue where the SDK can fail to unmarshall response due to NumberFormatException + +## __CodeArtifact__ + - ### Features + - Add support for the Swift package format. + +## __S3 Transfer Manager__ + - ### Bugfixes + - Fix [3839](https://github.com/aws/aws-sdk-java-v2/issues/3839) S3 Transfer Manager issue with transferComplete() not called for AsyncRequestBody.fromFile() + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@deki](https://github.com/deki) +# __2.20.151__ __2023-09-19__ +## __AWS Outposts__ + - ### Features + - This release adds the InstanceFamilies field to the ListAssets response. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for C7i, and R7a instance types. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for one-time model monitoring schedules that are executed immediately without delay, explicit data analysis windows for model monitoring schedules and exclude features attributes to remove features from model monitor analysis. + +# __2.20.150__ __2023-09-18__ +## __AWS Application Discovery Service__ + - ### Features + - Add sensitive protection for customer information + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Do not instruct the CRT Sigv4a signer to do path normalization to avoid signature mismatch errors + +## __Amazon Macie 2__ + - ### Features + - This release changes the default managedDataIdentifierSelector setting for new classification jobs to RECOMMENDED. By default, new classification jobs now use the recommended set of managed data identifiers. + +## __Amazon WorkMail__ + - ### Features + - This release includes four new APIs UpdateUser, UpdateGroup, ListGroupsForEntity and DescribeEntity, along with RemoteUsers and some enhancements to existing APIs. + +# __2.20.149__ __2023-09-15__ +## __AWS DataSync__ + - ### Features + - Documentation-only updates for AWS DataSync. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon AppStream__ + - ### Features + - This release introduces app block builder, allowing customers to provision a resource to package applications into an app block + +## __Amazon Connect Service__ + - ### Features + - New rule type (OnMetricDataUpdate) has been added + +## __Amazon SageMaker Service__ + - ### Features + - This release introduces Skip Model Validation for Model Packages + +# __2.20.148__ __2023-09-14__ +## __AWS CloudFormation__ + - ### Features + - Documentation updates for AWS CloudFormation + +## __AWS EntityResolution__ + - ### Features + - Changed "ResolutionTechniques" and "MappedInputFields" in workflow and schema mapping operations to be required fields. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon AppStream__ + - ### Features + - This release introduces multi-session fleets, allowing customers to provision more than one user session on a single fleet instance. + +## __Amazon Lookout for Equipment__ + - ### Features + - This release adds APIs for the new scheduled retraining feature. + +# __2.20.147__ __2023-09-13__ +## __AWS Cloud9__ + - ### Features + - Update to include information on Ubuntu 18 deprecation. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Allow IamPolicy to read json policies where the principal value is itself an array + - Fix `InputStreamSubscriber` to return 0 when reading a length of 0. + - Contributed by: [@faucct](https://github.com/faucct) + +## __AWS SimSpace Weaver__ + - ### Features + - Edited the introductory text for the API reference. + +## __AWS X-Ray__ + - ### Features + - Add StartTime field in GetTraceSummaries API response for each TraceSummary. + +## __Amazon CloudWatch Internet Monitor__ + - ### Features + - This release updates the Amazon CloudWatch Internet Monitor API domain name. + +## __Amazon DynamoDB Enhanced Client__ + - ### Features + - This commit introduces returnConsumedCapacity input to BatchGetItemEnhancedRequest that allows customers to find out exactly how much read units were consumed by the operation. + - Contributed by: [@psnilesh](https://github.com/psnilesh) + +## __Amazon GuardDuty__ + - ### Features + - Add `managementType` field to ListCoverage API response. + +## __Amazon Interactive Video Service RealTime__ + - ### Features + - Doc only update that changes description for ParticipantToken. + +## __Amazon Kinesis Firehose__ + - ### Features + - DocumentIdOptions has been added for the Amazon OpenSearch destination. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Updated existing APIs and added new ones to support using AWS Elastic Disaster Recovery post-launch actions. Added support for new regions. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@faucct](https://github.com/faucct), [@psnilesh](https://github.com/psnilesh) +# __2.20.146__ __2023-09-12__ +## __AWS CRT-based S3 Client__ + - ### Bugfixes + - Improved CRT client uploads by directly passing requestPath, eliminating unnecessary file I/O in the Java SDK Transfer Manager. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Amazon Kendra now supports confidence score buckets for retrieved passage results using the Retrieve API. + +## __Amazon DynamoDB Enhanced Client__ + - ### Features + - This commit introduces DynamoDbTable#getItemWithResponse() that allows customers to specify additional parameters on the request such as ReturnConsumedCapacity to get additional information the service response. + - Contributed by: [@psnilesh](https://github.com/psnilesh) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for restricting public sharing of AMIs through AMI Block Public Access + +## __Amazon EventBridge__ + - ### Features + - Adds sensitive trait to various shapes in Jetstream Connections API model. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@psnilesh](https://github.com/psnilesh) +# __2.20.145__ __2023-09-11__ +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental Link now supports attaching a Link UHD device to a MediaConnect flow. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release will have ValidationException be thrown from ECR LifecyclePolicy APIs in regions LifecyclePolicy is not supported, this includes existing Amazon Dedicated Cloud (ADC) regions. This release will also change Tag: TagValue and Tag: TagKey to required. + +## __Amazon QuickSight__ + - ### Features + - This release launches new updates to QuickSight KPI visuals - support for sparklines, new templated layout and new targets for conditional formatting rules. + +# __2.20.144__ __2023-09-08__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fixed an issue in async client where the future would get stuck if there is a server error and the server fails to return response body that matches with the content length specified in the response header. See [#4354](https://github.com/aws/aws-sdk-java-v2/issues/4354) + +## __AWS Single Sign-On Admin__ + - ### Features + - Content updates to IAM Identity Center API for China Regions. + +## __Amazon FSx__ + - ### Features + - Amazon FSx documentation fixes + +## __Amazon SageMaker Service__ + - ### Features + - Autopilot APIs will now support holiday featurization for Timeseries models. The models will now hold holiday metadata and should be able to accommodate holiday effect during inference. + +## __Amazon WorkSpaces__ + - ### Features + - A new field "ErrorDetails" will be added to the output of "DescribeWorkspaceImages" API call. This field provides in-depth details about the error occurred during image import process. These details include the possible causes of the errors and troubleshooting information. + +# __2.20.143__ __2023-09-07__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - Documentation updates for AWS Security Hub + +## __AWS SimSpace Weaver__ + - ### Features + - BucketName and ObjectKey are now required for the S3Location data type. BucketName is now required for the S3Destination data type. + +## __Amazon NeptuneData__ + - ### Features + - Minor changes to send unsigned requests to Neptune clusters + +# __2.20.142__ __2023-09-06__ +## __AWS Elemental MediaLive__ + - ### Features + - Adds advanced Output Locking options for Epoch Locking: Custom Epoch and Jam Sync Time + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fix an issue where the multirelease classes were not being shaded or removed. + +## __AWS WAFV2__ + - ### Features + - The targeted protection level of the Bot Control managed rule group now provides optional, machine-learning analysis of traffic statistics to detect some bot-related activity. You can enable or disable the machine learning functionality through the API. + +## __Amazon Appflow__ + - ### Features + - Adding OAuth2.0 support for servicenow connector. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds 'outpost' location type to the DescribeInstanceTypeOfferings API, allowing customers that have been allowlisted for outpost to query their offerings in the API. + +## __Elastic Load Balancing__ + - ### Features + - This release enables default UDP connection termination and disabling unhealthy target connection termination for Network Load Balancers. + +# __2.20.141__ __2023-09-05__ +## __AWS Cloud9__ + - ### Features + - Added support for Ubuntu 22.04 that was not picked up in a previous Trebuchet request. Doc-only update. + +## __AWS Compute Optimizer__ + - ### Features + - This release adds support to provide recommendations for G4dn and P3 instances that use NVIDIA GPUs. + +## __AWS SDK for Java v2__ + - ### Features + - Add support for RequestCompression trait to GZIP compress requests. + - Updated endpoint and partition metadata. + +## __AWSBillingConductor__ + - ### Features + - This release adds support for line item filtering in for the custom line item resource. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation only update for Amazon ECS. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Introducing Amazon EC2 C7gd, M7gd, and R7gd Instances with up to 3.8 TB of local NVMe-based SSD block-level storage. These instances are powered by AWS Graviton3 processors, delivering up to 25% better performance over Graviton2-based instances. + +## __Amazon EventBridge__ + - ### Features + - Improve Endpoint Ruleset test coverage. + +## __Amazon Relational Database Service__ + - ### Features + - Add support for feature integration with AWS Backup. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Neo now supports data input shape derivation for Pytorch 2.0 and XGBoost compilation job for cloud instance targets. You can skip DataInputConfig field during compilation job creation. You can also access derived information from model in DescribeCompilationJob response. + +## __Amazon VPC Lattice__ + - ### Features + - This release adds Lambda event structure version config support for LAMBDA target groups. It also adds newline support for auth policies. + +# __2.20.140__ __2023-09-01__ +## __AWS SDK for Java v2__ + - ### Features + - Update Jackson to `2.15.2`. + - Updated endpoint and partition metadata. + +## __AWS SSO Identity Store__ + - ### Features + - New Identity Store content for China Region launch + +## __Amazon Chime SDK Media Pipelines__ + - ### Features + - This release adds support for the Voice Analytics feature for customer-owned KVS streams as part of the Amazon Chime SDK call analytics. + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect adds the ability to read, create, update, delete, and list view resources, and adds the ability to read, create, delete, and list view versions. + +## __Amazon NeptuneData__ + - ### Features + - Removed the descriptive text in the introduction. + +# __2.20.139__ __2023-08-31__ +## __AWS Health APIs and Notifications__ + - ### Features + - Adds new API DescribeEntityAggregatesForOrganization that retrieves entity aggregates across your organization. Also adds support for resource status filtering in DescribeAffectedEntitiesForOrganization, resource status aggregates in the DescribeEntityAggregates response, and new resource statuses. + +## __AWS Lambda__ + - ### Features + - Use latest AWS Lambda Java 17 runtime version in SAM template of archetype + - Contributed by: [@deki](https://github.com/deki) + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Media Pipelines__ + - ### Features + - This release adds support for feature Voice Enhancement for Call Recording as part of Amazon Chime SDK call analytics. + +## __Amazon CloudHSM__ + - ### Features + - Deprecating CloudHSM Classic API Service. + +## __Amazon CloudWatch Events__ + - ### Features + - Documentation updates for CloudWatch Events. + +## __Amazon Connect Customer Profiles__ + - ### Features + - Adds sensitive trait to various shapes in Customer Profiles API model. + +## __Amazon Connect Participant Service__ + - ### Features + - Amazon Connect Participant Service adds the ability to get a view resource using a view token, which is provided in a participant message, with the release of the DescribeView API. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for an account-level setting that you can use to configure the number of days for AWS Fargate task retirement. + +## __Amazon Interactive Video Service__ + - ### Features + - Updated "type" description for CreateChannel, UpdateChannel, Channel, and ChannelSummary. + +## __Amazon Managed Grafana__ + - ### Features + - Marking SAML RoleValues attribute as sensitive and updating VpcConfiguration attributes to match documentation. + +## __Amazon SageMaker Runtime__ + - ### Features + - This release adds a new InvokeEndpointWithResponseStream API to support streaming of model responses. + +## __AmazonConnectCampaignService__ + - ### Features + - Amazon Connect outbound campaigns has launched agentless dialing mode which enables customers to make automated outbound calls without agent engagement. This release updates three of the campaign management API's to support the new agentless dialing mode and the new dialing capacity field. + +## __Managed Streaming for Kafka Connect__ + - ### Features + - Minor model changes for Kafka Connect as well as endpoint updates. + +## __Payment Cryptography Data Plane__ + - ### Features + - Make KeyCheckValue field optional when using asymmetric keys as Key Check Values typically only apply to symmetric keys + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@deki](https://github.com/deki) +# __2.20.138__ __2023-08-30__ +## __AWS App Runner__ + - ### Features + - App Runner adds support for Bitbucket. You can now create App Runner connection that connects to your Bitbucket repositories and deploy App Runner service with the source code stored in a Bitbucket repository. + +## __AWS Audit Manager__ + - ### Features + - This release marks some assessment metadata as sensitive. We added a sensitive trait to the following attributes: assessmentName, emailAddress, scope, createdBy, lastUpdatedBy, and userName. + +## __AWS Clean Rooms Service__ + - ### Features + - This release decouples member abilities in a collaboration. With this change, the member who can run queries no longer needs to be the same as the member who can receive results. + +## __AWS DataSync__ + - ### Features + - AWS DataSync introduces Task Reports, a new feature that provides detailed reports of data transfer operations for each task execution. + +## __AWS Network Firewall__ + - ### Features + - Network Firewall increasing pagination token string length + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Appflow__ + - ### Features + - Add SAP source connector parallel and pagination feature + +## __Amazon Elastic Compute Cloud__ + - ### Features + - The DryRun field in EC2 APIs is no longer hidden and has been exposed. To determine the DryRun status for an EC2 operation using the dryRun field, users are now required to catch the Ec2Exception and extract the dryRun status from the errorCode of AwsErrorDetails within the Ec2Exception. + +## __Amazon NeptuneData__ + - ### Features + - Allows customers to execute data plane actions like bulk loading graphs, issuing graph queries using Gremlin and openCypher directly from the SDK. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Canvas adds IdentityProviderOAuthSettings support for CanvasAppSettings + +## __PcaConnectorAd__ + - ### Features + - The Connector for AD allows you to use a fully-managed AWS Private CA as a drop-in replacement for your self-managed enterprise CAs without local agents or proxy servers. Enterprises that use AD to manage Windows environments can reduce their private certificate authority (CA) costs and complexity. + +# __2.20.137__ __2023-08-29__ +## __Amazon Cognito Identity Provider__ + - ### Features + - Added API example requests and responses for several operations. Fixed the validation regex for user pools Identity Provider name. + +## __Amazon FSx__ + - ### Features + - Documentation updates for project quotas. + +## __Amazon Omics__ + - ### Features + - Add RetentionMode support for Runs. + +## __Amazon Simple Email Service__ + - ### Features + - Adds support for the new Export and Message Insights features: create, get, list and cancel export jobs; get message insights. + +# __2.20.136__ __2023-08-28__ +## __AWS Backup__ + - ### Features + - Add support for customizing time zone for backup window in backup plan rules. + +## __AWS Compute Optimizer__ + - ### Features + - This release enables AWS Compute Optimizer to analyze and generate licensing optimization recommendations for sql server running on EC2 instances. + +## __AWS Organizations__ + - ### Features + - Documentation updates for permissions and links. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Security Lake__ + - ### Features + - Remove incorrect regex enforcement on pagination tokens. + +## __Amazon WorkSpaces Web__ + - ### Features + - WorkSpaces Web now enables Admins to configure which cookies are synchronized from an end-user's local browser to the in-session browser. In conjunction with a browser extension, this feature enables enhanced Single-Sign On capability by reducing the number of times an end-user has to authenticate. + +## __Service Quotas__ + - ### Features + - Service Quotas now supports viewing the applied quota value and requesting a quota increase for a specific resource in an AWS account. + +# __2.20.135__ __2023-08-25__ +## __AWS CloudTrail__ + - ### Features + - Add ThrottlingException with error code 429 to handle CloudTrail Delegated Admin request rate exceeded on organization resources. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch__ + - ### Features + - Doc-only update to get doc bug fixes into the SDK docs + +## __Amazon Detective__ + - ### Features + - Added protections to interacting with fields containing customer information. + +# __2.20.134__ __2023-08-24__ +## __AWS Elemental MediaConvert__ + - ### Features + - This release includes additional audio channel tags in Quicktime outputs, support for film grain synthesis for AV1 outputs, ability to create audio-only FLAC outputs, and ability to specify Amazon S3 destination storage class. + +## __AWS Elemental MediaLive__ + - ### Features + - MediaLive now supports passthrough of KLV data to a HLS output group with a TS container. MediaLive now supports setting an attenuation mode for AC3 audio when the coding mode is 3/2 LFE. MediaLive now supports specifying whether to include filler NAL units in RTMP output group settings. + +## __AWS Glue__ + - ### Features + - Added API attributes that help in the monitoring of sessions. + +## __AWS MediaTailor__ + - ### Features + - Adds new source location AUTODETECT_SIGV4 access type. + +## __AWS S3 Control__ + - ### Features + - Updates to endpoint ruleset tests to address Smithy validation issues and standardize the capitalization of DualStack. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 M7a instances, powered by 4th generation AMD EPYC processors, deliver up to 50% higher performance compared to M6a instances. Amazon EC2 Hpc7a instances, powered by 4th Gen AMD EPYC processors, deliver up to 2.5x better performance compared to Amazon EC2 Hpc6a instances. + +## __Amazon QuickSight__ + - ### Features + - Excel support in Snapshot Export APIs. Removed Required trait for some insight Computations. Namespace-shared Folders support. Global Filters support. Table pin Column support. + +## __Amazon Relational Database Service__ + - ### Features + - This release updates the supported versions for Percona XtraBackup in Aurora MySQL. + +## __Amazon S3__ + - ### Features + - Add support for presigned `DeleteObject` in `S3Presigner`. + +## __Amazon Simple Storage Service__ + - ### Features + - Updates to endpoint ruleset tests to address Smithy validation issues. + +## __Amazon Verified Permissions__ + - ### Features + - Documentation updates for Amazon Verified Permissions. + +# __2.20.133__ __2023-08-23__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon API Gateway__ + - ### Features + - This release adds RootResourceId to GetRestApi response. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Marking fields as sensitive on BundleTask and GetPasswordData + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds 1 new voice - Zayd (ar-AE) + +# __2.20.132__ __2023-08-22__ +## __AWS Cost Explorer Service__ + - ### Features + - This release adds the LastUpdatedDate and LastUsedDate timestamps to help you manage your cost allocation tags. + +## __AWS Global Accelerator__ + - ### Features + - Global Accelerator now supports Client Ip Preservation for Network Load Balancer endpoints. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SDK for Java v2 - DynamoDb Enhanced__ + - ### Bugfixes + - Changes the default behavior of the DynamoDb Enhanced atomic counter extension to automatically filter out any counter attributes in the item to be updated. This allows users to read and update items without DynamoDb collision errors. + +## __Amazon Relational Database Service__ + - ### Features + - Adding parameters to CreateCustomDbEngineVersion reserved for future use. + +## __Amazon Verified Permissions__ + - ### Features + - Documentation updates for Amazon Verified Permissions. Increases max results per page for ListPolicyStores, ListPolicies, and ListPolicyTemplates APIs from 20 to 50. + +# __2.20.131__ __2023-08-21__ +## __AWS Cloud9__ + - ### Features + - Doc only update to add Ubuntu 22.04 as an Image ID option for Cloud9 + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - The DeleteKeyPair API has been updated to return the keyPairId when an existing key pair is deleted. + +## __Amazon Relational Database Service__ + - ### Features + - Adding support for RDS Aurora Global Database Unplanned Failover + +## __Amazon Route 53 Domains__ + - ### Features + - Fixed typos in description fields + +## __FinSpace User Environment Management service__ + - ### Features + - Allow customers to manage outbound traffic from their Kx Environment when attaching a transit gateway by providing network acl entries. Allow the customer to choose how they want to update the databases on a cluster allowing updates to possibly be faster than usual. + +# __2.20.130__ __2023-08-18__ +## __AWS CodeCommit__ + - ### Features + - Add new ListFileCommitHistory operation to retrieve commits which introduced changes to a specific file. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - Added Inspector Lambda code Vulnerability section to ASFF, including GeneratorDetails, EpssScore, ExploitAvailable, and CodeVulnerabilities. + +# __2.20.129__ __2023-08-17__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Sends final checksum chunk and trailer when only onComplete() is called by upstream (empty content) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for SubnetConfigurations to allow users to select their own IPv4 and IPv6 addresses for Interface VPC endpoints + +## __Amazon GameLift__ + - ### Features + - Amazon GameLift updates its instance types support. + +# __2.20.128__ __2023-08-16__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Add support for the `SERVICE_ENDPOINT` metric. This metric represents the endpoint (scheme and authority) that the request was sent to. + +## __Amazon CloudWatch__ + - ### Features + - Doc-only update to incorporate several doc bug fixes + +## __Amazon Lex Model Building V2__ + - ### Features + - This release updates the Custom Vocabulary Weight field to support a value of 0. + +# __2.20.127__ __2023-08-15__ +## __AWS Glue__ + - ### Features + - AWS Glue Crawlers can now accept SerDe overrides from a custom csv classifier. The two SerDe options are LazySimpleSerDe and OpenCSVSerDe. In case, the user wants crawler to do the selection, "None" can be selected for this purpose. + +## __AWS Performance Insights__ + - ### Features + - AWS Performance Insights for Amazon RDS is launching Performance Analysis On Demand, a new feature that allows you to analyze database performance metrics and find out the performance issues. You can now use SDK to create, list, get, delete, and manage tags of performance analysis reports. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Updated API documentation to include additional exceptions. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Elastic Compute Cloud (EC2). + +## __Amazon Route 53 Domains__ + - ### Features + - Provide explanation if CheckDomainTransferability return false. Provide requestId if a request is already submitted. Add sensitive protection for customer information + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Inference Recommender now provides SupportedResponseMIMETypes from DescribeInferenceRecommendationsJob response + +# __2.20.126__ __2023-08-14__ +## __AWS Elemental MediaPackage__ + - ### Features + - Fix SDK logging of certain fields. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Transfer Family__ + - ### Features + - Documentation updates for AWS Transfer Family + +## __Amazon Omics__ + - ### Features + - This release provides support for annotation store versioning and cross account sharing for Omics Analytics + +# __2.20.125__ __2023-08-11__ +## __AWS Config__ + - ### Features + - Updated ResourceType enum with new resource types onboarded by AWS Config in July 2023. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 P5 instances, powered by the latest NVIDIA H100 Tensor Core GPUs, deliver the highest performance in EC2 for deep learning (DL) and HPC applications. M7i-flex and M7i instances are next-generation general purpose instances powered by custom 4th Generation Intel Xeon Scalable processors. + +## __Amazon QuickSight__ + - ### Features + - New Authentication method for Account subscription - IAM Identity Center. Hierarchy layout support, default column width support and related style properties for pivot table visuals. Non-additive topic field aggregations for Topic API + +## __Amazon Simple Email Service__ + - ### Features + - Doc only updates to include: 1) Clarified which part of an email address where it's okay to have Punycode when it contains non-ASCII characters for the SendRawEmail action and other actions where this is applicable. 2) Updated S3Action description with new MB max bucket size from 30 to 40. + +## __Amazon Simple Workflow Service__ + - ### Features + - This release adds new API parameters to override workflow task list for workflow executions. + +## __AmplifyBackend__ + - ### Features + - Adds sensitive trait to required input shapes. + +# __2.20.124__ __2023-08-10__ +## __AWS CloudTrail__ + - ### Features + - Documentation updates for CloudTrail. + +## __AWS DynamoDB Enhanced Client__ + - ### Bugfixes + - Fix for Issue [#4156](https://github.com/aws/aws-sdk-java-v2/issues/4156) : Single quotes in toJson conversions for EnhancedDocuments are no longer being escaped. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fixed bug where limit was not copied over when cloning ByteBuffer using immutableCopyOf() + +## __AWS Secrets Manager__ + - ### Features + - Add additional InvalidRequestException to list of possible exceptions for ListSecret. + +## __AWS Transfer Family__ + - ### Features + - Documentation updates for AW Transfer Family + +## __Amazon Connect Service__ + - ### Features + - This release adds APIs to provision agents that are global / available in multiple AWS regions and distribute them across these regions by percentage. + +## __Amazon Omics__ + - ### Features + - This release adds instanceType to GetRunTask & ListRunTasks responses. + +## __Elastic Load Balancing__ + - ### Features + - This release enables configuring security groups for Network Load Balancers + +# __2.20.123__ __2023-08-09__ +## __AWS Global Accelerator__ + - ### Features + - Documentation update for dualstack EC2 endpoint support + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Voice__ + - ### Features + - Updating CreatePhoneNumberOrder, UpdatePhoneNumber and BatchUpdatePhoneNumbers APIs, adding phone number name + +## __Amazon FSx__ + - ### Features + - For FSx for Lustre, add new data repository task type, RELEASE_DATA_FROM_FILESYSTEM, to release files that have been archived to S3. For FSx for Windows, enable support for configuring and updating SSD IOPS, and for updating storage type. For FSx for OpenZFS, add new deployment type, MULTI_AZ_1. + +## __Amazon GuardDuty__ + - ### Features + - Added autoEnable ALL to UpdateOrganizationConfiguration and DescribeOrganizationConfiguration APIs. + +## __Amazon S3__ + - ### Features + - Allow users to configure upload threshold size for AWS CRT-based S3 client via `S3CrtAsyncClientBuilder#thresholdInBytes`. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for cross account access for SageMaker Model Cards through AWS RAM. + +# __2.20.122__ __2023-08-08__ +## __AWS Backup__ + - ### Features + - This release introduces a new logically air-gapped vault (Preview) in AWS Backup that stores immutable backup copies, which are locked by default and isolated with encryption using AWS owned keys. Logically air-gapped vault (Preview) allows secure recovery of application data across accounts. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Service Catalog__ + - ### Features + - Introduce support for HashiCorp Terraform Cloud in Service Catalog by addying TERRAFORM_CLOUD product type in CreateProduct and CreateProvisioningArtifact API. + +## __Amazon ElastiCache__ + - ### Features + - Added support for cluster mode in online migration and test migration API + +# __2.20.121__ __2023-08-07__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Detective__ + - ### Features + - Updated the email validation regex to be in line with the TLD name specifications. + +## __Amazon Interactive Video Service RealTime__ + - ### Features + - Add QUOTA_EXCEEDED and PUBLISHER_NOT_FOUND to EventErrorCode for stage health events. + +## __Amazon Kinesis Video Streams__ + - ### Features + - This release enables minimum of Images SamplingInterval to be as low as 200 milliseconds in Kinesis Video Stream Image feature. + +## __Amazon Kinesis Video Streams Archived Media__ + - ### Features + - This release enables minimum of Images SamplingInterval to be as low as 200 milliseconds in Kinesis Video Stream Image feature. + +## __Amazon Rekognition__ + - ### Features + - This release adds code snippets for Amazon Rekognition Custom Labels. + +# __2.20.120__ __2023-08-04__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - Documentation correction for AWS Private CA + +## __AWS DataSync__ + - ### Features + - Display cloud storage used capacity at a cluster level. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - Added a new API UpdateRoutingProfileAgentAvailabilityTimer to update agent availability timer of a routing profile. + +## __Amazon EC2 Container Service__ + - ### Features + - This is a documentation update to address various tickets. + +## __Amazon SageMaker Service__ + - ### Features + - Including DataCaptureConfig key in the Amazon Sagemaker Search's transform job object + +# __2.20.119__ __2023-08-03__ +## __AWS Cloud9__ + - ### Features + - Updated the deprecation date for Amazon Linux. Doc only update. + +## __AWS Database Migration Service__ + - ### Features + - The release makes public API for DMS Schema Conversion feature. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds new parameter isPrimaryIPv6 to allow assigning an IPv6 address as a primary IPv6 address to a network interface which cannot be changed to give equivalent functionality available for network interfaces with primary IPv4 address. + +## __Amazon S3__ + - ### Bugfixes + - Add `Expect: 100-continue` header for `UploadPartRequest` so that a upload part request can fail faster if there is a server error. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker now supports running training jobs on p5.48xlarge instance types. + +## __Auto Scaling__ + - ### Features + - Documentation changes related to Amazon EC2 Auto Scaling APIs. + +# __2.20.118__ __2023-08-02__ +## __AWS Budgets__ + - ### Features + - As part of CAE tagging integration we need to update our budget names regex filter to prevent customers from using "/action/" in their budget names. + +## __AWS Glue__ + - ### Features + - This release includes additional Glue Streaming KAKFA SASL property types. + +## __AWS Resilience Hub__ + - ### Features + - Drift Detection capability added when applications policy has moved from a meet to breach state. Customers will be able to exclude operational recommendations and receive credit in their resilience score. Customers can now add ARH permissions to an existing or new role. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Cognito Identity Provider__ + - ### Features + - New feature that logs Cognito user pool error messages to CloudWatch logs. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Inference Recommender introduces a new API GetScalingConfigurationRecommendation to recommend auto scaling policies based on completed Inference Recommender jobs. + +# __2.20.117__ __2023-08-01__ +## __AWS Batch__ + - ### Features + - This release adds support for price capacity optimized allocation strategy for Spot Instances. + +## __AWS Database Migration Service__ + - ### Features + - Adding new API describe-engine-versions which provides information about the lifecycle of a replication instance's version. + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental Link devices now report their Availability Zone. Link devices now support the ability to change their Availability Zone. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch Internet Monitor__ + - ### Features + - This release adds a new feature for Amazon CloudWatch Internet Monitor that enables customers to set custom thresholds, for performance and availability drops, for impact limited to a single city-network to trigger creation of a health event. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new French Belgian voice - Isabelle. Isabelle is available as Neural voice only. + +## __Amazon Relational Database Service__ + - ### Features + - Added support for deleted clusters PiTR. + +## __Amazon SageMaker Service__ + - ### Features + - Add Stairs TrafficPattern and FlatInvocations to RecommendationJobStoppingConditions + +# __2.20.116__ __2023-07-31__ +## __AWS Amplify UI Builder__ + - ### Features + - Amplify Studio releases GraphQL support for codegen job action. + +## __AWS Clean Rooms Service__ + - ### Features + - This release introduces custom SQL queries - an expanded set of SQL you can run. This release adds analysis templates, a new resource for storing pre-defined custom SQL queries ahead of time. This release also adds the Custom analysis rule, which lets you approve analysis templates for querying. + +## __AWS CodeStar connections__ + - ### Features + - New integration with the Gitlab provider type. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon EventBridge Scheduler__ + - ### Features + - This release introduces automatic deletion of schedules in EventBridge Scheduler. If configured, EventBridge Scheduler automatically deletes a schedule after the schedule has completed its last invocation. + +## __Amazon Lookout for Equipment__ + - ### Features + - This release includes new import resource, model versioning and resource policy features. + +## __Amazon Omics__ + - ### Features + - Add CreationType filter for ListReadSets + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for Aurora MySQL local write forwarding, which allows for forwarding of write operations from reader DB instances to the writer DB instance. + +## __Amazon Route 53__ + - ### Features + - Amazon Route 53 now supports the Israel (Tel Aviv) Region (il-central-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. + +## __Auto Scaling__ + - ### Features + - You can now configure an instance refresh to set its status to 'failed' when it detects that a specified CloudWatch alarm has gone into the ALARM state. You can also choose to roll back the instance refresh automatically when the alarm threshold is met. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Add support for in-aws right sizing + +## __Inspector2__ + - ### Features + - This release adds 1 new API: BatchGetFindingDetails to retrieve enhanced vulnerability intelligence details for findings. + +# __2.20.115__ __2023-07-28__ +## __AWS CloudFormation__ + - ### Features + - This SDK release is for the feature launch of AWS CloudFormation RetainExceptOnCreate. It adds a new parameter retainExceptOnCreate in the following APIs: CreateStack, UpdateStack, RollbackStack, ExecuteChangeSet. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudFront__ + - ### Features + - Add a new JavaScript runtime version for CloudFront Functions. + +## __Amazon CloudWatch Application Insights__ + - ### Features + - This release enable customer to add/remove/update more than one workload for a component + +## __Amazon Connect Service__ + - ### Features + - This release adds support for new number types. + +## __Amazon Pinpoint__ + - ### Features + - Added support for sending push notifications using the FCM v1 API with json credentials. Amazon Pinpoint customers can now deliver messages to Android devices using both FCM v1 API and the legacy FCM/GCM API + +## __Managed Streaming for Kafka__ + - ### Features + - Amazon MSK has introduced new versions of ListClusterOperations and DescribeClusterOperation APIs. These v2 APIs provide information and insights into the ongoing operations of both MSK Provisioned and MSK Serverless clusters. + +# __2.20.114__ __2023-07-27__ +## __Amazon Simple Queue Service__ + - ### Features + - Documentation changes related to SQS APIs. + +# __2.20.113__ __2023-07-27__ +## __Amazon Elastic Block Store__ + - ### Features + - SDK and documentation updates for Amazon Elastic Block Store API + +## __Amazon Elastic Compute Cloud__ + - ### Features + - SDK and documentation updates for Amazon Elastic Block Store APIs + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Add multiple customer error code to handle customer caused failure when managing EKS node groups + +## __Amazon SageMaker Service__ + - ### Features + - Expose ProfilerConfig attribute in SageMaker Search API response. + +## __Auto Scaling__ + - ### Features + - This release updates validation for instance types used in the AllowedInstanceTypes and ExcludedInstanceTypes parameters of the InstanceRequirements property of a MixedInstancesPolicy. + +# __2.20.112__ __2023-07-26__ +## __AWS Cloud Control API__ + - ### Features + - Updates the documentation for CreateResource. + +## __AWS Elemental MediaConvert__ + - ### Features + - This release includes general updates to user documentation. + +## __AWS EntityResolution__ + - ### Features + - AWS Entity Resolution can effectively match a source record from a customer relationship management (CRM) system with a source record from a marketing system containing campaign information. + +## __AWS Glue__ + - ### Features + - Release Glue Studio Snowflake Connector Node for SDK/CLI + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon HealthLake__ + - ### Features + - Updating the HealthLake service documentation. + +## __Amazon Managed Blockchain Query__ + - ### Features + - Amazon Managed Blockchain (AMB) Query provides serverless access to standardized, multi-blockchain datasets with developer-friendly APIs. + +## __Amazon Omics__ + - ### Features + - The service is renaming as a part of AWS Health. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds 1 new voice - Lisa (nl-BE) + +## __Amazon Route 53__ + - ### Features + - Update that corrects the documents for received feedback. + +## __OpenSearch Service Serverless__ + - ### Features + - This release adds new collection type VectorSearch. + +# __2.20.111__ __2023-07-25__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports Microsoft Azure Blob Storage locations. + +## __AWS IAM Policy Builder__ + - ### Bugfixes + - Fixed bug where actions were written instead of resources. + +## __AWS Lambda__ + - ### Features + - Add Python 3.11 (python3.11) support to AWS Lambda + +## __AWS Security Token Service__ + - ### Features + - API updates for the AWS Security Token Service + +## __AWS SecurityHub__ + - ### Features + - Add support for CONTAINS and NOT_CONTAINS comparison operators for Automation Rules string filters and map filters + +## __AWS Transfer Family__ + - ### Features + - This release adds support for SFTP Connectors. + +## __AWSBillingConductor__ + - ### Features + - Added support for Auto-Assocate Billing Groups for CreateBillingGroup, UpdateBillingGroup, and ListBillingGroups. + +## __Amazon Connect Customer Profiles__ + - ### Features + - Amazon Connect Customer Profiles now supports rule-based resolution to match and merge similar profiles into unified profiles, helping companies deliver faster and more personalized customer service by providing access to relevant customer information for agents and automated experiences. + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release added two new data types: AssistantIntegrationConfiguration, and SessionIntegrationConfiguration to support Wisdom integration with Amazon Connect Chat + +## __Amazon DynamoDB__ + - ### Features + - Documentation updates for DynamoDB + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds an instance's peak and baseline network bandwidth as well as the memory sizes of an instance's inference accelerators to DescribeInstanceTypes. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for monitoring storage optimization progress on the DescribeDBInstances API. + +## __Amazon SageMaker Service__ + - ### Features + - Mark ContentColumn and TargetLabelColumn as required Targets in TextClassificationJobConfig in CreateAutoMLJobV2API + +## __EMR Serverless__ + - ### Features + - This release adds support for publishing application logs to CloudWatch. + +# __2.20.110__ __2023-07-24__ +## __AWS CloudFormation__ + - ### Features + - This release supports filtering by DRIFT_STATUS for existing API ListStackInstances and adds support for a new API ListStackInstanceResourceDrifts. Customers can now view resource drift information from their StackSet management accounts. + +## __AWS Cost Explorer Service__ + - ### Features + - This release introduces the new API 'GetSavingsPlanPurchaseRecommendationDetails', which retrieves the details for a Savings Plan recommendation. It also updates the existing API 'GetSavingsPlansPurchaseRecommendation' to include the recommendation detail ID. + +## __AWS Glue__ + - ### Features + - Added support for Data Preparation Recipe node in Glue Studio jobs + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Media Pipelines__ + - ### Features + - AWS Media Pipeline compositing enhancement and Media Insights Pipeline auto language identification. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add "disabled" enum value to SpotInstanceState. + +## __Amazon QuickSight__ + - ### Features + - This release launches new Snapshot APIs for CSV and PDF exports, adds support for info icon for filters and parameters in Exploration APIs, adds modeled exception to the DeleteAccountCustomization API, and introduces AttributeAggregationFunction's ability to add UNIQUE_VALUE aggregation in tooltips. + +## __AmazonApiGatewayV2__ + - ### Features + - Documentation updates for Amazon API Gateway. + +# __2.20.109__ __2023-07-21__ +## __AWS Elemental MediaConvert__ + - ### Features + - This release includes improvements to Preserve 444 handling, compatibility of HEVC sources without frame rates, and general improvements to MP4 outputs. + +## __AWS Glue__ + - ### Features + - This release adds support for AWS Glue Crawler with Apache Hudi Tables, allowing Crawlers to discover Hudi Tables in S3 and register them in Glue Data Catalog for query engines to query against. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for the DBSystemID parameter of CreateDBInstance to RDS Custom for Oracle. + +## __Amazon WorkSpaces__ + - ### Features + - Fixed VolumeEncryptionKey descriptions + +## __S3 Transfer Manager__ + - ### Bugfixes + - Fix a bug where the SSE-C parameters are not copied to the CompleteMultipartUpload request when transforming to a multipart copy. + +# __2.20.108__ __2023-07-20__ +## __Amazon CodeCatalyst__ + - ### Features + - This release adds support for updating and deleting spaces and projects in Amazon CodeCatalyst. It also adds support for creating, getting, and deleting source repositories in CodeCatalyst projects. + +## __Amazon Connect Cases__ + - ### Features + - This release adds the ability to assign a case to a queue or user. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release updates type for Channel field in SessionSpecification and UtteranceSpecification + +## __Amazon Route 53 Resolver__ + - ### Features + - This release adds support for Route 53 On Outposts, a new feature that allows customers to run Route 53 Resolver and Resolver endpoints locally on their Outposts. + +## __Amazon SageMaker Feature Store Runtime__ + - ### Features + - Cross account support for SageMaker Feature Store + +## __Amazon SageMaker Service__ + - ### Features + - Cross account support for SageMaker Feature Store + +## __Amazon Security Lake__ + - ### Features + - Adding support for Tags on Create and Resource Tagging API. + +## __Amazon Simple Storage Service__ + - ### Features + - Improve performance of S3 clients by simplifying and optimizing endpoint resolution. + +## __Amazon Transcribe Service__ + - ### Features + - Added API argument --toxicity-detection to startTranscriptionJob API, which allows users to view toxicity scores of submitted audio. + +# __2.20.107__ __2023-07-19__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Savings Plans__ + - ### Features + - Savings Plans endpoints update + +## __Amazon S3__ + - ### Bugfixes + - Handle Temporary redirect error 307 when client configured in us-east-1 accesses cross region. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fixed the issue where the position of the ByteBuffer from the request is not honored in NettyNioAsyncHttpClient. + +# __2.20.106__ __2023-07-19__ +## __AWS CloudFormation__ + - ### Features + - SDK and documentation updates for GetTemplateSummary API (unrecognized resources) + +## __AWS Health Imaging__ + - ### Features + - General Availability (GA) release of AWS Health Imaging, enabling customers to store, transform, and analyze medical imaging data at petabyte-scale. + +## __AWS Resource Access Manager__ + - ### Features + - This release adds support for securely sharing with AWS service principals. + +## __AWS SDK for Java v2__ + - ### Features + - Allowing configuring the prefetchTime and staleTime on WebIdentityTokenFileCredentialsProvider + +## __AWS Systems Manager for SAP__ + - ### Features + - Added support for SAP Hana High Availability discovery (primary and secondary nodes) and Backint agent installation with SSM for SAP. + +## __AWS WAFV2__ + - ### Features + - Added the URI path to the custom aggregation keys that you can specify for a rate-based rule. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 documentation updates. + +## __Amazon Managed Grafana__ + - ### Features + - Amazon Managed Grafana now supports grafanaVersion update for existing workspaces with UpdateWorkspaceConfiguration API. DescribeWorkspaceConfiguration API additionally returns grafanaVersion. A new ListVersions API lists available versions or, if given a workspaceId, the versions it can upgrade to. + +# __2.20.105__ __2023-07-18__ +## __AWS SDK for Java v2__ + - ### Features + - Added support for IamPolicy in new module software.amazon.awssdk:iam-policy-builder, a class to simplify the use of AWS policies. + - Updated endpoint and partition metadata. + +## __AWSMainframeModernization__ + - ### Features + - Allows UpdateEnvironment to update the environment to 0 host capacity. New GetSignedBluinsightsUrl API + +## __Amazon CodeGuru Security__ + - ### Features + - Documentation updates for CodeGuru Security. + +## __Amazon Connect Service__ + - ### Features + - GetMetricDataV2 API: Update to include Contact Lens Conversational Analytics Metrics + +## __Amazon Elasticsearch Service__ + - ### Features + - Regex Validation on the ElasticSearch Engine Version attribute + +## __Amazon Import/Export Snowball__ + - ### Features + - Adds support for RACK_5U_C. This is the first AWS Snow Family device designed to meet U.S. Military Ruggedization Standards (MIL-STD-810H) with 208 vCPU device in a portable, compact 5U, half-rack width form-factor. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release adds support for Lex Developers to view analytics for their bots. + +## __Amazon Translate__ + - ### Features + - Added DOCX word document support to TranslateDocument API + +# __2.20.104__ __2023-07-17__ +## __AWS Glue__ + - ### Features + - Adding new supported permission type flags to get-unfiltered endpoints that callers may pass to indicate support for enforcing Lake Formation fine-grained access control on nested column attributes. + +## __AWS Lake Formation__ + - ### Features + - Adds supports for ReadOnlyAdmins and AllowFullTableExternalDataAccess. Adds NESTED_PERMISSION and NESTED_CELL_PERMISSION to SUPPORTED_PERMISSION_TYPES enum. Adds CREATE_LF_TAG on catalog resource and ALTER, DROP, and GRANT_WITH_LF_TAG_EXPRESSION on LF Tag resource. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Added major version upgrade option in ModifyDBCluster API + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add Nitro TPM support on DescribeInstanceTypes + +## __Amazon Interactive Video Service__ + - ### Features + - This release provides the flexibility to configure what renditions or thumbnail qualities to record when creating recording configuration. + +## __CodeArtifact__ + - ### Features + - Doc only update for AWS CodeArtifact + +# __2.20.103__ __2023-07-13__ +## __AWS DataSync__ + - ### Features + - Added LunCount to the response object of DescribeStorageSystemResourcesResponse, LunCount represents the number of LUNs on a storage system resource. + +## __AWS Database Migration Service__ + - ### Features + - Enhanced PostgreSQL target endpoint settings for providing Babelfish support. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS MediaTailor__ + - ### Features + - Adds categories to MediaTailor channel assembly alerts + +## __AWS Proton__ + - ### Features + - This release adds support for deployment history for Proton provisioned resources + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __Amazon Cognito Identity Provider__ + - ### Features + - API model updated in Amazon Cognito + +## __Amazon Connect Service__ + - ### Features + - Add support for deleting Queues and Routing Profiles. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for the C7gn and Hpc7g instances. C7gn instances are powered by AWS Graviton3 processors and the fifth-generation AWS Nitro Cards. Hpc7g instances are powered by AWS Graviton 3E processors and provide up to 200 Gbps network bandwidth. + +## __Amazon FSx__ + - ### Features + - Amazon FSx for NetApp ONTAP now supports SnapLock, an ONTAP feature that enables you to protect your files in a volume by transitioning them to a write once, read many (WORM) state. + +## __Amazon Personalize__ + - ### Features + - This release provides ability to customers to change schema associated with their datasets in Amazon Personalize + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Canvas adds WorkspeceSettings support for CanvasAppSettings + +## __Amazon Simple Storage Service__ + - ### Features + - S3 Inventory now supports Object Access Control List and Object Owner as available object metadata fields in inventory reports. + +# __2.20.102__ __2023-07-10__ +## __AWS SDK for Java v2__ + - ### Features + - Enable zero-copy ByteBuffer publishing in AsyncRequestBody via "unsafe" constructors + - Contributed by: [@StephenFlavin](https://github.com/StephenFlavin) + +## __Amazon Cognito Identity Provider__ + - ### Features + - API model updated in Amazon Cognito + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@StephenFlavin](https://github.com/StephenFlavin) +# __2.20.101__ __2023-07-07__ +## __AWS Database Migration Service__ + - ### Features + - Releasing DMS Serverless. Adding support for PostgreSQL 15.x as source and target endpoint. Adding support for DocDB Elastic Clusters with sharded collections, PostgreSQL datatype mapping customization and disabling hostname validation of the certificate authority in Kafka endpoint settings + +## __AWS Elemental MediaLive__ + - ### Features + - This release enables the use of Thumbnails in AWS Elemental MediaLive. + +## __AWS Glue__ + - ### Features + - This release enables customers to create new Apache Iceberg tables and associated metadata in Amazon S3 by using native AWS Glue CreateTable operation. + +## __AWS MediaTailor__ + - ### Features + - The AWS Elemental MediaTailor SDK for Channel Assembly has added support for EXT-X-CUE-OUT and EXT-X-CUE-IN tags to specify ad breaks in HLS outputs, including support for EXT-OATCLS, EXT-X-ASSET, and EXT-X-CUE-OUT-CONT accessory tags. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch Logs__ + - ### Features + - Add CMK encryption support for CloudWatch Logs Insights query result data + +# __2.20.100__ __2023-07-06__ +## __AWS Outposts__ + - ### Features + - Added paginator support to several APIs. Added the ISOLATED enum value to AssetState. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Single Sign-on__ + - ### Bugfixes + - Fixed issue with SsoAccessTokenProvider prematurely throwing ExpiredTokenException. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add Nitro Enclaves support on DescribeInstanceTypes + +## __Amazon Location Service__ + - ### Features + - This release adds support for authenticating with Amazon Location Service's Places & Routes APIs with an API Key. Also, with this release developers can publish tracked device position updates to Amazon EventBridge. + +## __Amazon QuickSight__ + - ### Features + - This release includes below three changes: small multiples axes improvement, field based coloring, removed required trait from Aggregation function for TopBottomFilter. + +## __Amazon Relational Database Service__ + - ### Features + - Updates Amazon RDS documentation for creating DB instances and creating Aurora global clusters. + +# __2.20.99__ __2023-07-05__ +## __AWS Comprehend Medical__ + - ### Features + - Update to Amazon Comprehend Medical documentation. + +## __AWS Key Management Service__ + - ### Features + - Added Dry Run Feature to cryptographic and cross-account mutating KMS APIs (14 in all). This feature allows users to test their permissions and parameters before making the actual API call. + +## __AWS SDK for Java v2__ + - ### Features + - Cross region bucket access for S3 Client. This feature will allow users to access buckets of different region using a single cross region configured client. + +## __AWS SecurityHub__ + - ### Features + - Documentation updates for AWS Security Hub + +## __Amazon Connect Service__ + - ### Features + - GetMetricDataV2 API: Channels filters do not count towards overall limitation of 100 filter values. + +## __Application Migration Service__ + - ### Features + - This release introduces the Global view feature and new Replication state APIs. + +# __2.20.98__ __2023-07-03__ +## __AWS Batch__ + - ### Features + - This feature allows customers to use AWS Batch with Linux with ARM64 CPU Architecture and X86_64 CPU Architecture with Windows OS on Fargate Platform. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker Inference Recommender now accepts new fields SupportedEndpointType and ServerlessConfiguration to support serverless endpoints. + +# __2.20.97__ __2023-06-30__ +## __AWS Elemental MediaConvert__ + - ### Features + - This release includes improved color handling of overlays and general updates to user documentation. + +## __AWS Transfer Family__ + - ### Features + - Add outbound Basic authentication support to AS2 connectors + +## __Amazon EC2 Container Service__ + - ### Features + - Added new field "credentialspecs" to the ecs task definition to support gMSA of windows/linux in both domainless and domain-joined mode + +## __Amazon Interactive Video Service__ + - ### Features + - Corrects the HTTP response code in the generated docs for PutMetadata and DeleteRecordingConfiguration APIs. + +## __Amazon Prometheus Service__ + - ### Features + - AWS SDK service model generation tool version upgrade. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for rolling deployment in SageMaker Inference. + +## __Amazon Verified Permissions__ + - ### Features + - This release corrects several broken links in the documentation. + +# __2.20.96__ __2023-06-29__ +## __AWS Clean Rooms Service__ + - ### Features + - This release adds support for the OR operator in RSQL join match conditions and the ability to control which operators (AND, OR) are allowed in a join match condition. + +## __AWS Glue__ + - ### Features + - This release adds support for AWS Glue Crawler with Iceberg Tables, allowing Crawlers to discover Iceberg Tables in S3 and register them in Glue Data Catalog for query engines to query against. + +## __Amazon AppStream__ + - ### Features + - This release introduces app block builder, allowing customers to provision a resource to package applications into an app block + +## __Amazon Chime__ + - ### Features + - The Amazon Chime SDK APIs in the Chime namespace are no longer supported. Customers should use APIs in the dedicated Amazon Chime SDK namespaces: ChimeSDKIdentity, ChimeSDKMediaPipelines, ChimeSDKMeetings, ChimeSDKMessaging, and ChimeSDKVoice. + +## __Amazon DynamoDB__ + - ### Features + - This release adds ReturnValuesOnConditionCheckFailure parameter to PutItem, UpdateItem, DeleteItem, ExecuteStatement, BatchExecuteStatement and ExecuteTransaction APIs. When set to ALL_OLD, API returns a copy of the item as it was when a conditional write failed + +## __Amazon GameLift__ + - ### Features + - Amazon GameLift now supports game builds that use the Amazon Linux 2023 (AL2023) operating system. + +## __Amazon SageMaker Service__ + - ### Features + - Adding support for timeseries forecasting in the CreateAutoMLJobV2 API. + +# __2.20.95__ __2023-06-28__ +## __AWS Lambda__ + - ### Features + - Surface ResourceConflictException in DeleteEventSourceMapping + +## __Amazon CloudWatch Internet Monitor__ + - ### Features + - This release adds a new feature for Amazon CloudWatch Internet Monitor that enables customers to set custom thresholds, for performance and availability drops, for triggering when to create a health event. + +## __Amazon Kinesis Analytics__ + - ### Features + - Support for new runtime environment in Kinesis Data Analytics Studio: Zeppelin-0.10, Apache Flink-1.15 + +## __Amazon Omics__ + - ### Features + - Add Common Workflow Language (CWL) as a supported language for Omics workflows + +## __Amazon Relational Database Service__ + - ### Features + - Amazon Relational Database Service (RDS) now supports joining a RDS for SQL Server instance to a self-managed Active Directory. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for Model Cards Model Registry integration. + +## __Amazon Simple Storage Service__ + - ### Features + - The S3 LISTObjects, ListObjectsV2 and ListObjectVersions API now supports a new optional header x-amz-optional-object-attributes. If header contains RestoreStatus as the value, then S3 will include Glacier restore status i.e. isRestoreInProgress and RestoreExpiryDate in List response. + +# __2.20.94__ __2023-06-27__ +## __AWS Private 5G__ + - ### Features + - This release allows Private5G customers to choose different commitment plans (60-days, 1-year, 3-years) when placing new orders, enables automatic renewal option for 1-year and 3-years commitments. It also allows customers to update the commitment plan of an existing radio unit. + +## __Amazon Appflow__ + - ### Features + - This release adds support to bypass SSO with the SAPOData connector when connecting to an SAP instance. + +## __Amazon Interactive Video Service__ + - ### Features + - IVS customers can now revoke the viewer session associated with an auth token, to prevent and stop playback using that token. + +## __Amazon Kinesis Video Streams__ + - ### Features + - General Availability (GA) release of Kinesis Video Streams at Edge, enabling customers to provide a configuration for the Kinesis Video Streams EdgeAgent running on an on-premise IoT device. Customers can now locally record from cameras and stream videos to the cloud on a configured schedule. + +## __Amazon Macie 2__ + - ### Features + - This release adds support for configuring new classification jobs to use the set of managed data identifiers that we recommend for jobs. For the managed data identifier selection type (managedDataIdentifierSelector), specify RECOMMENDED. + +## __Amazon SageMaker Feature Store Runtime__ + - ### Features + - Introducing TTL for online store records for feature groups. + +## __Amazon SageMaker Service__ + - ### Features + - Introducing TTL for online store records in feature groups. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Systems Manager doc-only update for June 2023. + +## __Amazon Verified Permissions__ + - ### Features + - This update fixes several broken links to the Cedar documentation. + +## __AppFabric__ + - ### Features + - Initial release of AWS AppFabric for connecting SaaS applications for better productivity and security. + +## __DynamoDB Enhanced Client__ + - ### Features + - Added support for StreamSpecification in the CreateTableEnhancedRequest, allowing configuration of table stream specification using DynamoDB Enhanced Client. + - Contributed by: [@acouvreur](https://github.com/acouvreur) + +## __EMR Serverless__ + - ### Features + - This release adds support to update the release label of an EMR Serverless application to upgrade it to a different version of Amazon EMR via UpdateApplication API. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@acouvreur](https://github.com/acouvreur) +# __2.20.93__ __2023-06-26__ +## __AWS Glue__ + - ### Features + - Timestamp Starting Position For Kinesis and Kafka Data Sources in a Glue Streaming Job + +## __AWS Identity and Access Management__ + - ### Features + - Support for a new API "GetMFADevice" to present MFA device metadata such as device certifications + +## __Amazon Connect Service__ + - ### Features + - This release provides a way to search for existing tags within an instance. Before tagging a resource, ensure consistency by searching for pre-existing key:value pairs. + +## __Amazon GuardDuty__ + - ### Features + - Add support for user.extra.sessionName in Kubernetes Audit Logs Findings. + +## __Amazon Pinpoint__ + - ### Features + - Added time zone estimation support for journeys + +# __2.20.92__ __2023-06-23__ +## __Amazon DevOps Guru__ + - ### Features + - This release adds support for encryption via customer managed keys. + +## __Amazon FSx__ + - ### Features + - Update to Amazon FSx documentation. + +## __Amazon Relational Database Service__ + - ### Features + - Documentation improvements for create, describe, and modify DB clusters and DB instances. + +## __Amazon Verified Permissions__ + - ### Features + - Added improved descriptions and new code samples to SDK documentation. + +# __2.20.91__ __2023-06-22__ +## __AWS Step Functions__ + - ### Features + - Adds support for Versions and Aliases. Adds 8 operations: PublishStateMachineVersion, DeleteStateMachineVersion, ListStateMachineVersions, CreateStateMachineAlias, DescribeStateMachineAlias, UpdateStateMachineAlias, DeleteStateMachineAlias, ListStateMachineAliases + +## __AWSKendraFrontendService__ + - ### Features + - Introducing Amazon Kendra Retrieve API that can be used to retrieve relevant passages or text excerpts given an input query. + +## __Amazon Chime SDK Identity__ + - ### Features + - AppInstanceBots can be configured to be invoked or not using the Target or the CHIME.mentions attribute for ChannelMessages + +## __Amazon Chime SDK Messaging__ + - ### Features + - ChannelMessages can be made visible to sender and intended recipient rather than all channel members with the target attribute. For example, a user can send messages to a bot and receive messages back in a group channel without other members seeing them. + +## __Maven config__ + - ### Bugfixes + - Fix the scm.url in the maven project + - Contributed by: [@jensim](https://github.com/jensim) + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@jensim](https://github.com/jensim) +# __2.20.90__ __2023-06-21__ +## __AWS Elemental MediaConvert__ + - ### Features + - This release introduces the bandwidth reduction filter for the HEVC encoder, increases the limits of outputs per job, and updates support for the Nagra SDK to version 1.14.7. + +## __AWS Transfer Family__ + - ### Features + - This release adds a new parameter StructuredLogDestinations to CreateServer, UpdateServer APIs. + +## __Amazon DynamoDB__ + - ### Features + - Documentation updates for DynamoDB + +## __Amazon EMR__ + - ### Features + - This release introduces a new Amazon EMR EPI called ListSupportedInstanceTypes that returns a list of all instance types supported by a given EMR release. + +## __Amazon SageMaker Service__ + - ### Features + - This release provides support in SageMaker for output files in training jobs to be uploaded without compression and enable customer to deploy uncompressed model from S3 to real-time inference Endpoints. In addition, ml.trn1n.32xlarge is added to supported instance type list in training job. + +## __AmazonMQ__ + - ### Features + - The Cross Region Disaster Recovery feature allows to replicate a brokers state from one region to another in order to provide customers with multi-region resiliency in the event of a regional outage. + +## __Inspector2__ + - ### Features + - This release adds support for Software Bill of Materials (SBOM) export and the general availability of code scanning for AWS Lambda functions. + +# __2.20.89__ __2023-06-20__ +## __AWS Config__ + - ### Features + - Updated ResourceType enum with new resource types onboarded by AWS Config in May 2023. + +## __AWS Lambda__ + - ### Features + - This release adds RecursiveInvocationException to the Invoke API and InvokeWithResponseStream API. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Appflow__ + - ### Features + - This release adds new API to reset connector metadata cache + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for targeting Dedicated Host allocations by assetIds in AWS Outposts + +## __Amazon Redshift__ + - ### Features + - Added support for custom domain names for Redshift Provisioned clusters. This feature enables customers to create a custom domain name and use ACM to generate fully secure connections to it. + +# __2.20.88__ __2023-06-19__ +## __AWS CloudFormation__ + - ### Features + - Specify desired CloudFormation behavior in the event of ChangeSet execution failure using the CreateChangeSet OnStackFailure parameter + +## __AWS Glue__ + - ### Features + - This release adds support for creating cross region table/database resource links + +## __AWS Price List Service__ + - ### Features + - This release updates the PriceListArn regex pattern. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - `WaiterExecutor` recursive implementation changed to iterative + - Contributed by: [@flittev](https://github.com/flittev) + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation only update to address various tickets. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - API changes to AWS Verified Access to include data from trust providers in logs + +## __Amazon Route 53 Domains__ + - ### Features + - Update MaxItems upper bound to 1000 for ListPricesRequest + +## __Amazon SageMaker Service__ + - ### Features + - Amazon Sagemaker Autopilot releases CreateAutoMLJobV2 and DescribeAutoMLJobV2 for Autopilot customers with ImageClassification, TextClassification and Tabular problem type config support. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@flittev](https://github.com/flittev) +# __2.20.87__ __2023-06-16__ +## __AWS Account__ + - ### Features + - Improve pagination support for ListRegions + +## __AWS Application Discovery Service__ + - ### Features + - Add Amazon EC2 instance recommendations export + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __Amazon Connect Service__ + - ### Features + - Updates the *InstanceStorageConfig APIs to support a new ResourceType: SCREEN_RECORDINGS to enable screen recording and specify the storage configurations for publishing the recordings. Also updates DescribeInstance and ListInstances APIs to include InstanceAccessUrl attribute in the API response. + +## __Amazon DynamoDB__ + - ### Bugfixes + - Created static method EnumAttributeConverter::createWithNameAsKeys which creates a converter based on the Enum::name method to identify enums, rather than Enum::toString. This is preferable because Enum::name is final and cannot be overwritten, as opposed to Enum::toString. EnumAttributeConverter::create is kept as it is, for backward compatibility. + - Contributed by: [@martinKindall](https://github.com/martinKindall) + +## __Amazon Simple Storage Service__ + - ### Features + - This release adds SDK support for request-payer request header and request-charged response header in the "GetBucketAccelerateConfiguration", "ListMultipartUploads", "ListObjects", "ListObjectsV2" and "ListObjectVersions" S3 APIs. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@martinKindall](https://github.com/martinKindall) +# __2.20.86__ __2023-06-15__ +## __AWS Audit Manager__ + - ### Features + - This release introduces 2 Audit Manager features: CSV exports and new manual evidence options. You can now export your evidence finder results in CSV format. In addition, you can now add manual evidence to a control by entering free-form text or uploading a file from your browser. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon DynamoDB Enhanced__ + - ### Bugfixes + - Thanks to this bugfix it'll be possible to create DynamoDB table containing + secondary indices when using no arugments `createTable` method from `DefaultDynamoDbTable` + class. Information about their presence might be expressed using annotations, but it was ignored + and created tables didn't contain specified indices. Plase note that it is still not possible + to specify projections for indices using annotations. By default, all fields will be projected. + - Contributed by: [@breader124](https://github.com/breader124) + +## __Amazon Elastic File System__ + - ### Features + - Documentation updates for EFS. + +## __Amazon GuardDuty__ + - ### Features + - Updated descriptions for some APIs. + +## __Amazon Location Service__ + - ### Features + - Amazon Location Service adds categories to places, including filtering on those categories in searches. Also, you can now add metadata properties to your geofences. + +## __DynamoDB Enhanced Client__ + - ### Features + - Add EnhancedType parameters to static builder methods of StaticTableSchema and StaticImmitableTableSchema + - Contributed by: [@bmaizels](https://github.com/bmaizels) + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@bmaizels](https://github.com/bmaizels), [@breader124](https://github.com/breader124) +# __2.20.85__ __2023-06-13__ +## __AWS CloudTrail__ + - ### Features + - This feature allows users to view dashboards for CloudTrail Lake event data stores. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - Add support for Security Hub Automation Rules + +## __AWS SimSpace Weaver__ + - ### Features + - This release fixes using aws-us-gov ARNs in API calls and adds documentation for snapshot APIs. + +## __AWS WAFV2__ + - ### Features + - You can now detect and block fraudulent account creation attempts with the new AWS WAF Fraud Control account creation fraud prevention (ACFP) managed rule group AWSManagedRulesACFPRuleSet. + +## __AWS Well-Architected Tool__ + - ### Features + - AWS Well-Architected now supports Profiles that help customers prioritize which questions to focus on first by providing a list of prioritized questions that are better aligned with their business goals and outcomes. + +## __Amazon CodeGuru Security__ + - ### Features + - Initial release of Amazon CodeGuru Security APIs + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release introduces a new feature, EC2 Instance Connect Endpoint, that enables you to connect to a resource over TCP, without requiring the resource to have a public IPv4 address. + +## __Amazon Lightsail__ + - ### Features + - This release adds pagination for the Get Certificates API operation. + +## __Amazon Simple Storage Service__ + - ### Features + - Integrate double encryption feature to SDKs. + +## __Amazon Verified Permissions__ + - ### Features + - GA release of Amazon Verified Permissions. + +## __EC2 Image Builder__ + - ### Features + - Change the Image Builder ImagePipeline dateNextRun field to more accurately describe the data. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Added APIs to support network replication and recovery using AWS Elastic Disaster Recovery. + +# __2.20.84__ __2023-06-12__ +## __AWS Amplify UI Builder__ + - ### Features + - AWS Amplify UIBuilder is launching Codegen UI, a new feature that enables you to generate your amplify uibuilder components and forms. + +## __AWS SDK for Java v2__ + - ### Features + - Add "unsafe" and "fromRemaining" AsyncRequestBody constructors for byte arrays and ByteBuffers + - Contributed by: [@StephenFlavin](https://github.com/StephenFlavin) + - Updated endpoint and partition metadata. + - `IdleConnectionReaper` now does not prevent `HttpClientConnectionManager` from getting GC'd in the case where an SDK client is created per request and not closed. + +## __Amazon DynamoDB__ + - ### Features + - Documentation updates for DynamoDB + +## __Amazon DynamoDB Streams__ + - ### Features + - Documentation updates for DynamoDB Streams + +## __Amazon FSx__ + - ### Features + - Amazon FSx for NetApp ONTAP now supports joining a storage virtual machine (SVM) to Active Directory after the SVM has been created. + +## __Amazon OpenSearch Service__ + - ### Features + - This release adds support for SkipUnavailable connection property for cross cluster search + +## __Amazon Rekognition__ + - ### Features + - This release adds support for improved accuracy with user vector in Amazon Rekognition Face Search. Adds new APIs: AssociateFaces, CreateUser, DeleteUser, DisassociateFaces, ListUsers, SearchUsers, SearchUsersByImage. Also adds new face metadata that can be stored: user vector. + +## __Amazon SageMaker Service__ + - ### Features + - Sagemaker Neo now supports compilation for inferentia2 (ML_INF2) and Trainium1 (ML_TRN1) as available targets. With these devices, you can run your workloads at highest performance with lowest cost. inferentia2 (ML_INF2) is available in CMH and Trainium1 (ML_TRN1) is available in IAD currently + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@StephenFlavin](https://github.com/StephenFlavin) +# __2.20.83__ __2023-06-09__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - Document-only update to refresh CLI documentation for AWS Private CA. No change to the service. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed issue with leased connection leaks when threads executing HTTP connections with Apache HttpClient were interrupted while the connection was in progress. + +## __Amazon Connect Service__ + - ### Features + - This release adds search APIs for Prompts, Quick Connects and Hours of Operations, which can be used to search for those resources within a Connect Instance. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - By default, Netty threads are blocked during dns resolution, namely InetAddress.getByName is used under the hood. Now, there's an option to configure the NettyNioAsyncHttpClient in order to use a non blocking dns resolution strategy. + - Contributed by: [@martinKindall](https://github.com/martinKindall) + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@martinKindall](https://github.com/martinKindall) +# __2.20.82__ __2023-06-08__ +## __AWS Comprehend Medical__ + - ### Features + - This release supports a new set of entities and traits. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS STS__ + - ### Features + - Updates the core STS credential provider logic to return AwsSessionCredentials instead of an STS-specific class, and adds expirationTime to AwsSessionCredentials + +## __AWS Service Catalog__ + - ### Features + - New parameter added in ServiceCatalog DescribeProvisioningArtifact api - IncludeProvisioningArtifactParameters. This parameter can be used to return information about the parameters used to provision the product + +## __Amazon Athena__ + - ### Features + - You can now define custom spark properties at start of the session for use cases like cluster encryption, table formats, and general Spark tuning. + +## __Amazon Timestream Write__ + - ### Features + - This release adds the capability for customers to define how their data should be partitioned, optimizing for certain access patterns. This definition will take place as a part of the table creation. + +## __Payment Cryptography Control Plane__ + - ### Features + - Initial release of AWS Payment Cryptography Control Plane service for creating and managing cryptographic keys used during card payment processing. + +## __Payment Cryptography Data Plane__ + - ### Features + - Initial release of AWS Payment Cryptography DataPlane Plane service for performing cryptographic operations typically used during card payment processing. + +# __2.20.81__ __2023-06-07__ +## __AWS CloudFormation__ + - ### Features + - AWS CloudFormation StackSets is updating the deployment experience for all stackset operations to skip suspended AWS accounts during deployments. StackSets will skip target AWS accounts that are suspended and set the Detailed Status of the corresponding stack instances as SKIPPED_SUSPENDED_ACCOUNT + +## __AWS Direct Connect__ + - ### Features + - This update corrects the jumbo frames mtu values from 9100 to 8500 for transit virtual interfaces. + +## __AWS IoT Core Device Advisor__ + - ### Features + - AWS IoT Core Device Advisor now supports new Qualification Suite test case list. With this update, customers can more easily create new qualification test suite with an empty rootGroup input. + +## __Amazon CloudWatch Logs__ + - ### Features + - This change adds support for account level data protection policies using 3 new APIs, PutAccountPolicy, DeleteAccountPolicy and DescribeAccountPolicy. DescribeLogGroup API has been modified to indicate if account level policy is applied to the LogGroup via "inheritedProperties" list in the response. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release introduces event stream related APIs. + +## __Amazon EMR Containers__ + - ### Features + - EMR on EKS adds support for log rotation of Spark container logs with EMR-6.11.0 onwards, to the StartJobRun API. + +# __2.20.80__ __2023-06-06__ +## __AWS Identity and Access Management__ + - ### Features + - This release updates the AccountAlias regex pattern with the same length restrictions enforced by the length constraint. + +## __AWS IoT__ + - ### Features + - Adding IoT Device Management Software Package Catalog APIs to register, store, and report system software packages, along with their versions and metadata in a centralized location. + +## __AWS IoT Data Plane__ + - ### Features + - Update thing shadow name regex to allow '$' character + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Signer__ + - ### Features + - AWS Signer is launching Container Image Signing, a new feature that enables you to sign and verify container images. This feature enables you to validate that only container images you approve are used in your enterprise. + +## __Amazon Connect Service__ + - ### Features + - GetMetricDataV2 API is now available in AWS GovCloud(US) region. + +## __Amazon EMR__ + - ### Features + - This release provides customers the ability to specify an allocation strategies amongst PRICE_CAPACITY_OPTIMIZED, CAPACITY_OPTIMIZED, LOWEST_PRICE, DIVERSIFIED for Spot instances in Instance Feet cluster. This enables customers to choose an allocation strategy best suited for their workload. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release adds support for Lex Developers to create test sets and to execute those test-sets against their bots. + +## __Amazon QuickSight__ + - ### Features + - QuickSight support for pivot table field collapse state, radar chart range scale and multiple scope options in conditional formatting. + +## __Amazon Simple Queue Service__ + - ### Features + - Amazon SQS adds three new APIs - StartMessageMoveTask, CancelMessageMoveTask, and ListMessageMoveTasks to automate redriving messages from dead-letter queues to source queues or a custom destination. + +## __Inspector2__ + - ### Features + - Adds new response properties and request parameters for 'last scanned at' on the ListCoverage operation. This feature allows you to search and view the date of which your resources were last scanned by Inspector. + +# __2.20.79__ __2023-06-05__ +## __AWS CloudFormation__ + - ### Features + - AWS CloudFormation StackSets provides customers with three new APIs to activate, deactivate, and describe AWS Organizations trusted access which is needed to get started with service-managed StackSets. + +## __AWS Key Management Service__ + - ### Features + - This release includes feature to import customer's asymmetric (RSA and ECC) and HMAC keys into KMS. It also includes feature to allow customers to specify number of days to schedule a KMS key deletion as a policy condition key. + +## __AWS Lambda__ + - ### Features + - Add Ruby 3.2 (ruby3.2) Runtime support to AWS Lambda. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Upgrading AWS CRT dependency to v0.21.17. This version contains minor fixes and updates + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Making InstanceTagAttribute as the required parameter for the DeregisterInstanceEventNotificationAttributes and RegisterInstanceEventNotificationAttributes APIs. + +## __Amazon Fraud Detector__ + - ### Features + - Added new variable types, new DateTime data type, and new rules engine functions for interacting and working with DateTime data types. + +## __Amazon Keyspaces__ + - ### Features + - This release adds support for MRR GA launch, and includes multiregion support in create-keyspace, get-keyspace, and list-keyspace. + +## __AmazonMWAA__ + - ### Features + - This release adds ROLLING_BACK and CREATING_SNAPSHOT environment statuses for Amazon MWAA environments. + +## __FinSpace User Environment Management service__ + - ### Features + - Releasing new Managed kdb Insights APIs + +# __2.20.78__ __2023-06-02__ +## __AWS CloudTrail__ + - ### Features + - This feature allows users to start and stop event ingestion on a CloudTrail Lake event data store. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - Added APIs to describe managed products. The APIs retrieve information about rule groups that are managed by AWS and by AWS Marketplace sellers. + +## __Amazon Athena__ + - ### Features + - This release introduces the DeleteCapacityReservation API and the ability to manage capacity reservations using CloudFormation + +## __Amazon SageMaker Service__ + - ### Features + - This release adds Selective Execution feature that allows SageMaker Pipelines users to run selected steps in a pipeline. + +# __2.20.77__ __2023-06-01__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - Corrected the information for the header order FieldToMatch setting + +## __Alexa For Business__ + - ### Features + - Alexa for Business has been deprecated and is no longer supported. + +## __Amazon Appflow__ + - ### Features + - Added ability to select DataTransferApiType for DescribeConnector and CreateFlow requests when using Async supported connectors. Added supportedDataTransferType to DescribeConnector/DescribeConnectors/ListConnector response. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release introduces calculated attribute related APIs. + +## __Amazon Interactive Video Service__ + - ### Features + - API Update for IVS Advanced Channel type + +## __Amazon SageMaker Service__ + - ### Features + - Amazon Sagemaker Autopilot adds support for Parquet file input to NLP text classification jobs. + +# __2.20.76__ __2023-05-31__ +## __AWS Config__ + - ### Features + - Resource Types Exclusion feature launch by AWS Config + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix an issue where the optimal number of parts calculated could be higher than 10,000 + +## __AWS Service Catalog__ + - ### Features + - Documentation updates for ServiceCatalog. + +## __AWSMainframeModernization__ + - ### Features + - Adds an optional create-only 'roleArn' property to Application resources. Enables PS and PO data set org types. + +## __Amazon Fraud Detector__ + - ### Features + - This release enables publishing event predictions from Amazon Fraud Detector (AFD) to Amazon EventBridge. For example, after getting predictions from AFD, Amazon EventBridge rules can be configured to trigger notification through an SNS topic, send a message with SES, or trigger Lambda workflows. + +## __Amazon HealthLake__ + - ### Features + - This release adds a new request parameter to the CreateFHIRDatastore API operation. IdentityProviderConfiguration specifies how you want to authenticate incoming requests to your Healthlake Data Store. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for changing the engine for Oracle using the ModifyDbInstance API + +## __Amazon WorkSpaces Web__ + - ### Features + - WorkSpaces Web now allows you to control which IP addresses your WorkSpaces Web portal may be accessed from. + +# __2.20.75__ __2023-05-30__ +## __AWS Glue__ + - ### Features + - Added Runtime parameter to allow selection of Ray Runtime + +## __AWS Ground Station__ + - ### Features + - Updating description of GetMinuteUsage to be clearer. + +## __AWS IoT FleetWise__ + - ### Features + - Campaigns now support selecting Timestream or S3 as the data destination, Signal catalogs now support "Deprecation" keyword released in VSS v2.1 and "Comment" keyword released in VSS v3.0 + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - Added new resource detail objects to ASFF, including resources for AwsGuardDutyDetector, AwsAmazonMqBroker, AwsEventSchemasRegistry, AwsAppSyncGraphQlApi and AwsStepFunctionStateMachine. + +## __AWS WAFV2__ + - ### Features + - This SDK release provides customers the ability to use Header Order as a field to match. + +## __Amazon Chime SDK Voice__ + - ### Features + - Added optional CallLeg field to StartSpeakerSearchTask API request + +## __Amazon Location Service__ + - ### Features + - This release adds API support for political views for the maps service APIs: CreateMap, UpdateMap, DescribeMap. + +## __Amazon MemoryDB__ + - ### Features + - Amazon MemoryDB for Redis now supports AWS Identity and Access Management authentication access to Redis clusters starting with redis-engine version 7.0 + +## __Amazon Personalize__ + - ### Features + - This release provides support for the exclusion of certain columns for training when creating a solution and creating or updating a recommender with Amazon Personalize. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds 2 new voices - Sofie (da-DK) and Niamh (en-IE) + +## __Amazon Security Lake__ + - ### Features + - Log sources are now versioned. AWS log sources and custom sources will now come with a version identifier that enables producers to vend multiple schema versions to subscribers. Security Lake API have been refactored to more closely align with AWS API conventions. + +# __2.20.74__ __2023-05-26__ +## __AWS IoT Wireless__ + - ### Features + - Add Multicast Group support in Network Analyzer Configuration. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - Documentation update for a new Initiation Method value in DescribeContact API + +## __Amazon SageMaker Service__ + - ### Features + - Added ml.p4d and ml.inf1 as supported instance type families for SageMaker Notebook Instances. + +# __2.20.73__ __2023-05-25__ +## __AWS CodePipeline__ + - ### Features + - Add PollingDisabledAt time information in PipelineMetadata object of GetPipeline API. + +## __AWS Glue__ + - ### Features + - Added ability to create data quality rulesets for shared, cross-account Glue Data Catalog tables. Added support for dataset comparison rules through a new parameter called AdditionalDataSources. Enhanced the data quality results with a map containing profiled metric values. + +## __AWS Migration Hub Refactor Spaces__ + - ### Features + - This SDK update allows for path parameter syntax to be passed to the CreateRoute API. Path parameter syntax require parameters to be enclosed in {} characters. This update also includes a new AppendSourcePath field which lets users forward the source path to the Service URL endpoint. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon GameLift__ + - ### Features + - GameLift FleetIQ users can now filter game server claim requests to exclude servers on instances that are draining. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Automatic Model Tuning now supports enabling Autotune for tuning jobs which can choose tuning job configurations. + +## __Application Auto Scaling__ + - ### Features + - With this release, ElastiCache customers will be able to use predefined metricType "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage" for their ElastiCache instances. + +# __2.20.72__ __2023-05-24__ +## __AWS AppSync__ + - ### Features + - This release introduces AppSync Merged APIs, which provide the ability to compose multiple source APIs into a single federated/merged API. + +## __AWS Cost and Usage Report Service__ + - ### Features + - Add support for split cost allocation data on a report. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect Evaluation Capabilities: validation improvements + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker now provides an instantaneous deployment recommendation through the DescribeModel API + +# __2.20.71__ __2023-05-23__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon SageMaker Service__ + - ### Features + - Added ModelNameEquals, ModelPackageVersionArnEquals in request and ModelName, SamplePayloadUrl, ModelPackageVersionArn in response of ListInferenceRecommendationsJobs API. Added Invocation timestamps in response of DescribeInferenceRecommendationsJob API & ListInferenceRecommendationsJobSteps API. + +## __Amazon Translate__ + - ### Features + - Added support for calling TranslateDocument API. + +## __Firewall Management Service__ + - ### Features + - Fixes issue that could cause calls to GetAdminScope and ListAdminAccountsForOrganization to return a 500 Internal Server error. + +# __2.20.70__ __2023-05-22__ +## __AWS Backup__ + - ### Features + - Added support for tags on restore. + +## __AWS SDK for Java v2__ + - ### Features + - Add client configuration overriding of SCHEDULED_EXECUTOR_SERVICE option + - Contributed by: [@scrocquesel](https://github.com/scrocquesel) + - This commit adds a new ErrorType core metric that is recorded for all failed API call attempts. The ErrorType records the general category of error that ocurred for a failed API call attempt. Those categories are: + + - Throttling errors + - Service errors other than throttling + - I/O errors + - API call or API call attempt timeouts + + The intent of this metric is to help locate possible issues at a glance and help direct further debugging or investigation. + +## __Amazon Pinpoint__ + - ### Features + - Amazon Pinpoint is deprecating the tags parameter in the UpdateSegment, UpdateCampaign, UpdateEmailTemplate, UpdateSmsTemplate, UpdatePushTemplate, UpdateInAppTemplate and UpdateVoiceTemplate. Amazon Pinpoint will end support tags parameter by May 22, 2023. + +## __Amazon QuickSight__ + - ### Features + - Add support for Asset Bundle, Geospatial Heatmaps. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@scrocquesel](https://github.com/scrocquesel) +# __2.20.69__ __2023-05-19__ +## __AWS Backup__ + - ### Features + - Add ResourceArn, ResourceType, and BackupVaultName to ListRecoveryPointsByLegalHold API response. + +## __AWS Elemental MediaPackage v2__ + - ### Features + - Adds support for the MediaPackage Live v2 API + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Cases__ + - ### Features + - This release adds the ability to create fields with type Url through the CreateField API. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html + +## __Amazon Simple Email Service__ + - ### Features + - This release allows customers to update scaling mode property of dedicated IP pools with PutDedicatedIpPoolScalingAttributes call. + +# __2.20.68__ __2023-05-18__ +## __AWS CloudTrail__ + - ### Features + - Add ConflictException to PutEventSelectors, add (Channel/EDS)ARNInvalidException to Tag APIs. These exceptions provide customers with more specific error messages instead of internal errors. + +## __AWS Compute Optimizer__ + - ### Features + - In this launch, we add support for showing integration status with external metric providers such as Instana, Datadog ...etc in GetEC2InstanceRecommendations and ExportEC2InstanceRecommendations apis + +## __AWS Elemental MediaConvert__ + - ### Features + - This release introduces a new MXF Profile for XDCAM which is strictly compliant with the SMPTE RDD 9 standard and improved handling of output name modifiers. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - This update fixes an issue where CompletableFutures are leaked/never completed when the submission to the FUTURE_COMPLETE_EXECUTOR is rejected. + + By default, the SDK uses `2 * number of cores` (with a maximum of 64), and uses bounded queue of size 1000. In cases where the throughput to the client exceeds the executor's ability to keep up, it would reject executions. Before this change this would lead to leaked futures. + +## __AWS Security Token Service__ + - ### Features + - API updates for the AWS Security Token Service + +## __Amazon Athena__ + - ### Features + - Removing SparkProperties from EngineConfiguration object for StartSession API call + +## __Amazon Connect Service__ + - ### Features + - You can programmatically create and manage prompts using APIs, for example, to extract prompts stored within Amazon Connect and add them to your Amazon S3 bucket. AWS CloudTrail, AWS CloudFormation and tagging are supported. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation only release to address various tickets. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add support for i4g.large, i4g.xlarge, i4g.2xlarge, i4g.4xlarge, i4g.8xlarge and i4g.16xlarge instances powered by AWS Graviton2 processors that deliver up to 15% better compute performance than our other storage-optimized instances. + +## __Amazon Relational Database Service__ + - ### Features + - RDS documentation update for the EngineVersion parameter of ModifyDBSnapshot + +## __Amazon SageMaker geospatial capabilities__ + - ### Features + - This release makes ExecutionRoleArn a required field in the StartEarthObservationJob API. + +## __S3 Transfer Manager__ + - ### Bugfixes + - Fixed the issue where S3 Transfer Manager attempted to load AWS CRT classes when Java based S3 client was used. See [#3936](https://github.com/aws/aws-sdk-java-v2/issues/3936). + +# __2.20.67__ __2023-05-16__ +## __AWS Direct Connect__ + - ### Features + - This release includes an update to the mtu value for CreateTransitVirtualInterface from 9001 mtu to 8500 mtu. + +## __AWS Glue__ + - ### Features + - Add Support for Tags for Custom Entity Types + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Documentations + - Fix javadoc warnings in the sdk-core package. + - Contributed by: [@sugmanue](https://github.com/sugmanue) + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __AWS WAFV2__ + - ### Features + - My AWS Service (placeholder) - You can now rate limit web requests based on aggregation keys other than IP addresses, and you can aggregate using combinations of keys. You can also rate limit all requests that match a scope-down statement, without further aggregation. + +## __Amazon Detective__ + - ### Features + - Added and updated API operations in Detective to support the integration of ASFF Security Hub findings. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@sugmanue](https://github.com/sugmanue) +# __2.20.66__ __2023-05-15__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Transfer Family__ + - ### Features + - This release introduces the ability to require both password and SSH key when users authenticate to your Transfer Family servers that use the SFTP protocol. + +## __Amazon Athena__ + - ### Features + - You can now define custom spark properties at start of the session for use cases like cluster encryption, table formats, and general Spark tuning. + +## __Amazon CodeCatalyst__ + - ### Features + - With this release, the users can list the active sessions connected to their Dev Environment on AWS CodeCatalyst + +## __Amazon Rekognition__ + - ### Features + - This release adds a new EyeDirection attribute in Amazon Rekognition DetectFaces and IndexFaces APIs which predicts the yaw and pitch angles of a person's eye gaze direction for each face detected in the image. + +## __IAM Roles Anywhere__ + - ### Features + - Adds support for custom notification settings in a trust anchor. Introduces PutNotificationSettings and ResetNotificationSettings API's. Updates DurationSeconds max value to 3600. + +## __Managed Streaming for Kafka__ + - ### Features + - Added a fix to make clusterarn a required field in ListClientVpcConnections and RejectClientVpcConnection APIs + +# __2.20.65__ __2023-05-11__ +## __AWS Health APIs and Notifications__ + - ### Features + - Add support for regional endpoints + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Support__ + - ### Features + - This release adds 2 new Support APIs, DescribeCreateCaseOptions and DescribeSupportedLanguages. You can use these new APIs to get available support languages. + +## __Amazon Connect Service__ + - ### Features + - This release updates GetMetricDataV2 API, to support metric data up-to last 35 days + +## __Amazon ElastiCache__ + - ### Features + - Added support to modify the cluster mode configuration for the existing ElastiCache ReplicationGroups. Customers can now modify the configuration from cluster mode disabled to cluster mode enabled. + +## __Amazon Elasticsearch Service__ + - ### Features + - This release fixes DescribePackages API error with null filter value parameter. + +## __Amazon Interactive Video Service RealTime__ + - ### Features + - Add methods for inspecting and debugging stages: ListStageSessions, GetStageSession, ListParticipants, GetParticipant, and ListParticipantEvents. + +## __Amazon Omics__ + - ### Features + - This release provides support for Ready2Run and GPU workflows, an improved read set filter, the direct upload of read sets into Omics Storage, and annotation parsing for analytics stores. + +## __Amazon OpenSearch Service__ + - ### Features + - This release fixes DescribePackages API error with null filter value parameter. + +## __Amazon Route 53 Resolver__ + - ### Features + - Update FIPS endpoints for GovCloud (US) regions in SDK. + +# __2.20.64__ __2023-05-10__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - STS was being skipped in the default credential provider chain when using native builds in java. Now a proper reflect-config.json file was added to include sts. + - Contributed by: [@martinKindall](https://github.com/martinKindall) + +## __Amazon EMR__ + - ### Features + - EMR Studio now supports programmatically executing a Notebooks on an EMR on EKS cluster. In addition, notebooks can now be executed by specifying its location in S3. + +## __Amazon Relational Database Service__ + - ### Features + - Amazon Relational Database Service (RDS) updates for the new Aurora I/O-Optimized storage type for Amazon Aurora DB clusters + +## __Amazon Simple Workflow Service__ + - ### Features + - This release adds a new API parameter to exclude old history events from decision tasks. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@martinKindall](https://github.com/martinKindall) +# __2.20.63__ __2023-05-09__ +## __AWS Glue__ + - ### Features + - This release adds AmazonRedshift Source and Target nodes in addition to DynamicTransform OutputSchemas + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon SageMaker Service__ + - ### Features + - This release includes support for (1) Provisioned Concurrency for Amazon SageMaker Serverless Inference and (2) UpdateEndpointWeightsAndCapacities API for Serverless endpoints. + +## __Application Auto Scaling__ + - ### Features + - With this release, Amazon SageMaker Serverless Inference customers can use Application Auto Scaling to auto scale the provisioned concurrency of their serverless endpoints. + +# __2.20.62__ __2023-05-08__ +## __AWS Glue__ + - ### Features + - Support large worker types G.4x and G.8x for Glue Spark. + +## __AWS IoT SiteWise__ + - ### Features + - Provide support for 20,000 max results for GetAssetPropertyValueHistory/BatchGetAssetPropertyValueHistory and 15 minute aggregate resolution for GetAssetPropertyAggregates/BatchGetAssetPropertyAggregates + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SDK for Java v2, AWS STS__ + - ### Features + - Respect async credentials update flag from DefaultCredentialsProvider for WebIdentityTokenFileCredentialProvider, potentially avoiding latency spikes on credentials expiration + - Contributed by: [@paulolieuthier](https://github.com/paulolieuthier) + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for AWS Security Token Service. + +## __Amazon GuardDuty__ + - ### Features + - Add AccessDeniedException 403 Error message code to support 3 Tagging related APIs + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@paulolieuthier](https://github.com/paulolieuthier) +# __2.20.61__ __2023-05-05__ +## __AWS MediaTailor__ + - ### Features + - This release adds support for AFTER_LIVE_EDGE mode configuration for avail suppression, and adding a fill-policy setting that sets the avail suppression to PARTIAL_AVAIL or FULL_AVAIL_ONLY when AFTER_LIVE_EDGE is enabled. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support the inf2 and trn1n instances. inf2 instances are purpose built for deep learning inference while trn1n instances are powered by AWS Trainium accelerators and they build on the capabilities of Trainium-powered trn1 instances. + +## __Amazon Simple Queue Service__ + - ### Features + - Revert previous SQS protocol change. + +## __Inspector2__ + - ### Features + - Amazon Inspector now allows customers to search its vulnerability intelligence database if any of the Inspector scanning types are activated. + +# __2.20.60__ __2023-05-04__ +## __AWS Config__ + - ### Features + - Updated ResourceType enum with new resource types onboarded by AWS Config in April 2023. + +## __AWS Network Firewall__ + - ### Features + - This release adds support for the Suricata REJECT option in midstream exception configurations. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Avoids NullPointerException when config and credentials files were not found for profiles. Now it returns an empty map, as it used to. + - Contributed by: [@martinKindall](https://github.com/martinKindall) + +## __AWS SecurityHub__ + - ### Features + - Add support for Finding History. + +## __Amazon CloudWatch__ + - ### Features + - Adds support for filtering by metric names in CloudWatch Metric Streams. + +## __Amazon Connect Service__ + - ### Features + - Remove unused InvalidParameterException from CreateParticipant API + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation update for new error type NamespaceNotFoundException for CreateCluster and UpdateCluster + +## __Amazon OpenSearch Service__ + - ### Features + - DescribeDomainNodes: A new API that provides configuration information for nodes part of the domain + +## __Amazon QuickSight__ + - ### Features + - Add support for Topic, Dataset parameters and VPC + +## __Amazon Rekognition__ + - ### Features + - This release adds a new attribute FaceOccluded. Additionally, you can now select attributes individually (e.g. ["DEFAULT", "FACE_OCCLUDED", "AGE_RANGE"] instead of ["ALL"]), which can reduce response time. + +## __Amazon SageMaker Service__ + - ### Features + - We added support for ml.inf2 and ml.trn1 family of instances on Amazon SageMaker for deploying machine learning (ML) models for Real-time and Asynchronous inference. You can use these instances to achieve high performance at a low cost for generative artificial intelligence (AI) models. + +## __Amazon Simple Queue Service__ + - ### Features + - This release enables customers to call SQS using AWS JSON-1.0 protocol. + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation updates for Amazon S3 + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@martinKindall](https://github.com/martinKindall) +# __2.20.59__ __2023-05-03__ +## __AWS AppSync__ + - ### Features + - Private API support for AWS AppSync. With Private APIs, you can now create GraphQL APIs that can only be accessed from your Amazon Virtual Private Cloud ("VPC"). + +## __AWS IoT TwinMaker__ + - ### Features + - This release adds a field for GetScene API to return error code and message from dependency services. + +## __AWS Network Firewall__ + - ### Features + - AWS Network Firewall now supports policy level HOME_NET variable overrides. + +## __AWS Well-Architected Tool__ + - ### Features + - This release deepens integration with AWS Service Catalog AppRegistry to improve workload resource discovery. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds an SDK paginator for GetNetworkInsightsAccessScopeAnalysisFindings + +## __Amazon OpenSearch Service__ + - ### Features + - Amazon OpenSearch Service adds the option to deploy a domain across multiple Availability Zones, with each AZ containing a complete copy of data and with nodes in one AZ acting as a standby. This option provides 99.99% availability and consistent performance in the event of infrastructure failure. + +## __Inspector2__ + - ### Features + - This feature provides deep inspection for linux based instance + +# __2.20.58__ __2023-05-02__ +## __AWS Resilience Hub__ + - ### Features + - This release will improve resource level transparency in applications by discovering previously hidden resources. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWSKendraFrontendService__ + - ### Features + - AWS Kendra now supports configuring document fields/attributes via the GetQuerySuggestions API. You can now base query suggestions on the contents of document fields. + +## __Amazon Appflow__ + - ### Features + - This release adds new API to cancel flow executions. + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect Service Rules API update: Added OnContactEvaluationSubmit event source to support user configuring evaluation form rules. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation only update to address Amazon ECS tickets. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon Sagemaker Autopilot supports training models with sample weights and additional objective metrics. + +# __2.20.57__ __2023-05-01__ +## __AWS Compute Optimizer__ + - ### Features + - support for tag filtering within compute optimizer. ability to filter recommendation results by tag and tag key value pairs. ability to filter by inferred workload type added. + +## __AWS Key Management Service__ + - ### Features + - This release makes the NitroEnclave request parameter Recipient and the response field for CiphertextForRecipient available in AWS SDKs. It also adds the regex pattern for CloudHsmClusterId validation. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +# __2.20.56__ __2023-04-28__ +## __AWS Direct Connect__ + - ### Features + - This release corrects the jumbo frames MTU from 9100 to 8500. + +## __AWS IoT__ + - ### Features + - This release allows AWS IoT Core users to specify a TLS security policy when creating and updating AWS IoT Domain Configurations. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SimSpace Weaver__ + - ### Features + - Added a new CreateSnapshot API. For the StartSimulation API, SchemaS3Location is now optional, added a new SnapshotS3Location parameter. For the DescribeSimulation API, added SNAPSHOT_IN_PROGRESS simulation state, deprecated SchemaError, added new fields: StartError and SnapshotS3Location. + +## __AWS WAFV2__ + - ### Features + - You can now associate a web ACL with a Verified Access instance. + +## __Amazon Appflow__ + - ### Features + - Adds Jwt Support for Salesforce Credentials. + +## __Amazon Athena__ + - ### Features + - You can now use capacity reservations on Amazon Athena to run SQL queries on fully-managed compute capacity. + +## __Amazon Elastic File System__ + - ### Features + - This release adds PAUSED and PAUSING state as a returned value for DescribeReplicationConfigurations response. + +## __Amazon Managed Grafana__ + - ### Features + - This release adds support for the grafanaVersion parameter in CreateWorkspace. + +## __Amazon Rekognition__ + - ### Features + - Added support for aggregating moderation labels by video segment timestamps for Stored Video Content Moderation APIs and added additional information about the job to all Stored Video Get API responses. + +## __Amazon WorkSpaces__ + - ### Features + - Added Windows 11 to support Microsoft_Office_2019 + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - The fix involves implementing a null-pointer check in the NettyUtils#isConnectionResetException() method, in case the + throwable of the original cause has no message. + - Contributed by: [@martinKindall](https://github.com/martinKindall) + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@martinKindall](https://github.com/martinKindall) +# __2.20.55__ __2023-04-27__ +## __AWS IoT Core Device Advisor__ + - ### Features + - AWS IoT Core Device Advisor now supports MQTT over WebSocket. With this update, customers can run all three test suites of AWS IoT Core Device Advisor - qualification, custom, and long duration tests - using Signature Version 4 for MQTT over WebSocket. + +## __AWS Lambda__ + - ### Features + - Add Java 17 (java17) support to AWS Lambda + +## __AWS Marketplace Catalog Service__ + - ### Features + - Enabled Pagination for List Entities and List Change Sets operations + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS X-Ray__ + - ### Features + - Updated X-Ray documentation with Resource Policy API descriptions. + +## __Amazon EMR Containers__ + - ### Features + - This release adds GetManagedEndpointSessionCredentials, a new API that allows customers to generate an auth token to connect to a managed endpoint, enabling features such as self-hosted Jupyter notebooks for EMR on EKS. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for AMD SEV-SNP on EC2 instances. + +## __Amazon GuardDuty__ + - ### Features + - Added API support to initiate on-demand malware scan on specific resources. + +## __Amazon OpenSearch Ingestion__ + - ### Features + - Documentation updates for OpenSearch Ingestion + +## __Amazon QLDB__ + - ### Features + - Documentation updates for Amazon QLDB + +## __Amazon SageMaker Service__ + - ### Features + - Added ml.p4d.24xlarge and ml.p4de.24xlarge as supported instances for SageMaker Studio + +## __Managed Streaming for Kafka__ + - ### Features + - Amazon MSK has added new APIs that allows multi-VPC private connectivity and cluster policy support for Amazon MSK clusters that simplify connectivity and access between your Apache Kafka clients hosted in different VPCs and AWS accounts and your Amazon MSK clusters. + +# __2.20.54__ __2023-04-26__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Exclude static fields from the required fields validation done by the ToBuilderIsCorrect class + - Contributed by: [@sugmanue](https://github.com/sugmanue) + - Fixed bug where using profile-based credentials could cause the SDK to read the profile file with each request. + +## __Amazon OpenSearch Ingestion__ + - ### Features + - Initial release for OpenSearch Ingestion + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@sugmanue](https://github.com/sugmanue) +# __2.20.53__ __2023-04-25__ +## __AWS DataSync__ + - ### Features + - This release adds 13 new APIs to support AWS DataSync Discovery GA. + +## __AWS Directory Service__ + - ### Features + - New field added in AWS Managed Microsoft AD DescribeSettings response and regex pattern update for UpdateSettings value. Added length validation to RemoteDomainName. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Messaging__ + - ### Features + - Remove non actionable field from UpdateChannelReadMarker and DeleteChannelRequest. Add precise exceptions to DeleteChannel and DeleteStreamingConfigurations error cases. + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect, Contact Lens Evaluation API release including ability to manage forms and to submit contact evaluations. + +## __Amazon Pinpoint__ + - ### Features + - Adds support for journey runs and querying journey execution metrics based on journey runs. Adds execution metrics to campaign activities. Updates docs for Advanced Quiet Time. + +# __2.20.52__ __2023-04-24__ +## __AWS CRT HTTP Client__ + - ### Bugfixes + - Fixed an issue where connection pool metrics were not reported in the AWS CRT HTTP client. + +## __AWS Elemental MediaConvert__ + - ### Features + - This release introduces a noise reduction pre-filter, linear interpolation deinterlace mode, video pass-through, updated default job settings, and expanded LC-AAC Stereo audio bitrate ranges. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Appflow__ + - ### Features + - Increased the max length for RefreshToken and AuthCode from 2048 to 4096. + +## __Amazon CodeCatalyst__ + - ### Features + - Documentation updates for Amazon CodeCatalyst. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - API changes to AWS Verified Access related to identity providers' information. + +## __Amazon Rekognition__ + - ### Features + - Added new status result to Liveness session status. + +# __2.20.51__ __2023-04-21__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - This release adds a new API CreateParticipant. For Amazon Connect Chat, you can use this new API to customize chat flow experiences. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation update to address various Amazon ECS tickets. + +## __Firewall Management Service__ + - ### Features + - AWS Firewall Manager adds support for multiple administrators. You can now delegate more than one administrator per organization. + +# __2.20.50__ __2023-04-20__ +## __AWS IoT__ + - ### Features + - Support additional OTA states in GetOTAUpdate API + +## __AWS SDK for Java v2__ + - ### Features + - API to Add TrustAllCertificates in CRT S3 Client options for test purposes + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - You can now create encrypted API keys to use in a client application integration of the JavaScript CAPTCHA API . You can also retrieve a list of your API keys and the JavaScript application integration URL. + +## __Amazon Chime__ + - ### Features + - Adds support for Hindi and Thai languages and additional Amazon Transcribe parameters to the StartMeetingTranscription API. + +## __Amazon Chime SDK Media Pipelines__ + - ### Features + - This release adds support for specifying the recording file format in an S3 recording sink configuration. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Adds support for Hindi and Thai languages and additional Amazon Transcribe parameters to the StartMeetingTranscription API. + +## __Amazon GameLift__ + - ### Features + - Amazon GameLift supports creating Builds for Windows 2016 operating system. + +## __Amazon GuardDuty__ + - ### Features + - This release adds support for the new Lambda Protection feature. + +## __Amazon Import/Export Snowball__ + - ### Features + - Adds support for Amazon S3 compatible storage. AWS Snow Family customers can now use Amazon S3 compatible storage on Snowball Edge devices. Also adds support for V3_5S. This is a refreshed AWS Snowball Edge Storage Optimized device type with 210TB SSD (customer usable). + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Canvas adds ModelRegisterSettings support for CanvasAppSettings. + +# __2.20.49__ __2023-04-19__ +## __AWS Resource Access Manager__ + - ### Features + - This release adds support for customer managed permissions. Customer managed permissions enable customers to author and manage tailored permissions for resources shared using RAM. + +## __AWS S3 Control__ + - ### Features + - Provides support for overriding endpoint when region is "snow". This will enable bucket APIs for Amazon S3 Compatible storage on Snow Family devices. + +## __AWS SDK for Java v2__ + - ### Features + - API to Add TrustAllCertificates in CRT S3 Client options for test purposes + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __AWS SecurityHub__ + - ### Features + - Update that adds SDK code examples for Security Hub + +## __Amazon Comprehend__ + - ### Features + - This release supports native document models for custom classification, in addition to plain-text models. You train native document models using documents (PDF, Word, images) in their native format. + +## __Amazon EC2 Container Service__ + - ### Features + - This release supports the Account Setting "TagResourceAuthorization" that allows for enhanced Tagging security controls. + +## __Amazon Relational Database Service__ + - ### Features + - Adds support for the ImageId parameter of CreateCustomDBEngineVersion to RDS Custom for Oracle + +## __Amazon Simple Storage Service__ + - ### Features + - Provides support for "Snow" Storage class. + +# __2.20.48__ __2023-04-17__ +## __AWS IoT Wireless__ + - ### Features + - Supports the new feature of LoRaWAN roaming, allows to configure MaxEirp for LoRaWAN gateway, and allows to configure PingSlotPeriod for LoRaWAN multicast group + +## __AWS Lambda__ + - ### Features + - Add Python 3.10 (python3.10) support to AWS Lambda + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Appflow__ + - ### Features + - This release adds a Client Token parameter to the following AppFlow APIs: Create/Update Connector Profile, Create/Update Flow, Start Flow, Register Connector, Update Connector Registration. The Client Token parameter allows idempotent operations for these APIs. + +## __Amazon CloudWatch Internet Monitor__ + - ### Features + - This release includes a new configurable value, TrafficPercentageToMonitor, which allows users to adjust the amount of traffic monitored by percentage + +## __Amazon DynamoDB__ + - ### Features + - Documentation updates for DynamoDB API + +## __EMR Serverless__ + - ### Features + - The GetJobRun API has been updated to include the job's billed resource utilization. This utilization shows the aggregate vCPU, memory and storage that AWS has billed for the job run. The billed resources include a 1-minute minimum usage for workers, plus additional storage over 20 GB per worker. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Changed existing APIs and added new APIs to support using an account-level launch configuration template with AWS Elastic Disaster Recovery. + +# __2.20.47__ __2023-04-14__ +## __AWS Lambda__ + - ### Features + - This release adds SnapStart related exceptions to InvokeWithResponseStream API. IAM access related documentation is also added for this API. + +## __AWS Migration Hub Refactor Spaces__ + - ### Features + - Doc only update for Refactor Spaces environments without network bridge feature. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon EC2 Container Service__ + - ### Features + - This release supports ephemeral storage for AWS Fargate Windows containers. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support of modifying the engine mode of database clusters. + +# __2.20.46__ __2023-04-13__ +## __AWS MediaConnect__ + - ### Features + - Gateway is a new feature of AWS Elemental MediaConnect. Gateway allows the deployment of on-premises resources for the purpose of transporting live video to and from the AWS Cloud. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Voice__ + - ### Features + - This release adds tagging support for Voice Connectors and SIP Media Applications + +# __2.20.45__ __2023-04-12__ +## __AWS Ground Station__ + - ### Features + - AWS Ground Station Wideband DigIF GA Release + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Managed Blockchain__ + - ### Features + - Removal of the Ropsten network. The Ethereum foundation ceased support of Ropsten on December 31st, 2022.. + +# __2.20.44__ __2023-04-11__ +## __AWS IoT__ + - ### Features + - Re-release to remove unexpected API changes + +## __AWS IoT Data Plane__ + - ### Features + - This release adds support for MQTT5 user properties when calling the AWS IoT GetRetainedMessage API + +## __AWS SDK for Java v2__ + - ### Features + - Exposes endpointOverride in SdkClient through ServiceClientConfiguration + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs. + +## __Amazon Elastic Container Registry Public__ + - ### Features + - This release will allow using registry alias as registryId in BatchDeleteImage request. + +## __Amazon EventBridge__ + - ### Features + - EventBridge PutTarget support for multiple SQL arguments on RedshiftDataParameters + +## __EMR Serverless__ + - ### Features + - This release extends GetJobRun API to return job run timeout (executionTimeoutMinutes) specified during StartJobRun call (or default timeout of 720 minutes if none was specified). + +# __2.20.43__ __2023-04-10__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK now supports conversion of 608 paint-on captions to pop-on captions for SCC sources. + +## __AWS Marketplace Catalog Service__ + - ### Features + - Added three new APIs to support resource sharing: GetResourcePolicy, PutResourcePolicy, and DeleteResourcePolicy. Added new OwnershipType field to ListEntities request to let users filter on entities that are shared with them. Increased max page size of ListEntities response from 20 to 50 results. + +## __AWS SDK for Java v2__ + - ### Features + - Expose StandardRetryOptions of S3ClientOptions in the S3CrtClient Interface + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - This release adds the ability to configure an agent's routing profile to receive contacts from multiple channels at the same time via extending the UpdateRoutingProfileConcurrency, CreateRoutingProfile and DescribeRoutingProfile APIs. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for enabling FIPS compliance on Amazon ECS Fargate tasks + +## __Amazon Omics__ + - ### Features + - Remove unexpected API changes. + +## __Amazon Rekognition__ + - ### Features + - This release adds support for Face Liveness APIs in Amazon Rekognition. Updates UpdateStreamProcessor to return ResourceInUseException Exception. Minor updates to API documentation. + +# __2.20.42__ __2023-04-07__ +## __AWS Lambda__ + - ### Features + - This release adds a new Lambda InvokeWithResponseStream API to support streaming Lambda function responses. The release also adds a new InvokeMode parameter to Function Url APIs to control whether the response will be streamed or buffered. + +## __AWS Service Catalog__ + - ### Features + - Updates description for property + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Updated timestamp format for GetLifecyclePolicy API + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - This release adds a new parameter 'DBClusterParameterGroupName' to 'RestoreDBClusterFromSnapshot' API to associate the name of the DB cluster parameter group while performing restore. + +## __Amazon DynamoDB Enhanced Client__ + - ### Bugfixes + - Include flattened mappers in attribute converter resolution + - Contributed by: [@akiesler](https://github.com/akiesler) + +## __Amazon FSx__ + - ### Features + - Amazon FSx for Lustre now supports creating data repository associations on Persistent_1 and Scratch_2 file systems. + +## __Amazon QuickSight__ + - ### Features + - This release has two changes: adding the OR condition to tag-based RLS rules in CreateDataSet and UpdateDataSet; adding RefreshSchedule and Incremental RefreshProperties operations for users to programmatically configure SPICE dataset ingestions. + +## __Amazon S3__ + - ### Features + - Add support for the following in the CRT S3 client: + + - Enabling/disabling accelerate endpoints + - Using pathstyle addressing + +## __Redshift Data API Service__ + - ### Features + - Update documentation of API descriptions as needed in support of temporary credentials with IAM identity. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@akiesler](https://github.com/akiesler) +# __2.20.41__ __2023-04-06__ +## __AWS CloudFormation__ + - ### Features + - Including UPDATE_COMPLETE as a failed status for DeleteStack waiter. + +## __AWS IoT Greengrass V2__ + - ### Features + - Add support for SUCCEEDED value in coreDeviceExecutionStatus field. Documentation updates for Greengrass V2. + +## __AWS Proton__ + - ### Features + - This release adds support for the AWS Proton service sync feature. Service sync enables managing an AWS Proton service (creating and updating instances) and all of it's corresponding service instances from a Git repository. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Relational Database Service__ + - ### Features + - Adds and updates the SDK examples + +## __Amazon S3__ + - ### Features + - Adding feature for parsing S3 URIs + +# __2.20.40__ __2023-04-05__ +## __AWS App Runner__ + - ### Features + - App Runner adds support for seven new vCPU and memory configurations. + +## __AWS Config__ + - ### Features + - This release adds resourceType enums for types released in March 2023. + +## __AWS Network Firewall__ + - ### Features + - AWS Network Firewall now supports IPv6-only subnets. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SSO Identity Store__ + - ### Features + - Documentation updates for Identity Store CLI command reference. + +## __AWS Service Catalog__ + - ### Features + - removed incorrect product type value + +## __Amazon EC2 Container Service__ + - ### Features + - This is a document only updated to add information about Amazon Elastic Inference (EI). + +## __Amazon Interactive Video Service RealTime__ + - ### Features + - Fix ParticipantToken ExpirationTime format + +## __Amazon VPC Lattice__ + - ### Features + - This release removes the entities in the API doc model package for auth policies. + +# __2.20.39__ __2023-04-04__ +## __AWS Amplify UI Builder__ + - ### Features + - Support StorageField and custom displays for data-bound options in form builder. Support non-string operands for predicates in collections. Support choosing client to get token from. + +## __AWS Data Exchange__ + - ### Features + - This release updates the value of MaxResults. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - This release rolls back association config feature for webACLs that protect CloudFront protections. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - C6in, M6in, M6idn, R6in and R6idn bare metal instances are powered by 3rd Generation Intel Xeon Scalable processors and offer up to 200 Gbps of network bandwidth. + +## __Amazon Elastic Inference__ + - ### Features + - Updated public documentation for the Describe and Tagging APIs. + +## __Amazon SageMaker Runtime__ + - ### Features + - Amazon SageMaker Asynchronous Inference now provides customers a FailureLocation as a response parameter in InvokeEndpointAsync API to capture the model failure responses. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Asynchronous Inference now allows customer's to receive failure model responses in S3 and receive success/failure model responses in SNS notifications. + +## __Auto Scaling__ + - ### Features + - Documentation updates for Amazon EC2 Auto Scaling + +# __2.20.38__ __2023-04-03__ +## __AWS Glue__ + - ### Features + - Add support for database-level federation + +## __AWS Lake Formation__ + - ### Features + - Add support for database-level federation + +## __AWS License Manager__ + - ### Features + - This release adds grant override options to the CreateGrantVersion API. These options can be used to specify grant replacement behavior during grant activation. + +## __AWS SDK for Java v2__ + - ### Features + - Added option of using an explicit `ExecutorService` in `FileAsyncResponseTransformer` + - Contributed by: [@mpdn](https://github.com/mpdn) + - Updated endpoint and partition metadata. + +## __AWS Service Catalog__ + - ### Features + - This release introduces Service Catalog support for Terraform open source. It enables 1. The notify* APIs to Service Catalog. These APIs are used by the terraform engine to notify the result of the provisioning engine execution. 2. Adds a new TERRAFORM_OPEN_SOURCE product type in CreateProduct API. + +## __AWS WAFV2__ + - ### Features + - For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs. + +## __AmazonMWAA__ + - ### Features + - This Amazon MWAA release adds the ability to customize the Apache Airflow environment by launching a shell script at startup. This shell script is hosted in your environment's Amazon S3 bucket. Amazon MWAA runs the script before installing requirements and initializing the Apache Airflow process. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@mpdn](https://github.com/mpdn) +# __2.20.37__ __2023-03-31__ +## __AWS CRT-based S3 client__ + - ### Bugfixes + - Fixed the issue where AWS CRT-based S3 client was eagerly buffering data before the underlying CRT component was able to handle it. See [#3726](https://github.com/aws/aws-sdk-java-v2/issues/3726) + - Reduced the buffer used to upload object from 16MB to 1MB. + +## __AWS Resilience Hub__ + - ### Features + - Adding EKS related documentation for appTemplateBody + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Server Migration Service__ + - ### Features + - Deprecating AWS Server Migration Service. + +## __Amazon CloudWatch Internet Monitor__ + - ### Features + - This release adds a new feature for Amazon CloudWatch Internet Monitor that enables customers to deliver internet measurements to Amazon S3 buckets as well as CloudWatch Logs. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2 On Demand Capacity Reservations + +## __Amazon SageMaker Feature Store Runtime__ + - ### Features + - In this release, you can now chose between soft delete and hard delete when calling the DeleteRecord API, so you have more flexibility when it comes to managing online store data. + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation updates for Amazon S3 + +# __2.20.36__ __2023-03-30__ +## __AWS Batch__ + - ### Features + - This feature allows Batch on EKS to support configuration of Pod Labels through Metadata for Batch on EKS Jobs. + +## __AWS Compute Optimizer__ + - ### Features + - This release adds support for HDD EBS volume types and io2 Block Express. We are also adding support for 61 new instance types and instances that have non consecutive runtime. + +## __AWS Glue__ + - ### Features + - This release adds support for AWS Glue Data Quality, which helps you evaluate and monitor the quality of your data and includes the API for creating, deleting, or updating data quality rulesets, runs and evaluations. + +## __AWS Network Firewall__ + - ### Features + - AWS Network Firewall added TLS inspection configurations to allow TLS traffic inspection. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Well-Architected Tool__ + - ### Features + - AWS Well-Architected SDK now supports getting consolidated report metrics and generating a consolidated report PDF. + +## __AWSKendraFrontendService__ + - ### Features + - AWS Kendra now supports featured results for a query. + +## __Amazon Athena__ + - ### Features + - Make DefaultExecutorDpuSize and CoordinatorDpuSize fields optional in StartSession + +## __Amazon EMR__ + - ### Features + - Updated DescribeCluster and ListClusters API responses to include ErrorDetail that specifies error code, programmatically accessible error data,and an error message. ErrorDetail provides the underlying reason for cluster failure and recommends actions to simplify troubleshooting of EMR clusters. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Tunnel Endpoint Lifecycle control, a new feature that provides Site-to-Site VPN customers with better visibility and control of their VPN tunnel maintenance updates. + +## __Amazon GuardDuty__ + - ### Features + - Added EKS Runtime Monitoring feature support to existing detector, finding APIs and introducing new Coverage APIs + +## __Amazon Interactive Video Service__ + - ### Features + - Amazon Interactive Video Service (IVS) now offers customers the ability to configure IVS channels to allow insecure RTMP ingest. + +## __Amazon SageMaker geospatial capabilities__ + - ### Features + - Amazon SageMaker geospatial capabilities now supports server-side encryption with customer managed KMS key and SageMaker notebooks with a SageMaker geospatial image in a Amazon SageMaker Domain with VPC only mode. + +## __Amazon VPC Lattice__ + - ### Features + - General Availability (GA) release of Amazon VPC Lattice + +## __Auto Scaling__ + - ### Features + - Amazon EC2 Auto Scaling now supports Elastic Load Balancing traffic sources with the AttachTrafficSources, DetachTrafficSources, and DescribeTrafficSources APIs. This release also introduces a new activity status, "WaitingForConnectionDraining", for VPC Lattice to the DescribeScalingActivities API. + +## __EC2 Image Builder__ + - ### Features + - Adds support for new image workflow details and image vulnerability detection. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Adding a field to the replication configuration APIs to support the auto replicate new disks feature. We also deprecated RetryDataReplication. + +# __2.20.35__ __2023-03-29__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Relational Database Service__ + - ### Features + - Add support for creating a read replica DB instance from a Multi-AZ DB cluster. + +## __OpenSearch Service Serverless__ + - ### Features + - This release includes two new exception types "ServiceQuotaExceededException" and "OcuLimitExceededException". + +# __2.20.34__ __2023-03-28__ +## __AWS IoT Data Plane__ + - ### Features + - Add endpoint ruleset support for cn-north-1. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - A binary attribute value must be encoded in base64 format for its String representation in EnhancedDocument.toJson() API + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Increased maximum length of "TriggerDetails.rawData" to 10K characters and "IncidentSummary" to 8K characters. + +## __AWS Systems Manager Incident Manager Contacts__ + - ### Features + - This release adds 12 new APIs as part of Oncall Schedule feature release, adds support for a new contact type: ONCALL_SCHEDULE. Check public documentation for AWS ssm-contacts for more information + +# __2.20.33__ __2023-03-27__ +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports ID3 tag insertion for audio only HLS output groups. AWS Elemental Link devices now support tagging. + +## __AWS IoT Wireless__ + - ### Features + - Introducing new APIs that enable Sidewalk devices to communicate with AWS IoT Core through Sidewalk gateways. This will empower AWS customers to connect Sidewalk devices with other AWS IoT Services, creating possibilities for seamless integration and advanced device management. + +## __AWS SecurityHub__ + - ### Features + - Added new resource detail objects to ASFF, including resources for AwsEksCluster, AWSS3Bucket, AwsEc2RouteTable and AwsEC2Instance. + +## __AWS Service Catalog App Registry__ + - ### Features + - In this release, we started supporting ARN in applicationSpecifier and attributeGroupSpecifier. GetAttributeGroup, ListAttributeGroups and ListAttributeGroupsForApplication APIs will now have CreatedBy field in the response. + +## __Amazon Athena__ + - ### Features + - Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or higher when they submit queries. + +## __Amazon Chime SDK Voice__ + - ### Features + - Documentation updates for Amazon Chime SDK Voice. + +## __Amazon Connect Participant Service__ + - ### Features + - This release provides an update to the SendMessage API to handle interactive message response content-types. + +## __Amazon Connect Service__ + - ### Features + - This release introduces support for RelatedContactId in the StartChatContact API. Interactive message and interactive message response have been added to the list of supported message content types for this API as well. + +## __Amazon SageMaker Service__ + - ### Features + - Fixed some improperly rendered links in SDK documentation. + +## __Amazon Voice ID__ + - ### Features + - Amazon Connect Voice ID now supports multiple fraudster watchlists. Every domain has a default watchlist where all existing fraudsters are placed by default. Custom watchlists may now be created, managed, and evaluated against for known fraudster detection. + +# __2.20.32__ __2023-03-24__ +## __AWS SDK for Java v2__ + - ### Features + - Adds ServiceClientConfiguration to SdkClient which exposes client settings to the user + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch__ + - ### Features + - Doc-only update to correct alarm actions list + +## __Amazon Comprehend__ + - ### Features + - This release adds a new field (FlywheelArn) to the EntitiesDetectionJobProperties object. The FlywheelArn field is returned in the DescribeEntitiesDetectionJob and ListEntitiesDetectionJobs responses when the EntitiesDetection job is started with a FlywheelArn instead of an EntityRecognizerArn . + +## __Amazon Relational Database Service__ + - ### Features + - Added error code CreateCustomDBEngineVersionFault for when the create custom engine version for Custom engines fails. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix a bug where, if validation of of the amount of expected data to be received (HTTP `Content-Length`) fails, the connection would be left dangling, consuming a connection from the pool until the client is shut down. + +# __2.20.31__ __2023-03-23__ +## __AWS Batch__ + - ### Features + - This feature allows Batch to support configuration of ephemeral storage size for jobs running on FARGATE + +## __AWS Cloud Map__ + - ### Features + - Reverted the throttling exception RequestLimitExceeded for AWS Cloud Map APIs introduced in SDK version 1.12.424 2023-03-09 to previous exception specified in the ErrorCode. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK now supports passthrough of ID3v2 tags for audio inputs to audio-only HLS outputs. + +## __AWS SDK for Java v2__ + - ### Features + - Introducing Enhanced Document API: A Higher-Level API for Working with Amazon DynamoDB Items + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Identity__ + - ### Features + - AppInstanceBots can be used to add a bot powered by Amazon Lex to chat channels. ExpirationSettings provides automatic resource deletion for AppInstanceUsers. + +## __Amazon Chime SDK Media Pipelines__ + - ### Features + - This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio. + +## __Amazon Chime SDK Messaging__ + - ### Features + - ExpirationSettings provides automatic resource deletion for Channels. + +## __Amazon Chime SDK Voice__ + - ### Features + - This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio. + +## __Amazon GuardDuty__ + - ### Features + - Adds AutoEnableOrganizationMembers attribute to DescribeOrganizationConfiguration and UpdateOrganizationConfiguration APIs. + +## __Amazon Interactive Video Service RealTime__ + - ### Features + - Initial release of the Amazon Interactive Video Service RealTime API. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot adds two new APIs - CreateAutoMLJobV2 and DescribeAutoMLJobV2. Amazon SageMaker Notebook Instances now supports the ml.geospatial.interactive instance type. + +## __Amazon Textract__ + - ### Features + - The AnalyzeDocument - Tables feature adds support for new elements in the API: table titles, footers, section titles, summary cells/tables, and table type. + +## __CodeArtifact__ + - ### Features + - Repository CreationTime is added to the CreateRepository and ListRepositories API responses. + +# __2.20.30__ __2023-03-22__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS IoT TwinMaker__ + - ### Features + - This release adds support of adding metadata when creating a new scene or updating an existing scene. + +## __AWS Network Manager__ + - ### Features + - This release includes an update to create-transit-gateway-route-table-attachment, showing example usage for TransitGatewayRouteTableArn. + +## __AWS Resilience Hub__ + - ### Features + - This release provides customers with the ability to import resources from within an EKS cluster and assess the resiliency of EKS cluster workloads. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon EventBridge Pipes__ + - ### Features + - This release improves validation on the ARNs in the API model + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This Patch Manager release supports creating, updating, and deleting Patch Baselines for AmazonLinux2023, AlmaLinux. + +# __2.20.29__ __2023-03-21__ +## __AWS Clean Rooms Service__ + - ### Features + - GA Release of AWS Clean Rooms, Added Tagging Functionality + +## __AWS IoT SiteWise__ + - ### Features + - Provide support for tagging of data streams and enabling tag based authorization for property alias + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Messaging__ + - ### Features + - Amazon Chime SDK messaging customers can now manage streaming configuration for messaging data for archival and analysis. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for AWS Network Firewall, AWS PrivateLink, and Gateway Load Balancers to Amazon VPC Reachability Analyzer, and it makes the path destination optional as long as a destination address in the filter at source is provided. + +## __Application Migration Service__ + - ### Features + - This release introduces the Import and export feature and expansion of the post-launch actions + +# __2.20.28__ __2023-03-20__ +## __AWS CRT-based S3 client__ + - ### Features + - Exposes `S3CrtHttpConfiguration` to allow users to configure HTTP settings such as proxy and connection timeout on AWS CRT-based S3 client. [#3262](https://github.com/aws/aws-sdk-java-v2/issues/3262) + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Neptune__ + - ### Features + - This release makes following few changes. db-cluster-identifier is now a required parameter of create-db-instance. describe-db-cluster will now return PendingModifiedValues and GlobalClusterIdentifier fields in the response. + +## __Amazon S3 on Outposts__ + - ### Features + - S3 On Outposts added support for endpoint status, and a failed endpoint reason, if any + +## __Amazon WorkDocs__ + - ### Features + - This release adds a new API, SearchResources, which enable users to search through metadata and content of folders, documents, document versions and comments in a WorkDocs site. + +## __Application Auto Scaling__ + - ### Features + - With this release customers can now tag their Application Auto Scaling registered targets with key-value pairs and manage IAM permissions for all the tagged resources centrally. + +# __2.20.27__ __2023-03-17__ +## __AWS Config__ + - ### Features + - This release adds resourceType enums for types released from October 2022 through February 2023. + +## __AWS Database Migration Service__ + - ### Features + - S3 setting to create AWS Glue Data Catalog. Oracle setting to control conversion of timestamp column. Support for Kafka SASL Plain authentication. Setting to map boolean from PostgreSQL to Redshift. SQL Server settings to force lob lookup on inline LOBs and to control access of database logs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWSBillingConductor__ + - ### Features + - This release adds a new filter to ListAccountAssociations API and a new filter to ListBillingGroups API. + +# __2.20.26__ __2023-03-16__ +## __AWS Resource Explorer__ + - ### Features + - Documentation updates for APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon GuardDuty__ + - ### Features + - Updated 9 APIs for feature enablement to reflect expansion of GuardDuty to features. Added new APIs and updated existing APIs to support RDS Protection GA. + +## __Amazon SageMaker Runtime__ + - ### Features + - Documentation updates for SageMaker Runtime + +# __2.20.25__ __2023-03-15__ +## __AWS S3 Control__ + - ### Features + - Added support for S3 Object Lambda aliases. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Security Lake__ + - ### Features + - Make Create/Get/ListSubscribers APIs return resource share ARN and name so they can be used to validate the RAM resource share to accept. GetDatalake can be used to track status of UpdateDatalake and DeleteDatalake requests. + +## __Migration Hub Strategy Recommendations__ + - ### Features + - This release adds the binary analysis that analyzes IIS application DLLs on Windows and Java applications on Linux to provide anti-pattern report without configuring access to the source code. + +# __2.20.24__ __2023-03-14__ +## __AWS Data Exchange__ + - ### Features + - This release enables data providers to license direct access to S3 objects encrypted with Customer Managed Keys (CMK) in AWS KMS through AWS Data Exchange. Subscribers can use these keys to decrypt, then use the encrypted S3 objects shared with them, without creating or managing copies. + +## __AWS Direct Connect__ + - ### Features + - describe-direct-connect-gateway-associations includes a new status, updating, indicating that the association is currently in-process of updating. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation only updates to correct customer-reported issues + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new DnsOptions key (PrivateDnsOnlyForInboundResolverEndpoint) to CreateVpcEndpoint and ModifyVpcEndpoint APIs. + +## __Amazon Keyspaces__ + - ### Features + - Adding support for client-side timestamps + +## __Application Auto Scaling__ + - ### Features + - Application Auto Scaling customers can now use mathematical functions to customize the metric used with Target Tracking policies within the policy configuration itself, saving the cost and effort of publishing the customizations as a separate metric. + +# __2.20.23__ __2023-03-13__ +## __AWS Lake Formation__ + - ### Features + - This release updates the documentation regarding Get/Update DataCellsFilter + +## __AWS S3 Control__ + - ### Features + - Added support for cross-account Multi-Region Access Points. Added support for S3 Replication for S3 on Outposts. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Telco Network Builder__ + - ### Features + - This release adds tagging support to the following Network Instance APIs : Instantiate, Update, Terminate. + +## __Amazon AppIntegrations Service__ + - ### Features + - Adds FileConfiguration to Amazon AppIntegrations CreateDataIntegration supporting scheduled downloading of third party files into Amazon Connect from sources such as Microsoft SharePoint. + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release extends Wisdom CreateKnowledgeBase API to support SharePoint connector type by removing the @required trait for objectField + +# __2.20.22__ __2023-03-10__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - The type definitions of SecretString and SecretBinary now have a minimum length of 1 in the model to match the exception thrown when you pass in empty values. + +## __Amazon Interactive Video Service Chat__ + - ### Features + - This release adds a new exception returned when calling AWS IVS chat UpdateLoggingConfiguration. Now UpdateLoggingConfiguration can return ConflictException when invalid updates are made in sequence to Logging Configurations. + +# __2.20.21__ __2023-03-09__ +## __AWS Cloud Map__ + - ### Features + - Updated all AWS Cloud Map APIs to provide consistent throttling exception (RequestLimitExceeded) + +## __AWS Network Manager__ + - ### Features + - This update provides example usage for TransitGatewayRouteTableArn. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch Evidently__ + - ### Features + - Updated entity override documentation + +## __Amazon Connect Service__ + - ### Features + - This release adds a new API, GetMetricDataV2, which returns metric data for Amazon Connect. + +## __Amazon QuickSight__ + - ### Features + - This release has two changes: add state persistence feature for embedded dashboard and console in GenerateEmbedUrlForRegisteredUser API; add properties for hidden collapsed row dimensions in PivotTableOptions. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Inference now allows SSM access to customer's model container by setting the "EnableSSMAccess" parameter for a ProductionVariant in CreateEndpointConfig API. + +## __Amazon Simple Email Service__ + - ### Features + - This release introduces a new recommendation in Virtual Deliverability Manager Advisor, which detects missing or misconfigured Brand Indicator for Message Identification (BIMI) DNS records for customer sending identities. + +## __CodeArtifact__ + - ### Features + - This release introduces the generic package format, a mechanism for storing arbitrary binary assets. It also adds a new API, PublishPackageVersion, to allow for publishing generic packages. + +## __Redshift Data API Service__ + - ### Features + - Added support for Redshift Serverless workgroup-arn wherever the WorkgroupName parameter is available. + +# __2.20.20__ __2023-03-08__ +## __AWS Elemental MediaPackage__ + - ### Features + - This release provides the date and time live resources were created. + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - This release provides the date and time VOD resources were created. + +## __AWS Lake Formation__ + - ### Features + - This release adds two new API support "GetDataCellsFiler" and "UpdateDataCellsFilter", and also updates the corresponding documentation. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Athena__ + - ### Features + - A new field SubstatementType is added to GetQueryExecution API, so customers have an error free way to detect the query type and interpret the result. + +## __Amazon DynamoDB__ + - ### Features + - Adds deletion protection support to DynamoDB tables. Tables with deletion protection enabled cannot be deleted. Deletion protection is disabled by default, can be enabled via the CreateTable or UpdateTable APIs, and is visible in TableDescription. This setting is not replicated for Global Tables. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Introducing Amazon EC2 C7g, M7g and R7g instances, powered by the latest generation AWS Graviton3 processors and deliver up to 25% better performance over Graviton2-based instances. + +## __Amazon Route 53 Resolver__ + - ### Features + - Add dual-stack and IPv6 support for Route 53 Resolver Endpoint,Add IPv6 target IP in Route 53 Resolver Forwarding Rule + +## __Amazon S3__ + - ### Features + - Adding PartType field to UploadPartRequest to indicate whether the part is the last part or not. + +## __Amazon SageMaker Service__ + - ### Features + - There needs to be a user identity to specify the SageMaker user who perform each action regarding the entity. However, these is a not a unified concept of user identity across SageMaker service that could be used today. + +# __2.20.19__ __2023-03-07__ +## __AWS Database Migration Service__ + - ### Features + - This release adds DMS Fleet Advisor Target Recommendation APIs and exposes functionality for DMS Fleet Advisor. It adds functionality to start Target Recommendation calculation. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Location Service__ + - ### Features + - Documentation update for the release of 3 additional map styles for use with Open Data Maps: Open Data Standard Dark, Open Data Visualization Light & Open Data Visualization Dark. + +# __2.20.18__ __2023-03-06__ +## __AWS Account__ + - ### Features + - AWS Account alternate contact email addresses can now have a length of 254 characters and contain the character "|". + +## __Amazon Interactive Video Service__ + - ### Features + - Updated text description in DeleteChannel, Stream, and StreamSummary. + +# __2.20.17__ __2023-03-03__ +## __AWS Elemental MediaConvert__ + - ### Features + - The AWS Elemental MediaConvert SDK has improved handling for different input and output color space combinations. + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive adds support for Nielsen watermark timezones. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon DynamoDB__ + - ### Features + - Documentation updates for DynamoDB. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for a new boot mode for EC2 instances called 'UEFI Preferred'. + +## __Amazon Macie 2__ + - ### Features + - Documentation updates for Amazon Macie + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe now supports role access for these API operations: CreateVocabulary, UpdateVocabulary, CreateVocabularyFilter, and UpdateVocabularyFilter. + +# __2.20.16__ __2023-03-02__ +## __AWS IoT__ + - ### Features + - A recurring maintenance window is an optional configuration used for rolling out the job document to all devices in the target group observing a predetermined start time, duration, and frequency that the maintenance window occurs. + +## __AWS Organizations__ + - ### Features + - This release introduces a new reason code, ACCOUNT_CREATION_NOT_COMPLETE, to ConstraintViolationException in CreateOrganization API. + +## __AWS Performance Insights__ + - ### Features + - This release adds a new field PeriodAlignment to allow the customer specifying the returned timestamp of time periods to be either the start or end time. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon EventBridge Pipes__ + - ### Features + - This release fixes some input parameter range and patterns. + +## __Amazon SageMaker Service__ + - ### Features + - Add a new field "EndpointMetrics" in SageMaker Inference Recommender "ListInferenceRecommendationsJobSteps" API response. + +## __Migration Hub Strategy Recommendations__ + - ### Features + - This release updates the File Import API to allow importing servers already discovered by customers with reduced pre-requisites. + +# __2.20.15__ __2023-03-01__ +## __AWS Price List Service__ + - ### Features + - This release adds 2 new APIs - ListPriceLists which returns a list of applicable price lists, and GetPriceListFileUrl which outputs a URL to retrieve your price lists from the generated file from ListPriceLists + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CodeCatalyst__ + - ### Features + - Published Dev Environments StopDevEnvironmentSession API + +## __Amazon S3 on Outposts__ + - ### Features + - S3 on Outposts introduces a new API ListOutpostsWithS3, with this API you can list all your Outposts with S3 capacity. + +# __2.20.14__ __2023-02-28__ +## __AWS Key Management Service__ + - ### Features + - AWS KMS is deprecating the RSAES_PKCS1_V1_5 wrapping algorithm option in the GetParametersForImport API that is used in the AWS KMS Import Key Material feature. AWS KMS will end support for this wrapping algorithm by October 1, 2023. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Add commons-codec to bom-internal to fix dependency convergence issue. See [#3787](https://github.com/aws/aws-sdk-java-v2/issues/3787) + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports flywheels to help you train and manage new model versions for custom models. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release allows IMDS support to be set to v2-only on an existing AMI, so that all future instances launched from that AMI will use IMDSv2 by default. + +## __Amazon Lightsail__ + - ### Features + - This release adds Lightsail for Research feature support, such as GUI session access, cost estimates, stop instance on idle, and disk auto mount. + +## __Amazon Managed Blockchain__ + - ### Features + - This release adds support for tagging to the accessor resource in Amazon Managed Blockchain + +## __Amazon Omics__ + - ### Features + - Minor model changes to accomodate batch imports feature + +# __2.20.13__ __2023-02-27__ +## __AWS Elemental MediaConvert__ + - ### Features + - The AWS Elemental MediaConvert SDK has added support for HDR10 to SDR tone mapping, and animated GIF video input sources. + +## __AWS Lambda__ + - ### Features + - This release adds the ability to create ESMs with Document DB change streams as event source. For more information see https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fix race in FlatteningSubscriber where onClose called before items passed to onNext. See [#3734](https://github.com/aws/aws-sdk-java-v2/issues/3734) + - Contributed by: [@stevenshan](https://github.com/stevenshan) + +## __Amazon CloudWatch Internet Monitor__ + - ### Features + - CloudWatch Internet Monitor is a a new service within CloudWatch that will help application developers and network engineers continuously monitor internet performance metrics such as availability and performance between their AWS-hosted applications and end-users of these applications + +## __Amazon DevOps Guru__ + - ### Features + - This release adds the description field on ListAnomaliesForInsight and DescribeAnomaly API responses for proactive anomalies. + +## __Amazon Timestream Write__ + - ### Features + - This release adds the ability to ingest batched historical data or migrate data in bulk from S3 into Timestream using CSV files. + +## __Elastic Disaster Recovery Service__ + - ### Features + - New fields were added to reflect availability zone data in source server and recovery instance description commands responses, as well as source server launch status. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@stevenshan](https://github.com/stevenshan) +# __2.20.12__ __2023-02-24__ +## __AWS SecurityHub__ + - ### Features + - New Security Hub APIs and updates to existing APIs that help you consolidate control findings and enable and disable controls across all supported standards + +## __AWS Service Catalog__ + - ### Features + - Documentation updates for Service Catalog + +## __Amazon Connect Cases__ + - ### Features + - This release adds the ability to delete domains through the DeleteDomain API. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html + +## __Amazon Connect Service__ + - ### Features + - StartTaskContact API now supports linked task creation with a new optional RelatedContactId parameter + +## __Amazon Redshift__ + - ### Features + - Documentation updates for Redshift API bringing it in line with IAM best practices. + +# __2.20.11__ __2023-02-23__ +## __AWS IoT Wireless__ + - ### Features + - In this release, we add additional capabilities for the FUOTA which allows user to configure the fragment size, the sending interval and the redundancy ratio of the FUOTA tasks + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - You can now associate an AWS WAF v2 web ACL with an AWS App Runner service. + +## __Amazon Appflow__ + - ### Features + - This release enables the customers to choose whether to use Private Link for Metadata and Authorization call when using a private Salesforce connections + +## __Amazon EC2 Container Service__ + - ### Features + - This release supports deleting Amazon ECS task definitions that are in the INACTIVE state. + +## __Amazon GuardDuty__ + - ### Features + - Updated API and data types descriptions for CreateFilter, UpdateFilter, and TriggerDetails. + +## __Amazon Location Service__ + - ### Features + - This release adds support for using Maps APIs with an API Key in addition to AWS Cognito. This includes support for adding, listing, updating and deleting API Keys. + +## __Amazon Macie 2__ + - ### Features + - This release adds support for a new finding type, Policy:IAMUser/S3BucketSharedWithCloudFront, and S3 bucket metadata that indicates if a bucket is shared with an Amazon CloudFront OAI or OAC. + +## __Amazon Managed Grafana__ + - ### Features + - Doc-only update. Updated information on attached role policies for customer provided roles + +# __2.20.10__ __2023-02-22__ +## __AWS DataSync__ + - ### Features + - AWS DataSync has relaxed the minimum length constraint of AccessKey for Object Storage locations to 1. + +## __Amazon Chime SDK Voice__ + - ### Features + - This release introduces support for Voice Connector media metrics in the Amazon Chime SDK Voice namespace + +## __Amazon CloudFront__ + - ### Features + - CloudFront now supports block lists in origin request policies so that you can forward all headers, cookies, or query string from viewer requests to the origin *except* for those specified in the block list. + +## __Amazon OpenSearch Service__ + - ### Features + - This release lets customers configure Off-peak window and software update related properties for a new/existing domain. It enhances the capabilities of StartServiceSoftwareUpdate API; adds 2 new APIs - ListScheduledActions & UpdateScheduledAction; and allows Auto-tune to make use of Off-peak window. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Document only update for Feb 2023 + +## __CloudWatch RUM__ + - ### Features + - CloudWatch RUM now supports CloudWatch Custom Metrics + +# __2.20.9__ __2023-02-21__ +## __AWS Resilience Hub__ + - ### Features + - In this release we improved resilience hub application creation and maintenance by introducing new resource and app component crud APIs, improving visibility and maintenance of application input sources and added support for additional information attributes to be provided by customers. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fix race condition that could cause a NullPointerException to be raised from ProfileCredentialsProvider. + +## __AWS SecurityHub__ + - ### Features + - Documentation updates for AWS Security Hub + +## __AWS Telco Network Builder__ + - ### Features + - This is the initial SDK release for AWS Telco Network Builder (TNB). AWS Telco Network Builder is a network automation service that helps you deploy and manage telecom networks. + +## __Amazon QuickSight__ + - ### Features + - S3 data sources now accept a custom IAM role. + +# __2.20.8__ __2023-02-20__ +## __AWS Audit Manager__ + - ### Features + - This release introduces a ServiceQuotaExceededException to the UpdateAssessmentFrameworkShare API operation. + +## __Amazon Connect Service__ + - ### Features + - Reasons for failed diff has been approved by SDK Reviewer + +# __2.20.7__ __2023-02-17__ +## __AWS App Runner__ + - ### Features + - This release supports removing MaxSize limit for AutoScalingConfiguration. + +## __AWS Glue__ + - ### Features + - Release of Delta Lake Data Lake Format for Glue Studio Service + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +# __2.20.6__ __2023-02-16__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - Added a notice for account takeover prevention (ATP). The interface incorrectly lets you to configure ATP response inspection in regional web ACLs in Region US East (N. Virginia), without returning an error. ATP response inspection is only available in web ACLs that protect CloudFront distributions. + +## __Amazon EMR__ + - ### Features + - This release provides customers the ability to define a timeout period for procuring capacity during a resize operation for Instance Fleet clusters. Customers can specify this timeout using the ResizeSpecifications parameter supported by RunJobFlow, ModifyInstanceFleet and AddInstanceFleet APIs. + +## __Amazon Interactive Video Service__ + - ### Features + - Doc-only update. Updated text description in DeleteChannel, Stream, and StreamSummary. + +## __Amazon Managed Grafana__ + - ### Features + - With this release Amazon Managed Grafana now supports inbound Network Access Control that helps you to restrict user access to your Grafana workspaces + +# __2.20.5__ __2023-02-15__ +## __AWS CloudTrail__ + - ### Features + - This release adds an InsufficientEncryptionPolicyException type to the StartImport endpoint + +## __AWS Glue__ + - ### Features + - Fix DirectJDBCSource not showing up in CLI code gen + +## __AWS Private 5G__ + - ### Features + - This release introduces a new StartNetworkResourceUpdate API, which enables return/replacement of hardware from a NetworkSite. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - For protected CloudFront distributions, you can now use the AWS WAF Fraud Control account takeover prevention (ATP) managed rule group to block new login attempts from clients that have recently submitted too many failed login attempts. + +## __Amazon Elastic File System__ + - ### Features + - Documentation update for EFS to support IAM best practices. + +## __Amazon Fraud Detector__ + - ### Features + - This release introduces Lists feature which allows customers to reference a set of values in Fraud Detector's rules. With Lists, customers can dynamically manage these attributes in real time. Lists can be created/deleted and its contents can be modified using the Fraud Detector API. + +## __Amazon Relational Database Service__ + - ### Features + - Database Activity Stream support for RDS for SQL Server. + +# __2.20.4__ __2023-02-14__ +## __AWS DataSync__ + - ### Features + - With this launch, we are giving customers the ability to use older SMB protocol versions, enabling them to use DataSync to copy data to and from their legacy storage arrays. + +## __Amazon AppConfig__ + - ### Features + - AWS AppConfig now offers the option to set a version label on hosted configuration versions. Version labels allow you to identify specific hosted configuration versions based on an alternate versioning scheme that you define. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - With this release customers can turn host maintenance on or off when allocating or modifying a supported dedicated host. Host maintenance is turned on by default for supported hosts. + +# __2.20.3__ __2023-02-13__ +## __AWS Account__ + - ### Features + - This release of the Account Management API enables customers to view and manage whether AWS Opt-In Regions are enabled or disabled for their Account. For more information, see https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html + +## __AWS AppConfig Data__ + - ### Features + - AWS AppConfig now offers the option to set a version label on hosted configuration versions. If a labeled hosted configuration version is deployed, its version label is available in the GetLatestConfiguration response. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Keep precedence of options when passed to ProfileFileSupplier.aggregate + +## __Amazon Import/Export Snowball__ + - ### Features + - Adds support for EKS Anywhere on Snowball. AWS Snow Family customers can now install EKS Anywhere service on Snowball Edge Compute Optimized devices. + +# __2.20.2__ __2023-02-10__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - This update provides the Wisdom session ARN for contacts enabled for Wisdom in the chat channel. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for waiters that automatically poll for an imported snapshot until it reaches the completed state. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds two new neural Japanese voices - Kazuha, Tomoko + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot adds support for selecting algorithms in CreateAutoMLJob API. + +## __Amazon Simple Notification Service__ + - ### Features + - This release adds support for SNS X-Ray active tracing as well as other updates. + +## __Auto Scaling__ + - ### Features + - You can now either terminate/replace, ignore, or wait for EC2 Auto Scaling instances on standby or protected from scale in. Also, you can also roll back changes from a failed instance refresh. + +# __2.20.1__ __2023-02-09__ +## __AWS Migration Hub Refactor Spaces__ + - ### Features + - This release adds support for creating environments with a network fabric type of NONE + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Documentation updates for Chime Meetings SDK + +## __Amazon CloudWatch Evidently__ + - ### Features + - Updated entity overrides parameter to accept up to 2500 overrides or a total of 40KB. + +## __Amazon EMR Containers__ + - ### Features + - EMR on EKS allows configuring retry policies for job runs through the StartJobRun API. Using retry policies, a job cause a driver pod to be restarted automatically if it fails or is deleted. The job's status can be seen in the DescribeJobRun and ListJobRun APIs and monitored using CloudWatch events. + +## __Amazon Lex Model Building V2__ + - ### Features + - AWS Lex now supports Network of Bots. + +## __Amazon Lex Runtime V2__ + - ### Features + - AWS Lex now supports Network of Bots. + +## __Amazon Lightsail__ + - ### Features + - Documentation updates for Lightsail + +## __Amazon WorkDocs__ + - ### Features + - Doc only update for the WorkDocs APIs. + +## __Amazon WorkSpaces__ + - ### Features + - Removed Windows Server 2016 BYOL and made changes based on IAM campaign. + +# __2.20.0__ __2023-02-08__ +## __AWS Backup__ + - ### Features + - This release added one attribute (resource name) in the output model of our 9 existing APIs in AWS backup so that customers will see the resource name at the output. No input required from Customers. + +## __AWS CRT HTTP Client__ + - ### Features + - The AWS CRT HTTP Client is now generally available. Visit [Dev Guide](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) for more information. + +## __AWS Glue__ + - ### Features + - DirectJDBCSource + Glue 4.0 streaming options + +## __AWS Lake Formation__ + - ### Features + - This release removes the LFTagpolicyResource expression limits. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudFront__ + - ### Features + - CloudFront Origin Access Control extends support to AWS Elemental MediaStore origins. + +## __Amazon S3__ + - ### Bugfixes + - Bug fix for Default Md5 checksum was getting skipped even when new http checksum was not set to any checksum algorithm. diff --git a/changelogs/2.21.x-CHANGELOG.md b/changelogs/2.21.x-CHANGELOG.md new file mode 100644 index 000000000000..7f11671cc20a --- /dev/null +++ b/changelogs/2.21.x-CHANGELOG.md @@ -0,0 +1,1799 @@ +# __2.21.46__ __2023-12-14__ +## __AWS B2B Data Interchange__ + - ### Features + - Documentation updates for AWS B2B Data Interchange + +## __AWS Control Tower__ + - ### Features + - Documentation updates for AWS Control Tower. + +## __AWS IoT__ + - ### Features + - This release adds the ability to self-manage certificate signing in AWS IoT Core fleet provisioning using the new certificate provider resource. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SDK for Java v2 Bundle__ + - ### Bugfixes + - Fix an issue where `NoSuchMethodError` can be thrown an runtime if the SLF4J implementation detects multiple bindings when using the SDK bundle. + +## __AWSBillingConductor__ + - ### Features + - Billing Conductor is releasing a new API, GetBillingGroupCostReport, which provides the ability to retrieve/view the Billing Group Cost Report broken down by attributes for a specific billing group. + +## __Amazon AppStream__ + - ### Features + - This release includes support for images of Windows Server 2022 platform. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for more granular billing using tags (key:value pairs) + +## __Amazon GameLift__ + - ### Features + - Amazon GameLift adds the ability to add and update the game properties of active game sessions. + +## __Amazon Kinesis Firehose__ + - ### Features + - This release, 1) adds configurable buffering hints for the Splunk destination, and 2) reduces the minimum configurable buffering interval for supported destinations + +## __Amazon Neptune Graph__ + - ### Features + - This is the initial SDK release for Amazon Neptune Analytics + +## __Amazon OpenSearch Service__ + - ### Features + - Updating documentation for Amazon OpenSearch Service support for new zero-ETL integration with Amazon S3. + +## __Amazon QuickSight__ + - ### Features + - Update Dashboard Links support; SingleAxisOptions support; Scatterplot Query limit support. + +## __Amazon WorkSpaces__ + - ### Features + - Updated note to ensure customers understand running modes. + +# __2.21.45__ __2023-12-13__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Adding AgentVersion to SourceServer and RecoveryInstance structures + +# __2.21.44__ __2023-12-12__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch Logs__ + - ### Features + - This release introduces the StartLiveTail API to tail ingested logs in near real time. + +## __Amazon Location Service__ + - ### Features + - This release 1) adds sub-municipality field in Places API for searching and getting places information, and 2) allows optimizing route calculation based on expected arrival time. + +## __EC2 Image Builder__ + - ### Features + - This release adds the Image Workflows feature to give more flexibility and control over the image building and testing process. + +# __2.21.43__ __2023-12-11__ +## __AWS SecurityHub__ + - ### Features + - Added new resource detail objects to ASFF, including resources for AwsDynamoDbTable, AwsEc2ClientVpnEndpoint, AwsMskCluster, AwsS3AccessPoint, AwsS3Bucket + +## __Amazon Neptune__ + - ### Features + - This release adds a new parameter configuration setting to the Neptune cluster related APIs that can be leveraged to switch between the underlying supported storage modes. + +## __Amazon Pinpoint__ + - ### Features + - This release includes Amazon Pinpoint API documentation updates pertaining to campaign message sending rate limits. + +## __S3 Transfer Manager__ + - ### Bugfixes + - Fix an issue where multipart uploads from a file are not retryable when using the default, non CRT S3 client. + +# __2.21.42__ __2023-12-08__ +## __Amazon CloudWatch__ + - ### Features + - Adds support for the OpenTelemetry 1.0 output format in CloudWatch Metric Streams. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - M2 Mac instances are built on Apple M2 Mac mini computers. I4i instances are powered by 3rd generation Intel Xeon Scalable processors. C7i compute optimized, M7i general purpose and R7i memory optimized instances are powered by custom 4th Generation Intel Xeon Scalable processors. + +## __FinSpace User Environment Management service__ + - ### Features + - Releasing Scaling Group, Dataview, and Volume APIs + +# __2.21.41__ __2023-12-07__ +## __AWS CodeDeploy__ + - ### Features + - This release adds support for two new CodeDeploy features: 1) zonal deployments for Amazon EC2 in-place deployments, 2) deployments triggered by Auto Scaling group termination lifecycle hook events. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SDK for Java v2 - Codegen__ + - ### Features + - Allow users to customize package name. + +## __AWS SDK for Java v2 Bundle__ + - ### Bugfixes + - Fix failure to bind to SLF4J binding at runtime when using the SDK bundle. + +# __2.21.40__ __2023-12-06__ +## __AWS Backup__ + - ### Features + - AWS Backup - Features: Add VaultType to the output of DescribeRecoveryPoint, ListRecoveryPointByBackupVault API and add ResourceType to the input of ListRestoreJobs API + +## __Amazon Comprehend__ + - ### Features + - Documentation updates for Trust and Safety features. + +## __Amazon Connect Service__ + - ### Features + - Releasing Tagging Support for Instance Management APIS + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Releasing the new cpuManufacturer attribute within the DescribeInstanceTypes API response which notifies our customers with information on who the Manufacturer is for the processor attached to the instance, for example: Intel. + +## __Payment Cryptography Control Plane__ + - ### Features + - AWS Payment Cryptography IPEK feature release + +# __2.21.39__ __2023-12-05__ +## __AWS Clean Rooms ML__ + - ### Features + - Updated service title from cleanroomsml to CleanRoomsML. + +## __AWS CloudFormation__ + - ### Features + - Documentation update, December 2023 + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Comma separated multiple hosts specified in `NO_PROXY` environment variable are now treated as multiple hosts. + +## __Amazon Athena__ + - ### Features + - Adding IdentityCenter enabled request for interactive query + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds A10G, T4G, and H100 as accelerator name options and Habana as an accelerator manufacturer option for attribute based selection + +# __2.21.38__ __2023-12-04__ +## __AWS Archetype Lambda__ + - ### Features + - Update archetype-lambda to use AWS CRT HTTP client as the default HTTP client and bump dependency version. + +## __AWS Cloud9__ + - ### Features + - This release adds the requirement to include the imageId parameter in the CreateEnvironmentEC2 API call. + +## __AWS CloudFormation__ + - ### Features + - Including UPDATE_* states as a success status for CreateStack waiter. + +## __AWS Elemental MediaLive__ + - ### Features + - Adds support for custom color correction on channels using 3D LUT files. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Service Catalog App Registry__ + - ### Features + - Documentation-only updates for Dawn + +## __AWSBillingConductor__ + - ### Features + - This release adds the ability to specify a linked account of the billing group for the custom line item resource. + +## __Amazon S3__ + - ### Bugfixes + - Fixes double checksum validation for GetObject. Now when ChecksumMode is enabled, x-amz-te:append-md5 will not be sent, and only the flexible checksum will be validated. If ChecksumMode is enabled and no ChecksumAlgorithm was returned, no validation will be performed. + +## __Amazon SQS__ + - ### Features + - Adds a client builder option to disable the default MD5 checksum validation for SendMessage, ReceiveMessage and SendMessageBatch + +## __Braket__ + - ### Features + - This release enhances service support to create quantum tasks and hybrid jobs associated with Braket Direct Reservations. + +## __FinSpace User Environment Management service__ + - ### Features + - Release General Purpose type clusters + +# __2.21.37__ __2023-12-01__ +## __Amazon DynamoDB Enhanced__ + - ### Features + - Introduce the possibility to specify returnValuesOnConditionCheckFailure in DynamoDB Enhanced operations + - Contributed by: [@breader124](https://github.com/breader124) + +## __Amazon Q Connect__ + - ### Features + - This release adds the PutFeedback API and allows providing feedback against the specified assistant for the specified target. + +## __Amazon Recycle Bin__ + - ### Features + - Added resource identifier in the output and updated error handling. + +## __Amazon Verified Permissions__ + - ### Features + - Adds description field to PolicyStore API's and namespaces field to GetSchema. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@breader124](https://github.com/breader124) +# __2.21.36__ __2023-11-30__ +## __AWS ARC - Zonal Shift__ + - ### Features + - This release adds a new capability, zonal autoshift. You can configure zonal autoshift so that AWS shifts traffic for a resource away from an Availability Zone, on your behalf, when AWS determines that there is an issue that could potentially affect customers in the Availability Zone. + +## __AWS Glue__ + - ### Features + - Adds observation and analyzer support to the GetDataQualityResult and BatchGetDataQualityResult APIs. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds support for 1/ Code Editor, based on Code-OSS, Visual Studio Code Open Source, a new fully managed IDE option in SageMaker Studio 2/ JupyterLab, a new fully managed JupyterLab IDE experience in SageMaker Studio + +# __2.21.35__ __2023-11-29__ +## __AWS Marketplace Agreement Service__ + - ### Features + - The AWS Marketplace Agreement Service provides an API interface that helps AWS Marketplace sellers manage their agreements, including listing, filtering, and viewing details about their agreements. + +## __AWS Marketplace Catalog Service__ + - ### Features + - This release enhances the ListEntities API to support new entity type-specific strongly typed filters in the request and entity type-specific strongly typed summaries in the response. + +## __AWS Marketplace Deployment Service__ + - ### Features + - AWS Marketplace Deployment is a new service that provides essential features that facilitate the deployment of software, data, and services procured through AWS Marketplace. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Redshift Serverless__ + - ### Features + - This release adds the following support for Amazon Redshift Serverless: 1) cross-account cross-VPCs, 2) copying snapshots across Regions, 3) scheduling snapshot creation, and 4) restoring tables from a recovery point. + +# __2.21.34__ __2023-11-29__ +## __AWS CRT-based S3 client__ + - ### Features + - Add S3 express support for the AWS CRT-based S3 client. + +## __AWS Clean Rooms Service__ + - ### Features + - AWS Clean Rooms now provides differential privacy to protect against user-identification attempts and machine learning modeling to allow two parties to identify similar users in their data. + +## __AWS SDK for Java v2__ + - ### Features + - Add `cloudwatch-metric-publisher` to `aws-sdk-java` module so that it can be included in the bundle JAR. + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for AWS Security Token Service. + +## __Amazon OpenSearch Service__ + - ### Features + - Launching Amazon OpenSearch Service support for new zero-ETL integration with Amazon S3. Customers can now manage their direct query data sources to Amazon S3 programatically + +## __Amazon S3__ + - ### Features + - Adds SDK support for Amazon S3 Express One Zone. For usage, consult Javadocs and the official documentation. Note that users can switch off CreateSession authentication and use the regular credential providers to sign requests by using the `disableS3ExpressSessionAuth` option on the client builder, environment variables, system properties or the config file. + +## __Amazon SageMaker Runtime__ + - ### Features + - This release adds InferenceComponentName to InvokeEndpoint and InvokeEndpointWithResponseStream APIs to get inferences from the deployed InferenceComponents. + +## __Amazon SageMaker Service__ + - ### Features + - This release adds following support 1/ Improved SDK tooling for model deployment. 2/ New Inference Component based features to lower inference costs and latency 3/ SageMaker HyperPod management. 4/ Additional parameters for FM Fine Tuning in Autopilot + +## __Application Auto Scaling__ + - ### Features + - Amazon SageMaker customers can now use Application Auto Scaling to automatically scale the number of Inference Component copies across an endpoint to meet the varying demand of their workloads. + +## __OpenSearch Service Serverless__ + - ### Features + - Amazon OpenSearch Serverless collections support an additional attribute called standby-replicas. This allows to specify whether a collection should have redundancy enabled. + +## __cleanrooms-ml__ + - ### Features + - Public Preview SDK release of AWS Clean Rooms ML APIs + +# __2.21.33__ __2023-11-28__ +## __AWS S3 Control__ + - ### Features + - Adds support for S3 Express One Zone, and InvocationSchemaVersion 2.0 for S3 Batch Operations. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Access Analyzer__ + - ### Features + - This release adds support for external access findings for S3 directory buckets to help you easily identify cross-account access. Updated service API, documentation, and paginators. + +## __Agents for Amazon Bedrock__ + - ### Features + - This release introduces Agents for Amazon Bedrock + +## __Agents for Amazon Bedrock Runtime__ + - ### Features + - This release introduces Agents for Amazon Bedrock Runtime + +## __Amazon Bedrock__ + - ### Features + - This release adds support for customization types, model life cycle status and minor versions/aliases for model identifiers. + +## __Amazon Bedrock Runtime__ + - ### Features + - This release adds support for minor versions/aliases for invoke model identifier. + +## __Amazon Connect Customer Profiles__ + - ### Features + - This release introduces DetectProfileObjectType API to auto generate object type mapping. + +## __Amazon Connect Service__ + - ### Features + - Added support for following capabilities: Amazon Connect's in-app, web, and video calling. Two-way SMS integrations. Contact Lens real-time chat analytics feature. Amazon Connect Analytics Datalake capability. Capability to configure real time chat rules. + +## __Amazon Q Connect__ + - ### Features + - Amazon Q in Connect, an LLM-enhanced evolution of Amazon Connect Wisdom. This release adds generative AI support to Amazon Q Connect QueryAssistant and GetRecommendations APIs. + +## __Amazon Simple Storage Service__ + - ### Features + - Adds support for S3 Express One Zone. + +## __QBusiness__ + - ### Features + - Amazon Q - a generative AI powered application that your employees can use to ask questions and get answers from knowledge spread across disparate content repositories, summarize reports, write articles, take actions, and much more - all within their company's connected content repositories. + +# __2.21.32__ __2023-11-27__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon ElastiCache__ + - ### Features + - Launching Amazon ElastiCache Serverless that enables you to create a cache in under a minute without any capacity management. ElastiCache Serverless monitors the cache's memory, CPU, and network usage and scales both vertically and horizontally to support your application's requirements. + +# __2.21.31__ __2023-11-27__ +## __AWS AppSync__ + - ### Features + - This update enables introspection of Aurora cluster databases using the RDS Data API + +## __AWS B2B Data Interchange__ + - ### Features + - This is the initial SDK release for AWS B2B Data Interchange. + +## __AWS Backup__ + - ### Features + - AWS Backup now supports restore testing, a new feature that allows customers to automate restore testing and validating their backups. Additionally, this release adds support for EBS Snapshots Archive tier. + +## __AWS Control Tower__ + - ### Features + - This release adds the following support: 1. The EnableControl API can configure controls that are configurable. 2. The GetEnabledControl API shows the configured parameters on an enabled control. 3. The new UpdateEnabledControl API can change parameters on an enabled control. + +## __AWS Fault Injection Simulator__ + - ### Features + - AWS FIS adds support for multi-account experiments & empty target resolution. This release also introduces the CreateTargetAccountConfiguration API that allows experiments across multiple AWS accounts, and the ListExperimentResolvedTargets API to list target details. + +## __AWS Glue__ + - ### Features + - add observations support to DQ CodeGen config model + update document for connectiontypes supported by ConnectorData entities + +## __AWS SecurityHub__ + - ### Features + - Adds and updates APIs to support central configuration. This feature allows the Security Hub delegated administrator to configure Security Hub for their entire AWS Org across multiple regions from a home Region. With this release, findings also include account name and application metadata. + +## __Amazon Elastic File System__ + - ### Features + - Adding support for EFS Replication to existing file system. + +## __Amazon Relational Database Service__ + - ### Features + - Updates Amazon RDS documentation for support for RDS for Db2. + +## __Amazon Transcribe Service__ + - ### Features + - This release adds support for AWS HealthScribe APIs within Amazon Transcribe + +# __2.21.30__ __2023-11-26__ +## __AWS Billing and Cost Management Data Exports__ + - ### Features + - Users can create, read, update, delete Exports of billing and cost management data. Users can get details of Export Executions and details of Tables for exporting. Tagging support is provided for Exports + +## __AWS CloudTrail__ + - ### Features + - CloudTrail Lake now supports federating event data stores. giving users the ability to run queries against their event data using Amazon Athena. + +## __AWS CodeStar connections__ + - ### Features + - This release adds support for the CloudFormation Git sync feature. Git sync enables updating a CloudFormation stack from a template stored in a Git repository. + +## __AWS Compute Optimizer__ + - ### Features + - This release enables AWS Compute Optimizer to analyze and generate recommendations with customization and discounts preferences. + +## __AWS Config__ + - ### Features + - Support Periodic Recording for Configuration Recorder + +## __AWS Control Tower__ + - ### Features + - Add APIs to create and manage a landing zone. + +## __AWS Free Tier__ + - ### Features + - This is the initial SDK release for the AWS Free Tier GetFreeTierUsage API + +## __AWS IoT FleetWise__ + - ### Features + - AWS IoT FleetWise introduces new APIs for vision system data, such as data collected from cameras, radars, and lidars. You can now model and decode complex data types. + +## __AWS Lake Formation__ + - ### Features + - This release adds four new APIs "DescribeLakeFormationIdentityCenterConfiguration", "CreateLakeFormationIdentityCenterConfiguration", "DescribeLakeFormationIdentityCenterConfiguration", and "DeleteLakeFormationIdentityCenterConfiguration", and also updates the corresponding documentation. + +## __AWS S3 Control__ + - ### Features + - Introduce Amazon S3 Access Grants, a new S3 access control feature that maps identities in directories such as Active Directory, or AWS Identity and Access Management (IAM) Principals, to datasets in S3. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - AWS Secrets Manager has released the BatchGetSecretValue API, which allows customers to fetch up to 20 Secrets with a single request using a list of secret names or filters. + +## __AWS SecurityHub__ + - ### Features + - Adds and updates APIs to support customizable security controls. This feature allows Security Hub customers to provide custom parameters for security controls. With this release, findings for controls that support custom parameters will include the parameters used to generate the findings. + +## __AWS Step Functions__ + - ### Features + - Adds new TestState operation which accepts the definition of a single state and executes it. You can test a state without creating a state machine or updating an existing state machine. + +## __AWS re:Post Private__ + - ### Features + - Initial release of AWS re:Post Private + +## __Access Analyzer__ + - ### Features + - IAM Access Analyzer now continuously monitors IAM roles and users in your AWS account or organization to generate findings for unused access. Additionally, IAM Access Analyzer now provides custom policy checks to validate that IAM policies adhere to your security standards ahead of deployments. + +## __Amazon CloudWatch Logs__ + - ### Features + - Added APIs to Create, Update, Get, List and Delete LogAnomalyDetectors and List and Update Anomalies in Detector. Added LogGroupClass attribute for LogGroups to classify loggroup as Standard loggroup with all capabilities or InfrequentAccess loggroup with limited capabilities. + +## __Amazon Detective__ + - ### Features + - Added new APIs in Detective to support resource investigations + +## __Amazon EC2 Container Service__ + - ### Features + - Adds a new 'type' property to the Setting structure. Adds a new AccountSetting - guardDutyActivate for ECS. + +## __Amazon EKS Auth__ + - ### Features + - This release adds support for EKS Pod Identity feature. EKS Pod Identity makes it easy for customers to obtain IAM permissions for their applications running in the EKS clusters. + +## __Amazon Elastic File System__ + - ### Features + - Adding support for EFS Archive lifecycle configuration. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - This release adds support for EKS Pod Identity feature. EKS Pod Identity makes it easy for customers to obtain IAM permissions for the applications running in their EKS clusters. + +## __Amazon FSx__ + - ### Features + - Added support for FSx for ONTAP scale-out file systems and FlexGroup volumes. Added the HAPairs field and ThroughputCapacityPerHAPair for filesystem. Added AggregateConfiguration (containing Aggregates and ConstituentsPerAggregate) and SizeInBytes for volume. + +## __Amazon GuardDuty__ + - ### Features + - Add support for Runtime Monitoring for ECS and ECS-EC2. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release introduces new generative AI features in AWS Lex: Assisted Slot Resolution, Descriptive Bot Building, and Sample Utterance Generation. These features leverage large language models available through Amazon Bedrock to improve the bot builder and customer experiences. + +## __Amazon Lex Runtime V2__ + - ### Features + - This release introduces support for interpretationSource in the runtime service response. + +## __Amazon Managed Blockchain__ + - ### Features + - Add optional NetworkType property to Accessor APIs + +## __Amazon Personalize__ + - ### Features + - Enables metadata in recommendations, recommendations with themes, and next best action recommendations + +## __Amazon Personalize Events__ + - ### Features + - This release enables PutActions and PutActionInteractions + +## __Amazon Personalize Runtime__ + - ### Features + - Enables metadata in recommendations and next best action recommendations + +## __Amazon Prometheus Service__ + - ### Features + - This release adds support for the Amazon Managed Service for Prometheus collector, a fully managed, agentless Prometheus metrics scraping capability. + +## __Amazon QuickSight__ + - ### Features + - This release launches new APIs for trusted identity propagation setup and supports creating datasources using trusted identity propagation as authentication method for QuickSight accounts configured with IAM Identity Center. + +## __Amazon Redshift__ + - ### Features + - This release adds support for multi-data warehouse writes through data sharing. + +## __Amazon Simple Storage Service__ + - ### Features + - Adding new params - Key and Prefix, to S3 API operations for supporting S3 Access Grants. Note - These updates will not change any of the existing S3 API functionality. + +## __Amazon Transcribe Service__ + - ### Features + - This release adds support for transcriptions from audio sources in 64 new languages and introduces generative call summarization in Transcribe Call Analytics (Post call) + +## __Amazon WorkSpaces__ + - ### Features + - The release introduces Multi-Region Resilience one-way data replication that allows you to replicate data from your primary WorkSpace to a standby WorkSpace in another AWS Region. DescribeWorkspaces now returns the status of data replication. + +## __Amazon WorkSpaces Thin Client__ + - ### Features + - Initial release of Amazon WorkSpaces Thin Client + +## __Cost Optimization Hub__ + - ### Features + - This release launches Cost Optimization Hub, a new AWS Billing and Cost Management feature that helps you consolidate and prioritize cost optimization recommendations across your AWS Organizations member accounts and AWS Regions, so that you can get the most out of your AWS spend. + +## __Elastic Load Balancing__ + - ### Features + - This release enables both mutual authentication (mTLS), and Automatic Target Weights (ATW) for Application Load Balancers. + +# __2.21.29__ __2023-11-22__ +## __AWS S3 Control__ + - ### Features + - Amazon S3 Batch Operations now manages buckets or prefixes in a single step. + +## __Amazon Kinesis__ + - ### Features + - This release adds support for resource based policies on streams and consumers. + +## __Amazon SageMaker Service__ + - ### Features + - This feature adds the end user license agreement status as a model access configuration parameter. + +# __2.21.28__ __2023-11-21__ +## __AWS IoT SiteWise__ + - ### Features + - Adds 1/ user-defined unique identifier for asset and model metadata, 2/ asset model components, and 3/ query API for asset metadata and telemetry data. Supports 4/ multi variate anomaly detection using Amazon Lookout for Equipment, 5/ warm storage tier, and 6/ buffered ingestion of time series data. + +## __AWS IoT TwinMaker__ + - ### Features + - This release adds following support. 1. New APIs for metadata bulk operations. 2. Modify the component type API to support composite component types - nesting component types within one another. 3. New list APIs for components and properties. 4. Support the larger scope digital twin modeling. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudFront__ + - ### Features + - This release adds support for CloudFront KeyValueStore, a globally managed key value datastore associated with CloudFront Functions. + +## __Amazon CloudFront KeyValueStore__ + - ### Features + - This release adds support for CloudFront KeyValueStore, a globally managed key value datastore associated with CloudFront Functions. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Amazon EC2. + +## __Amazon Simple Storage Service__ + - ### Features + - Add support for automatic date based partitioning in S3 Server Access Logs. + +## __Inspector Scan__ + - ### Features + - This release adds support for the new Amazon Inspector Scan API. The new Inspector Scan API can synchronously scan SBOMs adhering to the CycloneDX v1.5 format. + +# __2.21.27__ __2023-11-20__ +## __AWS CodeStar connections__ + - ### Features + - This release updates a few CodeStar Connections related APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Amazon DocumentDB updates for new cluster storage configuration: Amazon DocumentDB I/O-Optimized. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Security group referencing over Transit gateways, enabling you to simplify Security group management and control of instance-to-instance traffic across VPCs that are connected by Transit gateway. + +# __2.21.26__ __2023-11-17__ +## __AWS App Mesh__ + - ### Features + - Change the default value of these fields from 0 to null: MaxConnections, MaxPendingRequests, MaxRequests, HealthCheckThreshold, PortNumber, and HealthCheckPolicy -> port. Users are not expected to perceive the change, except that badRequestException is thrown when required fields missing configured. + +## __AWS Cloud9__ + - ### Features + - A minor doc only update related to changing the date of an API change. + +## __AWS CloudFormation__ + - ### Features + - This release adds a new flag ImportExistingResources to CreateChangeSet. Specify this parameter on a CREATE- or UPDATE-type change set to import existing resources with custom names instead of recreating them. + +## __AWS CodePipeline__ + - ### Features + - CodePipeline now supports overriding source revisions to achieve manual re-deploy of a past revision + +## __AWS CodeStar connections__ + - ### Features + - This release adds support for the CloudFormation Git sync feature. Git sync enables updating a CloudFormation stack from a template stored in a Git repository. + +## __AWS Elemental MediaLive__ + - ### Features + - MediaLive has now added support for per-output static image overlay. + +## __AWS SDK for Java v2__ + - ### Features + - Add the EKS container host to the allowed loopback addresses for ContainerCredentialsProvider. Validate the loopback addresses even for RelativeURI after they have been resolved. + - Updated endpoint and partition metadata. + +## __AWS SSO OIDC__ + - ### Features + - Adding support for `sso-oauth:CreateTokenWithIAM`. + +## __AWS Security Token Service__ + - ### Features + - API updates for the AWS Security Token Service + +## __AWS Single Sign-On Admin__ + - ### Features + - Improves support for configuring RefreshToken and TokenExchange grants on applications. + +## __Amazon Athena__ + - ### Features + - Adding SerivicePreProcessing time metric + +## __Amazon CloudWatch Internet Monitor__ + - ### Features + - Adds new querying capabilities for running data queries on a monitor + +## __Amazon Connect Service__ + - ### Features + - This release adds WISDOM_QUICK_RESPONSES as new IntegrationType of Connect IntegrationAssociation resource and bug fixes. + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release adds QuickResponse as a new Wisdom resource and Wisdom APIs for import, create, read, search, update and delete QuickResponse resources. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Added support for SAP HANA in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies with pre and post scripts. + +## __Amazon EC2 Container Registry__ + - ### Features + - Documentation and operational updates for Amazon ECR, adding support for pull through cache rules for upstream registries that require authentication. + +## __Amazon EMR__ + - ### Features + - Launch support for IAM Identity Center Trusted Identity Propagation and workspace storage encryption using AWS KMS in EMR Studio + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds new features for Amazon VPC IP Address Manager (IPAM) Allowing a choice between Free and Advanced Tiers, viewing public IP address insights across regions and in Amazon Cloudwatch, use IPAM to plan your subnet IPs within a VPC and bring your own autonomous system number to IPAM. + +## __Amazon EventBridge__ + - ### Features + - Introduces a new rule state ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS for matching with Get, List and Describe AWS API call events from CloudTrail. + +## __Amazon EventBridge Pipes__ + - ### Features + - TargetParameters now properly supports BatchJobParameters.ArrayProperties.Size and BatchJobParameters.RetryStrategy.Attempts being optional, and EcsTaskParameters.Overrides.EphemeralStorage.SizeInGiB now properly required when setting EphemeralStorage + +## __Amazon Interactive Video Service__ + - ### Features + - type & defaulting refinement to various range properties + +## __Amazon Interactive Video Service Chat__ + - ### Features + - type & defaulting refinement to various range properties + +## __Amazon Kinesis Video Streams__ + - ### Features + - Docs only build to bring up-to-date with public docs. + +## __Amazon Location Service__ + - ### Features + - Remove default value and allow nullable for request parameters having minimum value larger than zero. + +## __Amazon OpenSearch Ingestion__ + - ### Features + - Add support for enabling a persistent buffer when creating or updating an OpenSearch Ingestion pipeline. Add tags to Pipeline and PipelineSummary response models. + +## __Amazon Redshift__ + - ### Features + - Updated SDK for Amazon Redshift, which you can use to configure a connection with IAM Identity Center to manage access to databases. With these, you can create a connection through a managed application. You can also change a managed application, delete it, or get information about an existing one. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for option groups and replica enhancements to Amazon RDS Custom. + +## __Amazon Simple Storage Service__ + - ### Features + - Removes all default 0 values for numbers and false values for booleans + +## __Amazon Verified Permissions__ + - ### Features + - Adding BatchIsAuthorized API which supports multiple authorization requests against a PolicyStore + +## __Application Migration Service__ + - ### Features + - Removed invalid and unnecessary default values. + +## __Redshift Serverless__ + - ### Features + - Updated SDK for Amazon Redshift Serverless, which provides the ability to configure a connection with IAM Identity Center to manage user and group access to databases. + +## __TrustedAdvisor Public API__ + - ### Features + - AWS Trusted Advisor introduces new APIs to enable you to programmatically access Trusted Advisor best practice checks, recommendations, and prioritized recommendations. Trusted Advisor APIs enable you to integrate Trusted Advisor with your operational tools to automate your workloads. + +# __2.21.25__ __2023-11-16__ +## __AWS Elemental MediaPackage__ + - ### Features + - DRM_TOP_LEVEL_COMPACT allows placing content protection elements at the MPD level and referenced at the AdaptationSet level + +## __AWS Glue__ + - ### Features + - Introduces new column statistics APIs to support statistics generation for tables within the Glue Data Catalog. + +## __AWS IoT__ + - ### Features + - GA release the ability to index and search devices based on their GeoLocation data. With GeoQueries you can narrow your search to retrieve devices located in the desired geographic boundary. + +## __AWS Lambda__ + - ### Features + - Adds support for logging configuration in Lambda Functions. Customers will have more control how their function logs are captured and to which cloud watch log group they are delivered also. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Single Sign-On Admin__ + - ### Features + - Instances bound to a single AWS account, API operations for managing instances and applications, and assignments to applications are now supported. Trusted identity propagation is also supported, with new API operations for managing trusted token issuers and application grants and scopes. + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Introduces new APIs ListIncidentFindings and BatchGetIncidentFindings to use findings related to an incident. + +## __AWS Transfer Family__ + - ### Features + - Introduced S3StorageOptions for servers to enable directory listing optimizations and added Type fields to logical directory mappings. + +## __Amazon CodeCatalyst__ + - ### Features + - This release includes updates to the Dev Environment APIs to include an optional vpcConnectionName parameter that supports using Dev Environments with Amazon VPC. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - This release adds support for Amazon Data Lifecycle Manager default policies for EBS snapshots and EBS-backed AMIs. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Enable use of tenant-specific PublicSigningKeyUrl from device trust providers and onboard jumpcloud as a new device trust provider. + +## __Amazon FSx__ + - ### Features + - Enables customers to update their PerUnitStorageThroughput on their Lustre file systems. + +## __Amazon Interactive Video Service RealTime__ + - ### Features + - This release introduces server side composition and recording for stages. + +## __Amazon Macie 2__ + - ### Features + - This release adds support for configuring Macie to assume an IAM role when retrieving sample occurrences of sensitive data reported by findings. + +## __Amazon Pinpoint SMS Voice V2__ + - ### Features + - Amazon Pinpoint now offers additional operations as part of version 2 of the SMS and voice APIs. This release includes 26 new APIs to create and manage phone number registrations, add verified destination numbers, and request sender IDs. + +## __Amazon Polly__ + - ### Features + - Add new engine - long-form - dedicated for longer content, such as news articles, training materials, or marketing videos. + +## __Amazon QuickSight__ + - ### Features + - Custom permission support for QuickSight roles; Three new datasources STARBURST, TRINO, BIGQUERY; Lenient mode changes the default behavior to allow for exporting and importing with certain UI allowed errors, Support for permissions and tags export and import. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Studio now supports Trainium instance types - trn1.2xlarge, trn1.32xlarge, trn1n.32xlarge. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release introduces the ability to filter automation execution steps which have parent steps. In addition, runbook variable information is returned by GetAutomationExecution and parent step information is returned by the DescribeAutomationStepExecutions API. + +## __EC2 Image Builder__ + - ### Features + - This release adds the Image Lifecycle Management feature to automate the process of deprecating, disabling and deleting outdated images and their associated resources. + +## __Managed Streaming for Kafka__ + - ### Features + - Added a new API response field which determines if there is an action required from the customer regarding their cluster. + +# __2.21.24__ __2023-11-15__ +## __AWS CloudTrail__ + - ### Features + - The Lake Repricing feature lets customers configure a BillingMode for an event data store. The BillingMode determines the cost for ingesting and storing events and the default and maximum retention period for the event data store. + +## __AWS Lambda__ + - ### Features + - Add Java 21 (java21) support to AWS Lambda + +## __AWS S3 Control__ + - ### Features + - Add 5 APIs to create, update, get, list, delete S3 Storage Lens group(eg. CreateStorageLensGroup), 3 APIs for tagging(TagResource,UntagResource,ListTagsForResource), and update to StorageLensConfiguration to allow metrics to be aggregated on Storage Lens groups. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Systems Manager for SAP__ + - ### Features + - Update the default value of MaxResult to 50. + +## __Amazon CodeCatalyst__ + - ### Features + - This release adds functionality for retrieving information about workflows and workflow runs and starting workflow runs in Amazon CodeCatalyst. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - AWS EBS now supports Snapshot Lock, giving users the ability to lock an EBS Snapshot to prohibit deletion of the snapshot. This release introduces the LockSnapshot, UnlockSnapshot & DescribeLockedSnapshots APIs to manage lock configuration for snapshots. The release also includes the dl2q_24xlarge. + +## __Amazon Redshift__ + - ### Features + - The custom domain name SDK for Amazon Redshift provisioned clusters is updated with additional required parameters for modify and delete operations. Additionally, users can provide domain names with longer top-level domains. + +## __Amazon Relational Database Service__ + - ### Features + - Updates Amazon RDS documentation for support for upgrading RDS for MySQL snapshots from version 5.7 to version 8.0. + +## __AmazonMWAA__ + - ### Features + - This Amazon MWAA release adds support for customer-managed VPC endpoints. This lets you choose whether to create, and manage your environment's VPC endpoints, or to have Amazon MWAA create, and manage them for you. + +## __Auto Scaling__ + - ### Features + - This release introduces Instance Maintenance Policy, a new EC2 Auto Scaling capability that allows customers to define whether instances are launched before or after existing instances are terminated during instance replacement operations. + +## __FinSpace Public API__ + - ### Features + - Adding deprecated trait to APIs in this name space. + +## __FinSpace User Environment Management service__ + - ### Features + - Adding deprecated trait on Dataset Browser Environment APIs + +# __2.21.23__ __2023-11-14__ +## __AWS Backup__ + - ### Features + - AWS Backup - Features: Provide Job Summary for your backup activity. + +## __AWS Clean Rooms Service__ + - ### Features + - This feature provides the ability for the collaboration creator to configure either the member who can run queries or a different member in the collaboration to be billed for query compute costs. + +## __AWS Glue__ + - ### Features + - Introduces new storage optimization APIs to support automatic compaction of Apache Iceberg tables. + +## __AWS IoT__ + - ### Features + - This release introduces new attributes in API CreateSecurityProfile, UpdateSecurityProfile and DescribeSecurityProfile to support management of Metrics Export for AWS IoT Device Defender Detect. + +## __AWS Lambda__ + - ### Features + - Add Python 3.12 (python3.12) support to AWS Lambda + +## __AWS MediaTailor__ + - ### Features + - Removed unnecessary default values. + +## __AWS Resource Explorer__ + - ### Features + - Resource Explorer supports multi-account search. You can now use Resource Explorer to search and discover resources across AWS accounts within your organization or organizational unit. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Signer__ + - ### Features + - Documentation updates for AWS Signer + +## __AWS Step Functions__ + - ### Features + - This release adds support to redrive executions in AWS Step Functions with a new RedriveExecution operation. + +## __Amazon Connect Service__ + - ### Features + - Introducing SegmentAttributes parameter for StartChatContact API + +## __Amazon EventBridge Pipes__ + - ### Features + - Added support (via new LogConfiguration field in CreatePipe and UpdatePipe APIs) for logging to Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3), and Amazon Kinesis Data Firehose + +## __Amazon SageMaker Service__ + - ### Features + - This release makes Model Registry Inference Specification fields as not required. + +# __2.21.22__ __2023-11-13__ +## __AWS Data Exchange__ + - ### Features + - Removed Required trait for DataSet.OriginDetails.ProductId. + +## __AWS Database Migration Service__ + - ### Features + - Added new Db2 LUW Target endpoint with related endpoint settings. New executeTimeout endpoint setting for mysql endpoint. New ReplicationDeprovisionTime field for serverless describe-replications. + +## __AWS SDK for Java v2__ + - ### Features + - SdkPlugins can now see and modify all configuration set on the client, including default values + - The `serviceClientConfiguration` from SDK clients now includes the defaults set by the SDK. + - Updated endpoint and partition metadata. + +## __AWS Service Catalog App Registry__ + - ### Features + - When the customer associates a resource collection to their application with this new feature, then a new application tag will be applied to all supported resources that are part of that collection. This allows customers to more easily find the application that is associated with those resources. + +## __Amazon CodeCatalyst__ + - ### Documentations + - If you see a NullPointerException from DefaultCodeCatalystBaseClientBuilder after upgrading to this version, ensure you're not using an old version of codecatalyst. + +## __Amazon EC2 Container Service__ + - ### Features + - Adds a Client Token parameter to the ECS RunTask API. The Client Token parameter allows for idempotent RunTask requests. + +## __Amazon EMR__ + - ### Features + - Updated GetClusterSessionCredentials API to allow Amazon SageMaker Studio to connect to EMR on EC2 clusters to support IdentityCenter/PEZ integration. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds the new EC2 DescribeInstanceTopology API, which you can use to retrieve the network topology of your running instances on select platform types to determine their relative proximity to each other. + +## __Amazon Transcribe Streaming Service__ + - ### Features + - This release enables customers to call the AWS Transcribe streaming service with the capability of identifying multiple languages in the stream. + +# __2.21.21__ __2023-11-10__ +## __AWS Control Tower__ + - ### Features + - AWS Control Tower supports tagging for enabled controls. This release introduces TagResource, UntagResource and ListTagsForResource APIs to manage tags in existing enabled controls. It updates EnabledControl API to tag resources at creation time. + +## __AWS Cost and Usage Report Service__ + - ### Features + - This release adds support for tagging and customers can now tag report definitions. Additionally, ReportStatus is now added to report definition to show when the last delivered time stamp and if it succeeded or not. + +## __AWS Elemental MediaConvert__ + - ### Features + - This release includes the ability to specify any input source as the primary input for corresponding follow modes, and allows users to specify fit and fill behaviors without resizing content. + +## __AWS Marketplace Entitlement Service__ + - ### Features + - Add paginators to GetEntitlements. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - EC2 adds API updates to enable ENA Express at instance launch time. + +## __Amazon Relational Database Service__ + - ### Features + - Updates Amazon RDS documentation for zero-ETL integrations. + +## __Amazon S3__ + - ### Features + - Create a plugin framework for Code-gen to consume plugins specified in customization.config and configure them on the client instance + - Contributed by: [@anirudh9391](https://github.com/anirudh9391) + +## __Firewall Management Service__ + - ### Features + - Adds optimizeUnassociatedWebACL flag to ManagedServiceData, updates third-party firewall examples, and other minor documentation updates. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix an issue where data received on a channel while it was idling was not handled until the channel was leased again for a request. This caused issues such as late notification of channel closes, manifesting as channels being closed at the beginning of a request. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@anirudh9391](https://github.com/anirudh9391) +# __2.21.20__ __2023-11-09__ +## __AWS CloudFormation__ + - ### Features + - Added new ConcurrencyMode feature for AWS CloudFormation StackSets for faster deployments to target accounts. + +## __AWS CloudTrail__ + - ### Features + - The Insights in Lake feature lets customers enable CloudTrail Insights on a source CloudTrail Lake event data store and create a destination event data store to collect Insights events based on unusual management event activity in the source event data store. + +## __AWS Lambda__ + - ### Features + - Add Custom runtime on Amazon Linux 2023 (provided.al2023) support to AWS Lambda. + +## __Amazon CloudWatch Logs__ + - ### Features + - Update to support new APIs for delivery of logs from AWS services. + +## __Amazon Comprehend__ + - ### Features + - This release adds support for toxicity detection and prompt safety classification. + +## __Amazon Connect Service__ + - ### Features + - This release adds the ability to integrate customer lambda functions with Connect attachments for scanning and updates the ListIntegrationAssociations API to support filtering on IntegrationArn. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - AWS EBS now supports Block Public Access for EBS Snapshots. This release introduces the EnableSnapshotBlockPublicAccess, DisableSnapshotBlockPublicAccess and GetSnapshotBlockPublicAccessState APIs to manage account-level public access settings for EBS Snapshots in an AWS Region. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Adding EKS Anywhere subscription related operations. + +## __Amazon Omics__ + - ### Features + - Support UBAM filetype for Omics Storage and make referenceArn optional + +# __2.21.19__ __2023-11-08__ +## __Amazon Simple Queue Service__ + - ### Features + - This release enables customers to call SQS using AWS JSON-1.0 protocol and bug fix. + +# __2.21.18__ __2023-11-08__ +## __AWS DataSync__ + - ### Features + - This change allows for 0 length access keys and secret keys for object storage locations. Users can now pass in empty string credentials. + +## __AWS Lambda__ + - ### Features + - Add Node 20 (nodejs20.x) support to AWS Lambda. + +## __AWS Resilience Hub__ + - ### Features + - AWS Resilience Hub enhances Resiliency Score, providing actionable recommendations to improve application resilience. Amazon Elastic Kubernetes Service (EKS) operational recommendations have been added to help improve the resilience posture of your applications. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Cases__ + - ### Features + - This release adds the ability to add/view comment authors through CreateRelatedItem and SearchRelatedItems API. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html + +## __Amazon Connect Service__ + - ### Features + - This release clarifies in our public documentation that InstanceId is a requirement for SearchUsers API requests. + +## __Amazon GuardDuty__ + - ### Features + - Added API support for new GuardDuty EKS Audit Log finding types. + +## __Amazon Lex Model Building V2__ + - ### Features + - AWS Lex now supports selective log capture in conversation logs. When you enable this option within the conversation log settings, only the utterances that trigger intents and slots specified in session attributes will be logged. + +## __Amazon Omics__ + - ### Features + - Adding Run UUID and Run Output URI: GetRun and StartRun API response has two new fields "uuid" and "runOutputUri". + +## __Amazon Relational Database Service__ + - ### Features + - This Amazon RDS release adds support for patching the OS of an RDS Custom for Oracle DB instance. You can now upgrade the database or operating system using the modify-db-instance command. + +## __Amazon Simple Queue Service__ + - ### Features + - This release enables customers to call SQS using AWS JSON-1.0 protocol. + +## __Redshift Serverless__ + - ### Features + - Added a new parameter in the workgroup that helps you control your cost for compute resources. This feature provides a ceiling for RPUs that Amazon Redshift Serverless can scale up to. When automatic compute scaling is required, having a higher value for MaxRPU can enhance query throughput. + +# __2.21.17__ __2023-11-07__ +## __AWS Data Exchange__ + - ### Features + - Updated SendDataSetNotificationRequest Comment to be maximum length 4096. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Added support for pre and post scripts in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies. + +## __Amazon Relational Database Service__ + - ### Features + - This Amazon RDS release adds support for the multi-tenant configuration. In this configuration, an RDS DB instance can contain multiple tenant databases. In RDS for Oracle, a tenant database is a pluggable database (PDB). + +# __2.21.16__ __2023-11-06__ +## __AWS CodeBuild__ + - ### Features + - AWS CodeBuild now supports AWS Lambda compute. + +## __AWS Cost Explorer Service__ + - ### Features + - This release extends the GetReservationPurchaseRecommendation API to support recommendations for Amazon MemoryDB reservations. + +## __AWS Identity and Access Management__ + - ### Features + - Add partitional endpoint for iso-e. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - Added new API that allows Amazon Connect Outbound Campaigns to create contacts in Amazon Connect when ingesting your dial requests. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Update the input of CreateDBInstance and ModifyDBInstance to support setting CA Certificates. Update the output of DescribeDBInstance and DescribeDBEngineVersions to show current and supported CA certificates. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new US English voices - Danielle and Gregory. Danielle and Gregory are available as Neural voices only. + +## __Amazon Route 53__ + - ### Features + - Add partitional endpoints for iso-e and iso-f. + +## __AmazonMWAA__ + - ### Features + - This release adds support for Apache Airflow version 2.7.2. This version release includes support for deferrable operators and triggers. + +## __s3__ + - ### Features + - Move the service to the standardized AWS SDK architecture for identity and auth that was introduced in 2.21.0 release. + +# __2.21.15__ __2023-11-03__ +## __AWS Config__ + - ### Features + - Updated ResourceType enum with new resource types onboarded by AWS Config in October 2023. + +## __AWS IoT Wireless__ + - ### Features + - Added LoRaWAN version 1.0.4 support + +## __AWS Launch Wizard__ + - ### Features + - AWS Launch Wizard is a service that helps reduce the time it takes to deploy applications to the cloud while providing a guided deployment experience. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed the AttributeMap#close method trying to close an ExecutorService instance instead of shutting it down, resulting in a deadlock starting with Java 21 + - Contributed by: [@michaeldimchuk](https://github.com/michaeldimchuk) + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect Chat introduces Create Persistent Contact Association API, allowing customers to choose when to resume previous conversations from previous chats, eliminating the need to repeat themselves and allowing agents to provide personalized service with access to entire conversation history. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@michaeldimchuk](https://github.com/michaeldimchuk) +# __2.21.14__ __2023-11-02__ +## __AWS App Runner__ + - ### Features + - AWS App Runner now supports using dual-stack address type for the public endpoint of your incoming traffic. + +## __AWS Glue__ + - ### Features + - This release introduces Google BigQuery Source and Target in AWS Glue CodeGenConfigurationNode. + +## __AWS Network Firewall__ + - ### Features + - This release introduces the stateless rule analyzer, which enables you to analyze your stateless rules for asymmetric routing. + +## __AWS SDK for Java v2__ + - ### Features + - Makes SignedRequest and AsyncSignedRequest implement CopyableBuilder to allow modifications + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - GetMetricDataV2 API: Update to include new metrics PERCENT_NON_TALK_TIME, PERCENT_TALK_TIME, PERCENT_TALK_TIME_AGENT, PERCENT_TALK_TIME_CUSTOMER + +## __Amazon GameLift__ + - ### Features + - Amazon GameLift adds support for shared credentials, which allows applications that are deployed on managed EC2 fleets to interact with other AWS resources. + +## __Amazon QuickSight__ + - ### Features + - This release introduces Float Decimal Type as SubType in QuickSight SPICE datasets and Custom week start and Custom timezone options in Analysis and Dashboard. + +# __2.21.13__ __2023-11-01__ +## __AWS Global Accelerator__ + - ### Features + - Global Accelerator now support accelerators with cross account endpoints. + +## __AWS SDK for Java v2__ + - ### Features + - Add `cloudwatch-metric-publisher` to `aws-sdk-java` module so that it can be included in the bundle JAR. + +## __Amazon Connect Service__ + - ### Features + - Adds the BatchGetFlowAssociation API which returns flow associations (flow-resource) corresponding to the list of resourceArns supplied in the request. This release also adds IsDefault, LastModifiedRegion and LastModifiedTime fields to the responses of several Describe and List APIs. + +## __Amazon Redshift__ + - ### Features + - Added support for Multi-AZ deployments for Provisioned RA3 clusters that provide 99.99% SLA availability. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for customized networking resources to Amazon RDS Custom. + +## __Amazon SageMaker Service__ + - ### Features + - Support for batch transform input in Model dashboard + +# __2.21.12__ __2023-10-31__ +## __AWS Amplify__ + - ### Features + - Add backend field to CreateBranch and UpdateBranch requests. Add pagination support for ListApps, ListDomainAssociations, ListBranches, and ListJobs + +## __AWS SDK for Java v2__ + - ### Features + - Introduce `AsyncRequestBody#fromInputStream(AsyncRequestBodyFromInputStreamConfiguration)` that allows users to specify the max read limit on the provided InputStream. + +## __AWSMainframeModernization__ + - ### Features + - Added name filter ability for ListDataSets API, added ForceUpdate for Updating environment and BatchJob submission using S3BatchJobIdentifier + +## __Amazon CloudWatch Application Insights__ + - ### Features + - Automate attaching managed policies + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Capacity Blocks for ML are a new EC2 purchasing option for reserving GPU instances on a future date to support short duration machine learning (ML) workloads. Capacity Blocks automatically place instances close together inside Amazon EC2 UltraClusters for low-latency, high-throughput networking. + +## __Amazon NeptuneData__ + - ### Features + - Minor change to not retry CancelledByUserException + +## __Amazon Translate__ + - ### Features + - Added support for Brevity translation settings feature. + +# __2.21.11__ __2023-10-30__ +## __AWS CRT-based S3 Client__ + - ### Features + - Add the cause of failure to the stacktrace if present for the AWS CRT-based S3 client. Related to [aws-crt-java#497](https://github.com/awslabs/aws-crt-java/issues/697). + +## __AWS Data Exchange__ + - ### Features + - We added a new API action: SendDataSetNotification. + +## __AWS DataSync__ + - ### Features + - Platform version changes to support AL1 deprecation initiative. + +## __AWS Elemental MediaPackage v2__ + - ### Features + - This feature allows customers to create a combination of manifest filtering, startover and time delay configuration that applies to all egress requests by default. + +## __AWS Resilience Hub__ + - ### Features + - Introduced the ability to filter applications by their last assessment date and time and have included metrics for the application's estimated workload Recovery Time Objective (RTO) and estimated workload Recovery Point Objective (RPO). + +## __Amazon Connect Service__ + - ### Features + - This release adds InstanceId field for phone number APIs. + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release added necessary API documents on creating a Wisdom knowledge base to integrate with S3. + +## __Amazon Relational Database Service__ + - ### Features + - This release launches the CreateIntegration, DeleteIntegration, and DescribeIntegrations APIs to manage zero-ETL Integrations. + +## __Amazon S3 on Outposts__ + - ### Features + - Updated ListOutpostsWithS3 API response to include S3OutpostArn for use with AWS RAM. + +## __FinSpace User Environment Management service__ + - ### Features + - Introducing new API UpdateKxClusterCodeConfiguration, introducing new cache types for clusters and introducing new deployment modes for updating clusters. + +## __Redshift Serverless__ + - ### Features + - Added support for custom domain names for Amazon Redshift Serverless workgroups. This feature enables customers to create a custom domain name and use ACM to generate fully secure connections to it. + +# __2.21.10__ __2023-10-27__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - Updates the descriptions for the calls that manage web ACL associations, to provide information for customer-managed IAM policies. + +## __Amazon EMR__ + - ### Features + - Updated CreateCluster API request and DescribeCluster API responses to include EbsRootVolumeIops, and EbsRootVolumeThroughput attributes that specify the user configured root volume IOPS and throughput for Amazon EBS root device volume. This feature will be available from Amazon EMR releases 6.15.0 + +## __Amazon Neptune__ + - ### Features + - Update TdeCredentialPassword type to SensitiveString + +## __Amazon Pinpoint__ + - ### Features + - Updated documentation to describe the case insensitivity for EndpointIds. + +## __Amazon Redshift__ + - ### Features + - added support to create a dual stack cluster + +# __2.21.9__ __2023-10-26__ +## __AWS Network Firewall__ + - ### Features + - Network Firewall now supports inspection of outbound SSL/TLS traffic. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Systems Manager for SAP__ + - ### Features + - AWS Systems Manager for SAP added support for registration and discovery of SAP ABAP applications + +## __AWS Transfer Family__ + - ### Features + - No API changes from previous release. This release migrated the model to Smithy keeping all features unchanged. + +## __Amazon AppStream__ + - ### Features + - This release introduces multi-session fleets, allowing customers to provision more than one user session on a single fleet instance. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Launching GetSecurityGroupsForVpc API. This API gets security groups that can be associated by the AWS account making the request with network interfaces in the specified VPC. + +## __Amazon OpenSearch Service__ + - ### Features + - You can specify ipv4 or dualstack IPAddressType for cluster endpoints. If you specify IPAddressType as dualstack, the new endpoint will be visible under the 'EndpointV2' parameter and will support IPv4 and IPv6 requests. Whereas, the 'Endpoint' will continue to serve IPv4 requests. + +## __Amazon Redshift__ + - ### Features + - Add Redshift APIs GetResourcePolicy, DeleteResourcePolicy, PutResourcePolicy and DescribeInboundIntegrations for the new Amazon Redshift Zero-ETL integration feature, which can be used to control data ingress into Redshift namespace, and view inbound integrations. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon Sagemaker Autopilot now supports Text Generation jobs. + +## __Amazon Simple Notification Service__ + - ### Features + - Message Archiving and Replay is now supported in Amazon SNS for FIFO topics. + +# __2.21.8__ __2023-10-25__ +## __AWS Ground Station__ + - ### Features + - This release will allow KMS alias names to be used when creating Mission Profiles + +## __AWS Identity and Access Management__ + - ### Features + - Updates to GetAccessKeyLastUsed action to replace NoSuchEntity error with AccessDeniedException error. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed concurrency bug with ResolvedChecksumSpecs execution-attribute and associated mappings https://github.com/aws/aws-sdk-java-v2/issues/4608 + +## __Amazon Connect Cases__ + - ### Features + - Increase maximum length of CommentBody to 3000, and increase maximum length of StringValue to 1500 + +# __2.21.7__ __2023-10-24__ +## __AWS CodePipeline__ + - ### Features + - Add ability to trigger pipelines from git tags, define variables at pipeline level and new pipeline type V2. + +## __AWS Identity and Access Management__ + - ### Features + - Add the partitional endpoint for IAM in iso-f. + +## __AWS Migration Hub Config__ + - ### Features + - This release introduces DeleteHomeRegionControl API that customers can use to delete the Migration Hub Home Region configuration + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release updates the documentation for InstanceInterruptionBehavior and HibernationOptionsRequest to more accurately describe the behavior of these two parameters when using Spot hibernation. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Added support for Cluster Subnet and Security Group mutability. + +## __Migration Hub Strategy Recommendations__ + - ### Features + - This release introduces multi-data-source feature in Migration Hub Strategy Recommendations. This feature now supports vCenter as a data source to fetch inventory in addition to ADS and Import from file workflow that is currently supported with MHSR collector. + +## __OpenSearch Service Serverless__ + - ### Features + - This release includes the following new APIs: CreateLifecyclePolicy, UpdateLifecyclePolicy, BatchGetLifecyclePolicy, DeleteLifecyclePolicy, ListLifecyclePolicies and BatchGetEffectiveLifecyclePolicy to support the data lifecycle management feature. + +# __2.21.6__ __2023-10-23__ +## __AWS Marketplace Commerce Analytics__ + - ### Features + - The StartSupportDataExport operation has been deprecated as part of the Product Support Connection deprecation. As of December 2022, Product Support Connection is no longer supported. + +## __AWS Network Manager__ + - ### Features + - This release adds API support for Tunnel-less Connect (NoEncap Protocol) for AWS Cloud WAN + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Rekognition__ + - ### Features + - Amazon Rekognition introduces StartMediaAnalysisJob, GetMediaAnalysisJob, and ListMediaAnalysisJobs operations to run a bulk analysis of images with a Detect Moderation model. + +## __Redshift Serverless__ + - ### Features + - This release adds support for customers to see the patch version and workgroup version in Amazon Redshift Serverless. + +# __2.21.5__ __2023-10-20__ +## __AWS Application Discovery Service__ + - ### Features + - This release introduces three new APIs: StartBatchDeleteConfigurationTask, DescribeBatchDeleteConfigurationTask, and BatchDeleteAgents. + +## __AWS Health Imaging__ + - ### Features + - Updates on documentation links + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Removed mapping for RESOLVED_CHECKSUM_SPECS execution attribute that was causing intermittent failures for S3 operations with checksums since 2.21.0 release. The bug can cause `java.lang.NullPointerException: Cannot read field "value" because "s1" is null` exceptions, as reported in https://github.com/aws/aws-sdk-java-v2/issues/4608. + +## __Amazon AppConfig__ + - ### Features + - Update KmsKeyIdentifier constraints to support AWS KMS multi-Region keys. + +## __Amazon AppIntegrations Service__ + - ### Features + - Updated ScheduleConfig to be an optional input to CreateDataIntegration to support event driven downloading of files from sources such as Amazon s3 using Amazon Connect AppIntegrations. + +## __Amazon Connect Service__ + - ### Features + - This release adds support for updating phone number metadata, such as phone number description. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release introduces a new API: DeleteOpsItem. This allows deletion of an OpsItem. + +# __2.21.4__ __2023-10-19__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Netty version bump to address CVE-2023-44487 + - Contributed by: [@mgrundie-r7](https://github.com/mgrundie-r7) + +## __AWS Secrets Manager__ + - ### Features + - Documentation updates for Secrets Manager + +## __AWS Service Catalog__ + - ### Features + - Introduce support for EXTERNAL product and provisioning artifact type in CreateProduct and CreateProvisioningArtifact APIs. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 C7a instances, powered by 4th generation AMD EPYC processors, are ideal for high performance, compute-intensive workloads such as high performance computing. Amazon EC2 R7i instances are next-generation memory optimized and powered by custom 4th Generation Intel Xeon Scalable processors. + +## __Amazon Managed Blockchain Query__ + - ### Features + - This release adds support for Ethereum Sepolia network + +## __Amazon NeptuneData__ + - ### Features + - Doc changes to add IAM action mappings for the data actions. + +## __Amazon Omics__ + - ### Features + - This change enables customers to retrieve failure reasons with detailed status messages for their failed runs + +## __Amazon OpenSearch Service__ + - ### Features + - Added Cluster Administrative options for node restart, opensearch process restart and opensearch dashboard restart for Multi-AZ without standby domains + +## __Amazon QuickSight__ + - ### Features + - This release adds the following: 1) Trino and Starburst Database Connectors 2) Custom total for tables and pivot tables 3) Enable restricted folders 4) Add rolling dates for time equality filters 5) Refine DataPathValue and introduce DataPathType 6) Add SeriesType to ReferenceLineDataConfiguration + +## __Amazon Verified Permissions__ + - ### Features + - Improving Amazon Verified Permissions Create experience + +## __Amazon WorkSpaces__ + - ### Features + - Documentation updates for WorkSpaces + +## __glacier__ + - ### Features + - Move the service to the standardized AWS SDK architecture for identity and auth that was introduced in 2.21.0 release. + +## __s3control__ + - ### Features + - Move the service to the standardized AWS SDK architecture for identity and auth that was introduced in 2.21.0 release. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@mgrundie-r7](https://github.com/mgrundie-r7) +# __2.21.3__ __2023-10-18__ +## __AWS Cloud9__ + - ### Features + - Update to imageId parameter behavior and dates updated. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWSKendraFrontendService__ + - ### Features + - Changes for a new feature in Amazon Kendra's Query API to Collapse/Expand query results + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release adds an max limit of 25 recommendation ids for NotifyRecommendationsReceived API. + +## __Amazon DynamoDB__ + - ### Features + - Updating descriptions for several APIs. + +## __Amazon Polly__ + - ### Bugfixes + - The Scala compiler gets confused when overriding a method with a more specific return type in the interface. To work around this we added a default implementation that fixes this issue with local testing. + - Contributed by: [@sugmanue](https://github.com/sugmanue) + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for upgrading the storage file system configuration on the DB instance using a blue/green deployment or a read replica. + +## __Amazon S3__ + - ### Bugfixes + - The Scala compiler gets confused when overriding a method with a more specific return type in the interface. To work around this we added a default implementation that fixes this issue with local testing. + - Contributed by: [@sugmanue](https://github.com/sugmanue) + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@sugmanue](https://github.com/sugmanue) +# __2.21.2__ __2023-10-17__ +## __AWS Application Discovery Service__ + - ### Features + - This release introduces three new APIs: StartBatchDeleteConfigurationTask, DescribeBatchDeleteConfigurationTask, and BatchDeleteAgents. + +## __AWS CRT-based S3 client__ + - ### Features + - Added a boolean flag, 'useEnvironmentVariableValues,' to the S3CrtProxyConfiguration to enable the disabling of reading ProxyConfig from environment variables by the CRT client. + +## __AWS CodePipeline__ + - ### Features + - Add retryMode ALL_ACTIONS to RetryStageExecution API that retries a failed stage starting from first action in the stage + +## __AWS Global Accelerator__ + - ### Features + - Fixed error where ListCustomRoutingEndpointGroups did not have a paginator + +## __AWS Route53 Recovery Control Config__ + - ### Features + - Adds permissions for GetResourcePolicy to support returning details about AWS Resource Access Manager resource policies for shared resources. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation only updates to address Amazon ECS tickets. + +## __Amazon GuardDuty__ + - ### Features + - Add domainWithSuffix finding field to dnsRequestAction + +## __Managed Streaming for Kafka__ + - ### Features + - AWS Managed Streaming for Kafka is launching MSK Replicator, a new feature that enables customers to reliably replicate data across Amazon MSK clusters in same or different AWS regions. You can now use SDK to create, list, describe, delete, update, and manage tags of MSK Replicators. + +## __Route53 Recovery Cluster__ + - ### Features + - Adds Owner field to ListRoutingControls API. + +# __2.21.1__ __2023-10-16__ +## __AWS CloudFormation__ + - ### Features + - SDK and documentation updates for UpdateReplacePolicy + +## __AWS Elemental MediaPackage v2__ + - ### Features + - This release allows customers to manage MediaPackage v2 resource using CloudFormation. + +## __AWS EntityResolution__ + - ### Features + - This launch expands our matching techniques to include provider-based matching to help customer match, link, and enhance records with minimal data movement. With data service providers, we have removed the need for customers to build bespoke integrations,. + +## __AWS SDK for Java v2__ + - ### Features + - Adds support for non-XML String payloads + - Proxy Configuration from Environment Variables for all SDK clients, including Apache, Netty, URL, and CRT HTTP clients PR [#4467](https://github.com/aws/aws-sdk-java-v2/issues/4467) + - Updated endpoint and partition metadata. + +## __AWS Transfer Family__ + - ### Features + - Documentation updates for AWS Transfer Family + +## __AWS X-Ray__ + - ### Features + - This releases enhances GetTraceSummaries API to support new TimeRangeType Service to query trace summaries by segment end time. + +## __Amazon Managed Blockchain Query__ + - ### Features + - This release introduces two new APIs: GetAssetContract and ListAssetContracts. This release also adds support for Bitcoin Testnet. + +## __Amazon OpenSearch Service__ + - ### Features + - This release allows customers to list and associate optional plugin packages with compatible Amazon OpenSearch Service clusters for enhanced functionality. + +## __Amazon Redshift__ + - ### Features + - Added support for managing credentials of provisioned cluster admin using AWS Secrets Manager. + +## __Amazon Simple Email Service__ + - ### Features + - This release provides enhanced visibility into your SES identity verification status. This will offer you more actionable insights, enabling you to promptly address any verification-related issues. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Updated exsiting API to allow AWS Elastic Disaster Recovery support of launching recovery into existing EC2 instances. + +## __Redshift Serverless__ + - ### Features + - Added support for managing credentials of serverless namespace admin using AWS Secrets Manager. + +# __2.21.0__ __2023-10-12__ +## __AWS Audit Manager__ + - ### Features + - This release introduces a new limit to the awsAccounts parameter. When you create or update an assessment, there is now a limit of 200 AWS accounts that can be specified in the assessment scope. + +## __AWS Config__ + - ### Features + - Add enums for resource types supported by Config + +## __AWS Control Tower__ + - ### Features + - Added new EnabledControl resource details to ListEnabledControls API and added new GetEnabledControl API. + +## __AWS Glue__ + - ### Features + - Extending version control support to GitLab and Bitbucket from AWSGlue + +## __AWS Lambda__ + - ### Features + - Adds support for Lambda functions to access Dual-Stack subnets over IPv6, via an opt-in flag in CreateFunction and UpdateFunctionConfiguration APIs + +## __AWS Price List Service__ + - ### Features + - Documentation updates for Price List + +## __AWS SDK for Java v2__ + - ### Features + - This release contains a major internal refactor of authentication. The refactor is part of moving the SDK to a standardized AWS SDK architecture. + + It paves the way for new features to be released over the coming months: SDK plugins to provide a unified interface to add third-party functionality to the SDK and the ability to define additional ways of authenticating with services. + + With this release, custom 3rd party credential providers can be created with fewer SDK dependencies (with the new `identity-spi` module), and AWS signers can be used with fewer SDK dependencies (with the new `http-auth-aws` module). + + Because this is a major refactor that may result in backwards-compatible behavior changes, this release bumps the minor version of the SDK to 2.21. + - Updated endpoint and partition metadata. + +## __Amazon Connect Customer Profiles__ + - ### Features + - Adds sensitive trait to various shapes in Customer Profiles Calculated Attribute API model. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds Ubuntu Pro as a supported platform for On-Demand Capacity Reservations and adds support for setting an Amazon Machine Image (AMI) to disabled state. Disabling the AMI makes it private if it was previously shared, and prevents new EC2 instance launches from it. + +## __Amazon Interactive Video Service RealTime__ + - ### Features + - Update GetParticipant to return additional metadata. + +## __Amazon Location Service__ + - ### Features + - This release adds endpoint updates for all AWS Location resource operations. + +## __Amazon Machine Learning__ + - ### Features + - This release marks Password field as sensitive + +## __Amazon Rekognition__ + - ### Features + - Amazon Rekognition introduces support for Custom Moderation. This allows the enhancement of accuracy for detect moderation labels operations by creating custom adapters tuned on customer data. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for adding a dedicated log volume to open-source RDS instances. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Canvas adds KendraSettings and DirectDeploySettings support for CanvasAppSettings + +## __Amazon Textract__ + - ### Features + - This release adds 9 new APIs for adapter and adapter version management, 3 new APIs for tagging, and updates AnalyzeDocument and StartDocumentAnalysis API parameters for using adapters. + +## __Amazon Transcribe Service__ + - ### Features + - This release is to enable m4a format to customers + +## __Amazon WorkSpaces__ + - ### Features + - Updated the CreateWorkspaces action documentation to clarify that the PCoIP protocol is only available for Windows bundles. + +## __Auto Scaling__ + - ### Features + - Update the NotificationMetadata field to only allow visible ascii characters. Add paginators to DescribeInstanceRefreshes, DescribeLoadBalancers, and DescribeLoadBalancerTargetGroups + +## __DynamoDB Enhanced Client__ + - ### Bugfixes + - Fix an issue where the presence of a `MappedTableResource` was being unnecessarily asserted when building a `WriteBatch` or `ReadBatch`. + +## __Elastic Load Balancing__ + - ### Features + - This release enables routing policies with Availability Zone affinity for Network Load Balancers. + +## __Inspector2__ + - ### Features + - Add MacOs ec2 platform support diff --git a/changelogs/2.22.x-CHANGELOG.md b/changelogs/2.22.x-CHANGELOG.md new file mode 100644 index 000000000000..b782c54ca909 --- /dev/null +++ b/changelogs/2.22.x-CHANGELOG.md @@ -0,0 +1,334 @@ +# __2.22.13__ __2024-01-08__ +## __AWS CodeBuild__ + - ### Features + - Aws CodeBuild now supports new compute type BUILD_GENERAL1_XLARGE + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 R7iz bare metal instances are powered by custom 4th generation Intel Xeon Scalable processors. + +## __Amazon Route 53 Resolver__ + - ### Features + - This release adds support for query type configuration on firewall rules that enables customers for granular action (ALLOW, ALERT, BLOCK) by DNS query type. + +# __2.22.12__ __2024-01-05__ +## __AWS Key Management Service__ + - ### Features + - Documentation updates for AWS Key Management Service (KMS). + +## __Amazon Connect Service__ + - ### Features + - Minor trait updates for User APIs + +## __Amazon Q Connect__ + - ### Features + - Marked SearchQuickResponses API as readonly. + +## __Redshift Serverless__ + - ### Features + - use_fips_ssl and require_ssl parameter support for Workgroup, UpdateWorkgroup, and CreateWorkgroup + +# __2.22.11__ __2024-01-04__ +## __AWS Config__ + - ### Features + - Updated ResourceType enum with new resource types onboarded by AWS Config in November and December 2023. + +## __AWS Service Catalog__ + - ### Features + - Added Idempotency token support to Service Catalog AssociateServiceActionWithProvisioningArtifact, DisassociateServiceActionFromProvisioningArtifact, DeleteServiceAction API + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - Adding PerformanceInsightsEnabled and PerformanceInsightsKMSKeyId fields to DescribeDBInstances Response. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for managed instance draining which facilitates graceful termination of Amazon ECS instances. + +## __Amazon Elasticsearch Service__ + - ### Features + - This release adds support for new or existing Amazon OpenSearch domains to enable TLS 1.3 or TLS 1.2 with perfect forward secrecy cipher suites for domain endpoints. + +## __Amazon Lightsail__ + - ### Features + - This release adds support to set up an HTTPS endpoint on an instance. + +## __Amazon OpenSearch Service__ + - ### Features + - This release adds support for new or existing Amazon OpenSearch domains to enable TLS 1.3 or TLS 1.2 with perfect forward secrecy cipher suites for domain endpoints. + +## __Amazon SageMaker Service__ + - ### Features + - Adding support for provisioned throughput mode for SageMaker Feature Groups + +# __2.22.10__ __2024-01-03__ +## __AWS Elemental MediaConvert__ + - ### Features + - This release includes video engine updates including HEVC improvements, support for ingesting VP9 encoded video in MP4 containers, and support for user-specified 3D LUTs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - Amazon Connect, Contact Lens Evaluation API increase evaluation notes max length to 3072. + +# __2.22.9__ __2023-12-29__ +## __AWS App Runner__ + - ### Features + - AWS App Runner adds Python 3.11 and Node.js 18 runtimes. + +## __Amazon Location Service__ + - ### Features + - This release introduces a new parameter to bypasses an API key's expiry conditions and delete the key. + +## __Amazon QuickSight__ + - ### Features + - Add LinkEntityArn support for different partitions; Add UnsupportedUserEditionException in UpdateDashboardLinks API; Add support for New Reader Experience Topics + +# __2.22.8__ __2023-12-28__ +## __AWS CodeStar connections__ + - ### Features + - New integration with the GitLab self-managed provider type. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fix for Signing Error when ampersand character included in HttpQuery when using DefaultAwsCrtV4aSigner. + +## __Amazon Kinesis Video Streams Archived Media__ + - ### Features + - NoDataRetentionException thrown when GetImages requested for a Stream that does not retain data (that is, has a DataRetentionInHours of 0). + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Studio now supports Docker access from within app container + +# __2.22.7__ __2023-12-27__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon EMR__ + - ### Features + - Add support for customers to modify cluster attribute auto-terminate post cluster launch + +# __2.22.6__ __2023-12-26__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +# __2.22.5__ __2023-12-22__ +## __AWS Glue__ + - ### Features + - This release adds additional configurations for Query Session Context on the following APIs: GetUnfilteredTableMetadata, GetUnfilteredPartitionMetadata, GetUnfilteredPartitionsMetadata. + +## __AWS Lake Formation__ + - ### Features + - This release adds additional configurations on GetTemporaryGlueTableCredentials for Query Session Context. + +## __AWS MediaConnect__ + - ### Features + - This release adds the DescribeSourceMetadata API. This API can be used to view the stream information of the flow's source. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - Update endpoint rules and examples. + +## __Agents for Amazon Bedrock__ + - ### Features + - Adding Claude 2.1 support to Bedrock Agents + +## __Amazon CloudWatch Network Monitor__ + - ### Features + - CloudWatch Network Monitor is a new service within CloudWatch that will help network administrators and operators continuously monitor network performance metrics such as round-trip-time and packet loss between their AWS-hosted applications and their on-premises locations. + +## __Amazon Omics__ + - ### Features + - Provides minor corrections and an updated description of APIs. + +## __Amazon Simple Storage Service__ + - ### Features + - Added additional examples for some operations. + +# __2.22.4__ __2023-12-21__ +## __AWS CodeCommit__ + - ### Features + - AWS CodeCommit now supports customer managed keys from AWS Key Management Service. UpdateRepositoryEncryptionKey is added for updating the key configuration. CreateRepository, GetRepository, BatchGetRepositories are updated with new input or output parameters. + +## __AWS Elemental MediaLive__ + - ### Features + - MediaLive now supports the ability to configure the audio that an AWS Elemental Link UHD device produces, when the device is configured as the source for a flow in AWS Elemental MediaConnect. + +## __AWS RDS DataService__ + - ### Features + - This release adds support for using RDS Data API with Aurora PostgreSQL Serverless v2 and provisioned DB clusters. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Changed the log level from error to warning when exceptions are found in parsing proxy configuration from system properties/environment variables, as we ignore those exceptions and proceed. + - Fix an issue where the S3 CRT client can incorrectly treat the body of an error response for `GetObject` as the object's content. For example, if a role has permissions for `HeadObject` but not a `GetObject`, the S3 CRT client would download the `403` response as the object's contents. + +## __AWS SDK for Java v2 Bundle__ + - ### Bugfixes + - Fix an issue where external dependencies are also included unshaded in in the `bundle` JAR. + +## __Agents for Amazon Bedrock__ + - ### Features + - This release introduces Amazon Aurora as a vector store on Knowledge Bases for Amazon Bedrock + +## __Amazon AppIntegrations Service__ + - ### Features + - The Amazon AppIntegrations service adds DeleteApplication API for deleting applications, and updates APIs to support third party applications reacting to workspace events and make data requests to Amazon Connect for agent and contact events. + +## __Amazon Connect Service__ + - ### Features + - Adds APIs to manage User Proficiencies and Predefined Attributes. Enhances StartOutboundVoiceContact API input. Introduces SearchContacts API. Enhances DescribeContact API. Adds an API to update Routing Attributes in QueuePriority and QueueTimeAdjustmentSeconds. + +## __Amazon Neptune Graph__ + - ### Features + - Adds Waiters for successful creation and deletion of Graph, Graph Snapshot, Import Task and Private Endpoints for Neptune Analytics + +## __Amazon Prometheus Service__ + - ### Features + - This release updates Amazon Managed Service for Prometheus APIs to support customer managed KMS keys. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for using RDS Data API with Aurora PostgreSQL Serverless v2 and provisioned DB clusters. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Training now provides model training container access for debugging purposes. Amazon SageMaker Search now provides the ability to use visibility conditions to limit resource access to a single domain or multiple domains. + +# __2.22.3__ __2023-12-20__ +## __AWS MediaTailor__ + - ### Features + - Adds the ability to configure time shifting on MediaTailor channels using the TimeShiftConfiguration field + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon AppStream__ + - ### Features + - This release introduces configurable clipboard, allowing admins to specify the maximum length of text that can be copied by the users from their device to the remote session and vice-versa. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Add support for cluster insights, new EKS capability that surfaces potentially upgrade impacting issues. + +## __Amazon GuardDuty__ + - ### Features + - This release 1) introduces a new API: GetOrganizationStatistics , and 2) adds a new UsageStatisticType TOP_ACCOUNTS_BY_FEATURE for GetUsageStatistics API + +## __Amazon Managed Blockchain Query__ + - ### Features + - Adding Confirmation Status and Execution Status to GetTransaction Response. + +## __Amazon Route 53__ + - ### Features + - Amazon Route 53 now supports the Canada West (Calgary) Region (ca-west-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. + +# __2.22.2__ __2023-12-19__ +## __AWS AppSync__ + - ### Features + - This release adds additional configurations on GraphQL APIs for limits on query depth, resolver count, and introspection + +## __AWS Marketplace Catalog Service__ + - ### Features + - AWS Marketplace now supports a new API, BatchDescribeEntities, which returns metadata and content for multiple entities. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Meetings__ + - ### Features + - Add meeting features to specify a maximum camera resolution, a maximum content sharing resolution, and a maximum number of attendees for a given meeting. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Provision BYOIPv4 address ranges and advertise them by specifying the network border groups option in Los Angeles, Phoenix and Dallas AWS Local Zones. + +## __Amazon FSx__ + - ### Features + - Added support for FSx for OpenZFS on-demand data replication across AWS accounts and/or regions.Added the IncludeShared attribute for DescribeSnapshots.Added the CopyStrategy attribute for OpenZFSVolumeConfiguration. + +## __Amazon Relational Database Service__ + - ### Features + - RDS - The release adds two new APIs: DescribeDBRecommendations and ModifyDBRecommendation + +# __2.22.1__ __2023-12-18__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Amazon Cognito now supports trigger versions that define the fields in the request sent to pre token generation Lambda triggers. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Add support for EKS Cluster Access Management. + +## __Amazon QuickSight__ + - ### Features + - A docs-only release to add missing entities to the API reference. + +## __Amazon Route 53 Resolver__ + - ### Features + - Add DOH protocols in resolver endpoints. + +# __2.22.0__ __2023-12-15__ +## __AWS CRT HTTP Client__ + - ### Features + - Release AWS CRT synchrounouse HTTP client. See [#3343](https://github.com/aws/aws-sdk-java-v2/issues/3343) + +## __AWS CRT-based S3 Client__ + - ### Bugfixes + - Make sure all CRT resources are closed when the AWS CRT-based S3 client is closed. + +## __AWS Cloud9__ + - ### Features + - Updated Cloud9 API documentation for AL2023 release + +## __AWS Key Management Service__ + - ### Features + - Documentation updates for AWS Key Management Service + +## __AWS SDK for Java v2__ + - ### Features + - Bump `aws-crt` version to `0.29.1`. + - If an HTTP client or HTTP client builder is not specified explicitly on the SDK client AND there are multiple HTTP client implementations on the classpath, the SDK will choose the one that has the highest priority instead of throwing exception. ApacheHttpClient and NettyNioAsyncHttpClient have the highest priority in sync and async SDK client respectively for now. + - Updated endpoint and partition metadata. + +## __Amazon Connect Cases__ + - ### Features + - Increase number of fields that can be included in CaseEventIncludedData from 50 to 200 + +## __Amazon Connect Service__ + - ### Features + - Adds relatedContactId field to StartOutboundVoiceContact API input. Introduces PauseContact API and ResumeContact API for Task contacts. Adds pause duration, number of pauses, timestamps for last paused and resumed events to DescribeContact API response. Adds new Rule type and new Rule action. + +## __Amazon Relational Database Service__ + - ### Features + - Updates Amazon RDS documentation by adding code examples + +## __Amazon SageMaker Service__ + - ### Features + - This release 1) introduces a new API: DeleteCompilationJob , and 2) adds InfraCheckConfig for Create/Describe training job API diff --git a/changelogs/2.23.x-CHANGELOG.md b/changelogs/2.23.x-CHANGELOG.md new file mode 100644 index 000000000000..b86babc7694b --- /dev/null +++ b/changelogs/2.23.x-CHANGELOG.md @@ -0,0 +1,525 @@ +# __2.23.21__ __2024-02-08__ +## __AWS CodePipeline__ + - ### Features + - Add ability to execute pipelines with new parallel & queued execution modes and add support for triggers with filtering on branches and file paths. + +## __Amazon QuickSight__ + - ### Features + - General Interactions for Visuals; Waterfall Chart Color Configuration; Documentation Update + +## __Amazon WorkSpaces__ + - ### Features + - This release introduces User-Decoupling feature. This feature allows Workspaces Core customers to provision workspaces without providing users. CreateWorkspaces and DescribeWorkspaces APIs will now take a new optional parameter "WorkspaceName". + +# __2.23.20__ __2024-02-07__ +## __AWS CRT Sync HTTP Client__ + - ### Bugfixes + - Fixed an issue where `CancellationException` was thrown incorrectly from AWS CRT Sync HTTP client when execution time exceeded the total configured API call attempt timeout or API call timeout. Now it throws `ApiCallAttemptTimeoutException`/`ApiCallTimeoutException` accordingly. See [#4820](https://github.com/aws/aws-sdk-java-v2/issues/4820) + +## __AWS CRT-based S3 Client__ + - ### Features + - Exposes a setting to set the memory limit when making asynchronous calls with the CRT-based S3 client + +## __AWS DataSync__ + - ### Features + - AWS DataSync now supports manifests for specifying files or objects to transfer. + +## __AWS SDK for Java v2__ + - ### Features + - Bump `aws-crt` version to `0.29.9` + - Updated endpoint and partition metadata. + +## __Amazon CloudFront KeyValueStore__ + - ### Features + - Switching CloudFront KeyValueStore onto the new SRA (Smithy Reference Architecture) identity and auth logic that was released in v2.21.0. + +## __Amazon Lex Model Building V2__ + - ### Features + - This release introduces a new bot replication feature as part of Lex Global Resiliency offering. This feature leverages a new set of APIs that allow customers to create bot replicas and replicate changes to bots across regions. + +## __Amazon Redshift__ + - ### Features + - LisRecommendations API to fetch Amazon Redshift Advisor recommendations. + +# __2.23.19__ __2024-02-06__ +## __AWS AppSync__ + - ### Features + - Support for environment variables in AppSync GraphQL APIs + +## __AWS WAFV2__ + - ### Features + - You can now delete an API key that you've created for use with your CAPTCHA JavaScript integration API. + +## __Amazon CloudWatch Logs__ + - ### Features + - This release adds a new field, logGroupArn, to the response of the logs:DescribeLogGroups action. + +## __Amazon EC2 Container Service__ + - ### Features + - This release is a documentation only update to address customer issues. + +## __Amazon Elasticsearch Service__ + - ### Features + - This release adds clear visibility to the customers on the changes that they make on the domain. + +## __Amazon OpenSearch Service__ + - ### Features + - This release adds clear visibility to the customers on the changes that they make on the domain. + +# __2.23.18__ __2024-02-05__ +## __AWS Glue__ + - ### Features + - Introduce Catalog Encryption Role within Glue Data Catalog Settings. Introduce SASL/PLAIN as an authentication method for Glue Kafka connections + +## __Amazon WorkSpaces__ + - ### Features + - Added definitions of various WorkSpace states + +# __2.23.17__ __2024-02-02__ +## __AWS CRT-based S3 Client__ + - ### Features + - Allow users to configure future completion executor on the AWS CRT-based S3 client via `S3CrtAsyncClientBuilder#futureCompletionExecutor`. See [#4879](https://github.com/aws/aws-sdk-java-v2/issues/4879) + +## __AWS SDK for Java v2__ + - ### Features + - Adds setting to disable making EC2 Instance Metadata Service (IMDS) calls without a token header when prefetching a token does not work. This feature can be configured through environment variables (AWS_EC2_METADATA_V1_DISABLED), system property (aws.disableEc2MetadataV1) or AWS config file (ec2_metadata_v1_disabled). When you configure this setting to true, no calls without token headers will be made to IMDS. + - Updated endpoint and partition metadata. + +## __Amazon DynamoDB__ + - ### Features + - Any number of users can execute up to 50 concurrent restores (any type of restore) in a given account. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Canvas adds GenerativeAiSettings support for CanvasAppSettings. + +# __2.23.16__ __2024-02-01__ +## __AWS Elemental MediaConvert__ + - ### Features + - This release includes support for broadcast-mixed audio description tracks. + +## __AWS SDK for Java v2__ + - ### Features + - Switching a set of services onto the new SRA (Smithy Reference Architecture) identity and auth logic that was released in v2.21.0. For a list of individual services affected, please check the committed files. + - Updated endpoint and partition metadata. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Added CreateIdentityProvider and UpdateIdentityProvider details for new SAML IdP features + +## __Amazon Interactive Video Service__ + - ### Features + - This release introduces a new resource Playback Restriction Policy which can be used to geo-restrict or domain-restrict channel stream playback when associated with a channel. New APIs to support this resource were introduced in the form of Create/Delete/Get/Update/List. + +## __Amazon Managed Blockchain Query__ + - ### Features + - This release adds support for transactions that have not reached finality. It also removes support for the status property from the response of the GetTransaction operation. You can use the confirmationStatus and executionStatus properties to determine the status of the transaction. + +## __Amazon Neptune Graph__ + - ### Features + - Adding new APIs in SDK for Amazon Neptune Analytics. These APIs include operations to execute, cancel, list queries and get the graph summary. + +# __2.23.15__ __2024-01-31__ +## __AWS CloudFormation__ + - ### Features + - CloudFormation IaC generator allows you to scan existing resources in your account and select resources to generate a template for a new or existing CloudFormation stack. + +## __AWS Glue__ + - ### Features + - Update page size limits for GetJobRuns and GetTriggers APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Reduce how many times input data is copied when writing to chunked encoded operations, like S3's PutObject. + - Updated endpoint and partition metadata. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release adds an optional Duration parameter to StateManager Associations. This allows customers to specify how long an apply-only-on-cron association execution should run. Once the specified Duration is out all the ongoing cancellable commands or automations are cancelled. + +## __Elastic Load Balancing__ + - ### Features + - This release enables unhealthy target draining intervals for Network Load Balancers. + +# __2.23.14__ __2024-01-30__ +## __Amazon DataZone__ + - ### Features + - Add new skipDeletionCheck to DeleteDomain. Add new skipDeletionCheck to DeleteProject which also automatically deletes dependent objects + +## __Amazon Route 53__ + - ### Features + - Update the SDKs for text changes in the APIs. + +## __Amazon S3__ + - ### Features + - Reduce memory usage when request-level plugins aren't used. + +# __2.23.13__ __2024-01-29__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Comprehend__ + - ### Features + - Comprehend PII analysis now supports Spanish input documents. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - EC2 Fleet customers who use attribute based instance-type selection can now intuitively define their Spot instances price protection limit as a percentage of the lowest priced On-Demand instance type. + +## __Amazon Import/Export Snowball__ + - ### Features + - Modified description of createaddress to include direction to add path when providing a JSON file. + +## __Amazon Relational Database Service__ + - ### Features + - Introduced support for the InsufficientDBInstanceCapacityFault error in the RDS RestoreDBClusterFromSnapshot and RestoreDBClusterToPointInTime API methods. This provides enhanced error handling, ensuring a more robust experience. + +## __Amazon Simple Storage Service__ + - ### Bugfixes + - S3 client configured with crossRegionEnabled(true) will now use us-east-1 regional endpoint instead of the global endpoint. See [#4720](https://github.com/aws/aws-sdk-java-v2/issues/4720). + +## __AmazonMWAA__ + - ### Features + - This release adds MAINTENANCE environment status for Amazon MWAA environments. + +## __Auto Scaling__ + - ### Features + - EC2 Auto Scaling customers who use attribute based instance-type selection can now intuitively define their Spot instances price protection limit as a percentage of the lowest priced On-Demand instance type. + +# __2.23.12__ __2024-01-26__ +## __AWS SDK for Java v2__ + - ### Features + - Improved performance of chunk-encoded streaming uploads, like S3's PutObject. + + - ### Bugfixes + - Fixed bug where the ProfileCredentialsProvider would re-read the credentials file with each request by default. + +## __Amazon Connect Service__ + - ### Features + - Update list and string length limits for predefined attributes. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Automatic Model Tuning now provides an API to programmatically delete tuning jobs. + +## __Inspector2__ + - ### Features + - This release adds ECR container image scanning based on their lastRecordedPullTime. + +# __2.23.11__ __2024-01-25__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - AWS Private CA now supports an option to omit the CDP extension from issued certificates, when CRL revocation is enabled. + +## __Amazon Lightsail__ + - ### Features + - This release adds support for IPv6-only instance plans. + +# __2.23.10__ __2024-01-24__ +## __AWS Outposts__ + - ### Features + - DeviceSerialNumber parameter is now optional in StartConnection API + +## __AWS Storage Gateway__ + - ### Features + - Add DeprecationDate and SoftwareVersion to response of ListGateways. + +## __Amazon EC2 Container Service__ + - ### Features + - Documentation updates for Amazon ECS. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Introduced a new clientToken request parameter on CreateNetworkAcl and CreateRouteTable APIs. The clientToken parameter allows idempotent operations on the APIs. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for Aurora Limitless Database. + +# __2.23.9__ __2024-01-23__ +## __Inspector2__ + - ### Features + - This release adds support for CIS scans on EC2 instances. + +# __2.23.8__ __2024-01-22__ +## __AWS AppConfig Data__ + - ### Features + - Fix FIPS Endpoints in aws-us-gov. + +## __AWS CRT HTTP Client__ + - ### Bugfixes + - Fixed a thread safety issue that could cause application to crash in the edge case where the SDK attempted to invoke `incrementWindow` after the stream is closed in AWS CRT HTTP Client. + +## __AWS Cloud9__ + - ### Features + - Doc-only update around removing AL1 from list of available AMIs for Cloud9 + +## __AWS Organizations__ + - ### Features + - Doc only update for quota increase change + +## __Amazon CloudFront KeyValueStore__ + - ### Features + - This release improves upon the DescribeKeyValueStore API by returning two additional fields, Status of the KeyValueStore and the FailureReason in case of failures during creation of KeyValueStore. + +## __Amazon Connect Cases__ + - ### Features + - This release adds the ability to view audit history on a case and introduces a new parameter, performedBy, for CreateCase and UpdateCase API's. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for Transport Layer Security (TLS) and Configurable Timeout to ECS Service Connect. TLS facilitates privacy and data security for inter-service communications, while Configurable Timeout allows customized per-request timeout and idle timeout for Service Connect services. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for Amazon EC2. + +## __Amazon Relational Database Service__ + - ### Features + - Introduced support for the InsufficientDBInstanceCapacityFault error in the RDS CreateDBCluster API method. This provides enhanced error handling, ensuring a more robust experience when creating database clusters with insufficient instance capacity. + +## __FinSpace User Environment Management service__ + - ### Features + - Allow customer to set zip default through command line arguments. + +# __2.23.7__ __2024-01-19__ +## __AWS CodeBuild__ + - ### Features + - Release CodeBuild Reserved Capacity feature + +## __AWS SDK for Java v2__ + - ### Features + - Allowing SDK plugins to read and modify S3's crossRegionEnabled and SQS's checksumValidationEnabled + - Contributed by: [@anirudh9391](https://github.com/anirudh9391) + - Updated endpoint and partition metadata. + +## __Amazon Athena__ + - ### Features + - Introducing new NotebookS3LocationUri parameter to Athena ImportNotebook API. Payload is no longer required and either Payload or NotebookS3LocationUri needs to be provided (not both) for a successful ImportNotebook API call. If both are provided, an InvalidRequestException will be thrown. + +## __Amazon DynamoDB__ + - ### Features + - This release adds support for including ApproximateCreationDateTimePrecision configurations in EnableKinesisStreamingDestination API, adds the same as an optional field in the response of DescribeKinesisStreamingDestination, and adds support for a new UpdateKinesisStreamingDestination API. + +## __Amazon Q Connect__ + - ### Features + - Increased Quick Response name max length to 100 + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@anirudh9391](https://github.com/anirudh9391) +# __2.23.6__ __2024-01-18__ +## __AWS B2B Data Interchange__ + - ### Features + - Increasing TestMapping inputFileContent file size limit to 5MB and adding file size limit 250KB for TestParsing input file. This release also includes exposing InternalServerException for Tag APIs. + +## __AWS CRT HTTP Client__ + - ### Bugfixes + - Fixed the issue in the AWS CRT sync HTTP client where the connection was left open after the stream was aborted. + +## __AWS CloudTrail__ + - ### Features + - This release adds a new API ListInsightsMetricData to retrieve metric data from CloudTrail Insights. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - GetMetricDataV2 now supports 3 groupings + +## __Amazon Kinesis Firehose__ + - ### Features + - Allow support for Snowflake as a Kinesis Data Firehose delivery destination. + +## __Amazon SageMaker Feature Store Runtime__ + - ### Features + - Increase BatchGetRecord limits from 10 items to 100 items + +## __Elastic Disaster Recovery Service__ + - ### Features + - Removed invalid and unnecessary default values. + +# __2.23.5__ __2024-01-17__ +## __AWS Backup Storage, Amazon CodeCatalyst, Amazon Cognito Identity, Amazon Cognito Identity Provider, AWS Identity and Access Management (IAM), Amazon Kinesis, AWS Elemental MediaStore Data Plane, Amazon Transcribe Service, Amazon Transcribe Streaming Service__ + - ### Features + - Switching a set of services onto the new SRA (Smithy Reference Architecture) identity and auth logic that was released in v2.21.0. + +## __AWS CRT HTTP Client__ + - ### Bugfixes + - Fixed the issue in the AWS CRT HTTP client where the application could crash if stream.incrementWindow was invoked on a closed stream + +## __AWS DynamoDB Enhanced Client__ + - ### Features + - Added support for `@DynamoDBAutoGeneratedUUID` to facilitate the automatic updating of DynamoDB attributes with random UUID. + +## __Amazon DynamoDB__ + - ### Features + - Updating note for enabling streams for UpdateTable. + +## __Amazon Keyspaces__ + - ### Features + - This release adds support for Multi-Region Replication with provisioned tables, and Keyspaces auto scaling APIs + +# __2.23.4__ __2024-01-16__ +## __AWS IoT__ + - ### Features + - Revert release of LogTargetTypes + +## __AWS IoT FleetWise__ + - ### Features + - Updated APIs: SignalNodeType query parameter has been added to ListSignalCatalogNodesRequest and ListVehiclesResponse has been extended with attributes field. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SecurityHub__ + - ### Features + - Documentation updates for AWS Security Hub + +## __Amazon Macie 2__ + - ### Features + - This release adds support for analyzing Amazon S3 objects that are encrypted using dual-layer server-side encryption with AWS KMS keys (DSSE-KMS). It also adds support for reporting DSSE-KMS details in statistics and metadata about encryption settings for S3 buckets and objects. + +## __Amazon Personalize__ + - ### Features + - Documentation updates for Amazon Personalize. + +## __Amazon Personalize Runtime__ + - ### Features + - Documentation updates for Amazon Personalize + +## __Amazon Rekognition__ + - ### Features + - This release adds ContentType and TaxonomyLevel attributes to DetectModerationLabels and GetMediaAnalysisJob API responses. + +## __Amazon S3__ + - ### Features + - Propagating client apiCallTimeout values to S3Express createSession calls. If existing, this value overrides the default timeout value of 10s when making the nested S3Express session credentials call. + +## __Payment Cryptography Control Plane__ + - ### Features + - Provide an additional option for key exchange using RSA wrap/unwrap in addition to tr-34/tr-31 in ImportKey and ExportKey operations. Added new key usage (type) TR31_M1_ISO_9797_1_MAC_KEY, for use with Generate/VerifyMac dataplane operations with ISO9797 Algorithm 1 MAC calculations. + +# __2.23.3__ __2024-01-13__ +## __Amazon SageMaker Service__ + - ### Features + - This release will have ValidationException thrown if certain invalid app types are provided. The release will also throw ValidationException if more than 10 account ids are provided in VpcOnlyTrustedAccounts. + +# __2.23.2__ __2024-01-12__ +## __AWS S3 Control__ + - ### Features + - S3 On Outposts team adds dualstack endpoints support for S3Control and S3Outposts API calls. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fix shading of artifacts in the `bundle` by not `org.apache.log4j.*` packages. This allows proper binding of `commons-logging` to Log4J and enables dependencies that use commons logging (e.g. Apache HTTP Client) to properly bind to Log4j. + +## __AWS Supply Chain__ + - ### Features + - This release includes APIs CreateBillOfMaterialsImportJob and GetBillOfMaterialsImportJob. + +## __AWS Transfer Family__ + - ### Features + - AWS Transfer Family now supports static IP addresses for SFTP & AS2 connectors and for async MDNs on AS2 servers. + +## __Amazon Connect Participant Service__ + - ### Features + - Introduce new Supervisor participant role + +## __Amazon Connect Service__ + - ### Features + - Supervisor Barge for Chat is now supported through the MonitorContact API. + +## __Amazon Location Service__ + - ### Features + - Location SDK documentation update. Added missing fonts to the MapConfiguration data type. Updated note for the SubMunicipality property in the place data type. + +## __AmazonMWAA__ + - ### Features + - This Amazon MWAA feature release includes new fields in CreateWebLoginToken response model. The new fields IamIdentity and AirflowIdentity will let you match identifications, as the Airflow identity length is currently hashed to 64 characters. + +# __2.23.1__ __2024-01-11__ +## __AWS IoT__ + - ### Features + - Add ConflictException to Update APIs of AWS IoT Software Package Catalog + +## __AWS IoT FleetWise__ + - ### Features + - The following dataTypes have been removed: CUSTOMER_DECODED_INTERFACE in NetworkInterfaceType; CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL in SignalDecoderFailureReason; CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL in NetworkInterfaceFailureReason; CUSTOMER_DECODED_SIGNAL in SignalDecoderType + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fix IllegalArgumentException in FullJitterBackoffStrategy when base delay and max backoff time are zero. + +## __AWS Secrets Manager__ + - ### Features + - Doc only update for Secrets Manager + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for adding an ElasticBlockStorage volume configurations in ECS RunTask/StartTask/CreateService/UpdateService APIs. The configuration allows for attaching EBS volumes to ECS Tasks. + +## __Amazon EventBridge__ + - ### Features + - Adding AppSync as an EventBridge Target + +## __Amazon WorkSpaces__ + - ### Features + - Added AWS Workspaces RebootWorkspaces API - Extended Reboot documentation update + +# __2.23.0__ __2024-01-10__ +## __AWS CRT HTTP Client__ + - ### Bugfixes + - Fixed the issue where `AWS_ERROR_HTTP_CONNECTION_CLOSED` was not retried by the SDK. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch Logs__ + - ### Features + - Add support for account level subscription filter policies to PutAccountPolicy, DescribeAccountPolicies, and DeleteAccountPolicy APIs. Additionally, PutAccountPolicy has been modified with new optional "selectionCriteria" parameter for resource selection. + +## __Amazon Connect Wisdom Service__ + - ### Features + - QueryAssistant and GetRecommendations will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications. + +## __Amazon Location Service__ + - ### Features + - This release adds API support for custom layers for the maps service APIs: CreateMap, UpdateMap, DescribeMap. + +## __Amazon Q Connect__ + - ### Features + - QueryAssistant and GetRecommendations will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications. + +## __Amazon Route 53__ + - ### Features + - Route53 now supports geoproximity routing in AWS regions + +## __Amazon S3__ + - ### Bugfixes + - Fixes a bug in DeleteObjects to properly encode the key in the request. + +## __AmazonConnectCampaignService__ + - ### Features + - Minor pattern updates for Campaign and Dial Request API fields. + +## __Redshift Serverless__ + - ### Features + - Updates to ConfigParameter for RSS workgroup, removal of use_fips_ssl + diff --git a/changelogs/2.3.x-CHANGELOG.md b/changelogs/2.3.x-CHANGELOG.md new file mode 100644 index 000000000000..477c4bda49b2 --- /dev/null +++ b/changelogs/2.3.x-CHANGELOG.md @@ -0,0 +1,185 @@ +# __2.3.9__ __2019-01-25__ +## __AWS CodeCommit__ + - ### Features + - The PutFile API will now throw new exception FilePathConflictsWithSubmodulePathException when a submodule exists at the input file path; PutFile API will also throw FolderContentSizeLimitExceededException when the total size of any folder on the path exceeds the limit as a result of the operation. + +## __AWS Device Farm__ + - ### Features + - Introduces a new rule in Device Pools - "Availability". Customers can now ensure they pick devices that are available (i.e., not being used by other customers). + +## __AWS Elemental MediaLive__ + - ### Features + - This release adds support for Frame Capture output groups and for I-frame only manifests (playlists) in HLS output groups. + +## __AWS MediaConnect__ + - ### Features + - This release adds support for tagging, untagging, and listing tags for existing AWS Elemental MediaConnect resources. + +# __2.3.8__ __2019-01-24__ +## __AWS CodeBuild__ + - ### Features + - This release adds support for cross-account ECR images and private registry authentication. + +## __Amazon CloudWatch Logs__ + - ### Features + - Documentation updates for CloudWatch Logs + +## __Amazon EC2 Container Registry__ + - ### Features + - Amazon ECR updated the default endpoint URL to support AWS Private Link. + +## __Amazon Pinpoint SMS and Voice Service__ + - ### Features + - Added the ListConfigurationSets operation, which returns a list of the configuration sets that are associated with your account. + +## __Amazon Relational Database Service__ + - ### Features + - The Amazon RDS API allows you to add or remove Identity and Access Management (IAM) role associated with a specific feature name with an RDS database instance. This helps with capabilities such as invoking Lambda functions from within a trigger in the database, load data from Amazon S3 and so on + +## __Elastic Load Balancing__ + - ### Features + - Elastic Load Balancing now supports TLS termination on Network Load Balancers. With this launch, you can offload the decryption/encryption of TLS traffic from your application servers to the Network Load Balancer. This enables you to run your backend servers optimally and keep your workloads secure. Additionally, Network Load Balancers preserve the source IP of the clients to the back-end applications, while terminating TLS on the load balancer. When TLS is enabled on an NLB, Access Logs can be enabled for the load balancer, and log entries will be emitted for all TLS connections. + +# __2.3.7__ __2019-01-23__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - Added TagOnCreate parameter to the CreateCertificateAuthority operation, updated the Tag regex pattern to align with AWS tagging APIs, and added RevokeCertificate limit. + +## __AWS SDK for Java v2__ + - ### Features + - Redact potentially-sensitive data from the `toString` of service request and response objects. + + - ### Bugfixes + - Fixed the time marshalling issue when CBOR is disabled. See [#1023](https://github.com/aws/aws-sdk-java-v2/issues/1023) + +## __Amazon WorkLink__ + - ### Features + - This is the initial SDK release for Amazon WorkLink. Amazon WorkLink is a fully managed, cloud-based service that enables secure, one-click access to internal websites and web apps from mobile phones. With Amazon WorkLink, employees can access internal websites as seamlessly as they access any other website. IT administrators can manage users, devices, and domains by enforcing their own security and access policies via the AWS Console or the AWS SDK. + +## __AmazonApiGatewayManagementApi__ + - ### Features + - Fixes a typo in the 'max' constraint. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Add `OneTimeReadTimeoutHanlder` to requests with `expect: 100-continue` header to avoid unexpected `ReadTimeoutException`. See [#954](https://github.com/aws/aws-sdk-java-v2/issues/954) + +# __2.3.6__ __2019-01-21__ +## __AWS Application Discovery Service__ + - ### Features + - The Application Discovery Service's import APIs allow you to import information about your on-premises servers and applications into ADS so that you can track the status of your migrations through the Migration Hub console. + +## __AWS Database Migration Service__ + - ### Features + - Update for DMS TestConnectionSucceeds waiter + +## __Amazon AppStream__ + - ### Features + - This API update includes support for tagging Stack, Fleet, and ImageBuilder resources at creation time. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - AWS Systems Manager State Manager now supports configuration management of all AWS resources through integration with Automation. + +## __Firewall Management Service__ + - ### Features + - This release provides support for cleaning up web ACLs during Firewall Management policy deletion. You can now enable the DeleteAllPolicyResources flag and it will delete all system-generated web ACLs. + +# __2.3.5__ __2019-01-18__ +## __AWS Glue__ + - ### Features + - AllocatedCapacity field is being deprecated and replaced with MaxCapacity field + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adjust EC2's available instance types. + +# __2.3.4__ __2019-01-17__ +## __AWS Lambda__ + - ### Features + - Documentation updates for AWS Lambda + +## __Amazon Lightsail__ + - ### Features + - This release adds functionality to the CreateDiskSnapshot API that allows users to snapshot instance root volumes. It also adds various documentation updates. + +## __Amazon Pinpoint__ + - ### Features + - This release updates the PutEvents operation. AppPackageName, AppTitle, AppVersionCode, SdkName fields will now be accepted as a part of the event when submitting events. + +## __Amazon Rekognition__ + - ### Features + - GetLabelDetection now returns bounding box information for common objects and a hierarchical taxonomy of detected labels. The version of the model used for video label detection is also returned. DetectModerationLabels now returns the version of the model used for detecting unsafe content. + +# __2.3.3__ __2019-01-16__ +## __AWS Backup__ + - ### Features + - AWS Backup is a unified backup service designed to protect AWS services and their associated data. AWS Backup simplifies the creation, migration, restoration, and deletion of backups, while also providing reporting and auditing + +## __AWS Cost Explorer Service__ + - ### Features + - Removed Tags from the list of GroupBy dimensions available for GetReservationCoverage. + +## __Amazon DynamoDB__ + - ### Features + - Amazon DynamoDB now integrates with AWS Backup, a centralized backup service that makes it easy for customers to configure and audit the AWS resources they want to backup, automate backup scheduling, set retention policies, and monitor all recent backup and restore activity. AWS Backup provides a fully managed, policy-based backup solution, simplifying your backup management, and helping you meet your business and regulatory backup compliance requirements. For more information, see the Amazon DynamoDB Developer Guide. + +## __URLConnection HTTP Client__ + - ### Bugfixes + - Fix NullPointer of AbortableInputStream delegate if there is no body within UrlConnectionHttpClient + +# __2.3.2__ __2019-01-14__ +## __AWS Elemental MediaConvert__ + - ### Features + - IMF decode from a Composition Playlist for IMF specializations App [#2](https://github.com/aws/aws-sdk-java-v2/issues/2) and App [#2](https://github.com/aws/aws-sdk-java-v2/issues/2)e; up to 99 input clippings; caption channel selection for MXF; and updated rate control for CBR jobs. Added support for acceleration in preview + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed the bug where query parameters are incorrectly moved to body in async clients. See [#958](https://github.com/aws/aws-sdk-java-v2/issues/958) + +## __AWS Storage Gateway__ + - ### Features + - JoinDomain API supports two more parameters: organizational unit(OU) and domain controllers. Two new APIs are introduced: DetachVolume and AttachVolume. + +# __2.3.1__ __2019-01-11__ +## __AWS RDS DataService__ + - ### Features + - Documentation updates for RDS Data API. + +## __AWS SDK for Java v2__ + - ### Features + - Updated to the latest service models. + +## __Amazon Elastic MapReduce__ + - ### Features + - Documentation updates for Amazon EMR + +# __2.3.0__ __2019-01-09__ +## __AWS SDK for Java v2__ + - ### Features + - Updated to the latest service models. + + - ### Bugfixes + - ChecksumValidatingPublisher deals with any packetization of the incoming data. See https://github.com/aws/aws-sdk-java-v2/issues/965 + - Fix an issue where dates were being unmarshalled incorrectly for the CBOR protocol used by Amazon Kinesis. + - Make default `asyncFutureCompletionExeuctor` a true multi-threads executor. See [#968](https://github.com/aws/aws-sdk-java-v2/issues/968) + +## __AWS STS__ + - ### Bugfixes + - Changed the region resolution logic for `role_arn`-based profiles: 1. Check for a `region` property in the same profile as the `role_arn` definition. 2. Check the default region chain. 3. Fall back to the global endpoint and `us-east-1` signing. Fixes [#988](https://github.com/aws/aws-sdk-java-v2/issues/988). + +## __Amazon S3__ + - ### Bugfixes + - Fix `SyncChecksumValidationInterceptor` and `AsyncChecksumValidationInterceptor` to use `long` instead of `int` for contentLength`. See [#963](https://github.com/aws/aws-sdk-java-v2/issues/963) + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Preserve interrupted flag if `Http2MultiplexedChannelPool#close()` interrupted. + +## __URLConnection HTTP Client__ + - ### Bugfixes + - Disable following redirects automatically since doing so causes SDK response handling to fail + +## __core__ + - ### Features + - Jackson 2.9.7 -> 2.9.8 diff --git a/changelogs/2.4.x-CHANGELOG.md b/changelogs/2.4.x-CHANGELOG.md new file mode 100644 index 000000000000..d6ed325b98f8 --- /dev/null +++ b/changelogs/2.4.x-CHANGELOG.md @@ -0,0 +1,354 @@ +# __2.4.17__ __2019-02-27__ +## __AWS WAF__ + - ### Features + - Documentation updates for waf + +## __AWS WAF Regional__ + - ### Features + - Documentation updates for waf-regional + +## __core__ + - ### Bugfixes + - Netty 4.1.33.Final + +# __2.4.16__ __2019-02-26__ +## __AWS Application Discovery Service__ + - ### Features + - Documentation updates for discovery + +## __AWS Cost and Usage Report Service__ + - ### Features + - Adding support for Athena and new report preferences to the Cost and Usage Report API. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added several features including support for: auto-rotation or user-specified rotation of 0, 90, 180, or 270 degrees; multiple output groups with DRM; ESAM XML documents to specify ad insertion points; Offline Apple HLS FairPlay content protection. + +## __AWS OpsWorks for Chef Automate__ + - ### Features + - Documentation updates for opsworkscm + +## __AWS Organizations__ + - ### Features + - Documentation updates for AWS Organizations + +## __AWS Resource Groups__ + - ### Features + - Documentation updates for Resource Groups API; updating description of Tag API. + +## __Amazon Pinpoint__ + - ### Features + - This release adds support for the Amazon Resource Groups Tagging API to Amazon Pinpoint, which means that you can now add and manage tags for Amazon Pinpoint projects (apps), campaigns, and segments. A tag is a label that you optionally define and associate with Amazon Pinpoint resource. Tags can help you categorize and manage these types of resources in different ways, such as by purpose, owner, environment, or other criteria. For example, you can use tags to apply policies or automation, or to identify resources that are subject to certain compliance requirements. A project, campaign, or segment can have as many as 50 tags. For more information about using and managing tags in Amazon Pinpoint, see the Amazon Pinpoint Developer Guide at https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html. For more information about the Amazon Resource Group Tagging API, see the Amazon Resource Group Tagging API Reference at https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/Welcome.html. + +## __Amazon S3__ + - ### Bugfixes + - Fix the issue where NoSuchBucketException was not unmarshalled for `s3#getBucketPolicy` when the bucket doesn't exist. See [#1088](https://github.com/aws/aws-sdk-java-v2/issues/1088) + +# __2.4.15__ __2019-02-25__ +## __AWS CodeCommit__ + - ### Removals + - Removing invalid "fips" region + +## __AWS Cost Explorer Service__ + - ### Features + - Added metrics to normalized units. + +## __AWS Elasticache__ + - ### Removals + - Removing invalid "fips" region + +## __AWS Elemental MediaStore__ + - ### Features + - This release adds support for access logging, which provides detailed records for the requests that are made to objects in a container. + +## __AWS SDK for Java v2__ + - ### Removals + - Removes invalid AWS regions that don't match the partition regex + +## __Amazon DynamoDB__ + - ### Removals + - Removing invalid "local" region + +## __Amazon MTurk__ + - ### Removals + - Removing invalid "sandbox" region + +## __Amazon S3__ + - ### Removals + - Removing invalid dualstack regions and s3-external-1 + +## __Auto Scaling__ + - ### Features + - Added support for passing an empty SpotMaxPrice parameter to remove a value previously set when updating an Amazon EC2 Auto Scaling group. + +## __Elastic Load Balancing__ + - ### Features + - This release enables you to use the existing client secret when modifying a rule with an action of type authenticate-oidc. + +# __2.4.14__ __2019-02-22__ +## __AWS Cloud9__ + - ### Features + - Adding EnvironmentLifecycle to the Environment data type. + +## __AWS Glue__ + - ### Features + - AWS Glue adds support for assigning AWS resource tags to jobs, triggers, development endpoints, and crawlers. Each tag consists of a key and an optional value, both of which you define. With this capacity, customers can use tags in AWS Glue to easily organize and identify your resources, create cost allocation reports, and control access to resources. + +## __AWS Step Functions__ + - ### Features + - This release adds support for tag-on-create. You can now add tags when you create AWS Step Functions activity and state machine resources. For more information about tagging, see AWS Tagging Strategies. + +## __Amazon Athena__ + - ### Features + - This release adds tagging support for Workgroups to Amazon Athena. Use these APIs to add, remove, or list tags on Workgroups, and leverage the tags for various authorization and billing scenarios. + +# __2.4.13__ __2019-02-21__ +## __AWS CodeBuild__ + - ### Features + - Add support for CodeBuild local caching feature + +## __AWS Organizations__ + - ### Features + - Documentation updates for organizations + +## __AWS Transfer for SFTP__ + - ### Features + - Bug fix: increased the max length allowed for request parameter NextToken when paginating List operations + +## __Amazon CloudWatch__ + - ### Features + - Documentation updates for monitoring + +## __Amazon Kinesis Video Streams__ + - ### Features + - Documentation updates for Kinesis Video Streams + +## __Amazon Kinesis Video Streams Archived Media__ + - ### Features + - In this release, HLS playback of KVS streams can be configured to output MPEG TS fragments using the ContainerFormat parameter. HLS playback of KVS streams can also be configured to include the EXT-X-PROGRAM-DATE-TIME field using the DisplayFragmentTimestamp parameter. + +## __Amazon Kinesis Video Streams Media__ + - ### Features + - Documentation updates for Kinesis Video Streams + +## __Amazon WorkDocs__ + - ### Features + - Documentation updates for workdocs + +# __2.4.12__ __2019-02-20__ +## __AWS CodeCommit__ + - ### Features + - This release adds an API for adding / updating / deleting / copying / moving / setting file modes for one or more files directly to an AWS CodeCommit repository without requiring a Git client. + +## __AWS Direct Connect__ + - ### Features + - Documentation updates for AWS Direct Connect + +## __AWS Elemental MediaLive__ + - ### Features + - This release adds support for VPC inputs, allowing you to push content from your Amazon VPC directly to MediaLive. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed an issue where the SDK could be over-retrying on signature errors. + - Fixed an issue where the SDK could fail to adjust the local clock under skewed-clock conditions. + +# __2.4.11__ __2019-02-19__ +## __AWS Directory Service__ + - ### Features + - This release adds support for tags during directory creation (CreateDirectory, CreateMicrosoftAd, ConnectDirectory). + +## __AWS IoT__ + - ### Features + - AWS IoT - AWS IoT Device Defender adds support for configuring behaviors in a security profile with statistical thresholds. Device Defender also adds support for configuring multiple data-point evaluations before a violation is either created or cleared. + +## __Amazon Elastic File System__ + - ### Features + - Amazon EFS now supports adding tags to file system resources as part of the CreateFileSystem API . Using this capability, customers can now more easily enforce tag-based authorization for EFS file system resources. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - AWS Systems Manager now supports adding tags when creating Activations, Patch Baselines, Documents, Parameters, and Maintenance Windows + +# __2.4.10__ __2019-02-18__ +## __AWS SDK for Java v2__ + - ### Features + - Updated service endpoint metadata. + +## __AWS Secrets Manager__ + - ### Features + - This release increases the maximum allowed size of SecretString or SecretBinary from 4KB to 7KB in the CreateSecret, UpdateSecret, PutSecretValue and GetSecretValue APIs. + +## __Amazon Athena__ + - ### Features + - This release adds support for Workgroups to Amazon Athena. Use Workgroups to isolate users, teams, applications or workloads in the same account, control costs by setting up query limits and creating Amazon SNS alarms, and publish query-related metrics to Amazon CloudWatch. + +# __2.4.9__ __2019-02-15__ +## __AWS IoT__ + - ### Features + - In this release, IoT Device Defender introduces support for tagging Scheduled Audit resources. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Attach `extendedRequestId` to `AwsResponseMetadata` if available for event streaming operations so that customers can retrieve it from response metadata + +## __Amazon Chime__ + - ### Features + - Documentation updates for Amazon Chime + +## __Application Auto Scaling__ + - ### Features + - Documentation updates for Application Auto Scaling + +# __2.4.8__ __2019-02-14__ +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds tagging and ARN support for AWS Client VPN Endpoints.You can now run bare metal workloads on EC2 M5 and M5d instances. m5.metal and m5d.metal instances are powered by custom Intel Xeon Scalable Processors with a sustained all core frequency of up to 3.1 GHz. m5.metal and m5d.metal offer 96 vCPUs and 384 GiB of memory. With m5d.metal, you also have access to 3.6 TB of NVMe SSD-backed instance storage. m5.metal and m5d.metal instances deliver 25 Gbps of aggregate network bandwidth using Elastic Network Adapter (ENA)-based Enhanced Networking, as well as 14 Gbps of bandwidth to EBS.You can now run bare metal workloads on EC2 z1d instances. z1d.metal instances are powered by custom Intel Xeon Scalable Processors with a sustained all core frequency of up to 4.0 GHz. z1d.metal offers 48 vCPUs, 384 GiB of memory, and 1.8 TB of NVMe SSD-backed instance storage. z1d.metal instances deliver 25 Gbps of aggregate network bandwidth using Elastic Network Adapter (ENA)-based Enhanced Networking, as well as 14 Gbps of bandwidth to EBS. + +## __Amazon Kinesis Video Streams__ + - ### Features + - Adds support for Tag-On-Create for Kinesis Video Streams. A list of tags associated with the stream can be created at the same time as the stream creation. + +# __2.4.7__ __2019-02-13__ +## __AWS MediaTailor__ + - ### Features + - This release adds support for tagging AWS Elemental MediaTailor resources. + +## __Amazon Elastic File System__ + - ### Features + - Customers can now use the EFS Infrequent Access (IA) storage class to more cost-effectively store larger amounts of data in their file systems. EFS IA is cost-optimized storage for files that are not accessed every day. You can create a new file system and enable Lifecycle Management to automatically move files that have not been accessed for 30 days from the Standard storage class to the IA storage class. + +## __Amazon Rekognition__ + - ### Features + - GetContentModeration now returns the version of the moderation detection model used to detect unsafe content. + +# __2.4.6__ __2019-02-12__ +## __AWS Lambda__ + - ### Features + - Documentation updates for AWS Lambda + +## __AWS Transcribe Streaming__ + - ### Features + - Amazon Transcribe now supports US Spanish, which expands upon the existing language support for US English. + +## __Netty Nio HTTP Client__ + - ### Bugfixes + - Awaits `EventLoopGroup#shutdownGracefully` to complete when closing Netty client. + +# __2.4.5__ __2019-02-11__ +## __AWS CodeBuild__ + - ### Features + - Add customized webhook filter support + +## __AWS Elemental MediaPackage__ + - ### Features + - Adds optional configuration for DASH to compact the manifest by combining duplicate SegmentTemplate tags. Adds optional configuration for DASH SegmentTemplate format to refer to segments by "Number" (default) or by "Time". + +## __Amazon AppStream__ + - ### Features + - This update enables customers to find the start time, max expiration time, and connection status associated with AppStream streaming session. + +## __Amazon CloudWatch Logs__ + - ### Bugfixes + - Fix infinite pagination bug in CloudWatchLogsClient.getLogEventsPaginator API. See https://github.com/aws/aws-sdk-java-v2/issues/1045 + +# __2.4.4__ __2019-02-08__ +## __AWS Application Discovery Service__ + - ### Features + - Documentation updates for the AWS Application Discovery Service. + +## __AWS S3__ + - ### Bugfixes + - Use request header to determine if checksum validation should be enabled for `s3#putObject` + +## __AWS SDK for Java v2__ + - ### Features + - Never initialie the default region provider chain if the region is always specified in the client builder. + - Never initialize the default credentials provider chain if credentials are always specified in the client builder. + + - ### Bugfixes + - Defer all errors raised when creating `ProfileCredentialsProvider` to the `resolveCredentials()` call. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - This release is to correct the timestamp format to ISO8601 for the DateCreated and DateModified files in the GetLifecyclePolicy response object. + +## __Amazon EC2 Container Service__ + - ### Features + - Amazon ECS introduces the PutAccountSettingDefault API, an API that allows a user to set the default ARN/ID format opt-in status for all the roles and users in the account. Previously, setting the account's default opt-in status required the use of the root user with the PutAccountSetting API. + +# __2.4.3__ __2019-02-07__ +## __AWS Elemental MediaLive__ + - ### Features + - This release adds tagging of channels, inputs, and input security groups. + +## __AWS RoboMaker__ + - ### Features + - Added support for tagging and tag-based access control for AWS RoboMaker resources. Also, DescribeSimulationJob now includes a new failureReason field to help debug simulation job failures + +## __Amazon Elasticsearch Service__ + - ### Features + - Feature: Support for three Availability Zone deployments + +## __Amazon GameLift__ + - ### Features + - This release delivers a new API action for deleting unused matchmaking rule sets. More details are available at https://aws.amazon.com/releasenotes/?tag=releasenotes%23keywords%23amazon-gamelift. + +# __2.4.2__ __2019-02-06__ +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add Linux with SQL Server Standard, Linux with SQL Server Web, and Linux with SQL Server Enterprise to the list of allowed instance platforms for On-Demand Capacity Reservations. + +## __Amazon FSx__ + - ### Features + - New optional ExportPath parameter added to the CreateFileSystemLustreConfiguration object for user-defined export paths. Used with the CreateFileSystem action when creating an Amazon FSx for Lustre file system. + +# __2.4.1__ __2019-02-05__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix an issue where an exception could be raised when configuring the idle connection reaper in the apache HTTP client [#1059](https://github.com/aws/aws-sdk-java-v2/issues/1059). + +## __AWS Service Catalog__ + - ### Features + - Service Catalog Documentation Update for ProvisionedProductDetail + +## __AWS Shield__ + - ### Features + - The DescribeProtection request now accepts resource ARN as valid parameter. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - ec2.DescribeVpcPeeringConnections pagination support + +# __2.4.0__ __2019-02-04__ +## __AWS CodeCommit__ + - ### Features + - This release supports a more graceful handling of the error case when a repository is not associated with a pull request ID in a merge request in AWS CodeCommit. + +## __AWS SDK for Java v2__ + - ### Features + - Add support for `connectionTimeToLive`, `connectionMaxIdleTime` and `useIdleConnectionReaper` to the netty HTTP client. + - Enable `useIdleConnectionReaper` by default for Netty and Apache. + - Updated service endpoint metadata. + + - ### Bugfixes + - Added a new handler ([#1041](https://github.com/aws/aws-sdk-java-v2/issues/1041)) to close channels which have triggered an SslCloseCompletionEvent and are no longer usable per [#452](https://github.com/aws/aws-sdk-java-v2/issues/452). + - Fix the deadlock issue in `EventStreamAsyncResponseTransformer` for event streaming operations triggered in an edge case where customer subscriber signals `Subscription#request` the same time as `SdkPublisher` signals `Subscriber#onComplete` + - Reduced netty client logging noise, by logging at a DEBUG level (instead of WARN) when encountering IO errors on channels not currently in use and not logging the whole stack trace. + - Removed broken client methods: `BackupClient#getSupportedResourceTypes()` and `PinpointSmsVoiceClient.listConfigurationSets()`. + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for GPU workloads by enabling you to create clusters with GPU-enabled container instances. + +## __Amazon WorkSpaces__ + - ### Features + - This release sets ClientProperties as a required parameter. + +## __Application Auto Scaling__ + - ### Features + - Documentation updates for application-autoscaling + +## __Netty NIO HTTP Client__ + - ### Features + - Allows customers to enable wire logging with the Netty client at debug level. diff --git a/changelogs/2.5.x-CHANGELOG.md b/changelogs/2.5.x-CHANGELOG.md new file mode 100644 index 000000000000..bcf680f48f92 --- /dev/null +++ b/changelogs/2.5.x-CHANGELOG.md @@ -0,0 +1,1359 @@ +# __2.5.71__ __2019-06-25__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Only allows a single execution interceptor with the same class name to be included in loaded execution interceptors. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Starting today, you can use Traffic Mirroring to copy network traffic from an elastic network interface of Amazon EC2 instances and then send it to out-of-band security and monitoring appliances for content inspection, threat monitoring, and troubleshooting. These appliances can be deployed as individual instances, or as a fleet of instances behind a Network Load Balancer with a User Datagram Protocol (UDP) listener. Traffic Mirroring supports filters and packet truncation, so that you only extract the traffic of interest to monitor by using monitoring tools of your choice. + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Changing Amazon EKS full service name to Amazon Elastic Kubernetes Service. + +## __Amazon S3__ + - ### Bugfixes + - Fixes [#1196](https://github.com/aws/aws-sdk-java-v2/issues/1196) by changing S3 FilterRule enums to correctly model each enum as capitalized + +# __2.5.70__ __2019-06-24__ +## __AWS Resource Groups Tagging API__ + - ### Features + - Updated service APIs and documentation. + +## __AWS SecurityHub__ + - ### Features + - This release includes a new Tags parameter for the EnableSecurityHub operation, and the following new operations: DescribeHub, CreateActionTarget, DeleteActionTarget, DescribeActionTargets, UpdateActionTarget, TagResource, UntagResource, and ListTagsforResource. It removes the operation ListProductSubscribers, and makes Title and Description required attributes of AwsSecurityFinding. + +## __Amazon API Gateway__ + - ### Features + - Customers can pick different security policies (TLS version + cipher suite) for custom domains in API Gateway + +## __Amazon CloudWatch Application Insights__ + - ### Features + - CloudWatch Application Insights detects errors and exceptions from logs, including .NET custom application logs, SQL Server logs, IIS logs, and more, and uses a combination of built-in rules and machine learning, such as dynamic baselining, to identify common problems. You can then easily drill into specific issues with CloudWatch Automatic Dashboards that are dynamically generated. These dashboards contain the most recent alarms, a summary of relevant metrics, and log snippets to help you identify root cause. + +## __Amazon FSx__ + - ### Features + - Starting today, you can join your Amazon FSx for Windows File Server file systems to your organization's self-managed Microsoft Active Directory while creating the file system. You can also perform in-place updates of file systems to keep your Active Directory configuration up to date. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - AWS Systems Manager now supports deleting a specific version of a SSM Document. + +## __AmazonApiGatewayV2__ + - ### Features + - Customers can get information about security policies set on custom domain resources in API Gateway + +## __Elastic Load Balancing__ + - ### Features + - This release adds support for UDP on Network Load Balancers + +## __Service Quotas__ + - ### Features + - Service Quotas enables you to view and manage your quotas for AWS services from a central location. + +# __2.5.69__ __2019-06-21__ +## __AWS Device Farm__ + - ### Features + - This release includes updated documentation about the default timeout value for test runs and remote access sessions. This release also includes miscellaneous bug fixes for the documentation. + +## __AWS Elemental MediaPackage__ + - ### Features + - Added two new origin endpoint fields for configuring which SCTE-35 messages are treated as advertisements. + +## __AWS Identity and Access Management__ + - ### Features + - We are making it easier for you to manage your permission guardrails i.e. service control policies by enabling you to retrieve the last timestamp when an AWS service was accessed within an account or AWS Organizations entity. + +## __Amazon Kinesis Video Streams Media__ + - ### Features + - Documentation updates for Amazon Kinesis Video Streams. + +# __2.5.68__ __2019-06-20__ +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - ACM Private CA is launching Root CAs and hierarchy management, a new feature that expands the scope of ACM Private CA from supporting only subordinate issuing CAs, to now include a full CA hierarchy that includes root CAs - the cryptographic root of trust for an organization. + +## __AWS Glue__ + - ### Features + - Starting today, you can now use workflows in AWS Glue to author directed acyclic graphs (DAGs) of Glue triggers, crawlers and jobs. Workflows enable orchestration of your ETL workloads by building dependencies between Glue entities (triggers, crawlers and jobs). You can visually track status of the different nodes in the workflows on the console making it easier to monitor progress and troubleshoot issues. Also, you can share parameters across entities in the workflow. + +## __AWS Health APIs and Notifications__ + - ### Features + - API improvements for the AWS Health service. + +## __AWS IoT Events Data__ + - ### Features + - "The colon character ':' is now permitted in Detector Model 'key' parameter values. + +## __AWS OpsWorks__ + - ### Features + - Documentation updates for OpsWorks Stacks. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for RDS storage autoscaling + +# __2.5.67__ __2019-06-19__ +## __Amazon Elastic Container Service for Kubernetes__ + - ### Features + - Changing Amazon EKS full service name to Amazon Elastic Kubernetes Service. + +# __2.5.66__ __2019-06-18__ +## __AWS Resource Groups Tagging API__ + - ### Features + - You can use tag policies to help standardize on tags across your organization's resources. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - You can now launch new 12xlarge, 24xlarge, and metal instance sizes on the Amazon EC2 compute optimized C5 instance types featuring 2nd Gen Intel Xeon Scalable Processors. + +# __2.5.65__ __2019-06-17__ +## __AWS RoboMaker__ + - ### Features + - Add the ServiceUnavailableException (503) into CreateSimulationJob API. + +## __AWS Service Catalog__ + - ### Features + - Restrict concurrent calls by a single customer account for CreatePortfolioShare and DeletePortfolioShare when sharing/unsharing to an Organization. + +## __Amazon Neptune__ + - ### Features + - This release adds a feature to configure Amazon Neptune to publish audit logs to Amazon CloudWatch Logs. + +# __2.5.64__ __2019-06-14__ +## __Amazon AppStream__ + - ### Features + - Added 2 new values(WINDOWS_SERVER_2016, WINDOWS_SERVER_2019) for PlatformType enum. + +## __Amazon CloudFront__ + - ### Features + - A new datatype in the CloudFront API, AliasICPRecordal, provides the ICP recordal status for CNAMEs associated with distributions. AWS services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they have added to CloudFront. The status value is returned in the CloudFront response; you cannot configure it yourself. The status is set to APPROVED for all CNAMEs (aliases) in regions outside of China. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Correction to enumerations in EC2 client. + +## __Amazon Personalize__ + - ### Features + - Documentation updates for Amazon Personalize. + +# __2.5.63__ __2019-06-13__ +## __AWS App Mesh__ + - ### Features + - This release adds support for AWS Cloud Map as a service discovery method for virtual nodes. + +## __Amazon ElastiCache__ + - ### Features + - This release is to add support for reader endpoint for cluster-mode disabled Amazon ElastiCache for Redis clusters. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - G4 instances are Amazon EC2 instances based on NVIDIA T4 GPUs and are designed to provide cost-effective machine learning inference for applications, like image classification, object detection, recommender systems, automated speech recognition, and language translation. G4 instances are also a cost-effective platform for building and running graphics-intensive applications, such as remote graphics workstations, video transcoding, photo-realistic design, and game streaming in the cloud. To get started with G4 instances visit https://aws.amazon.com/ec2/instance-types/g4. + +## __Amazon GuardDuty__ + - ### Features + - Support for tagging functionality in Create and Get operations for Detector, IP Set, Threat Intel Set, and Finding Filter resources and 3 new tagging APIs: ListTagsForResource, TagResource, and UntagResource. + +# __2.5.62__ __2019-06-12__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix a bug in the code generator causing event headers to be incorrectly marshalled and unmarshalled to and from the payload. + +## __AWS Service Catalog__ + - ### Features + - This release adds a new field named Guidance to update provisioning artifact, this field can be set by the administrator to provide guidance to end users about which provisioning artifacts to use. + +# __2.5.61__ __2019-06-11__ +## __Amazon SageMaker Service__ + - ### Features + - The default TaskTimeLimitInSeconds of labeling job is increased to 8 hours. Batch Transform introduces a new DataProcessing field which supports input and output filtering and data joining. Training job increases the max allowed input channels from 8 to 20. + +# __2.5.60__ __2019-06-10__ +## __AWS CodeBuild__ + - ### Features + - AWS CodeBuild adds support for source version on project level. + +## __AWS CodeCommit__ + - ### Features + - This release adds two merge strategies for merging pull requests: squash and three-way. It also adds functionality for resolving merge conflicts, testing merge outcomes, and for merging branches using one of the three supported merge strategies. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix NPE for streaming APIs in async client if there is a failure before AsyncResponseTransformer#prepare is called for first time. See https://github.com/aws/aws-sdk-java-v2/issues/1268 + +## __Amazon Personalize__ + - ### Features + - Amazon Personalize is a machine learning service that makes it easy for developers to create individualized recommendations for customers using their applications. + +## __Amazon Personalize Events__ + - ### Features + - Introducing Amazon Personalize - a machine learning service that makes it easy for developers to create individualized recommendations for customers using their applications. + +## __Amazon Personalize Runtime__ + - ### Features + - Amazon Personalize is a machine learning service that makes it easy for developers to create individualized recommendations for customers using their applications. + +# __2.5.59__ __2019-06-07__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Allow customers to disable read and write timeout by setting `Duration.ZERO` to `readTimeout` and `writeTimeout`. See [#1281](https://github.com/aws/aws-sdk-java-v2/issues/1281) + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds DNS entries and NLB ARNs to describe-vpc-endpoint-connections API response. Adds owner ID to describe-vpc-endpoints and create-vpc-endpoint API responses. + +# __2.5.58__ __2019-06-06__ +## __AWS MediaConnect__ + - ### Features + - This release adds support for encrypting entitlements using Secure Packager and Encoder Key Exchange (SPEKE). + +## __AWS Organizations__ + - ### Features + - You can tag and untag accounts in your organization and view tags on an account in your organization. + +## __Amazon CloudWatch Logs__ + - ### Features + - Documentation updates for logs + +## __Amazon DynamoDB__ + - ### Features + - Documentation updates for dynamodb + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for launching container instances using supported Amazon EC2 instance types that have increased elastic network interface density. Using these instance types and opting in to the awsvpcTrunking account setting provides increased elastic network interface (ENI) density on newly launched container instances which allows you to place more tasks on each container instance. + +## __Amazon GuardDuty__ + - ### Features + - Improve FindingCriteria Condition field names, support long-typed conditions and deprecate old Condition field names. + +## __Amazon Simple Email Service__ + - ### Features + - You can now specify whether the Amazon Simple Email Service must deliver email over a connection that is encrypted using Transport Layer Security (TLS). + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - OpsCenter is a new Systems Manager capability that allows you to view, diagnose, and remediate, operational issues, aka OpsItems, related to various AWS resources by bringing together contextually relevant investigation information. New APIs to create, update, describe, and get OpsItems as well as OpsItems summary API. + +# __2.5.57__ __2019-06-05__ +## __AWS Glue__ + - ### Features + - Support specifying python version for Python shell jobs. A new parameter PythonVersion is added to the JobCommand data type. + +# __2.5.56__ __2019-06-04__ +## __AWS Identity and Access Management__ + - ### Features + - This release adds validation for policy path field. This field is now restricted to be max 512 characters. + +## __AWS Storage Gateway__ + - ### Features + - AWS Storage Gateway now supports AWS PrivateLink, enabling you to administer and use gateways without needing to use public IP addresses or a NAT/Internet Gateway, while avoiding traffic from going over the internet. + +## __Amazon ElastiCache__ + - ### Features + - Amazon ElastiCache now allows you to apply available service updates on demand. Features included: (1) Access to the list of applicable service updates and their priorities. (2) Service update monitoring and regular status updates. (3) Recommended apply-by-dates for scheduling the service updates, which is critical if your cluster is in ElastiCache-supported compliance programs. (4) Ability to stop and later re-apply updates. For more information, see https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Self-Service-Updates.html + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Host Recovery feature which automatically restarts instances on to a new replacement host if failures are detected on Dedicated Host. + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation updates for s3 + +# __2.5.55__ __2019-06-03__ +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 I3en instances are the new storage-optimized instances offering up to 60 TB NVMe SSD instance storage and up to 100 Gbps of network bandwidth. + +## __Amazon Relational Database Service__ + - ### Features + - Amazon RDS Data API is generally available. Removing beta notes in the documentation. + +# __2.5.54__ __2019-05-30__ +## __AWS CodeCommit__ + - ### Features + - This release adds APIs that allow adding and removing tags to a repository, and viewing tags for a repository. It also enables adding tags when creating a repository. + +## __AWS IoT Analytics__ + - ### Features + - IoT Analytics adds the option to use your own S3 bucket to store channel and data store resources. Previously, only service-managed storage was used. + +## __AWS IoT Events__ + - ### Features + - The AWS IoT Events service allows customers to monitor their IoT devices and sensors to detect failures or changes in operation and to trigger actions when these events occur + +## __AWS IoT Events Data__ + - ### Features + - The AWS IoT Events service allows customers to monitor their IoT devices and sensors to detect failures or changes in operation and to trigger actions when these events occur + +## __AWS RDS DataService__ + - ### Features + - The RDS Data API is generally available for the MySQL-compatible edition of Amazon Aurora Serverless in the US East (N. Virginia and Ohio), US West (Oregon), EU (Ireland), and Asia Pacific (Tokyo) regions. This service enables you to easily access Aurora Serverless clusters with web services-based applications including AWS Lambda and AWS AppSync. The new APIs included in this SDK release are ExecuteStatement, BatchExecuteStatement, BeginTransaction, CommitTransaction, and RollbackTransaction. The ExecuteSql API is deprecated; instead use ExecuteStatement which provides additional functionality including transaction support. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Improved exception messages in credential providers to exclude detailed parse errors that may contain sensitive information. + +## __AWS Service Catalog__ + - ### Features + - Service Catalog ListStackInstancesForProvisionedProduct API enables customers to get details of a provisioned product with type "CFN_STACKSET". By passing the provisioned product id, the API will list account, region and status of each stack instances that are associated with this provisioned product. + +## __Amazon Pinpoint Email Service__ + - ### Features + - You can now specify whether the Amazon Pinpoint Email service must deliver email over a connection that is encrypted using Transport Layer Security (TLS). + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for Activity Streams for database clusters. + +## __Managed Streaming for Kafka__ + - ### Features + - Updated APIs for Amazon MSK to enable new features such as encryption in transit, client authentication, and scaling storage. + +# __2.5.53__ __2019-05-29__ +## __AWS IoT Things Graph__ + - ### Features + - Initial release. + +## __AWS SecurityHub__ + - ### Features + - This update adds the ListProductSubscribers API, DescribeProducts API, removes CONTAINS as a comparison value for the StringFilter, and only allows use of EQUALS instead of CONTAINS in MapFilter. + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Customers can now simultaneously take snapshots of multiple EBS volumes attached to an EC2 instance. With this new capability, snapshots guarantee crash-consistency across multiple volumes by preserving the order of IO operations. This new feature is fully integrated with Amazon Data Lifecycle Manager (DLM) allowing customers to automatically manage snapshots by creating lifecycle policies. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Customers can now simultaneously take snapshots of multiple EBS volumes attached to an EC2 instance. With this new capability, snapshots guarantee crash-consistency across multiple volumes by preserving the order of IO operations. This new feature is fully integrated with Amazon Data Lifecycle Manager (DLM) allowing customers to automatically manage snapshots by creating lifecycle policies. + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for rds + +## __Amazon S3__ + - ### Bugfixes + - Allows S3 to be used with object keys that have a leading slash "/myKey" + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Systems Manager - Documentation updates + +# __2.5.52__ __2019-05-28__ +## __AWS Ground Station__ + - ### Features + - AWS Ground Station is a fully managed service that enables you to control satellite communications, downlink and process satellite data, and scale your satellite operations efficiently and cost-effectively without having to build or manage your own ground station infrastructure. + +## __AWS RoboMaker__ + - ### Features + - Added support for an additional robot software suite (Gazebo 9) and for cancelling deployment jobs. + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for iam + +## __AWS Storage Gateway__ + - ### Features + - Introduce AssignTapePool operation to allow customers to migrate tapes between pools. + +## __AWS WAF__ + - ### Features + - Documentation updates for waf + +## __Amazon Chime__ + - ### Features + - This release adds the ability to search and order toll free phone numbers for Voice Connectors. + +## __Amazon Pinpoint Email Service__ + - ### Features + - This release adds support for programmatic access to Deliverability dashboard subscriptions and the deliverability data provided by the Deliverability dashboard for domains and IP addresses. The data includes placement metrics for campaigns that use subscribed domains to send email. + +## __Amazon Relational Database Service__ + - ### Features + - Add a new output field Status to DBEngineVersion which shows the status of the engine version (either available or deprecated). Add a new parameter IncludeAll to DescribeDBEngineVersions to make it possible to return both available and deprecated engine versions. These changes enable a user to create a Read Replica of an DB instance on a deprecated engine version. + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe - support transcriptions from audio sources in Modern Standard Arabic (ar-SA). + +# __2.5.51__ __2019-05-24__ +## __AWS CodeDeploy__ + - ### Features + - AWS CodeDeploy now supports tagging for the application and deployment group resources. + +## __AWS Elemental MediaStore Data Plane__ + - ### Features + - MediaStore - This release adds support for chunked transfer of objects, which reduces latency by making an object available for downloading while it is still being uploaded. + +## __AWS OpsWorks for Chef Automate__ + - ### Features + - Documentation updates for OpsWorks for Chef Automate; attribute values updated for Chef Automate 2.0 release. + +# __2.5.50__ __2019-05-23__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Updated aws-java-sdk and bom modules to include ALL service modules. + +## __AWS WAF Regional__ + - ### Features + - Documentation updates for waf-regional + +## __Amazon Elastic Compute Cloud__ + - ### Features + - New APIs to enable EBS encryption by default feature. Once EBS encryption by default is enabled in a region within the account, all new EBS volumes and snapshot copies are always encrypted + +# __2.5.49__ __2019-05-22__ +## __AWS Budgets__ + - ### Features + - Added new datatype PlannedBudgetLimits to Budget model, and updated examples for AWS Budgets API for UpdateBudget, CreateBudget, DescribeBudget, and DescribeBudgets + +## __AWS Device Farm__ + - ### Features + - This release introduces support for tagging, tag-based access control, and resource-based access control. + +## __AWS Service Catalog__ + - ### Features + - Service Catalog UpdateProvisionedProductProperties API enables customers to manage provisioned product ownership. Administrators can now update the user associated to a provisioned product to another user within the same account allowing the new user to describe, update, terminate and execute service actions in that Service Catalog resource. New owner will also be able to list and describe all past records executed for that provisioned product. + +## __Amazon API Gateway__ + - ### Features + - This release adds support for tagging of Amazon API Gateway resources. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds idempotency support for associate, create route and authorization APIs for AWS Client VPN Endpoints. + +## __Amazon Elastic File System__ + - ### Features + - AWS EFS documentation updated to reflect the minimum required value for ProvisionedThroughputInMibps is 1 from the previously documented 0. The service has always required a minimum value of 1, therefor service behavior is not changed. + +## __Amazon Relational Database Service__ + - ### Features + - Documentation updates for rds + +## __Amazon WorkLink__ + - ### Features + - Amazon WorkLink is a fully managed, cloud-based service that enables secure, one-click access to internal websites and web apps from mobile phones. This release introduces new APIs to associate and manage website authorization providers with Amazon WorkLink fleets. + +# __2.5.48__ __2019-05-21__ +## __AWS DataSync__ + - ### Features + - Documentation update and refine pagination token on Datasync List API's + +## __Alexa For Business__ + - ### Features + - This release contains API changes to allow customers to create and manage Network Profiles for their Shared devices + +# __2.5.47__ __2019-05-20__ +## __AWS Elemental MediaPackage VOD__ + - ### Features + - AWS Elemental MediaPackage now supports Video-on-Demand (VOD) workflows. These new features allow you to easily deliver a vast library of source video Assets stored in your own S3 buckets using a small set of simple to set up Packaging Configurations and Packaging Groups. + +## __AWSMarketplace Metering__ + - ### Features + - Documentation updates for meteringmarketplace + +## __Managed Streaming for Kafka__ + - ### Features + - Updated APIs for the Managed Streaming for Kafka service that let customers create clusters with custom Kafka configuration. + +# __2.5.46__ __2019-05-17__ +## __Amazon AppStream__ + - ### Features + - Includes APIs for managing subscriptions to AppStream 2.0 usage reports and configuring idle disconnect timeouts on AppStream 2.0 fleets. + +# __2.5.45__ __2019-05-16__ +## __AWS Elemental MediaLive__ + - ### Features + - Added channel state waiters to MediaLive. + +## __Amazon Simple Storage Service__ + - ### Features + - This release updates the Amazon S3 PUT Bucket replication API to include a new optional field named token, which allows you to add a replication configuration to an S3 bucket that has Object Lock enabled. + +# __2.5.44__ __2019-05-15__ +## __AWS CodePipeline__ + - ### Features + - This feature includes new APIs to add, edit, remove and view tags for pipeline, custom action type and webhook resources. You can also add tags while creating these resources. + +## __AWS Elemental MediaPackage__ + - ### Features + - Adds optional configuration for DASH SegmentTemplateFormat to refer to segments by Number with Duration, rather than Number or Time with SegmentTimeline. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix a bug in `EventStreamAsyncResponseTransformer` where the reference to the current stream `Subscriber` is not reset in `prepare`, causing an `IllegalStateException` to be thrown when attemping to subscribe to the event stream upon a retry. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adding tagging support for VPC Endpoints and VPC Endpoint Services. + +## __Amazon Relational Database Service__ + - ### Features + - In the RDS API and CLI documentation, corrections to the descriptions for Boolean parameters to avoid references to TRUE and FALSE. The RDS CLI does not allow TRUE and FALSE values values for Boolean parameters. + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe - support transcriptions from audio sources in Indian English (en-IN) and Hindi (hi-IN). + +# __2.5.43__ __2019-05-14__ +## __AWS Storage Gateway__ + - ### Features + - Add Tags parameter to CreateSnapshot and UpdateSnapshotSchedule APIs, used for creating tags on create for one off snapshots and scheduled snapshots. + +## __Amazon Chime__ + - ### Features + - Amazon Chime private bots GA release. + +## __Amazon Comprehend__ + - ### Features + - With this release AWS Comprehend now supports Virtual Private Cloud for Asynchronous Batch Processing jobs + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Pagination support for ec2.DescribeSubnets, ec2.DescribeDhcpOptions + +# __2.5.42__ __2019-05-13__ +## __AWS DataSync__ + - ### Features + - AWS DataSync now enables exclude and include filters to control what files and directories will be copied as part of a task execution. + +## __AWS IoT Analytics__ + - ### Features + - ContentDeliveryRule to support sending dataset to S3 and glue + +## __AWS Lambda__ + - ### Features + - AWS Lambda now supports Node.js v10 + +# __2.5.41__ __2019-05-10__ +## __AWS Glue__ + - ### Features + - AWS Glue now supports specifying existing catalog tables for a crawler to examine as a data source. A new parameter CatalogTargets is added to the CrawlerTargets data type. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix a bug where events in an event stream were being signed with the request date, and not with the current system time. + +## __AWS Security Token Service__ + - ### Features + - AWS Security Token Service (STS) now supports passing IAM Managed Policy ARNs as session policies when you programmatically create temporary sessions for a role or federated user. The Managed Policy ARNs can be passed via the PolicyArns parameter, which is now available in the AssumeRole, AssumeRoleWithWebIdentity, AssumeRoleWithSAML, and GetFederationToken APIs. The session policies referenced by the PolicyArn parameter will only further restrict the existing permissions of an IAM User or Role for individual sessions. + +# __2.5.40__ __2019-05-08__ +## __AWS IoT 1-Click Projects Service__ + - ### Features + - Added automatic pagination support for ListProjects and ListPlacements APIs. + +## __AWS Service Catalog__ + - ### Features + - Adds "Parameters" field in UpdateConstraint API, which will allow Admin user to update "Parameters" in created Constraints. + +## __Amazon Elastic Container Service for Kubernetes__ + - ### Features + - Documentation update for Amazon EKS to clarify allowed parameters in update-cluster-config. + +## __Amazon Kinesis Analytics__ + - ### Features + - Kinesis Data Analytics APIs now support tagging on applications. + +## __Amazon SageMaker Service__ + - ### Features + - Workteams now supports notification configurations. Neo now supports Jetson Nano as a target device and NumberOfHumanWorkersPerDataObject is now included in the ListLabelingJobsForWorkteam response. + +# __2.5.39__ __2019-05-07__ +## __AWS AppSync__ + - ### Features + - AWS AppSync now supports the ability to add additional authentication providers to your AWS AppSync GraphQL API as well as the ability to retrieve directives configured against fields or object type definitions during schema introspection. + +## __AWS Storage Gateway__ + - ### Features + - Add optional field AdminUserList to CreateSMBFileShare and UpdateSMBFileShare APIs. + +## __Alexa For Business__ + - ### Features + - This release adds an API allowing authorized users to delete a shared device's history of voice recordings and associated response data. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Patch Manager adds support for Microsoft Application Patching. + +# __2.5.38__ __2019-05-06__ +## __AWS CodePipeline__ + - ### Features + - Documentation updates for codepipeline + +## __AWS Config__ + - ### Features + - AWS Config now supports tagging on PutConfigRule, PutConfigurationAggregator and PutAggregationAuthorization APIs. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for iam + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for sts + +# __2.5.37__ __2019-05-03__ +## __AWS Elemental MediaConvert__ + - ### Features + - DASH output groups using DRM encryption can now enable a playback device compatibility mode to correct problems with playback on older devices. + +## __AWS Elemental MediaLive__ + - ### Features + - You can now switch the channel mode of your channels from standard to single pipeline and from single pipeline to standard. In order to switch a channel from single pipeline to standard all inputs attached to the channel must support two encoder pipelines. + +## __Amazon Cognito Identity Provider__ + - ### Features + - This release of Amazon Cognito User Pools introduces the new AdminSetUserPassword API that allows administrators of a user pool to change a user's password. The new password can be temporary or permanent. + +## __Amazon WorkMail__ + - ### Features + - Amazon WorkMail is releasing two new actions: 'GetMailboxDetails' and 'UpdateMailboxQuota'. They add insight into how much space is used by a given mailbox (size) and what its limit is (quota). A mailbox quota can be updated, but lowering the value will not influence WorkMail per user charges. For a closer look at the actions please visit https://docs.aws.amazon.com/workmail/latest/APIReference/API_Operations.html + +# __2.5.36__ __2019-05-02__ +## __AWS Key Management Service__ + - ### Features + - AWS Key Management Service (KMS) can return an INTERNAL_ERROR connection error code if it cannot connect a custom key store to its AWS CloudHSM cluster. INTERNAL_ERROR is one of several connection error codes that help you to diagnose and fix a problem with your custom key store. + +## __Alexa For Business__ + - ### Features + - This release allows developers and customers to send text and audio announcements to rooms. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix a bug in the Netty client where the read timeout isn't applied correctly for some requests. + +# __2.5.35__ __2019-05-01__ +## __AWS X-Ray__ + - ### Features + - AWS X-Ray now includes Analytics, an interactive approach to analyzing user request paths (i.e., traces). Analytics will allow you to easily understand how your application and its underlying services are performing. With X-Ray Analytics, you can quickly detect application issues, pinpoint the root cause of the issue, determine the severity of the issues, and identify which end users were impacted. With AWS X-Ray Analytics you can explore, analyze, and visualize traces, allowing you to find increases in response time to user requests or increases in error rates. Metadata around peak periods, including frequency and actual times of occurrence, can be investigated by applying filters with a few clicks. You can then drill down on specific errors, faults, and response time root causes and view the associated traces. + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces additional task definition parameters that enable you to define secret options for Docker log configuration, a per-container list contains secrets stored in AWS Systems Manager Parameter Store or AWS Secrets Manager. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds an API for the modification of a VPN Connection, enabling migration from a Virtual Private Gateway (VGW) to a Transit Gateway (TGW), while preserving the VPN endpoint IP addresses on the AWS side as well as the tunnel options. + +# __2.5.34__ __2019-04-30__ +## __AWS CodePipeline__ + - ### Features + - This release contains an update to the PipelineContext object that includes the Pipeline ARN, and the Pipeline Execution Id. The ActionContext object is also updated to include the Action Execution Id. + +## __AWS Direct Connect__ + - ### Features + - This release adds support for AWS Direct Connect customers to use AWS Transit Gateway with AWS Direct Connect gateway to route traffic between on-premise networks and their VPCs. + +## __AWS Service Catalog__ + - ### Features + - Admin users can now associate/disassociate aws budgets with a portfolio or product in Service Catalog. End users can see the association by listing it or as part of the describe portfolio/product output. A new optional boolean parameter, "DisableTemplateValidation", is added to ProvisioningArtifactProperties data type. The purpose of the parameter is to enable or disable the CloudFormation template validtion when creating a product or a provisioning artifact. + +## __Amazon Managed Blockchain__ + - ### Features + - (New Service) Amazon Managed Blockchain is a fully managed service that makes it easy to create and manage scalable blockchain networks using popular open source frameworks. + +## __Amazon Neptune__ + - ### Features + - Adds a feature to allow customers to specify a custom parameter group when restoring a database cluster. + +# __2.5.33__ __2019-04-29__ +## __AWS Transfer for SFTP__ + - ### Features + - This release adds support for per-server host-key management. You can now specify the SSH RSA private key used by your SFTP server. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for Elastic Fabric Adapter (EFA) ENIs. + +# __2.5.32__ __2019-04-26__ +## __AWS Identity and Access Management__ + - ### Features + - AWS Security Token Service (STS) enables you to request session tokens from the global STS endpoint that work in all AWS Regions. You can configure the global STS endpoint to vend session tokens that are compatible with all AWS Regions using the new IAM SetSecurityTokenServicePreferences API. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix bug in ChecksumValidatingSubscriber which results in NPE if checksum validation fails. + +## __Amazon Simple Notification Service__ + - ### Features + - With this release AWS SNS adds tagging support for Topics. + +# __2.5.31__ __2019-04-25__ +## __AWS Batch__ + - ### Features + - Documentation updates for AWS Batch. + +## __AWS Lambda__ + - ### Features + - AWS Lambda now supports the GetLayerVersionByArn API. + +## __Amazon DynamoDB__ + - ### Features + - This update allows you to tag Amazon DynamoDB tables when you create them. Tags are labels you can attach to AWS resources to make them easier to manage, search, and filter. + +## __Amazon GameLift__ + - ### Features + - This release introduces the new Realtime Servers feature, giving game developers a lightweight yet flexible solution that eliminates the need to build a fully custom game server. The AWS SDK updates provide support for scripts, which are used to configure and customize Realtime Servers. + +## __Amazon Inspector__ + - ### Features + - AWS Inspector - Improve the ListFindings API response time and decreases the maximum number of agentIDs from 500 to 99. + +## __Amazon WorkSpaces__ + - ### Features + - Documentation updates for workspaces + +## __Netty NIO Async Http Client__ + - ### Bugfixes + - Add workaround to await channel pools to be closed before shutting down EventLoopGroup to avoid the race condition between `channelPool.close` and `eventLoopGroup.shutdown`. See [#1109](https://github.com/aws/aws-sdk-java-v2/issues/1109). + +# __2.5.30__ __2019-04-24__ +## __AWS CloudFormation__ + - ### Features + - Documentation updates for cloudformation + +## __AWS MediaConnect__ + - ### Features + - Adds support for ListEntitlements pagination. + +## __AWS MediaTailor__ + - ### Features + - AWS Elemental MediaTailor SDK now includes a new parameter to support origin servers that produce single-period DASH manifests. + +## __AWS SDK for Java v2__ + - ### Features + - Make `BytesWrapper`, parent of `SdkBytes` and `ResponseBytes`, public. Fixes [#1208](https://github.com/aws/aws-sdk-java-v2/issues/1208). + - Support for `credential_source` property in profiles. + + - ### Bugfixes + - Fixed a bug in asynchronous clients, where a service closing a connection between when a channel is acquired and handlers are attached could lead to response futures never being completed. Fixes [#1207](https://github.com/aws/aws-sdk-java-v2/issues/1207). + +## __AWS Storage Gateway__ + - ### Features + - AWS Storage Gateway now supports Access Control Lists (ACLs) on File Gateway SMB shares, enabling you to apply fine grained access controls for Active Directory users and groups. + +## __Alexa For Business__ + - ### Features + - This release adds support for the Alexa for Business gateway and gateway group APIs. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - You can now launch the new Amazon EC2 general purpose burstable instance types T3a that feature AMD EPYC processors. + +## __Amazon Relational Database Service__ + - ### Features + - A new parameter "feature-name" is added to the add-role and remove-role db cluster APIs. The value for the parameter is optional for Aurora MySQL compatible database clusters, but mandatory for Aurora PostgresQL. You can find the valid list of values using describe db engine versions API. + +## __Amazon Route 53__ + - ### Features + - Amazon Route 53 now supports the Asia Pacific (Hong Kong) Region (ap-east-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release updates AWS Systems Manager APIs to allow customers to configure parameters to use either the standard-parameter tier (the default tier) or the advanced-parameter tier. It allows customers to create parameters with larger values and attach parameter policies to an Advanced Parameter. + +## __Amazon Textract__ + - ### Features + - This release adds support for checkbox also known as SELECTION_ELEMENT in Amazon Textract. + +# __2.5.29__ __2019-04-19__ +## __AWS Resource Groups__ + - ### Features + - The AWS Resource Groups service increased the query size limit to 4096 bytes. + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe - support transcriptions from audio sources in Spanish Spanish (es-ES). + +## __Amazon WorkSpaces__ + - ### Features + - Added a new reserved field. + +# __2.5.28__ __2019-04-18__ +## __AWS Application Discovery Service__ + - ### Features + - The Application Discovery Service's DescribeImportTasks and BatchDeleteImportData APIs now return additional statuses for error reporting. + +## __AWS Organizations__ + - ### Features + - AWS Organizations is now available in the AWS GovCloud (US) Regions, and we added a new API action for creating accounts in those Regions. For more information, see CreateGovCloudAccount in the AWS Organizations API Reference. + +## __Amazon Cognito Identity Provider__ + - ### Features + - Document updates for Amazon Cognito Identity Provider. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds the TimeoutAction parameter to the ScalingConfiguration of an Aurora Serverless DB cluster. You can now configure the behavior when an auto-scaling capacity change can't find a scaling point. + +## __Amazon S3__ + - ### Bugfixes + - Reduced the frequency of 'server failed to send complete response' exceptions when using S3AsyncClient. + +## __Amazon WorkLink__ + - ### Features + - Amazon WorkLink is a fully managed, cloud-based service that enables secure, one-click access to internal websites and web apps from mobile phones. This release introduces new APIs to link and manage internal websites and web apps with Amazon WorkLink fleets. + +## __Amazon WorkSpaces__ + - ### Features + - Documentation updates for workspaces + +## __Managed Streaming for Kafka__ + - ### Features + - Amazon Kafka - Added tagging APIs + +# __2.5.27__ __2019-04-17__ +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for requester-managed Interface VPC Endpoints (powered by AWS PrivateLink). The feature prevents VPC endpoint owners from accidentally deleting or otherwise mismanaging the VPC endpoints of some AWS VPC endpoint services. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds Arabic language support with new female voice - "Zeina" + +# __2.5.26__ __2019-04-16__ +## __AWS Organizations__ + - ### Features + - Documentation updates for organizations + +## __AWS SDK for Java v2__ + - ### Features + - Enable support for credential_process in an AWS credential profile + +## __AWS Storage Gateway__ + - ### Features + - This change allows you to select either a weekly or monthly maintenance window for your volume or tape gateway. It also allows you to tag your tape and volume resources on creation by adding a Tag value on calls to the respective api endpoints. + +## __Amazon CloudWatch__ + - ### Features + - Documentation updates for monitoring + +## __Amazon Cognito Identity Provider__ + - ### Features + - This release adds support for the new email configuration in Amazon Cognito User Pools. You can now specify whether Amazon Cognito emails your users by using its built-in email functionality or your Amazon SES email configuration. + +## __Amazon Redshift__ + - ### Features + - DescribeResize can now return percent of data transferred from source cluster to target cluster for a classic resize. + +## __AmazonMQ__ + - ### Features + - This release adds the ability to retrieve information about broker engines and broker instance options. See Broker Engine Types and Broker Instance Options in the Amazon MQ REST API Reference. + +## __Netty NIO Http Client__ + - ### Bugfixes + - Update `UnusedChannelExceptionHandler` to check the cause of the exception so that it does emit warn logs if the cause is netty io exception. See [#1171](https://github.com/aws/aws-sdk-java-v2/issues/1171) + +# __2.5.25__ __2019-04-05__ +## __AWS Elemental MediaConvert__ + - ### Features + - Rectify incorrect modelling of DisassociateCertificate method + +## __AWS Elemental MediaLive__ + - ### Features + - Today AWS Elemental MediaLive (https://aws.amazon.com/medialive/) adds the option to create "Single Pipeline" channels, which offers a lower-cost option compared to Standard channels. MediaLive Single Pipeline channels have a single encoding pipeline rather than the redundant dual Availability Zone (AZ) pipelines that MediaLive provides with a "Standard" channel. + +## __AWS Glue__ + - ### Features + - AWS Glue now supports workerType choices in the CreateJob, UpdateJob, and StartJobRun APIs, to be used for memory-intensive jobs. + +## __AWS IoT 1-Click Devices Service__ + - ### Features + - Documentation updates for 1-Click: improved descriptions of resource tagging APIs. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Lazily initialize `ApiCallTimeoutException` and `ApiCallAttemptTimeoutException`. This change would improve performance of async api calls. + +## __AWS Transcribe Streaming__ + - ### Features + - Amazon Transcribe now supports GB English, CA French and FR French which expands upon the existing language support for US English and US Spanish. + +## __Amazon Comprehend__ + - ### Features + - With this release AWS Comprehend provides confusion matrix for custom document classifier. + +# __2.5.24__ __2019-04-04__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for iam + +## __Amazon Elastic Container Service for Kubernetes__ + - ### Features + - Added support to enable or disable publishing Kubernetes cluster logs in AWS CloudWatch + +# __2.5.23__ __2019-04-03__ +## __AWS Batch__ + - ### Features + - Support for GPU resource requirement in RegisterJobDefinition and SubmitJob + +## __Amazon Comprehend__ + - ### Features + - With this release AWS Comprehend adds tagging support for document-classifiers and entity-recognizers. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix a bug where SNI was not enabled in Netty NIO Async Client for TLS and caused the requests to fail of handshake_failure in some services. See [#1171](https://github.com/aws/aws-sdk-java-v2/issues/1171) + +# __2.5.22__ __2019-04-02__ +## __AWS Certificate Manager__ + - ### Features + - Documentation updates for acm + +## __AWS SecurityHub__ + - ### Features + - This update includes 3 additional error codes: AccessDeniedException, InvalidAccessException, and ResourceConflictException. This update also removes the error code ResourceNotFoundException from the GetFindings, GetInvitationsCount, ListInvitations, and ListMembers operations. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Add paginators. + +# __2.5.21__ __2019-04-01__ +## __Amazon Elastic MapReduce__ + - ### Features + - Amazon EMR adds the ability to modify instance group configurations on a running cluster through the new "configurations" field in the ModifyInstanceGroups API. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - March 2019 documentation updates for Systems Manager. + +# __2.5.20__ __2019-03-29__ +## __AWS Greengrass__ + - ### Features + - Greengrass APIs now support tagging operations on resources + +## __Amazon API Gateway__ + - ### Bugfixes + - Fix the SDK cloberring existed 'Accept' headers on marshalled requests. + +## __Amazon CloudWatch__ + - ### Features + - Added 3 new APIs, and one additional parameter to PutMetricAlarm API, to support tagging of CloudWatch Alarms. + +## __Amazon Comprehend__ + - ### Features + - With this release AWS Comprehend supports encryption of output results of analysis jobs and volume data on the storage volume attached to the compute instance that processes the analysis job. + +# __2.5.19__ __2019-03-28__ +## __AWS Elemental MediaLive__ + - ### Features + - This release adds a new output locking mode synchronized to the Unix epoch. + +## __AWS Service Catalog__ + - ### Features + - Adds "Tags" field in UpdateProvisionedProduct API. The product should have a new RESOURCE_UPDATE Constraint with TagUpdateOnProvisionedProduct field set to ALLOWED for it to work. See API docs for CreateConstraint for more information + +## __Amazon Pinpoint Email Service__ + - ### Features + - This release adds support for using the Amazon Pinpoint Email API to tag the following types of Amazon Pinpoint resources: configuration sets; dedicated IP pools; deliverability dashboard reports; and, email identities. A tag is a label that you optionally define and associate with these types of resources. Tags can help you categorize and manage these resources in different ways, such as by purpose, owner, environment, or other criteria. A resource can have as many as 50 tags. For more information, see the Amazon Pinpoint Email API Reference. + +## __Amazon WorkSpaces__ + - ### Features + - Amazon WorkSpaces adds tagging support for WorkSpaces Images, WorkSpaces directories, WorkSpaces bundles and IP Access control groups. + +# __2.5.18__ __2019-03-27__ +## __AWS App Mesh__ + - ### Features + - This release includes AWS Tagging integration for App Mesh, VirtualNode access logging, TCP routing, and Mesh-wide external traffic egress control. See https://docs.aws.amazon.com/app-mesh/latest/APIReference/Welcome.html for more details. + +## __AWS Storage Gateway__ + - ### Features + - This change allows you to select a pool for archiving virtual tapes. Pools are associated with S3 storage classes. You can now choose to archive virtual tapes in either S3 Glacier or S3 Glacier Deep Archive storage class. CreateTapes API now takes a new PoolId parameter which can either be GLACIER or DEEP_ARCHIVE. Tapes created with this parameter will be archived in the corresponding storage class. + +## __AWS Transfer for SFTP__ + - ### Features + - This release adds PrivateLink support to your AWS SFTP server endpoint, enabling the customer to access their SFTP server within a VPC, without having to traverse the internet. Customers can now can create a server and specify an option whether they want the endpoint to be hosted as public or in their VPC, and with the in VPC option, SFTP clients and users can access the server only from the customer's VPC or from their on-premises environments using DX or VPN. This release also relaxes the SFTP user name requirements to allow underscores and hyphens. + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for external deployment controllers for ECS services with the launch of task set management APIs. Task sets are a new primitive for controlled management of application deployments within a single ECS service. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - You can now launch the new Amazon EC2 R5ad and M5ad instances that feature local NVMe attached SSD instance storage (up to 3600 GB). M5ad and R5ad feature AMD EPYC processors that offer a 10% cost savings over the M5d and R5d EC2 instances. + +## __Amazon Simple Storage Service__ + - ### Features + - S3 Glacier Deep Archive provides secure, durable object storage class for long term data archival. This SDK release provides API support for this new storage class. + +## __Apache Http Client__ + - ### Features + - Add the ability to set a custom Apache HttpRoutePlanner and CredentialProvider + +## __Elastic Load Balancing__ + - ### Features + - This release adds support for routing based on HTTP headers, methods, query string or query parameters and source IP addresses in Application Load Balancer. + +# __2.5.17__ __2019-03-26__ +## __AWS Glue__ + - ### Features + - This new feature will now allow customers to add a customized csv classifier with classifier API. They can specify a custom delimiter, quote symbol and control other behavior they'd like crawlers to have while recognizing csv files + +## __Amazon WorkMail__ + - ### Features + - Documentation updates for Amazon WorkMail. + +# __2.5.16__ __2019-03-25__ +## __AWS Direct Connect__ + - ### Features + - Direct Connect gateway enables you to establish connectivity between your on-premise networks and Amazon Virtual Private Clouds (VPCs) in any commercial AWS Region (except in China) using AWS Direct Connect connections at any AWS Direct Connect location. This release enables multi-account support for Direct Connect gateway, with multi-account support for Direct Connect gateway, you can associate up to ten VPCs from any AWS account with a Direct Connect gateway. The AWS accounts owning VPCs and the Direct Connect gateway must belong to the same AWS payer account ID. This release also enables Direct Connect Gateway owners to allocate allowed prefixes from each associated VPCs. + +## __AWS Elemental MediaConvert__ + - ### Features + - This release adds support for detailed job progress status and S3 server-side output encryption. In addition, the anti-alias filter will now be automatically applied to all outputs + +## __AWS IoT 1-Click Devices Service__ + - ### Features + - This release adds tagging support for AWS IoT 1-Click Device resources. Use these APIs to add, remove, or list tags on Devices, and leverage the tags for various authorization and billing scenarios. This release also adds the ARN property for DescribeDevice response object. + +## __AWS IoT Analytics__ + - ### Features + - This change allows you to specify the number of versions of IoT Analytics data set content to be retained. Previously, the number of versions was managed implicitly via the setting of the data set's retention period. + +## __AWS RoboMaker__ + - ### Features + - Added additional progress metadata fields for robot deployments + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe - With this release Amazon Transcribe enhances the custom vocabulary feature to improve accuracy by providing customization on pronunciations and output formatting. + +## __Firewall Management Service__ + - ### Features + - AWS Firewall Manager now allows customer to centrally enable AWS Shield Advanced DDoS protection for their entire AWS infrastructure, across accounts and applications. + +## __URL Connection Http Client__ + - ### Bugfixes + - Bypass ssl validations when `TRUST_ALL_CERTIFICATES` is set to true. + +# __2.5.15__ __2019-03-22__ +## __AWS IoT 1-Click Projects Service__ + - ### Features + - This release adds tagging support for AWS IoT 1-Click Project resources. Use these APIs to add, remove, or list tags on Projects, and leverage the tags for various authorization and billing scenarios. This release also adds the ARN property to projects for DescribeProject and ListProject responses. + +## __Amazon CloudSearch Domain__ + - ### Bugfixes + - Use application/x-www-form-urlencoded as Content-Type for search API + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe - support transcriptions from audio sources in German (de-DE) and Korean (ko-KR). + +## __Netty NIO Http Client__ + - ### Features + - Add sslProvider configuration in `NettyNioAsyncHttpClient.Builder`. + +# __2.5.14__ __2019-03-21__ +## __AWS IoT__ + - ### Features + - This release adds the GetStatistics API for the AWS IoT Fleet Indexing Service, which allows customers to query for statistics about registered devices that match a search query. This release only supports the count statistics. For more information about this API, see https://docs.aws.amazon.com/iot/latest/apireference/API_GetStatistics.html + +## __AWS SDK for Java v2__ + - ### Features + - Automatically retry on `RequestThrottledException` error codes. + + - ### Bugfixes + - Fix bug where the stream returned from a `ContentStreamProvider` is not closed after request execution. See [#1138](https://github.com/aws/aws-sdk-java-v2/issues/1138) + +## __Amazon CloudWatch Events__ + - ### Features + - Added 3 new APIs, and one additional parameter to the PutRule API, to support tagging of CloudWatch Events rules. + +## __Amazon Cognito Identity Provider__ + - ### Features + - This release adds tags and tag-based access control support to Amazon Cognito User Pools. + +## __Amazon Lightsail__ + - ### Features + - This release adds the DeleteKnownHostKeys API, which enables Lightsail's browser-based SSH or RDP clients to connect to the instance after a host key mismatch. + +## __Amazon S3__ + - ### Bugfixes + - Fix bug in `ChecksumCalculatingInputStream` where methods not overridden, such as `close()`, are not called on the wrapped stream. See [#1138](https://github.com/aws/aws-sdk-java-v2/issues/1138). + +## __Auto Scaling__ + - ### Features + - Documentation updates for Amazon EC2 Auto Scaling + +# __2.5.13__ __2019-03-20__ +## __AWS CodePipeline__ + - ### Features + - Add support for viewing details of each action execution belonging to past and latest pipeline executions that have occurred in customer's pipeline. The details include start/updated times, action execution results, input/output artifacts information, etc. Customers also have the option to add pipelineExecutionId in the input to filter the results down to a single pipeline execution. + +## __AWSMarketplace Metering__ + - ### Features + - This release increases AWS Marketplace Metering Service maximum usage quantity to 2147483647 and makes parameters usage quantity and dryrun optional. + +## __Amazon Cognito Identity__ + - ### Features + - This release adds tags and tag-based access control support to Amazon Cognito Identity Pools (Federated Identities). + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix a bug that could pollute non SDK threads with `ThreadLocal`'s when allocating memory. See [#1133](https://github.com/aws/aws-sdk-java-v2/issues/1133) + +## __Netty NIO Http Client__ + - ### Bugfixes + - Fix failed test NettyNioAsyncHttpClientSpiVerificationTest when running with JDK11. See [#1038](https://github.com/aws/aws-sdk-java-v2/issues/1038) + +# __2.5.12__ __2019-03-19__ +## __AWS Config__ + - ### Features + - AWS Config adds a new API called SelectResourceConfig to run advanced queries based on resource configuration properties. + +## __AWS SDK for Java v2__ + - ### Features + - Adds the Java vendor the user agent as well as using the updated user agent for all HTTP calls + +## __Amazon Elastic Container Service for Kubernetes__ + - ### Features + - Added support to control private/public access to the Kubernetes API-server endpoint + +## __Amazon S3__ + - ### Features + - Add support for getUrl operation. The API can be used to generate a URL that represents an object in Amazon S3. The url can only be used to download the object content if the object has public read permissions. Original issue: https://github.com/aws/aws-sdk-java-v2/issues/860 + + - ### Bugfixes + - Only set content type of S3 `CreateMultipartUploadRequest` if `Content-Type` header is not present and honor the overridden content type. + +# __2.5.11__ __2019-03-18__ +## __AWS Database Migration Service__ + - ### Features + - S3 Endpoint Settings added support for 1) Migrating to Amazon S3 as a target in Parquet format 2) Encrypting S3 objects after migration with custom KMS Server-Side encryption. Redshift Endpoint Settings added support for encrypting intermediate S3 objects during migration with custom KMS Server-Side encryption. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix HeaderUnmarshaller to compare header ignoring cases. + +## __Amazon Chime__ + - ### Features + - This release adds support for the Amazon Chime Business Calling and Voice Connector features. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - DescribeFpgaImages API now returns a new DataRetentionSupport attribute to indicate if the AFI meets the requirements to support DRAM data retention. DataRetentionSupport is a read-only attribute. + +# __2.5.10__ __2019-03-14__ +## __AWS Certificate Manager__ + - ### Features + - AWS Certificate Manager has added a new API action, RenewCertificate. RenewCertificate causes ACM to force the renewal of any private certificate which has been exported. + +## __AWS Certificate Manager Private Certificate Authority__ + - ### Features + - AWS Certificate Manager (ACM) Private CA allows customers to manage permissions on their CAs. Customers can grant or deny AWS Certificate Manager permission to renew exported private certificates. + +## __AWS Config__ + - ### Features + - AWS Config - add ability to tag, untag and list tags for ConfigRule, ConfigurationAggregator and AggregationAuthorization resource types. Tags can be used for various scenarios including tag based authorization. + +## __AWS IoT__ + - ### Features + - In this release, AWS IoT introduces support for tagging OTA Update and Stream resources. For more information about tagging, see the AWS IoT Developer Guide. + +## __Amazon CloudWatch__ + - ### Features + - New Messages parameter for the output of GetMetricData, to support new metric search functionality. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds tagging support for Dedicated Host Reservations. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Automatic Model Tuning now supports random search and hyperparameter scaling. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Backport `FixedChannelPool` fix from https://github.com/netty/netty/pull/7927, which ensures that the operation doesn't become blocked from closing the wrapped pool. + - Fix a possible `NullPointerException` if `HttpOrHttp2ChannelPool` is closed while the protocol is still being determined. The operation is now done synchronously with other operations on the pool to prevent a data race. + +# __2.5.9__ __2019-03-13__ +## __AWS Config__ + - ### Features + - Config released Remediation APIs allowing Remediation of Config Rules + +## __Amazon CloudWatch Logs__ + - ### Features + - Documentation updates for logs + +## __Netty Nio HTTP Client__ + - ### Bugfixes + - Update `SslCompletionEventHandler` to close channel for `SslCloseCompletionEvent` only if the channel is not currently in use. This would fix the race condition in the async clients causing incorrect IOException to be thrown when the service returns error response and closes the connection. See [#1076](https://github.com/aws/aws-sdk-java-v2/issues/1076) + +# __2.5.8__ __2019-03-12__ +## __AWSServerlessApplicationRepository__ + - ### Features + - The AWS Serverless Application Repository now supports associating a ZIP source code archive with versions of an application. + +## __Netty Nio Http Client__ + - ### Bugfixes + - Fix a bug where the channel fails to be released if there is an exception thrown. + +# __2.5.7__ __2019-03-11__ +## __AWS Cost Explorer Service__ + - ### Features + - The only change in this release is to make TimePeriod a required parameter in GetCostAndUsageRequest. + +## __AWS Elastic Beanstalk__ + - ### Features + - Elastic Beanstalk added support for tagging, and tag-based access control, of all Elastic Beanstalk resources. + +## __AWS Glue__ + - ### Features + - CreateDevEndpoint and UpdateDevEndpoint now support Arguments to configure the DevEndpoint. + +## __AWS IoT__ + - ### Features + - Documentation updates for iot + +## __Amazon QuickSight__ + - ### Features + - Amazon QuickSight user and group operation results now include group principal IDs and user principal IDs. This release also adds "DeleteUserByPrincipalId", which deletes users given their principal ID. The update also improves role session name validation. + +## __Amazon Rekognition__ + - ### Features + - Documentation updates for Amazon Rekognition + +## __Amazon S3__ + - ### Bugfixes + - Set `Content-Type` to `binary/octet-stream` for `S3#createMultipartRequest`. See [#1092](https://github.com/aws/aws-sdk-java-v2/issues/1092) + +## __Apache Http Client__ + - ### Bugfixes + - Updated to not set a default `Content-Type` if the header does not exist. Per [RFC7231](https://tools.ietf.org/html/rfc7231#page-11), we should let the recipient to decide if not known. + +# __2.5.6__ __2019-03-08__ +## __AWS CodeBuild__ + - ### Features + - CodeBuild also now supports Git Submodules. CodeBuild now supports opting out of Encryption for S3 Build Logs. By default these logs are encrypted. + +## __Amazon SageMaker Service__ + - ### Features + - SageMaker notebook instances now support enabling or disabling root access for notebook users. SageMaker Neo now supports rk3399 and rk3288 as compilation target devices. + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation updates for s3 + +# __2.5.5__ __2019-03-07__ +## __AWS App Mesh__ + - ### Features + - This release includes a new version of the AWS App Mesh APIs. You can read more about the new APIs here: https://docs.aws.amazon.com/app-mesh/latest/APIReference/Welcome.html. + +## __AWS Elemental MediaLive__ + - ### Features + - This release adds a MediaPackage output group, simplifying configuration of outputs to AWS Elemental MediaPackage. + +## __AWS Greengrass__ + - ### Features + - Greengrass group UID and GID settings can now be configured to use a provided default via FunctionDefaultConfig. If configured, all Lambda processes in your deployed Greengrass group will by default start with the provided UID and/or GID, rather than by default starting with UID "ggc_user" and GID "ggc_group" as they would if not configured. Individual Lambdas can also be configured to override the defaults if desired via each object in the Functions list of your FunctionDefinitionVersion. + +## __AWS SDK For Java v2__ + - ### Bugfixes + - Fix bug in the generated async clients where cancelling the `CompletableFuture` returned from an async operation does not result in cancelling the underlying HTTP request execution. In some cases, this can lead to unnecesarily keeping resources from being freed until the request execution finishes. + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces additional task definition parameters that enable you to define dependencies for container startup and shutdown, a per-container start and stop timeout value, as well as an AWS App Mesh proxy configuration which eases the integration between Amazon ECS and AWS App Mesh. + +## __Amazon GameLift__ + - ### Features + - Amazon GameLift-hosted instances can now securely access resources on other AWS services using IAM roles. See more details at https://aws.amazon.com/releasenotes/amazon-gamelift/. + +## __Amazon Relational Database Service__ + - ### Features + - You can configure your Aurora database cluster to automatically copy tags on the cluster to any automated or manual database cluster snapshots that are created from the cluster. This allows you to easily set metadata on your snapshots to match the parent cluster, including access policies. You may enable or disable this functionality while creating a new cluster, or by modifying an existing database cluster. + +## __Auto Scaling__ + - ### Features + - Documentation updates for autoscaling + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix a bug where, if the future returned from the `NettyRequestExecutor#execute` is cancelled, the client continues to wait for the `Channel` acquire to complete, which leads to keeping potentially many resources around unnecessarily. + +# __2.5.4__ __2019-03-06__ +## __AWS Direct Connect__ + - ### Features + - Exposed a new available port speeds field in the DescribeLocation api call. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix the generated ServiceMetadata classes for services that have PARTITION_OVERRIDDEN_ENDPOINTS + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds pagination support for ec2.DescribeVpcs, ec2.DescribeInternetGateways and ec2.DescribeNetworkAcls APIs + +## __Amazon Elastic File System__ + - ### Features + - Documentation updates for elasticfilesystem adding new examples for EFS Lifecycle Management feature. + +# __2.5.3__ __2019-03-05__ +## __AWS CodeDeploy__ + - ### Features + - Documentation updates for codedeploy + +## __AWS Elemental MediaLive__ + - ### Features + - This release adds support for pausing and unpausing one or both pipelines at scheduled times. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Add missing non-service modules to bom. See [#1063](https://github.com/aws/aws-sdk-java-v2/issues/1063) + +## __AWS Storage Gateway__ + - ### Features + - ActivateGateway, CreateNFSFileShare and CreateSMBFileShare APIs support a new parameter: Tags (to be attached to the created resource). Output for DescribeNFSFileShare, DescribeSMBFileShare and DescribeGatewayInformation APIs now also list the Tags associated with the resource. Minimum length of a KMSKey is now 7 characters. + +## __Amazon Textract__ + - ### Features + - This release is intended ONLY for customers that are officially part of the Amazon Textract Preview program. If you are not officially part of the Amazon Textract program THIS WILL NOT WORK. Our two main regions for Amazon Textract Preview are N. Virginia and Dublin. Also some members have been added to Oregon and Ohio. If you are outside of any of these AWS regions, Amazon Textract Preview definitely will not work. If you would like to be part of the Amazon Textract program, you can officially request sign up here - https://pages.awscloud.com/textract-preview.html. To set expectations appropriately, we are aiming to admit new preview participants once a week until General Availability. + +# __2.5.2__ __2019-03-04__ +## __AWS Elemental MediaPackage__ + - ### Features + - This release adds support for user-defined tagging of MediaPackage resources. Users may now call operations to list, add and remove tags from channels and origin-endpoints. Users can also specify tags to be attached to these resources during their creation. Describe and list operations on these resources will now additionally return any tags associated with them. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release updates AWS Systems Manager APIs to support service settings for AWS customers. A service setting is a key-value pair that defines how a user interacts with or uses an AWS service, and is typically created and consumed by the AWS service team. AWS customers can read a service setting via GetServiceSetting API and update the setting via UpdateServiceSetting API or ResetServiceSetting API, which are introduced in this release. For example, if an AWS service charges money to the account based on a feature or service usage, then the AWS service team might create a setting with the default value of "false". This means the user can't use this feature unless they update the setting to "true" and intentionally opt in for a paid feature. + +# __2.5.1__ __2019-03-01__ +## __AWS Auto Scaling Plans__ + - ### Features + - Documentation updates for autoscaling-plans + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for modifying instance event start time which allows users to reschedule EC2 events. + +# __2.5.0__ __2019-02-28__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix a bug in the code generator where the enum getter for a structure member is not being generated in some cases. Additionally, fix a bug that generated the wrong code for enum getters where the enum is not at the top level container but is nested, such as `List>`. This breaks the interface for affected services so the minor version is increased. + - Fixed a bug where the request would fail of NoSuchElementException. This bug would affect `TranscribeStreaming#startStreamTranscription` request + +## __Alexa For Business__ + - ### Features + - This release adds the PutInvitationConfiguration API to configure the user invitation email template with custom attributes, and the GetInvitationConfiguration API to retrieve the configured values. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - AWS Systems Manager State Manager now supports associations using documents shared by other AWS accounts. + +## __AmazonApiGatewayV2__ + - ### Features + - Marking certain properties as explicitly required and fixing an issue with the GetApiMappings operation for ApiMapping resources. + +## __Application Auto Scaling__ + - ### Features + - Documentation updates for application-autoscaling + +## __Netty Nio HTTP Client__ + - ### Bugfixes + - Added try-catch blocks to prevent uncompleted future when exception is thrown. diff --git a/changelogs/2.6.x-CHANGELOG.md b/changelogs/2.6.x-CHANGELOG.md new file mode 100644 index 000000000000..306812208cb8 --- /dev/null +++ b/changelogs/2.6.x-CHANGELOG.md @@ -0,0 +1,93 @@ +# __2.6.5__ __2019-07-02__ +## __AWS Elemental MediaStore__ + - ### Features + - This release adds support for tagging, untagging, and listing tags for AWS Elemental MediaStore containers. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix a bug in `FileAsyncResponseTransformer` that causes the future from `prepare()` to not be completed if `onError` is called on its `Subscriber` wile consuming the response stream. Fixes [#1279](https://github.com/aws/aws-sdk-java-v2/issues/1279) + +## __Amazon AppStream__ + - ### Features + - Adding ImageBuilderName in Fleet API and Documentation updates for AppStream. + +# __2.6.4__ __2019-07-01__ +## __AWS Organizations__ + - ### Features + - Specifying the tag key and tag value is required for tagging requests. + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - This release provides support for cluster delete protection and the ability to stop and start clusters. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for specifying a maximum hourly price for all On-Demand and Spot instances in both Spot Fleet and EC2 Fleet. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for RDS DB Cluster major version upgrade + +# __2.6.3__ __2019-06-28__ +## __Alexa For Business__ + - ### Features + - This release allows developers and customers to add SIP addresses and international phone numbers to contacts. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - You can now launch 8xlarge and 16xlarge instance sizes on the general purpose M5 and memory optimized R5 instance types. + +## __Amazon Redshift__ + - ### Features + - ClusterAvailabilityStatus: The availability status of the cluster for queries. Possible values are the following: Available, Unavailable, Maintenance, Modifying, Failed. + +## __Amazon S3__ + - ### Bugfixes + - Update `ChecksumCalculatingStreamProvider` to comply with `ContentStreamProvider` contract. + +## __Amazon WorkSpaces__ + - ### Features + - Minor API fixes for WorkSpaces. + +# __2.6.2__ __2019-06-27__ +## __AWS Direct Connect__ + - ### Features + - Tags will now be included in the API responses of all supported resources (Virtual interfaces, Connections, Interconnects and LAGs). You can also add tags while creating these resources. + +## __AWS EC2 Instance Connect__ + - ### Features + - Amazon EC2 Instance Connect is a simple and secure way to connect to your instances using Secure Shell (SSH). With EC2 Instance Connect, you can control SSH access to your instances using AWS Identity and Access Management (IAM) policies as well as audit connection requests with AWS CloudTrail events. In addition, you can leverage your existing SSH keys or further enhance your security posture by generating one-time use SSH keys each time an authorized user connects. + +## __Amazon Pinpoint__ + - ### Features + - This release includes editorial updates for the Amazon Pinpoint API documentation. + +## __Amazon WorkSpaces__ + - ### Features + - Added support for the WorkSpaces restore feature and copying WorkSpaces Images across AWS Regions. + +# __2.6.1__ __2019-06-26__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed issue where specifying a custom presigning time causes a runtime exception. + +## __Amazon DynamoDB__ + - ### Features + - Documentation updates for dynamodb + +# __2.6.0__ __2019-06-26__ +## __AWS CodeCommit__ + - ### Features + - This release supports better exception handling for merges. + +## __Amazon S3__ + - ### Bugfixes + - Modify the types of Part#size and ObjectVersion#size from Integer to Long. This is a breaking change for customers who are using the size() method. + +## __AmazonApiGatewayV2__ + - ### Features + - You can now perform tag operations on ApiGatewayV2 Resources (typically associated with WebSocket APIs) + +## __Netty NIO Http Client__ + - ### Bugfixes + - Completes the response normally when subscription is cancelled from the subscriber and not invoke `SdkAsyncHttpResponseHandler#onError` from the publisher. diff --git a/changelogs/2.7.x-CHANGELOG.md b/changelogs/2.7.x-CHANGELOG.md new file mode 100644 index 000000000000..1b124bf13e0e --- /dev/null +++ b/changelogs/2.7.x-CHANGELOG.md @@ -0,0 +1,569 @@ +# __2.7.36__ __2019-08-30__ +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for modifying the cluster settings for existing clusters, which enables you to toggle whether Container Insights is enabled or not. Support is also introduced for custom log routing using the ECS FireLens integration. + +## __AmazonApiGatewayManagementApi__ + - ### Features + - You can use getConnection to return information about the connection (when it is connected, IP address, etc) and deleteConnection to disconnect the given connection + +## __AmazonMQ__ + - ### Features + - Adds support for updating security groups selection of an Amazon MQ broker. + +# __2.7.35__ __2019-08-29__ +## __AWS CodePipeline__ + - ### Features + - Introducing pipeline execution trigger details in ListPipelineExecutions API. + +## __AWS Lambda__ + - ### Features + - Adds a "MaximumBatchingWindowInSeconds" parameter to event source mapping api's. Usable by Dynamodb and Kinesis event sources. + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for including Docker container IDs in the API response when describing and stopping tasks. This enables customers to easily map containers to the tasks they are associated with. + +## __Amazon ElastiCache__ + - ### Features + - Amazon ElastiCache for Redis now supports encryption at rest using customer managed customer master keys (CMKs) in AWS Key Management Service (KMS). Amazon ElastiCache now supports cluster names upto 40 characters for replicationGoups and upto 50 characters for cacheClusters. + +## __Application Auto Scaling__ + - ### Features + - With the current release, you can suspend and later resume any of the following scaling actions in Application Auto Scaling: scheduled scaling actions, dynamic scaling in actions, dynamic scaling out actions. + +# __2.7.34__ __2019-08-28__ +## __AWS Elemental MediaConvert__ + - ### Features + - This release adds the ability to send a job to an on-demand queue while simulating the performance of a job sent to a reserved queue. Use this setting to estimate the number of reserved transcoding slots (RTS) you need for a reserved queue. + +## __AWS Global Accelerator__ + - ### Features + - API Update for AWS Global Accelerator Client IP Preservation + +## __Amazon Simple Queue Service__ + - ### Features + - Added support for message system attributes, which currently lets you send AWS X-Ray trace IDs through Amazon SQS. + +# __2.7.33__ __2019-08-27__ +## __AWS Organizations__ + - ### Features + - Documentation updates for organizations + +# __2.7.32__ __2019-08-26__ +## __AWS SecurityHub__ + - ### Features + - This release resolves an issue with the DescribeHub action, changes the MasterId and InvitationId parameters for AcceptInvitation to Required, and changes the AccountIds parameter for DeleteInvitations and DeclineInvitations to Required. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This feature adds "default tier" to the AWS Systems Manager Parameter Store for parameter creation and update. AWS customers can now set the "default tier" to one of the following values: Standard (default), Advanced or Intelligent-Tiering. This allows customers to create advanced parameters or parameters in corresponding tiers with one setting rather than code change to specify parameter tiers. + +# __2.7.31__ __2019-08-23__ +## __AWS Elemental MediaPackage VOD__ + - ### Features + - Adds optional Constant Initialization Vector (IV) to HLS Encryption for MediaPackage VOD. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release of EC2 VM Import Export adds support for exporting Amazon Machine Image(AMI)s to a VM file + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe - support transcriptions from audio sources in Russian (ru-RU) and Chinese (zh-CN). + +# __2.7.30__ __2019-08-22__ +## __AWS DataSync__ + - ### Features + - This release adds support for SMB location type. + +## __Amazon Relational Database Service__ + - ### Features + - This release allows users to enable RDS Data API while creating Aurora Serverless databases. + +# __2.7.29__ __2019-08-21__ +## __Amazon DynamoDB__ + - ### Features + - Public preview version of 'dynamodb-enhanced' that has a new DynamoDb mapper library that can be used with the v2 SDK. See README.md in the module for more detailed information about this module. + +## __Amazon ElastiCache__ + - ### Features + - ElastiCache extends support for Scale down for Redis Cluster-mode enabled and disabled replication groups + +## __Amazon Forecast Query Service__ + - ### Features + - Amazon Forecast is a fully managed machine learning service that makes it easy for customers to generate accurate forecasts using their historical time-series data + +## __Amazon Forecast Service__ + - ### Features + - Amazon Forecast is a fully managed machine learning service that makes it easy for customers to generate accurate forecasts using their historical time-series data + +## __Amazon Personalize Runtime__ + - ### Features + - Increased limits on number of items recommended and reranked: The maximum number of results returned from getRecommendations API has been increased to 200. The maximum number of items which can be reranked via getPersonalizedRanking API has been increased to 200. + +## __Amazon Rekognition__ + - ### Features + - Documentation updates for Amazon Rekognition. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker now supports Amazon EFS and Amazon FSx for Lustre file systems as data sources for training machine learning models. Amazon SageMaker now supports running training jobs on ml.p3dn.24xlarge instance type. This instance type is offered as a limited private preview for certain SageMaker customers. If you are interested in joining the private preview, please reach out to the SageMaker Product Management team via AWS Support." + +## __Amazon Simple Queue Service__ + - ### Features + - This release provides a way to add metadata tags to a queue when it is created. You can use tags to organize and identify your Amazon SQS queues for cost allocation. + +## __Apache HTTP Client__ + - ### Features + - Enable TLS client authentication support for the Apache HTTP Client by allowing customers to specify a `TlsKeyManagersProvider` on the builder. The `KeyManger`s provided will be used when the remote server wants to authenticate the client. + +## __HTTP Client SPI__ + - ### Features + - Add `TlsKeyManagersProvider` interface for supporting TLS client auth in HTTP client implementations. + +## __Netty NIO HTTP Client__ + - ### Features + - Add ability to to use HTTP proxies with the Netty async client. + +# __2.7.28__ __2019-08-20__ +## __AWS Transfer for SFTP__ + - ### Features + - New field in response of TestIdentityProvider + +## __Alexa For Business__ + - ### Features + - Adding support for optional locale input in CreateProfile and UpdateProfile APIs + +## __Amazon AppStream__ + - ### Features + - Includes API updates to support streaming through VPC endpoints for image builders and stacks. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker introduces Managed Spot Training. Increases the maximum number of metric definitions to 40 for SageMaker Training and Hyperparameter Tuning Jobs. SageMaker Neo adds support for Acer aiSage and Qualcomm QCS605 and QCS603. + +# __2.7.27__ __2019-08-19__ +## __AWS App Mesh__ + - ### Features + - Fix for HttpMethod enum + +## __AWS Cost and Usage Report Service__ + - ### Features + - New IAM permission required for editing AWS Cost and Usage Reports - Starting today, you can allow or deny IAM users permission to edit Cost & Usage Reports through the API and the Billing and Cost Management console. To allow users to edit Cost & Usage Reports, ensure that they have 'cur: ModifyReportDefinition' permission. Refer to the technical documentation (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_cur_ModifyReportDefinition.html) for additional details. + +# __2.7.26__ __2019-08-16__ +## __AWS RoboMaker__ + - ### Features + - Two feature release: 1. AWS RoboMaker introduces log-based simulation. Log-based simulation allows you to play back pre-recorded log data such as sensor streams for testing robotic functions like localization, mapping, and object detection. Use the AWS RoboMaker SDK to test your robotic applications. 2. AWS RoboMaker allow customer to setup a robot deployment timeout when CreateDeploymentJob. + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for controlling the usage of swap space on a per-container basis for Linux containers. + +## __Amazon Elastic MapReduce__ + - ### Features + - Amazon EMR has introduced an account level configuration called Block Public Access that allows you to block clusters with ports open to traffic from public IP sources (i.e. 0.0.0.0/0 for IPv4 and ::/0 for IPv6) from launching. Individual ports or port ranges can be added as exceptions to allow public access. + +# __2.7.25__ __2019-08-15__ +## __AWS App Mesh__ + - ### Features + - This release adds support for http header based routing and route prioritization. + +## __AWS CodeCommit__ + - ### Features + - This release adds an API, BatchGetCommits, that allows retrieval of metadata for multiple commits in an AWS CodeCommit repository. + +## __AWS Glue__ + - ### Features + - GetJobBookmarks API is withdrawn. + +## __AWS Storage Gateway__ + - ### Features + - CreateSnapshotFromVolumeRecoveryPoint API supports new parameter: Tags (to be attached to the created resource) + +## __Amazon Athena__ + - ### Features + - This release adds support for querying S3 Requester Pays buckets. Users can enable this feature through their Workgroup settings. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds an option to use private certificates from AWS Certificate Manager (ACM) to authenticate a Site-to-Site VPN connection's tunnel endpoints and customer gateway device. + +# __2.7.24__ __2019-08-14__ +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new API called SendDiagnosticInterrupt, which allows you to send diagnostic interrupts to your EC2 instance. + +# __2.7.23__ __2019-08-13__ +## __AWS AppSync__ + - ### Features + - Adds a configuration option for AppSync GraphQL APIs + +# __2.7.22__ __2019-08-12__ +## __Amazon CloudWatch__ + - ### Features + - Documentation updates for monitoring + +## __Amazon Rekognition__ + - ### Features + - Adding new Emotion, Fear + +## __Application Auto Scaling__ + - ### Features + - Documentation updates for Application Auto Scaling + +## __Auto Scaling__ + - ### Features + - Amazon EC2 Auto Scaling now supports a new Spot allocation strategy "capacity-optimized" that fulfills your request using Spot Instance pools that are optimally chosen based on the available Spot capacity. + +# __2.7.21__ __2019-08-09__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert has added support for multi-DRM SPEKE with CMAF outputs, MP3 ingest, and options for improved video quality. + +## __AWS IoT__ + - ### Features + - This release adds Quality of Service (QoS) support for AWS IoT rules engine republish action. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed the issue where ByteArrayAsyncRequestBody can send duplicate requests when another request comes in at the same time the subscription completes. + - For APIs that support input event streams, set the `Content-Type` to `application/vnd.amazon.eventstream` on the request. + +## __Amazon GuardDuty__ + - ### Features + - New "evidence" field in the finding model to provide evidence information explaining why the finding has been triggered. Currently only threat-intelligence findings have this field. Some documentation updates. + +## __Amazon Lex Runtime Service__ + - ### Features + - Manage Amazon Lex session state using APIs on the client + +## __Amazon Redshift__ + - ### Features + - Add expectedNextSnapshotScheduleTime and expectedNextSnapshotScheduleTimeStatus to redshift cluster object. + +# __2.7.20__ __2019-08-08__ +## __AWS CodeBuild__ + - ### Features + - CodeBuild adds CloudFormation support for SourceCredential + +## __AWS Glue__ + - ### Features + - You can now use AWS Glue to find matching records across dataset even without identifiers to join on by using the new FindMatches ML Transform. Find related products, places, suppliers, customers, and more by teaching a custom machine learning transformation that you can use to identify matching matching records as part of your analysis, data cleaning, or master data management project by adding the FindMatches transformation to your Glue ETL Jobs. If your problem is more along the lines of deduplication, you can use the FindMatches in much the same way to identify customers who have signed up more than ones, products that have accidentally been added to your product catalog more than once, and so forth. Using the FindMatches MLTransform, you can teach a Transform your definition of a duplicate through examples, and it will use machine learning to identify other potential duplicates in your dataset. As with data integration, you can then use your new Transform in your deduplication projects by adding the FindMatches transformation to your Glue ETL Jobs. This release also contains additional APIs that support AWS Lake Formation. + +## __AWS Lake Formation__ + - ### Features + - Lake Formation: (New Service) AWS Lake Formation is a fully managed service that makes it easier for customers to build, secure and manage data lakes. AWS Lake Formation simplifies and automates many of the complex manual steps usually required to create data lakes including collecting, cleaning and cataloging data and securely making that data available for analytics and machine learning. + +## __AWS OpsWorks CM__ + - ### Features + - This release adds support for Chef Automate 2 specific engine attributes. + +# __2.7.19__ __2019-08-07__ +## __Amazon CloudWatch Application Insights__ + - ### Features + - CloudWatch Application Insights for .NET and SQL Server now provides integration with AWS Systems Manager OpsCenter. This integration allows you to view and resolve problems and operational issues detected for selected applications. + +# __2.7.18__ __2019-08-06__ +## __AWS Batch__ + - ### Features + - Documentation updates for AWS Batch + +# __2.7.17__ __2019-08-05__ +## __AWS DataSync__ + - ### Features + - Support VPC endpoints. + +## __AWS IoT__ + - ### Features + - In this release, AWS IoT Device Defender introduces audit mitigation actions that can be applied to audit findings to help mitigate security issues. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Amazon EC2 now supports a new Spot allocation strategy "Capacity-optimized" that fulfills your request using Spot Instance pools that are optimally chosen based on the available Spot capacity. + +# __2.7.16__ __2019-08-02__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix the issue where the `content-length` set on the request is not honored for streaming operations. + +## __AWS Security Token Service__ + - ### Features + - Documentation updates for sts + +# __2.7.15__ __2019-07-30__ +## __AWS Elemental MediaConvert__ + - ### Features + - MediaConvert adds support for specifying priority (-50 to 50) on jobs submitted to on demand or reserved queues + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fixed the issue where `AsyncResponseHandler#prepare` was not invoked before `#onHeaders`. See [#1343](https://github.com/aws/aws-sdk-java-v2/issues/1343). + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds support for Neural text-to-speech engine. + +## __Amazon Route 53__ + - ### Features + - Amazon Route 53 now supports the Middle East (Bahrain) Region (me-south-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region. + +# __2.7.14__ __2019-07-29__ +## __AWS CodeCommit__ + - ### Features + - This release supports better exception handling for merges. + +## __Netty NIO Http Client__ + - ### Bugfixes + - Update `HandlerRemovingChannelPool` to only remove per request handlers if the channel is open or registered to avoid the race condition when the DefaultChannelPipeline is trying to removing the handler at the same time, causing `NoSuchElementException`. + +# __2.7.13__ __2019-07-26__ +## __AWS Batch__ + - ### Features + - AWS Batch now supports SDK auto-pagination and Job-level docker devices. + +## __AWS Cost Explorer Service__ + - ### Features + - Adds support for resource optimization recommendations. + +## __AWS Glue__ + - ### Features + - This release provides GetJobBookmark and GetJobBookmarks APIs. These APIs enable users to look at specific versions or all versions of the JobBookmark for a specific job. This release also enables resetting the job bookmark to a specific run via an enhancement of the ResetJobBookmark API. + +## __AWS Greengrass__ + - ### Features + - Greengrass OTA service supports openwrt/aarch64 and openwrt/armv7l platforms. + +## __AWS MediaConnect__ + - ### Features + - This release adds support for the Zixi pull protocol on outputs. + +## __Amazon CloudWatch Logs__ + - ### Features + - Allow for specifying multiple log groups in an Insights query, and deprecate storedByte field for LogStreams and interleaved field for FilterLogEventsRequest. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - You can now create EC2 Capacity Reservations using Availability Zone ID or Availability Zone name. You can view usage of Amazon EC2 Capacity Reservations per AWS account. + +# __2.7.12__ __2019-07-25__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert has added several features including support for: audio normalization using ITU BS.1770-3, 1770-4 algorithms, extension of job progress indicators, input cropping rectangle & output position rectangle filters per input, and dual SCC caption mapping to additional codecs and containers. + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive is adding Input Clipping, Immediate Mode Input Switching, and Dynamic Inputs. + +## __Amazon EC2 Container Registry__ + - ### Features + - This release adds support for immutable image tags. + +# __2.7.11__ __2019-07-24__ +## __AWS Glue__ + - ### Features + - This release provides GlueVersion option for Job APIs and WorkerType option for DevEndpoint APIs. Job APIs enable users to pick specific GlueVersion for a specific job and pin the job to a specific runtime environment. DevEndpoint APIs enable users to pick different WorkerType for memory intensive workload. + +## __AWS Security Token Service__ + - ### Features + - New STS GetAccessKeyInfo API operation that returns the account identifier for the specified access key ID. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release introduces support for split tunnel with AWS Client VPN, and also adds support for opt-in Regions in DescribeRegions API. In addition, customers can now also tag Launch Templates on creation. + +## __Amazon Pinpoint__ + - ### Features + - This release adds support for programmatic access to many of the same campaign metrics that are displayed on the Amazon Pinpoint console. You can now use the Amazon Pinpoint API to monitor and assess performance data for campaigns, and integrate metrics data with other reporting tools. We update the metrics data continuously, resulting in a data latency timeframe that is limited to approximately two hours. + +# __2.7.10__ __2019-07-23__ +## __AWS Secrets Manager__ + - ### Features + - This release increases the maximum allowed size of SecretString or SecretBinary from 7KB to 10KB in the CreateSecret, UpdateSecret, PutSecretValue and GetSecretValue APIs. This release also increases the maximum allowed size of ResourcePolicy from 4KB to 20KB in the GetResourcePolicy and PutResourcePolicy APIs. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - You can now use Maintenance Windows to select a resource group as the target. By selecting a resource group as the target of a Maintenance Window, customers can perform routine tasks across different resources such as Amazon Elastic Compute Cloud (AmazonEC2) instances, Amazon Elastic Block Store (Amazon EBS) volumes, and Amazon Simple Storage Service(Amazon S3) buckets within the same recurring time window. + +# __2.7.9__ __2019-07-22__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix model builder enum fluent setters to check null before calling `toString` to avoid NPE. + +## __AWS Shield__ + - ### Features + - Adding new VectorType (HTTP_Reflection) and related top contributor types to describe WordPress Pingback DDoS attacks. + +## __AmazonMQ__ + - ### Features + - Adds support for AWS Key Management Service (KMS) to offer server-side encryption. You can now select your own customer managed CMK, or use an AWS managed CMK in your KMS account. + +# __2.7.8__ __2019-07-19__ +## __AWS IoT Events__ + - ### Features + - Adds support for IoT Events, Lambda, SQS and Kinesis Firehose actions. + +## __Amazon Simple Queue Service__ + - ### Features + - This release updates the information about the availability of FIFO queues and includes miscellaneous fixes. + +# __2.7.7__ __2019-07-18__ +## __AWS CodeDeploy__ + - ### Features + - Documentation updates for codedeploy + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports multiple entities for custom entity recognition + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for cluster settings. Cluster settings specify whether CloudWatch Container Insights is enabled or disabled for the cluster. + +## __Amazon ElastiCache__ + - ### Features + - Updates for Elasticache + +# __2.7.6__ __2019-07-17__ +## __AWS Config__ + - ### Features + - This release adds more granularity to the status of an OrganizationConfigRule by adding a new status. It also adds an exception when organization access is denied. + +## __AWS Database Migration Service__ + - ### Features + - S3 endpoint settings update: 1) Option to append operation column to full-load files. 2) Option to add a commit timestamp column to full-load and cdc files. Updated DescribeAccountAttributes to include UniqueAccountIdentifier. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Notify error by invoking `AsyncResponseTransformer#exceptionOccurred` for streaming operations for services using xml protocol such as S3 when the request fails and is not retriable. + +## __Auto Scaling__ + - ### Features + - Documentation updates for autoscaling + +# __2.7.5__ __2019-07-12__ +## __AWS Identity and Access Management__ + - ### Features + - Removed exception that was indicated but never thrown for IAM GetAccessKeyLastUsed API + +## __AWS RoboMaker__ + - ### Features + - Added Melodic as a supported Robot Software Suite Version + +## __AWS SDK for Java v2__ + - ### Features + - Introduce a new method `equalsBySdkFields` to compare only non-inherited fields for model classes. + + - ### Bugfixes + - Fix `AwsSessionCredentials#equals` to not compare super because the super is an interface. + - Fix the bug where `equals` and `hashCode` methods in the AWS service request and response classes were not calling super. + +## __Amazon Elasticsearch Service__ + - ### Features + - Amazon Elasticsearch Service now supports M5, C5, and R5 instance types. + +## __AmazonApiGatewayV2__ + - ### Features + - Bug fix (Add tags field to Update Stage , Api and DomainName Responses ) + +# __2.7.4__ __2019-07-11__ +## __Amazon CloudWatch Events__ + - ### Features + - Adds APIs for partner event sources, partner event buses, and custom event buses. These new features are managed in the EventBridge service. + +## __Amazon EventBridge__ + - ### Features + - Amazon EventBridge is a serverless event bus service that makes it easy to connect your applications with data from a variety of sources, including AWS services, partner applications, and your own applications. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix the issue where the SDK can invoke `channel#read` twice per request and buffer content aggressively before the subscriber is able to consume the data. This should fix [#1122](https://github.com/aws/aws-sdk-java-v2/issues/1122). + +# __2.7.3__ __2019-07-10__ +## __AWS SDK for Java v2__ + - ### Features + - Automatically retry on CRC32 checksum validation failures when the service returns a CRC32 checksum that differs from the one the SDK calculated. Previously this would just throw an exception. + +## __AWS Service Catalog__ + - ### Features + - This release adds support for Parameters in ExecuteProvisionedProductServiceAction and adds functionality to get the default parameter values for a Self-Service Action execution against a Provisioned Product via DescribeServiceActionExecutionParameters + +## __Amazon Glacier__ + - ### Features + - Documentation updates for glacier + +## __Amazon QuickSight__ + - ### Features + - Amazon QuickSight now supports embedding dashboards for all non-federated QuickSight users. This includes IAM users, AD users and users from the QuickSight user pool. The get-dashboard-embed-url API accepts QUICKSIGHT as identity type with a user ARN to authenticate the embeddable dashboard viewer as a non-federated user. + +# __2.7.2__ __2019-07-09__ +## __AWS Amplify__ + - ### Features + - This release adds webhook APIs and manual deployment APIs for AWS Amplify Console. + +## __AWS Config__ + - ### Features + - AWS Config now supports a new set of APIs to manage AWS Config rules across your organization in AWS Organizations. Using this capability, you can centrally create, update, and delete AWS Config rules across all accounts in your organization. This capability is particularly useful if you have a need to deploy a common set of AWS Config rules across all accounts. You can also specify accounts where AWS Config rules should not be created. In addition, you can use these APIs from the master account in AWS Organizations to enforce governance by ensuring that the underlying AWS Config rules are not modifiable by your organization member accounts.These APIs work for both managed and custom AWS Config rules. For more information, see Enabling AWS Config Rules Across all Accounts in Your Organization in the AWS Config Developer Guide.The new APIs are available in all commercial AWS Regions where AWS Config and AWS Organizations are supported. For the full list of supported Regions, see AWS Regions and Endpoints in the AWS General Reference. To learn more about AWS Config, visit the AWS Config webpage. To learn more about AWS Organizations, visit the AWS Organizations webpage. + +## __AWS WAF__ + - ### Features + - Updated SDK APIs to add tags to WAF Resources: WebACL, Rule, Rulegroup and RateBasedRule. Tags can also be added during creation of these resources. + +## __AWS WAF Regional__ + - ### Features + - Updated SDK APIs to add tags to WAF Resources: WebACL, Rule, Rulegroup and RateBasedRule. Tags can also be added during creation of these resources. + +## __Amazon CloudWatch__ + - ### Features + - This release adds three new APIs (PutAnomalyDetector, DeleteAnomalyDetector, and DescribeAnomalyDetectors) to support the new feature, CloudWatch Anomaly Detection. In addition, PutMetricAlarm and DescribeAlarms APIs are updated to support management of Anomaly Detection based alarms. + +## __Amazon Elastic File System__ + - ### Features + - EFS customers can now enable Lifecycle Management for all file systems. You can also now select from one of four Lifecycle Management policies (14, 30, 60 and 90 days), to automatically move files that have not been accessed for the period of time defined by the policy, from the EFS Standard storage class to the EFS Infrequent Access (IA) storage class. EFS IA provides price/performance that is cost-optimized for files that are not accessed every day. + +## __Amazon GameLift__ + - ### Features + - GameLift FlexMatch now supports matchmaking of up to 200 players per game session, and FlexMatch can now automatically backfill your game sessions whenever there is an open slot. + +## __Amazon Kinesis Video Streams__ + - ### Features + - Add "GET_DASH_STREAMING_SESSION_URL" as an API name to the GetDataEndpoint API. + +## __Amazon Kinesis Video Streams Archived Media__ + - ### Features + - Adds support for the GetDASHStreamingSessionURL API. Also adds support for the Live Replay playback mode of the GetHLSStreamingSessionURL API. + +## __Netty NIO HTTP Client__ + - ### Features + - Improved error messaging when a connection is closed. Fixes [#1260](https://github.com/aws/aws-sdk-java-v2/issues/1260). + +# __2.7.1__ __2019-07-08__ +## __AWS Cost Explorer Service__ + - ### Features + - This release introduces a new operation called GetUsageForecast, which allows you to programmatically access AWS Cost Explorer's forecasting engine on usage data (running hours, data transfer, etc). + +# __2.7.0__ __2019-07-03__ +## __AWS SDK for Java v2__ + - ### Features + - Update Apache http client version to `4.5.9`. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - AssignPrivateIpAddresses response includes two new fields: AssignedPrivateIpAddresses, NetworkInterfaceId + +## __Amazon Relational Database Service__ + - ### Features + - This release supports Cross-Account Cloning for Amazon Aurora clusters. + +## __Amazon Simple Storage Service__ + - ### Features + - Add S3 x-amz-server-side-encryption-context support. + +## __Amazon Simple Workflow Service__ + - ### Features + - This release adds APIs that allow adding and removing tags to a SWF domain, and viewing tags for a domain. It also enables adding tags when creating a domain. + +## __Apache Http Client__ + - ### Bugfixes + - Disable apache normalization to handle breaking change introduced in apache httpclient `4.5.7`. See [aws/aws-sdk-java[#1919](https://github.com/aws/aws-sdk-java-v2/issues/1919)](https://github.com/aws/aws-sdk-java/issues/1919) for more information. diff --git a/changelogs/2.8.x-CHANGELOG.md b/changelogs/2.8.x-CHANGELOG.md new file mode 100644 index 000000000000..97d06e9efff9 --- /dev/null +++ b/changelogs/2.8.x-CHANGELOG.md @@ -0,0 +1,120 @@ +# __2.8.7__ __2019-09-12__ +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports High Efficiency Video Coding (HEVC) for standard-definition (SD), high-definition (HD), and ultra-high-definition (UHD) encoding with HDR support.Encoding with HEVC offers a number of advantages. While UHD video requires an advanced codec beyond H.264 (AVC), high frame rate (HFR) or High Dynamic Range (HDR) content in HD also benefit from HEVC's advancements. In addition, benefits can be achieved with HD and SD content even if HDR and HFR are not needed. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Fix for FleetActivityStatus and FleetStateCode enum + +## __Amazon WorkMail Message Flow__ + - ### Features + - This release allows customers to access email messages as they flow to and from Amazon WorkMail. + +## __Elastic Load Balancing__ + - ### Features + - Documentation updates for elasticloadbalancingv2: This release adds support for TLS SNI on Network Load Balancers + +# __2.8.6__ __2019-09-11__ +## __AWS Config__ + - ### Features + - Adding input validation for the OrganizationConfigRuleName string. + +## __AWS MediaConnect__ + - ### Features + - This release adds support for the RIST protocol on sources and outputs. + +## __AWS Step Functions__ + - ### Features + - Fixing letter case in Map history event details to be small case + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for new data fields and log format in VPC flow logs. + +## __Amazon Relational Database Service__ + - ### Features + - This release allows customers to specify a custom parameter group when creating a Read Replica, for DB engines which support this feature. + +## __Amazon Simple Email Service__ + - ### Features + - Updated API documentation to correct broken links, and to update content based on customer feedback. + +# __2.8.5__ __2019-09-10__ +## __AWS SDK for Java v2__ + - ### Bugfixes + - Fix marshalling for models with xml attribute. See [#1182](https://github.com/aws/aws-sdk-java-v2/issues/1182) + +## __AWS Storage Gateway__ + - ### Features + - The CloudWatchLogGroupARN parameter of the UpdateGatewayInformation API allows for configuring the gateway to use a CloudWatch log-group where Storage Gateway health events will be logged. + +# __2.8.4__ __2019-09-09__ +## __AWS App Mesh__ + - ### Features + - This release adds support for http retry policies. + +## __AWS Marketplace Commerce Analytics__ + - ### Features + - Add FDP+FPS (monthly_revenue_field_demonstration_usage + monthly_revenue_flexible_payment_schedule) to Marketplace Commerce Analytics Service + +## __AWS RoboMaker__ + - ### Features + - Support for Connectivity to Simulation. When you need to interact with the applications in your simulation job, you can connect to your robot application or simulation application with port forwarding. When you configure port forwarding, traffic will be forwarded from the simulation job port to the application port. Port forwarding makes it easy to connect with tools such as ROS Bridge and other tools. This can be useful when you want to debug or run custom tools to interact with your applications. + +## __Amazon AppStream__ + - ### Features + - IamRoleArn support in CreateFleet, UpdateFleet, CreateImageBuilder APIs + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release expands Site-to-Site VPN tunnel options to allow customers to restrict security algorithms and configure timer settings for VPN connections. Customers can specify these new options while creating new VPN connections, or they can modify the tunnel options on existing connections using a new API. + +## __Amazon QLDB__ + - ### Features + - (New Service) Amazon QLDB is a fully managed ledger database that provides a transparent, immutable, and cryptographically verifiable transaction log owned by a central trusted authority. Amazon QLDB is a new class of serverless database that eliminates the need to engage in the complex development effort of building your own ledger-like applications and it automatically scales to support the demands of your application. Introduces Amazon QLDB API operations needed for managing Amazon QLDB ledgers. This includes the ability to manage Amazon QLDB ledgers, cryptographically verify documents, and export the journal in a ledger. + +## __Amazon QLDB Session__ + - ### Features + - (New Service) Amazon QLDB is a fully managed ledger database that provides a transparent, immutable, and cryptographically verifiable transaction log owned by a central trusted authority. Amazon QLDB is a new class of serverless database that eliminates the need to engage in the complex development effort of building your own ledger-like applications and it automatically scales to support the demands of your application. Introduces Amazon QLDB API operations needed for interacting with data in Amazon QLDB ledgers. + +# __2.8.3__ __2019-09-06__ +## __Amazon Kinesis Analytics__ + - ### Features + - Documentation updates for kinesisanalytics + +# __2.8.2__ __2019-09-05__ +## __AWS Config__ + - ### Features + - AWS Config now includes the option for marking RemediationConfigurations as automatic, removing the need to call the StartRemediationExecution API. Manual control over resource execution rate is also included, and RemediationConfigurations are now ARN addressable. Exceptions to exclude account resources from being remediated can be configured with the new PutRemediationExceptions, DescribeRemediationExceptions, and DeleteRemediationExceptions APIs. + +# __2.8.1__ __2019-09-04__ +## __AWS Step Functions__ + - ### Features + - Added support for new history events + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - Amazon EKS DescribeCluster API returns a new OIDC issuer field that can be used to create OIDC identity provider for IAM for Service Accounts feature. + +## __Amazon Transcribe Service__ + - ### Features + - MediaFormat is now optional for StartTranscriptionJob API. + +# __2.8.0__ __2019-09-03__ +## __AWS Resource Groups Tagging API__ + - ### Features + - Documentation updates for resourcegroupstaggingapi + +## __AWS SDK for Java v2__ + - ### Features + - Bump minor version to 2.8.0-SNAPSHOT because of [#1391](https://github.com/aws/aws-sdk-java-v2/issues/1391). + - Upgrade Netty version to 4.1.39.Final, netty reactive streams version to 2.0.3, netty open ssl version to 2.0.25.Final + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for attaching Amazon Elastic Inference accelerators to your containers. This enables you to run deep learning inference workloads with hardware acceleration in a more efficient way. + +## __Amazon GameLift__ + - ### Features + - You can now make use of PKI resources to provide more secure connections between your game clients and servers. To learn more, please refer to the public Amazon GameLift documentation. diff --git a/changelogs/2.9.x-CHANGELOG.md b/changelogs/2.9.x-CHANGELOG.md new file mode 100644 index 000000000000..0245c90a10d8 --- /dev/null +++ b/changelogs/2.9.x-CHANGELOG.md @@ -0,0 +1,358 @@ +# __2.9.26__ __2019-10-23__ +## __AWS Security Token Service__ + - ### Features + - AWS Security Token Service (STS) now supports a regional configuration flag to make the client respect the region without the need for the endpoint parameter. + +## __Amazon Connect Service__ + - ### Features + - This release adds 4 new APIs ListQueues, ListPhoneNumbers, ListContactFlows, and ListHoursOfOperations, which can be used to programmatically list Queues, PhoneNumbers, ContactFlows, and HoursOfOperations configured for an Amazon Connect instance respectively. You can learn more about the new APIs here: https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds new female voices: US Spanish - Lupe and Brazilian Portuguese - Camila; both voices are available in Standard and Neural engine. + +# __2.9.25__ __2019-10-22__ +## __AWS IoT Events__ + - ### Features + - Add support for new serial evaluation method for events in a detector model. + +## __AWS OpsWorks CM__ + - ### Features + - AWS OpsWorks for Chef Automate (OWCA) now allows customers to use a custom domain and respective certificate, for their AWS OpsWorks For Chef Automate servers. Customers can now provide a CustomDomain, CustomCertificate and CustomPrivateKey in CreateServer API to configure their Chef Automate servers with a custom domain and certificate. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Better handle `GOAWAY` messages from the remote endpoint. + +# __2.9.24__ __2019-10-18__ +## __Amazon CloudWatch__ + - ### Features + - New Period parameter added to MetricDataQuery structure. + +## __Netty NIO Http Client__ + - ### Bugfixes + - Update `HealthCheckedChannelPool` to check `KEEP_ALIVE` when acquiring a channel from the pool to avoid soon-to-be inactive channels being picked up by a new request. This should reduce the frequency of `IOException: Server failed to complete response` errors. See [#1380](https://github.com/aws/aws-sdk-java-v2/issues/1380), [#1466](https://github.com/aws/aws-sdk-java-v2/issues/1466). + +# __2.9.23__ __2019-10-17__ +## __AWS Batch__ + - ### Features + - Adding support for Compute Environment Allocation Strategies + +## __Amazon Relational Database Service__ + - ### Features + - Amazon RDS now supports Amazon RDS on VMware with the introduction of APIs related to Custom Availability Zones and Media installation. + +# __2.9.22__ __2019-10-16__ +## __AWS Marketplace Commerce Analytics__ + - ### Features + - add 2 more values for the supporting sections - age of past due funds + uncollected funds breakdown + +## __AWS RoboMaker__ + - ### Features + - This release adds support for ROS2 Dashing as a beta feature + +## __Managed Streaming for Kafka__ + - ### Features + - AWS MSK has added support for adding brokers to a cluster. + +# __2.9.21__ __2019-10-15__ +## __Amazon Kinesis Video Streams Archived Media__ + - ### Features + - Add ON_DISCONTINUITY mode to the GetHLSStreamingSessionURL API + +# __2.9.20__ __2019-10-14__ +## __Amazon Personalize__ + - ### Features + - AWS Personalize: Adds ability to create a solution version using FULL or UPDATE training mode + +## __Amazon WorkSpaces__ + - ### Features + - Documentation updates for WorkSpaces + +# __2.9.19__ __2019-10-11__ +## __AWS Greengrass__ + - ### Features + - Greengrass OTA service supports Raspbian/Armv6l platforms. + +# __2.9.18__ __2019-10-10__ +## __AWS IoT Analytics__ + - ### Features + - Add `completionTime` to API call ListDatasetContents. + +## __AWS SDK for Java v2__ + - ### Features + - Implement arn parser functions in `arns` module. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - New EC2 M5n, M5dn, R5n, R5dn instances with 100 Gbps network performance and Elastic Fabric Adapter (EFA) for ultra low latency; New A1.metal bare metal instance powered by AWS Graviton Processors + +## __Amazon Lex Runtime Service__ + - ### Features + - Amazon Lex now supports Session API checkpoints + +## __Firewall Management Service__ + - ### Features + - Firewall Manager now supports Amazon VPC security groups, making it easier to configure and manage security groups across multiple accounts from a single place. + +# __2.9.17__ __2019-10-09__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for Dolby Atmos encoding, up to 36 outputs, accelerated transcoding with frame capture and preferred acceleration feature. + +## __AWS SDK for Java v2__ + - ### Features + - Expose instance signature through EC2MetadataUtils + + - ### Bugfixes + - Fix the implementations of `equals(Object)` and `hashCode()` for `DefaultSdkAutoConstructList` and `DefaultSdkAutoConstructMap` so that they follow the Java `equals` and `hashCode` contract. In addition, ensure that these implementations' `toString()` methods return nicely readable results. Fixes [#1445](https://github.com/aws/aws-sdk-java-v2/issues/1445) + +## __Amazon ElastiCache__ + - ### Features + - Amazon ElastiCache now allows you to apply available service updates on demand to your Memcached and Redis Cache Clusters. Features included: (1) Access to the list of applicable service updates and their priorities. (2) Service update monitoring and regular status updates. (3) Recommended apply-by-dates for scheduling the service updates. (4) Ability to stop and later re-apply updates. For more information, see https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/Self-Service-Updates.html and https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Self-Service-Updates.html + +## __Managed Streaming for Kafka__ + - ### Features + - Updated documentation for Amazon Managed Streaming for Kafka service. + +# __2.9.16__ __2019-10-08__ +## __AWS DataSync__ + - ### Features + - Add Sync options to enable/disable TaskQueueing + +## __AWS Organizations__ + - ### Features + - Documentation updates for organizations + +## __AWS SDK for Java v2__ + - ### Features + - EC2MetadataUtils: add marketplaceProductCodes inside InstanceInfo's POJO + +## __Amazon EventBridge__ + - ### Features + - Documentation updates for Amazon EventBridge. + +## __Amazon Kinesis Firehose__ + - ### Features + - With this release, you can use Amazon Kinesis Firehose delivery streams to deliver streaming data to Amazon Elasticsearch Service version 7.x clusters. For technical documentation, look for CreateDeliveryStream operation in Amazon Kinesis Firehose API reference. + +## __Amazon S3 Control__ + - ### Features + - Adds support for the Amazon S3 Control service to the SDK. + +# __2.9.15__ __2019-10-07__ +## __AWS Direct Connect__ + - ### Features + - This release adds a service provider field for physical connection creation and provides a list of available partner providers for each Direct Connect location. + +## __AWS Glue__ + - ### Features + - AWS Glue now provides ability to use custom certificates for JDBC Connections. + +## __Amazon Import/Export Snowball__ + - ### Features + - AWS Snowball Edge now allows you to perform an offline update to the software of your Snowball Edge device when your device is not connected to the internet. Previously, updating your Snowball Edge's software required that the device be connected to the internet or be sent back to AWS. Now, you can keep your Snowball Edge software up to date even if your device(s) cannot connect to the internet, or are required to run in an air-gapped environment. To complete offline updates, download the software update from a client machine with connection to the internet using the AWS Command Line Interface (CLI). Then, have the Snowball Edge device download and install the software update using the Snowball Edge device API. For more information about offline updates, visit the Snowball Edge documentation page. + +## __Amazon Kinesis Firehose__ + - ### Features + - Amazon Kinesis Data Firehose now allows delivering data to Elasticsearch clusters set up in a different AWS account than the Firehose AWS account. For technical documentation, look for ElasticsearchDestinationConfiguration in the Amazon Kinesis Firehose API reference. + +## __Amazon Pinpoint__ + - ### Features + - This release of the Amazon Pinpoint API introduces support for using and managing message templates. + +## __Amazon Pinpoint Email Service__ + - ### Features + - This release of the Amazon Pinpoint Email API introduces support for using and managing message templates. + +# __2.9.14__ __2019-10-04__ +## __AWS Elemental MediaPackage__ + - ### Features + - New Harvest Job APIs to export segment-accurate content windows from MediaPackage Origin Endpoints to S3. See https://docs.aws.amazon.com/mediapackage/latest/ug/harvest-jobs.html for more info + +## __Amazon CloudWatch__ + - ### Bugfixes + - Add cloudwatch specific http configurations, specifically reducing `connectionMaxIdleTime`. Related to [#1380](https://github.com/aws/aws-sdk-java-v2/issues/1380) + +## __Amazon Cognito Identity Provider__ + - ### Features + - This release adds ClientMetadata input parameter to multiple Cognito User Pools operations, making this parameter available to the customer configured lambda triggers as applicable. + +## __Amazon S3__ + - ### Bugfixes + - Add s3 specific http configurations, specifically reducing `connectionMaxIdleTime`. Related to [#1122](https://github.com/aws/aws-sdk-java-v2/issues/1122) + +## __Amazon S3 Control__ + - ### Features + - Adds support for the Amazon S3 Control service to the SDK. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Documentation updates for Systems Manager / StartSession. + +# __2.9.13__ __2019-10-03__ +## __AWS Device Farm__ + - ### Features + - Documentation updates for devicefarm + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release allows customers to purchase regional EC2 RIs on a future date. + +## __Amazon Elasticsearch Service__ + - ### Features + - Amazon Elasticsearch Service now supports configuring additional options for domain endpoint, such as whether to require HTTPS for all traffic. + +## __Application Auto Scaling__ + - ### Features + - Documentation updates for Application Auto Scaling + +# __2.9.12__ __2019-10-02__ +## __Amazon Lightsail__ + - ### Features + - This release adds support for the automatic snapshots add-on for instances and block storage disks. + +# __2.9.11__ __2019-10-01__ +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - This release provides support for describe and modify CA certificates. + +# __2.9.10__ __2019-09-30__ +## __AWS WAF__ + - ### Features + - Lowering the threshold for Rate Based rule from 2000 to 100. + +## __Amazon Relational Database Service__ + - ### Features + - This release adds support for creating a Read Replica with Active Directory domain information. This release updates RDS API to indicate whether an OrderableDBInstanceOption supports Kerberos Authentication. + +## __AmazonMQ__ + - ### Features + - Amazon MQ now includes the ability to scale your brokers by changing the host instance type. See the hostInstanceType property of UpdateBrokerInput (https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-model-updatebrokerinput), and pendingHostInstanceType property of DescribeBrokerOutput (https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-model-describebrokeroutput). + +# __2.9.9__ __2019-09-27__ +## __AWS Amplify__ + - ### Features + - This release adds access logs APIs and artifact APIs for AWS Amplify Console. + +## __AWS SDK for Java v2__ + - ### Bugfixes + - Update the pool size for default async future completion executor service. See [#1251](https://github.com/aws/aws-sdk-java-v2/issues/1251), [#994](https://github.com/aws/aws-sdk-java-v2/issues/994) + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) removes FirelensConfiguration from the DescribeTask output during the FireLens public preview. + +# __2.9.8__ __2019-09-26__ +## __AWS CodePipeline__ + - ### Features + - Documentation updates for CodePipeline + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This release updates the AWS Systems Manager Parameter Store PutParameter and LabelParameterVersion APIs to return the "Tier" of parameter created/updated and the "parameter version" labeled respectively. + +# __2.9.7__ __2019-09-25__ +## __AWS Database Migration Service__ + - ### Features + - This release adds a new DeleteConnection API to delete the connection between a replication instance and an endpoint. It also adds an optional S3 setting to specify the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. + +## __AWS Global Accelerator__ + - ### Features + - API Update for AWS Global Accelerator to support for DNS aliasing. + +## __Amazon SageMaker Service__ + - ### Features + - Enable G4D and R5 instances in SageMaker Hosting Services + +# __2.9.6__ __2019-09-24__ +## __AWS Comprehend Medical__ + - ### Features + - Use Amazon Comprehend Medical to analyze medical text stored in the specified Amazon S3 bucket. Use the console to create and manage batch analysis jobs, or use the batch APIs to detect both medical entities and protected health information (PHI). The batch APIs start, stop, list, and retrieve information about batch analysis jobs. This release also includes DetectEntitiesV2 operation which returns the Acuity and Direction entities as attributes instead of types. + +## __AWS DataSync__ + - ### Features + - Added S3StorageClass, OverwriteMode sync option, and ONLY_FILES_TRANSFERRED setting for the VerifyMode sync option. + +## __Amazon Transcribe Service__ + - ### Features + - With this update Amazon Transcribe enables you to provide an AWS KMS key to encrypt your transcription output. + +# __2.9.5__ __2019-09-23__ +## __AWS RDS DataService__ + - ### Features + - RDS Data API now supports Amazon Aurora Serverless PostgreSQL databases. + +## __Amazon Redshift__ + - ### Features + - Adds API operation DescribeNodeConfigurationOptions and associated data structures. + +# __2.9.4__ __2019-09-20__ +## __AWS Greengrass__ + - ### Features + - Greengrass OTA service now returns the updated software version in the PlatformSoftwareVersion parameter of a CreateSoftwareUpdateJob response + +## __Amazon Elastic Compute Cloud__ + - ### Features + - G4 instances are Amazon EC2 instances based on NVIDIA T4 GPUs and are designed to provide cost-effective machine learning inference for applications, like image classification, object detection, recommender systems, automated speech recognition, and language translation. G4 instances are also a cost-effective platform for building and running graphics-intensive applications, such as remote graphics workstations, video transcoding, photo-realistic design, and game streaming in the cloud. To get started with G4 instances visit https://aws.amazon.com/ec2/instance-types/g4. + +## __Amazon Relational Database Service__ + - ### Features + - Add a new LeaseID output field to DescribeReservedDBInstances, which shows the unique identifier for the lease associated with the reserved DB instance. AWS Support might request the lease ID for an issue related to a reserved DB instance. + +## __Amazon WorkSpaces__ + - ### Features + - Adds the WorkSpaces restore feature + +# __2.9.3__ __2019-09-19__ +## __AWS Glue__ + - ### Features + - AWS Glue DevEndpoints now supports GlueVersion, enabling you to choose Apache Spark 2.4.3 (in addition to Apache Spark 2.2.1). In addition to supporting the latest version of Spark, you will also have the ability to choose between Python 2 and Python 3. + +## __AWS MediaConnect__ + - ### Features + - When you grant an entitlement, you can now specify the percentage of the entitlement data transfer that you want the subscriber to be responsible for. + +## __Amazon EC2 Container Service__ + - ### Features + - This release of Amazon Elastic Container Service (Amazon ECS) introduces support for container image manifest digests. This enables you to identify all tasks launched using a container image pulled from ECR in order to correlate what was built with where it is running. + +# __2.9.2__ __2019-09-18__ +## __AWS Resource Access Manager__ + - ### Features + - AWS RAM provides a new ListPendingInvitationResources API action that lists the resources in a resource share that is shared with you but that the invitation is still pending for + +## __AWS WAF Regional__ + - ### Features + - Lowering the threshold for Rate Based rule from 2000 to 100. + +## __Amazon API Gateway__ + - ### Features + - Amazon API Gateway simplifies accessing PRIVATE APIs by allowing you to associate one or more Amazon Virtual Private Cloud (VPC) Endpoints to a private API. API Gateway will create and manage DNS alias records necessary for easily invoking the private APIs. With this feature, you can leverage private APIs in web applications hosted within your VPCs. + +# __2.9.1__ __2019-09-17__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for iam + +## __Amazon Athena__ + - ### Features + - This release adds DataManifestLocation field indicating the location and file name of the data manifest file. Users can get a list of files that the Athena query wrote or intended to write from the manifest file. + +## __Amazon Personalize__ + - ### Features + - [Personalize] Adds trainingHours to solutionVersion properties. + +# __2.9.0__ __2019-09-16__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK has added support for multi-DRM SPEKE with CMAF outputs, MP3 ingest, and options for improved video quality. + +## __AWS SDK for Java v2__ + - ### Features + - Bump minor version to `2.9.0-SNAPSHOT` because of [#1413](https://github.com/aws/aws-sdk-java-v2/issues/1413). + - Updating dependencies versions: jackson 2.9.8 -> 2.9.9, slf4j 1.7.35 -> 1.7.38, netty 4.1.39.Final -> 4.1.41.Final (contains the fix for the performance regression in 4.1.39) + +## __Amazon Elastic Kubernetes Service__ + - ### Features + - This release lets customers add tags to an Amazon EKS cluster. These tags can be used to control access to the EKS API for managing the cluster using IAM. The Amazon EKS TagResource API allows customers to associate tags with their cluster. Customers can list tags for a cluster using the ListTagsForResource API and remove tags from a cluster with the UntagResource API. Note: tags are specific to the EKS cluster resource, they do not propagate to other AWS resources used by the cluster. diff --git a/codegen-lite-maven-plugin/pom.xml b/codegen-lite-maven-plugin/pom.xml index f08ea72ffc2e..993c1cbfb06f 100644 --- a/codegen-lite-maven-plugin/pom.xml +++ b/codegen-lite-maven-plugin/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../pom.xml codegen-lite-maven-plugin diff --git a/codegen-lite/pom.xml b/codegen-lite/pom.xml index b2d75491e784..4a47ae2dd29a 100644 --- a/codegen-lite/pom.xml +++ b/codegen-lite/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codegen-lite AWS Java SDK :: Code Generator Lite diff --git a/codegen-maven-plugin/pom.xml b/codegen-maven-plugin/pom.xml index 55b5b9315585..ad59c21cdc51 100644 --- a/codegen-maven-plugin/pom.xml +++ b/codegen-maven-plugin/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../pom.xml codegen-maven-plugin diff --git a/codegen/pom.xml b/codegen/pom.xml index e6c688703be9..bf83568e93af 100644 --- a/codegen/pom.xml +++ b/codegen/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codegen AWS Java SDK :: Code Generator diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/AddOperations.java b/codegen/src/main/java/software/amazon/awssdk/codegen/AddOperations.java index 1680ab6178f3..5602025b6c1c 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/AddOperations.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/AddOperations.java @@ -176,7 +176,7 @@ public Map constructOperations() { operationModel.setEndpointTrait(op.getEndpoint()); operationModel.setHttpChecksumRequired(op.isHttpChecksumRequired()); operationModel.setHttpChecksum(op.getHttpChecksum()); - operationModel.setRequestCompression(op.getRequestCompression()); + operationModel.setRequestcompression(op.getRequestcompression()); operationModel.setStaticContextParams(op.getStaticContextParams()); operationModel.setAuth(getAuthFromOperation(op)); diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/compression/RequestCompression.java b/codegen/src/main/java/software/amazon/awssdk/codegen/compression/RequestCompression.java index 69d53bc7e30f..d76489cb1d8e 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/compression/RequestCompression.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/compression/RequestCompression.java @@ -19,7 +19,7 @@ import software.amazon.awssdk.annotations.SdkInternalApi; /** - * Class to map the RequestCompression trait of an operation. + * Class to map the requestcompression trait of an operation. */ @SdkInternalApi public class RequestCompression { diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/AuthSchemeGeneratorTasks.java b/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/AuthSchemeGeneratorTasks.java index 6f6ed28820a2..fbcec7931bd8 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/AuthSchemeGeneratorTasks.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/AuthSchemeGeneratorTasks.java @@ -25,6 +25,7 @@ import software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeProviderSpec; import software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeSpecUtils; import software.amazon.awssdk.codegen.poet.auth.scheme.DefaultAuthSchemeParamsSpec; +import software.amazon.awssdk.codegen.poet.auth.scheme.EndpointAwareAuthSchemeParamsSpec; import software.amazon.awssdk.codegen.poet.auth.scheme.EndpointBasedAuthSchemeProviderSpec; import software.amazon.awssdk.codegen.poet.auth.scheme.ModelBasedAuthSchemeProviderSpec; @@ -47,6 +48,7 @@ protected List createTasks() { tasks.add(generateAuthSchemeInterceptor()); if (authSchemeSpecUtils.useEndpointBasedAuthProvider()) { tasks.add(generateEndpointBasedProvider()); + tasks.add(generateEndpointAwareAuthSchemeParams()); } return tasks; } @@ -72,6 +74,11 @@ private GeneratorTask generateEndpointBasedProvider() { new EndpointBasedAuthSchemeProviderSpec(model)); } + private GeneratorTask generateEndpointAwareAuthSchemeParams() { + return new PoetGeneratorTask(authSchemeDir(), model.getFileHeader(), new EndpointAwareAuthSchemeParamsSpec(model)); + + } + private GeneratorTask generateAuthSchemeInterceptor() { return new PoetGeneratorTask(authSchemeInternalDir(), model.getFileHeader(), new AuthSchemeInterceptorSpec(model)); } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/OperationModel.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/OperationModel.java index 6702a4bc021b..a892bf6c897e 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/OperationModel.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/OperationModel.java @@ -78,7 +78,7 @@ public class OperationModel extends DocumentationModel { private HttpChecksum httpChecksum; - private RequestCompression requestCompression; + private RequestCompression requestcompression; @JsonIgnore private Map staticContextParams; @@ -342,12 +342,12 @@ public void setHttpChecksum(HttpChecksum httpChecksum) { this.httpChecksum = httpChecksum; } - public RequestCompression getRequestCompression() { - return requestCompression; + public RequestCompression getRequestcompression() { + return requestcompression; } - public void setRequestCompression(RequestCompression requestCompression) { - this.requestCompression = requestCompression; + public void setRequestcompression(RequestCompression requestcompression) { + this.requestcompression = requestcompression; } public Map getStaticContextParams() { diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/AuthType.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/AuthType.java index 1b1a73d5728f..b7cd768456c6 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/AuthType.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/AuthType.java @@ -36,6 +36,10 @@ public enum AuthType { this.value = value; } + public String value() { + return value; + } + public static AuthType fromValue(String value) { String normalizedValue = StringUtils.lowerCase(value); return Arrays.stream(values()) diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/Operation.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/Operation.java index 182ef145f88d..b1d4fd69313c 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/Operation.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/Operation.java @@ -55,7 +55,7 @@ public class Operation { private HttpChecksum httpChecksum; - private RequestCompression requestCompression; + private RequestCompression requestcompression; private Map staticContextParams; @@ -202,12 +202,12 @@ public void setHttpChecksum(HttpChecksum httpChecksum) { this.httpChecksum = httpChecksum; } - public RequestCompression getRequestCompression() { - return requestCompression; + public RequestCompression getRequestcompression() { + return requestcompression; } - public void setRequestCompression(RequestCompression requestCompression) { - this.requestCompression = requestCompression; + public void setRequestcompression(RequestCompression requestcompression) { + this.requestcompression = requestcompression; } public Map getStaticContextParams() { diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenKnowledgeIndex.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenKnowledgeIndex.java new file mode 100644 index 000000000000..d8bf80517ca1 --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenKnowledgeIndex.java @@ -0,0 +1,80 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.auth.scheme; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.function.BiConsumer; +import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; + +/** + * Knowledge index to get access to the configured service auth schemes and operations overrides. This index is optimized for + * code generation of switch statements therefore the data is grouped by operations that share the same auth schemes. + */ +public final class AuthSchemeCodegenKnowledgeIndex { + /** + * We delegate this value to {@link ModelAuthSchemeKnowledgeIndex#operationsToMetadata()}. We just wrap the results in an + * interface that easier to use for the layer that does the code generation. + */ + private final Map, List> operationsToAuthSchemes; + + private AuthSchemeCodegenKnowledgeIndex(IntermediateModel intermediateModel) { + this.operationsToAuthSchemes = ModelAuthSchemeKnowledgeIndex.of(intermediateModel).operationsToMetadata(); + } + + /** + * Creates a new {@link AuthSchemeCodegenKnowledgeIndex} using the given {@code intermediateModel}.. + */ + public static AuthSchemeCodegenKnowledgeIndex of(IntermediateModel intermediateModel) { + return new AuthSchemeCodegenKnowledgeIndex(intermediateModel); + } + + /** + * Returns the service defaults auth schemes. These can be overridden by operation. + * + * @return the service defaults auth schemes. + */ + public List serviceDefaultAuthSchemes() { + return operationsToAuthSchemes.get(Collections.emptyList()); + } + + /** + * Returns true if there are auth scheme overrides per operation. + * + * @return true if there are auth scheme overrides per operation + */ + public boolean hasPerOperationAuthSchemesOverrides() { + // The map at least contains one key-value pair (keyed with Collections.emptyList()). + // If we have more than that then we have at least one override. + return operationsToAuthSchemes.size() > 1; + } + + /** + * Traverses each group of operations with the same set of auth schemes. + * + * @param consumer The consumer to call for each group of operations with the same set of auth schemes. + */ + public void forEachOperationsOverridesGroup(BiConsumer, List> consumer) { + for (Map.Entry, List> kvp : operationsToAuthSchemes.entrySet()) { + if (kvp.getKey().isEmpty()) { + // We are traversing operation groups, ignore service wide defaults. + continue; + } + consumer.accept(kvp.getKey(), kvp.getValue()); + } + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenMetadata.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenMetadata.java index 90149c984fa5..158e70dc0bba 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenMetadata.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenMetadata.java @@ -15,87 +15,18 @@ package software.amazon.awssdk.codegen.poet.auth.scheme; -import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.CodeBlock; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.function.BiConsumer; -import software.amazon.awssdk.codegen.model.service.AuthType; -import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; -import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner; -import software.amazon.awssdk.http.auth.scheme.BearerAuthScheme; -import software.amazon.awssdk.http.auth.scheme.NoAuthAuthScheme; +import java.util.function.Supplier; import software.amazon.awssdk.utils.Validate; +/** + * Represents a modeled auth scheme option. + */ public final class AuthSchemeCodegenMetadata { - - static final AuthSchemeCodegenMetadata SIGV4 = builder() - .schemeId(AwsV4AuthScheme.SCHEME_ID) - .authSchemeClass(AwsV4AuthScheme.class) - .addProperty(SignerPropertyValueProvider.builder() - .containingClass(AwsV4HttpSigner.class) - .fieldName("SERVICE_SIGNING_NAME") - .valueEmitter((spec, utils) -> spec.addCode("$S", utils.signingName())) - .build()) - .addProperty(SignerPropertyValueProvider.builder() - .containingClass(AwsV4HttpSigner.class) - .fieldName("REGION_NAME") - .valueEmitter((spec, utils) -> spec.addCode("$L", "params.region().id()")) - .build()) - .build(); - - static final AuthSchemeCodegenMetadata SIGV4_UNSIGNED_BODY = - SIGV4.toBuilder() - .addProperty(SignerPropertyValueProvider.builder() - .containingClass(AwsV4HttpSigner.class) - .fieldName("PAYLOAD_SIGNING_ENABLED") - .valueEmitter((spec, utils) -> spec.addCode("$L", false)) - .build()) - .build(); - - static final AuthSchemeCodegenMetadata S3 = - SIGV4.toBuilder() - .addProperty(SignerPropertyValueProvider.builder() - .containingClass(AwsV4HttpSigner.class) - .fieldName("DOUBLE_URL_ENCODE") - .valueEmitter((spec, utils) -> spec.addCode("$L", "false")) - .build()) - .addProperty(SignerPropertyValueProvider.builder() - .containingClass(AwsV4HttpSigner.class) - .fieldName("NORMALIZE_PATH") - .valueEmitter((spec, utils) -> spec.addCode("$L", "false")) - .build()) - .addProperty(SignerPropertyValueProvider.builder() - .containingClass(AwsV4HttpSigner.class) - .fieldName("PAYLOAD_SIGNING_ENABLED") - .valueEmitter((spec, utils) -> spec.addCode("$L", false)) - .build()) - .build(); - - static final AuthSchemeCodegenMetadata S3V4 = - SIGV4.toBuilder() - .addProperty(SignerPropertyValueProvider.builder() - .containingClass(AwsV4HttpSigner.class) - .fieldName("DOUBLE_URL_ENCODE") - .valueEmitter((spec, utils) -> spec.addCode("$L", "false")) - .build()) - .addProperty(SignerPropertyValueProvider.builder() - .containingClass(AwsV4HttpSigner.class) - .fieldName("NORMALIZE_PATH") - .valueEmitter((spec, utils) -> spec.addCode("$L", "false")) - .build()) - .build(); - - static final AuthSchemeCodegenMetadata BEARER = builder() - .schemeId(BearerAuthScheme.SCHEME_ID) - .authSchemeClass(BearerAuthScheme.class) - .build(); - - static final AuthSchemeCodegenMetadata NO_AUTH = builder() - .schemeId(NoAuthAuthScheme.SCHEME_ID) - .authSchemeClass(NoAuthAuthScheme.class) - .build(); - private final String schemeId; private final List properties; private final Class authSchemeClass; @@ -122,30 +53,11 @@ public Builder toBuilder() { return new Builder(this); } - private static Builder builder() { + public static Builder builder() { return new Builder(); } - public static AuthSchemeCodegenMetadata fromAuthType(AuthType type) { - switch (type) { - case BEARER: - return BEARER; - case NONE: - return NO_AUTH; - case V4: - return SIGV4; - case V4_UNSIGNED_BODY: - return SIGV4_UNSIGNED_BODY; - case S3: - return S3; - case S3V4: - return S3V4; - default: - throw new IllegalArgumentException("Unknown auth type: " + type); - } - } - - private static class Builder { + public static class Builder { private String schemeId; private List properties = new ArrayList<>(); private Class authSchemeClass; @@ -169,6 +81,12 @@ public Builder addProperty(SignerPropertyValueProvider property) { return this; } + public Builder properties(List properties) { + this.properties.clear(); + this.properties.addAll(properties); + return this; + } + public Builder authSchemeClass(Class authSchemeClass) { this.authSchemeClass = authSchemeClass; return this; @@ -182,12 +100,14 @@ public AuthSchemeCodegenMetadata build() { static class SignerPropertyValueProvider { private final Class containingClass; private final String fieldName; - private final BiConsumer valueEmitter; + private final BiConsumer valueEmitter; + private final Supplier valueSupplier; SignerPropertyValueProvider(Builder builder) { this.containingClass = Validate.paramNotNull(builder.containingClass, "containingClass"); this.valueEmitter = Validate.paramNotNull(builder.valueEmitter, "valueEmitter"); this.fieldName = Validate.paramNotNull(builder.fieldName, "fieldName"); + this.valueSupplier = builder.valueSupplier; } public Class containingClass() { @@ -198,18 +118,28 @@ public String fieldName() { return fieldName; } - public void emitValue(MethodSpec.Builder spec, AuthSchemeSpecUtils utils) { + public boolean isConstant() { + return valueSupplier != null; + } + + public Object value() { + return valueSupplier.get(); + } + + public void emitValue(CodeBlock.Builder spec, AuthSchemeSpecUtils utils) { valueEmitter.accept(spec, utils); } - private static Builder builder() { + + public static Builder builder() { return new Builder(); } static class Builder { private Class containingClass; private String fieldName; - private BiConsumer valueEmitter; + private BiConsumer valueEmitter; + private Supplier valueSupplier; public Builder containingClass(Class containingClass) { this.containingClass = containingClass; @@ -221,11 +151,19 @@ public Builder fieldName(String fieldName) { return this; } - public Builder valueEmitter(BiConsumer valueEmitter) { + public Builder valueEmitter(BiConsumer valueEmitter) { this.valueEmitter = valueEmitter; return this; } + public Builder constantValueSupplier(Supplier valueSupplier) { + this.valueSupplier = valueSupplier; + if (valueEmitter == null) { + valueEmitter = (spec, utils) -> spec.add("$L", valueSupplier.get()); + } + return this; + } + public SignerPropertyValueProvider build() { return new SignerPropertyValueProvider(this); } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenMetadataExt.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenMetadataExt.java new file mode 100644 index 000000000000..2063aa506771 --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeCodegenMetadataExt.java @@ -0,0 +1,173 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.auth.scheme; + +import static software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeCodegenMetadata.Builder; +import static software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeCodegenMetadata.builder; + +import com.squareup.javapoet.CodeBlock; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Supplier; +import software.amazon.awssdk.codegen.model.service.AuthType; +import software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeCodegenMetadata.SignerPropertyValueProvider; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner; +import software.amazon.awssdk.http.auth.scheme.BearerAuthScheme; +import software.amazon.awssdk.http.auth.scheme.NoAuthAuthScheme; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.SignerProperty; + +/** + * Extension and utility methods for the {@link AuthSchemeCodegenMetadata} class. + */ +public final class AuthSchemeCodegenMetadataExt { + + static final AuthSchemeCodegenMetadata SIGV4 = + builder() + .schemeId(AwsV4AuthScheme.SCHEME_ID) + .authSchemeClass(AwsV4AuthScheme.class) + .addProperty(SignerPropertyValueProvider.builder() + .containingClass(AwsV4HttpSigner.class) + .fieldName( + "SERVICE_SIGNING_NAME") + .valueEmitter((spec, utils) -> spec.add("$S", utils.signingName())) + .build()) + .addProperty(SignerPropertyValueProvider.builder() + .containingClass(AwsV4HttpSigner.class) + .fieldName( + "REGION_NAME") + .valueEmitter((spec, utils) -> spec.add("$L", "params.region().id()")) + .build()) + .build(); + + static final AuthSchemeCodegenMetadata BEARER = builder() + .schemeId(BearerAuthScheme.SCHEME_ID) + .authSchemeClass(BearerAuthScheme.class) + .build(); + + static final AuthSchemeCodegenMetadata NO_AUTH = builder() + .schemeId(NoAuthAuthScheme.SCHEME_ID) + .authSchemeClass(NoAuthAuthScheme.class) + .build(); + + + private AuthSchemeCodegenMetadataExt() { + } + + /** + * Creates a new auth scheme codegen metadata instance using the defaults for the given {@link AuthType} defaults. + */ + public static AuthSchemeCodegenMetadata fromAuthType(AuthType type) { + switch (type) { + case BEARER: + return BEARER; + case NONE: + return NO_AUTH; + default: + String authTypeName = type.value(); + SigV4SignerDefaults defaults = AuthTypeToSigV4Default.authTypeToDefaults().get(authTypeName); + if (defaults == null) { + throw new IllegalArgumentException("Unknown auth type: " + type); + } + return fromConstants(defaults); + } + } + + /** + * Transforms a {@link SigV4SignerDefaults} instance to an {@link AuthSchemeCodegenMetadata} instance. + */ + public static AuthSchemeCodegenMetadata fromConstants(SigV4SignerDefaults constants) { + Builder builder = SIGV4.toBuilder(); + for (SignerPropertyValueProvider property : propertiesFromConstants(constants)) { + builder.addProperty(property); + } + return builder.build(); + } + + /** + * Renders the AuthSchemeCodegenMetadata as to create a new {@link AuthSchemeOption} using the configured values. + */ + public static CodeBlock codegenNewAuthOption( + AuthSchemeCodegenMetadata metadata, + AuthSchemeSpecUtils authSchemeSpecUtils + ) { + CodeBlock.Builder builder = CodeBlock.builder(); + builder.add("$T.builder().schemeId($S)", + AuthSchemeOption.class, metadata.schemeId()); + builder.add(codegenSignerProperties(authSchemeSpecUtils, metadata.properties())); + return builder.build(); + } + + /** + * Renders a chain of calls to {@link AuthSchemeOption.Builder#putSignerProperty(SignerProperty, Object)} for each of the + * given properties. + */ + public static CodeBlock codegenSignerProperties( + AuthSchemeSpecUtils authSchemeSpecUtils, + List properties + ) { + CodeBlock.Builder builder = CodeBlock.builder(); + for (SignerPropertyValueProvider property : properties) { + builder.add("\n.putSignerProperty($T.$N, ", property.containingClass(), property.fieldName()); + property.emitValue(builder, authSchemeSpecUtils); + builder.add(")"); + } + return builder.build(); + } + + /** + * Renders a chain of calls to {@link AuthSchemeOption.Builder#putSignerPropertyIfAbsent(SignerProperty, Object)} for each of + * the given properties. + */ + public static CodeBlock codegenSignerPropertiesIfAbsent( + AuthSchemeSpecUtils authSchemeSpecUtils, + List properties + ) { + CodeBlock.Builder builder = CodeBlock.builder(); + for (SignerPropertyValueProvider property : properties) { + builder.add("\n.putSignerPropertyIfAbsent($T.$N, ", property.containingClass(), property.fieldName()); + property.emitValue(builder, authSchemeSpecUtils); + builder.add(")"); + } + return builder.build(); + } + + private static List propertiesFromConstants(SigV4SignerDefaults constants) { + List properties = new ArrayList<>(); + if (constants.payloadSigningEnabled() != null) { + properties.add(from("PAYLOAD_SIGNING_ENABLED", constants::payloadSigningEnabled)); + } + if (constants.doubleUrlEncode() != null) { + properties.add(from("DOUBLE_URL_ENCODE", constants::doubleUrlEncode)); + } + if (constants.normalizePath() != null) { + properties.add(from("NORMALIZE_PATH", constants::normalizePath)); + } + if (constants.chunkEncodingEnabled() != null) { + properties.add(from("CHUNK_ENCODING_ENABLED", constants::chunkEncodingEnabled)); + } + return properties; + } + + private static SignerPropertyValueProvider from(String name, Supplier valueSupplier) { + return SignerPropertyValueProvider.builder() + .containingClass(AwsV4HttpSigner.class) + .fieldName(name) + .constantValueSupplier(valueSupplier) + .build(); + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeInterceptorSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeInterceptorSpec.java index e464a05babcd..6ab69cb24a92 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeInterceptorSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeInterceptorSpec.java @@ -49,8 +49,10 @@ import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; import software.amazon.awssdk.core.internal.util.MetricUtils; import software.amazon.awssdk.core.metrics.CoreMetric; +import software.amazon.awssdk.endpoints.EndpointProvider; import software.amazon.awssdk.http.auth.spi.scheme.AuthScheme; import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.HttpSigner; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; import software.amazon.awssdk.identity.spi.Identity; import software.amazon.awssdk.identity.spi.IdentityProvider; @@ -185,6 +187,17 @@ private MethodSpec generateAuthSchemeParams() { AwsExecutionAttribute.class); builder.addStatement("builder.region(region)"); } + ClassName paramsBuilderClass = authSchemeSpecUtils.parametersEndpointAwareDefaultImplName().nestedClass("Builder"); + builder.beginControlFlow("if (builder instanceof $T)", + paramsBuilderClass); + ClassName endpointProviderClass = endpointRulesSpecUtils.providerInterfaceName(); + builder.addStatement("$T endpointProvider = executionAttributes.getAttribute($T.ENDPOINT_PROVIDER)", + EndpointProvider.class, + SdkInternalExecutionAttribute.class); + builder.beginControlFlow("if (endpointProvider instanceof $T)", endpointProviderClass); + builder.addStatement("(($T)builder).endpointProvider(($T)endpointProvider)", paramsBuilderClass, endpointProviderClass); + builder.endControlFlow(); + builder.endControlFlow(); builder.addStatement("return builder.build()"); return builder.build(); } @@ -262,6 +275,19 @@ private MethodSpec generateTrySelectAuthScheme() { .endControlFlow(); } + builder.addStatement("$T signer", + ParameterizedTypeName.get(ClassName.get(HttpSigner.class), TypeVariableName.get("T"))); + builder.beginControlFlow("try"); + { + builder.addStatement("signer = authScheme.signer()"); + builder.nextControlFlow("catch (RuntimeException e)"); + builder.addStatement("discardedReasons.add(() -> String.format($S, authOption.schemeId(), e.getMessage()))", + "'%s' signer could not be retrieved: %s") + .addStatement("return null") + .endControlFlow(); + } + + builder.addStatement("$T.Builder identityRequestBuilder = $T.builder()", ResolveIdentityRequest.class, ResolveIdentityRequest.class); @@ -282,7 +308,7 @@ private MethodSpec generateTrySelectAuthScheme() { MetricUtils.class) .endControlFlow(); - builder.addStatement("return new $T<>(identity, authScheme.signer(), authOption)", SelectedAuthScheme.class); + builder.addStatement("return new $T<>(identity, signer, authOption)", SelectedAuthScheme.class); return builder.build(); } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeProviderSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeProviderSpec.java index 3b767b1c2235..bc5255695ad1 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeProviderSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeProviderSpec.java @@ -62,7 +62,7 @@ private MethodSpec resolveAuthSchemeMethod() { b.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT); b.addParameter(authSchemeSpecUtils.parametersInterfaceName(), "authSchemeParams"); b.returns(authSchemeSpecUtils.resolverReturnType()); - b.addJavadoc(resolveMethodJavadoc()); + b.addJavadoc("Resolve the auth schemes based on the given set of parameters."); return b.build(); } @@ -75,7 +75,7 @@ private MethodSpec resolveAuthSchemeConsumerBuilderMethod() { b.addModifiers(Modifier.PUBLIC, Modifier.DEFAULT); b.addParameter(consumerType, "consumer"); b.returns(authSchemeSpecUtils.resolverReturnType()); - b.addJavadoc(resolveMethodJavadoc()); + b.addJavadoc("Resolve the auth schemes based on the given set of parameters."); b.addStatement("$T builder = $T.builder()", parametersBuilderInterface, parametersInterface); b.addStatement("consumer.accept(builder)"); @@ -104,12 +104,4 @@ private CodeBlock interfaceJavadoc() { return b.build(); } - - private CodeBlock resolveMethodJavadoc() { - CodeBlock.Builder b = CodeBlock.builder(); - - b.add("Resolve the auth schemes based on the given set of parameters."); - - return b.build(); - } } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeSpecUtils.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeSpecUtils.java index a9e26356b919..5724e2b78f57 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeSpecUtils.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthSchemeSpecUtils.java @@ -19,27 +19,17 @@ import com.squareup.javapoet.ParameterizedTypeName; import com.squareup.javapoet.TypeName; import java.util.Collections; -import java.util.Comparator; import java.util.HashSet; -import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; -import java.util.stream.Stream; import software.amazon.awssdk.codegen.model.config.customization.CustomizationConfig; import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; -import software.amazon.awssdk.codegen.model.intermediate.OperationModel; -import software.amazon.awssdk.codegen.model.service.AuthType; import software.amazon.awssdk.codegen.utils.AuthUtils; -import software.amazon.awssdk.http.auth.aws.scheme.AwsV4aAuthScheme; -import software.amazon.awssdk.http.auth.scheme.NoAuthAuthScheme; import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; public final class AuthSchemeSpecUtils { - private static final Set DEFAULT_AUTH_SCHEME_PARAMS = Collections.unmodifiableSet(setOf("region", "operation")); + private static final Set DEFAULT_AUTH_SCHEME_PARAMS = setOf("region", "operation"); private final IntermediateModel intermediateModel; private final boolean useSraAuth; private final Set allowedEndpointAuthSchemeParams; @@ -79,6 +69,10 @@ public ClassName parametersInterfaceName() { return ClassName.get(basePackage(), intermediateModel.getMetadata().getServiceName() + "AuthSchemeParams"); } + public ClassName parametersEndpointAwareDefaultImplName() { + return ClassName.get(internalPackage(), intermediateModel.getMetadata().getServiceName() + "EndpointResolverAware"); + } + public ClassName parametersInterfaceBuilderInterfaceName() { return parametersInterfaceName().nestedClass("Builder"); } @@ -157,66 +151,10 @@ public String signingName() { return intermediateModel.getMetadata().getSigningName(); } - public Map, List> operationsToAuthType() { - Map, List> authSchemesToOperations = - intermediateModel.getOperations() - .entrySet() - .stream() - .filter(kvp -> !kvp.getValue().getAuth().isEmpty()) - .collect(Collectors.groupingBy(kvp -> kvp.getValue().getAuth(), - Collectors.mapping(Map.Entry::getKey, Collectors.toList()))); - - Map, List> operationsToAuthType = authSchemesToOperations - .entrySet() - .stream() - .sorted(Comparator.comparing(left -> left.getValue().get(0))) - .collect(Collectors.toMap(Map.Entry::getValue, - Map.Entry::getKey, (a, b) -> b, - LinkedHashMap::new)); - - List serviceDefaults = serviceDefaultAuthTypes(); - - // Get the list of operations that share the same auth schemes as the system defaults and remove it from the result. We - // will take care of all of these in the fallback `default` case. - List operationsWithDefaults = authSchemesToOperations.remove(serviceDefaults); - operationsToAuthType.remove(operationsWithDefaults); - operationsToAuthType.put(Collections.emptyList(), serviceDefaults); - return operationsToAuthType; - } - - public List serviceDefaultAuthTypes() { - List modeled = intermediateModel.getMetadata().getAuth(); - if (!modeled.isEmpty()) { - return modeled; - } - return Collections.singletonList(intermediateModel.getMetadata().getAuthType()); - } - - public Set> allServiceConcreteAuthSchemeClasses() { - Set> result = - Stream.concat(intermediateModel.getOperations() - .values() - .stream() - .map(OperationModel::getAuth) - .flatMap(List::stream), - intermediateModel.getMetadata().getAuth().stream()) - .map(AuthSchemeCodegenMetadata::fromAuthType) - .map(AuthSchemeCodegenMetadata::authSchemeClass) - .collect(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Class::getSimpleName)))); - - if (useEndpointBasedAuthProvider()) { - // sigv4a is not modeled but needed for the endpoints based auth-scheme cases. - result.add(AwsV4aAuthScheme.class); - } - // Make the no-auth scheme available. - result.add(NoAuthAuthScheme.class); - return result; - } - - private static Set setOf(String v1, String v2) { - Set set = new HashSet<>(); - set.add(v1); - set.add(v2); - return set; + private static Set setOf(String val1, String val2) { + Set result = new HashSet<>(); + result.add(val1); + result.add(val2); + return Collections.unmodifiableSet(result); } } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthTypeToSigV4Default.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthTypeToSigV4Default.java new file mode 100644 index 000000000000..02f6a682e3f4 --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/AuthTypeToSigV4Default.java @@ -0,0 +1,157 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.auth.scheme; + +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import software.amazon.awssdk.codegen.model.service.AuthType; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.utils.Lazy; + +/** + * Contains maps from all sigv4 based {@link AuthType} to {@link SigV4SignerDefaults} that we can then transform for use in + * codegen. + */ +public final class AuthTypeToSigV4Default { + + public static final SigV4SignerDefaults SIGV4_DEFAULT = SigV4SignerDefaults + .builder() + .authType("v4") + .schemeId(AwsV4AuthScheme.SCHEME_ID) + .build(); + + private static final Lazy> AUTH_TYPE_TO_DEFAULTS = new Lazy<>( + () -> { + Map map = new LinkedHashMap<>(); + for (SigV4SignerDefaults sigv4FamilySignerConstants : knownAuthTypes()) { + if (map.put(sigv4FamilySignerConstants.authType(), sigv4FamilySignerConstants) != null) { + throw new IllegalStateException("Duplicate key: " + sigv4FamilySignerConstants.authType()); + } + } + return map; + }); + + private AuthTypeToSigV4Default() { + } + + /** + * Returns a mapping from an auth-type name to a set of AWS sigV4 default values.The auth-type names are the same as the + * {@link AuthType} enum values. + * + * @see SigV4SignerDefaults + */ + public static Map authTypeToDefaults() { + return AUTH_TYPE_TO_DEFAULTS.getValue(); + } + + /** + * Returns the list fo all known auth types to s3v4Defaults instances. + * + * @return + */ + public static List knownAuthTypes() { + return Arrays.asList( + sigv4Default(), + s3Defaults(), + s3v4Defaults(), + sigv4UnsignedPayload() + ); + } + + /** + * Set of default signer defaults. None is set by default. + */ + private static SigV4SignerDefaults sigv4Default() { + return SIGV4_DEFAULT; + } + + /** + * Set of default signer defaults for S3. Sets the following defaults signer properties + * + *
    + *
  • {@code doubleUrlEncode(false)} + *
  • {@code normalizePath(false)} + *
  • {@code payloadSigningEnabled(false)} + *
+ *

+ * Also overrides for the following operations + * + *

    + *
  • {@code UploadParts} Sets the defaults and also {@code chunkEncodingEnabled(true)}
  • + *
  • {@code PutObject} Sets the defaults and also {@code chunkEncodingEnabled(true)}
  • + *
+ */ + private static SigV4SignerDefaults s3Defaults() { + return sigv4Default() + .toBuilder() + .authType("s3") + .service("S3") + .doubleUrlEncode(Boolean.FALSE) + .normalizePath(Boolean.FALSE) + .payloadSigningEnabled(Boolean.FALSE) + .putOperation("UploadPart", + sigv4Default() + .toBuilder() + // Default S3 signer properties + .doubleUrlEncode(Boolean.FALSE) + .normalizePath(Boolean.FALSE) + .payloadSigningEnabled(Boolean.FALSE) + // Including chunkEncodingEnabled TRUE + .chunkEncodingEnabled(Boolean.TRUE) + .build()) + .putOperation("PutObject", + sigv4Default() + .toBuilder() + // Default S3 signer properties + .doubleUrlEncode(Boolean.FALSE) + .normalizePath(Boolean.FALSE) + .payloadSigningEnabled(Boolean.FALSE) + // Including chunkEncodingEnabled TRUE + .chunkEncodingEnabled(Boolean.TRUE) + .build()) + .build(); + } + + + /** + * Set of default signer defaults for auth-type s3v4. Currently only used by S3Control. + */ + private static SigV4SignerDefaults s3v4Defaults() { + return sigv4Default().toBuilder() + .authType("s3v4") + .doubleUrlEncode(false) + .normalizePath(false) + .build(); + } + + + /** + * Set of default signer defaults for auth-type s3v4. Currently only used by disable payload signing for some operations. Sets + * the following default signer property + * + *
    + *
  • {@code payloadSigningEnabled(false)} + *
+ */ + private static SigV4SignerDefaults sigv4UnsignedPayload() { + return sigv4Default().toBuilder() + .authType("v4-unsigned-body") + .payloadSigningEnabled(false) + .build(); + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/DefaultAuthSchemeParamsSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/DefaultAuthSchemeParamsSpec.java index c2617f0b27d4..3592f0dbf5a9 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/DefaultAuthSchemeParamsSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/DefaultAuthSchemeParamsSpec.java @@ -59,6 +59,10 @@ public TypeSpec poetSpec() { .addMethod(builderMethod()) .addType(builderImplSpec()); + if (authSchemeSpecUtils.useEndpointBasedAuthProvider()) { + b.addSuperinterface(authSchemeSpecUtils.parametersEndpointAwareDefaultImplName()); + } + addFieldsAndAccessors(b); addToBuilder(b); return b.build(); @@ -89,6 +93,7 @@ private MethodSpec constructor() { } }); + b.addStatement("this.endpointProvider = builder.endpointProvider"); } return b.build(); @@ -112,6 +117,10 @@ private TypeSpec builderImplSpec() { .addModifiers(Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL) .addSuperinterface(authSchemeSpecUtils.parametersInterfaceBuilderInterfaceName()); + if (authSchemeSpecUtils.useEndpointBasedAuthProvider()) { + b.addSuperinterface(authSchemeSpecUtils.parametersEndpointAwareDefaultImplName().nestedClass("Builder")); + } + addBuilderConstructors(b); addBuilderFieldsAndSetter(b); @@ -142,6 +151,7 @@ private void addBuilderConstructors(TypeSpec.Builder b) { builderFromInstance.addStatement("this.$1N = params.$1N", endpointRulesSpecUtils.variableName(name)); } }); + builderFromInstance.addStatement("this.endpointProvider = params.endpointProvider"); } b.addMethod(builderFromInstance.build()); } @@ -181,6 +191,17 @@ private void addFieldsAndAccessors(TypeSpec.Builder b) { .build()); } }); + ClassName endpointProvider = endpointRulesSpecUtils.providerInterfaceName(); + b.addField(FieldSpec.builder(endpointProvider, "endpointProvider") + .addModifiers(Modifier.PRIVATE, Modifier.FINAL) + .build()); + b.addMethod(MethodSpec.methodBuilder("endpointProvider") + .addModifiers(Modifier.PUBLIC) + .addAnnotation(Override.class) + .returns(endpointProvider) + .addStatement("return endpointProvider") + .build()); + } } @@ -213,6 +234,10 @@ private void addBuilderFieldsAndSetter(TypeSpec.Builder b) { b.addMethod(endpointRulesSpecUtils.parameterBuilderSetterMethod(className(), name, model)); } }); + b.addField(FieldSpec.builder(endpointRulesSpecUtils.providerInterfaceName(), "endpointProvider") + .addModifiers(Modifier.PRIVATE) + .build()); + b.addMethod(builderSetterMethod("endpointProvider", endpointRulesSpecUtils.providerInterfaceName())); } } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/EndpointAwareAuthSchemeParamsSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/EndpointAwareAuthSchemeParamsSpec.java new file mode 100644 index 000000000000..4dee2a0c196f --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/EndpointAwareAuthSchemeParamsSpec.java @@ -0,0 +1,75 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.auth.scheme; + +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.TypeSpec; +import javax.lang.model.element.Modifier; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; +import software.amazon.awssdk.codegen.poet.ClassSpec; +import software.amazon.awssdk.codegen.poet.PoetUtils; +import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils; + +public class EndpointAwareAuthSchemeParamsSpec implements ClassSpec { + + private final AuthSchemeSpecUtils authSchemeSpecUtils; + private final EndpointRulesSpecUtils endpointRulesSpecUtils; + + public EndpointAwareAuthSchemeParamsSpec(IntermediateModel intermediateModel) { + this.authSchemeSpecUtils = new AuthSchemeSpecUtils(intermediateModel); + this.endpointRulesSpecUtils = new EndpointRulesSpecUtils(intermediateModel); + } + + @Override + public ClassName className() { + return authSchemeSpecUtils.parametersEndpointAwareDefaultImplName(); + } + + @Override + public TypeSpec poetSpec() { + TypeSpec.Builder b = PoetUtils.createInterfaceBuilder(className()) + .addAnnotation(SdkInternalApi.class) + .addMethod(endpointProviderMethod()) + .addType(builderSpec()); + return b.build(); + } + + private ClassName builderClassName() { + return className().nestedClass("Builder"); + } + + private MethodSpec endpointProviderMethod() { + return MethodSpec.methodBuilder("endpointProvider") + .addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC) + .returns(endpointRulesSpecUtils.providerInterfaceName()) + .build(); + } + + private TypeSpec builderSpec() { + ClassName builderClassName = builderClassName(); + TypeSpec.Builder b = TypeSpec.interfaceBuilder(builderClassName) + .addModifiers(Modifier.PUBLIC, Modifier.STATIC); + b.addMethod(MethodSpec.methodBuilder("endpointProvider") + .addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC) + .addParameter(endpointRulesSpecUtils.providerInterfaceName(), "endpointProvider") + .returns(builderClassName) + .build()); + + return b.build(); + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/EndpointBasedAuthSchemeProviderSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/EndpointBasedAuthSchemeProviderSpec.java index a30dd68bbcce..c921153ac395 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/EndpointBasedAuthSchemeProviderSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/EndpointBasedAuthSchemeProviderSpec.java @@ -16,6 +16,7 @@ package software.amazon.awssdk.codegen.poet.auth.scheme; import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.FieldSpec; import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.ParameterizedTypeName; @@ -49,10 +50,12 @@ public class EndpointBasedAuthSchemeProviderSpec implements ClassSpec { private final AuthSchemeSpecUtils authSchemeSpecUtils; private final EndpointRulesSpecUtils endpointRulesSpecUtils; + private final SigV4AuthSchemeCodegenKnowledgeIndex sigV4AuthSchemeCodegenKnowledgeIndex; public EndpointBasedAuthSchemeProviderSpec(IntermediateModel intermediateModel) { this.authSchemeSpecUtils = new AuthSchemeSpecUtils(intermediateModel); this.endpointRulesSpecUtils = new EndpointRulesSpecUtils(intermediateModel); + this.sigV4AuthSchemeCodegenKnowledgeIndex = SigV4AuthSchemeCodegenKnowledgeIndex.of(intermediateModel); } @Override @@ -62,17 +65,23 @@ public ClassName className() { @Override public TypeSpec poetSpec() { - return PoetUtils.createClassBuilder(className()) - .addModifiers(Modifier.PUBLIC, Modifier.FINAL) - .addAnnotation(SdkInternalApi.class) - .addSuperinterface(authSchemeSpecUtils.providerInterfaceName()) - .addMethod(constructor()) - .addField(defaultInstance()) - .addField(modeledResolverInstance()) - .addField(endpointDelegateInstance()) - .addMethod(createMethod()) - .addMethod(resolveAuthSchemeMethod()) - .build(); + TypeSpec.Builder builder = PoetUtils.createClassBuilder(className()) + .addModifiers(Modifier.PUBLIC, Modifier.FINAL) + .addAnnotation(SdkInternalApi.class) + .addSuperinterface(authSchemeSpecUtils.providerInterfaceName()) + .addMethod(constructor()) + .addField(defaultInstance()) + .addField(modeledResolverInstance()) + .addField(endpointDelegateInstance()) + .addMethod(createMethod()) + .addMethod(resolveAuthSchemeMethod()) + .addMethod(endpointProvider()); + + boolean applyServiceDefaults = sigV4AuthSchemeCodegenKnowledgeIndex.hasSigV4Overrides(); + if (applyServiceDefaults) { + builder.addMethod(addV4Defaults()); + } + return builder.build(); } private MethodSpec constructor() { @@ -93,6 +102,25 @@ private FieldSpec endpointDelegateInstance() { .build(); } + private MethodSpec endpointProvider() { + ClassName endpointProviderClass = endpointRulesSpecUtils.providerInterfaceName(); + MethodSpec.Builder builder = MethodSpec.methodBuilder("endpointProvider") + .addModifiers(Modifier.PRIVATE) + .returns(endpointProviderClass) + .addParameter(authSchemeSpecUtils.parametersInterfaceName(), "params"); + + ClassName endpointAwareParams = authSchemeSpecUtils.parametersEndpointAwareDefaultImplName(); + builder.beginControlFlow("if (params instanceof $T)", endpointAwareParams); + builder.addStatement("$1T endpointAwareParams = ($1T) params", endpointAwareParams); + builder.addStatement("$T endpointProvider = endpointAwareParams.endpointProvider()", endpointProviderClass); + builder.beginControlFlow("if (endpointProvider != null)"); + builder.addStatement("return endpointProvider"); + builder.endControlFlow(); + builder.endControlFlow(); + builder.addStatement("return DELEGATE"); + return builder.build(); + } + private FieldSpec modeledResolverInstance() { return FieldSpec.builder(authSchemeSpecUtils.providerInterfaceName(), "MODELED_RESOLVER") .addModifiers(Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL) @@ -124,7 +152,7 @@ private MethodSpec resolveAuthSchemeMethod() { } }); spec.addStatement(".build()"); - spec.addStatement("$T endpoint = $T.joinLikeSync(DELEGATE.resolveEndpoint(endpointParameters))", + spec.addStatement("$T endpoint = $T.joinLikeSync(endpointProvider(params).resolveEndpoint(endpointParameters))", Endpoint.class, CompletableFutureUtils.class); spec.addStatement("$T authSchemes = endpoint.attribute($T.AUTH_SCHEMES)", ParameterizedTypeName.get(List.class, EndpointAuthScheme.class), AwsEndpointAttribute.class); @@ -160,12 +188,25 @@ private void addAuthSchemeSwitchSigV4Case(MethodSpec.Builder spec) { SigV4AuthScheme.class, Validate.class, SigV4AuthScheme.class, "Expecting auth scheme of class SigV4AuthScheme, got instead object of class %s"); - spec.addCode("options.add($T.builder().schemeId($S)", AuthSchemeOption.class, AwsV4AuthScheme.SCHEME_ID) - .addCode(".putSignerProperty($T.SERVICE_SIGNING_NAME, sigv4AuthScheme.signingName())", AwsV4HttpSigner.class) - .addCode(".putSignerProperty($T.REGION_NAME, sigv4AuthScheme.signingRegion())", AwsV4HttpSigner.class) - .addCode(".putSignerProperty($T.DOUBLE_URL_ENCODE, !sigv4AuthScheme.disableDoubleEncoding())", - AwsV4HttpSigner.class) - .addCode(".build());"); + CodeBlock.Builder block = CodeBlock.builder(); + block.add("$T.builder()", AuthSchemeOption.class) + .add("\n.schemeId($T.SCHEME_ID)", AwsV4AuthScheme.class) + .add("\n.putSignerProperty($T.SERVICE_SIGNING_NAME, sigv4AuthScheme.signingName())", AwsV4HttpSigner.class) + .add("\n.putSignerProperty($T.REGION_NAME, sigv4AuthScheme.signingRegion())", AwsV4HttpSigner.class) + .add("\n.putSignerProperty($T.DOUBLE_URL_ENCODE, !sigv4AuthScheme.disableDoubleEncoding())", + AwsV4HttpSigner.class); + + if (sigV4AuthSchemeCodegenKnowledgeIndex.hasSigV4Overrides()) { + spec.addCode("$1T sigv4AuthSchemeOption = applySigV4FamilyDefaults(", AuthSchemeOption.class) + .addCode(block.build()) + .addCode(", params)") + .addStatement(".build()"); + } else { + spec.addCode("$1T sigv4AuthSchemeOption = ", AuthSchemeOption.class) + .addCode(block.build()) + .addStatement(".build()"); + } + spec.addStatement("options.add(sigv4AuthSchemeOption)"); spec.addStatement("break"); } @@ -178,12 +219,25 @@ private void addAuthSchemeSwitchSigV4aCase(MethodSpec.Builder spec) { spec.addStatement("$1T regionSet = $1T.create(sigv4aAuthScheme.signingRegionSet())", RegionSet.class); - spec.addCode("options.add($T.builder().schemeId($S)", AuthSchemeOption.class, AwsV4aAuthScheme.SCHEME_ID) - .addCode(".putSignerProperty($T.SERVICE_SIGNING_NAME, sigv4aAuthScheme.signingName())", AwsV4aHttpSigner.class) - .addCode(".putSignerProperty($T.REGION_SET, regionSet)", AwsV4aHttpSigner.class) - .addCode(".putSignerProperty($T.DOUBLE_URL_ENCODE, !sigv4aAuthScheme.disableDoubleEncoding())", - AwsV4aHttpSigner.class) - .addCode(".build());"); + CodeBlock.Builder block = CodeBlock.builder(); + block.add("$1T.builder().schemeId($2T.SCHEME_ID)", AuthSchemeOption.class, + AwsV4aAuthScheme.class) + .add("\n.putSignerProperty($T.SERVICE_SIGNING_NAME, sigv4aAuthScheme.signingName())", AwsV4HttpSigner.class) + .add("\n.putSignerProperty($T.REGION_SET, regionSet)", AwsV4aHttpSigner.class) + .add("\n.putSignerProperty($T.DOUBLE_URL_ENCODE, !sigv4aAuthScheme.disableDoubleEncoding())", AwsV4HttpSigner.class); + + if (sigV4AuthSchemeCodegenKnowledgeIndex.hasSigV4Overrides()) { + spec.addCode("$1T sigv4aAuthSchemeOption = applySigV4FamilyDefaults(", AuthSchemeOption.class) + .addCode(block.build()) + .addCode(", params)") + .addStatement(".build()"); + + } else { + spec.addCode("$1T sigv4aAuthSchemeOption = ", AuthSchemeOption.class) + .addCode(block.build()) + .addStatement(".build()"); + } + spec.addStatement("options.add(sigv4aAuthSchemeOption)"); spec.addStatement("break"); } @@ -192,19 +246,34 @@ private void addAuthSchemeSwitchS3ExpressCase(MethodSpec.Builder spec) { ClassName s3ExpressEndpointAuthScheme = ClassName.get( authSchemeSpecUtils.baseClientPackageName() + ".endpoints.authscheme", "S3ExpressEndpointAuthScheme"); + spec.addStatement("$T s3ExpressAuthScheme = $T.isInstanceOf($T.class, authScheme, $S, authScheme.getClass().getName())", s3ExpressEndpointAuthScheme, Validate.class, s3ExpressEndpointAuthScheme, "Expecting auth scheme of class S3ExpressAuthScheme, got instead object of class %s"); ClassName s3ExpressAuthScheme = ClassName.get(authSchemeSpecUtils.baseClientPackageName() + ".s3express", "S3ExpressAuthScheme"); - spec.addCode("options.add($T.builder().schemeId($T.SCHEME_ID)", AuthSchemeOption.class, s3ExpressAuthScheme) - .addCode(".putSignerProperty($T.SERVICE_SIGNING_NAME, s3ExpressAuthScheme.signingName())", AwsV4HttpSigner.class) - .addCode(".putSignerProperty($T.REGION_NAME, s3ExpressAuthScheme.signingRegion())", AwsV4HttpSigner.class) - .addCode(".putSignerProperty($T.DOUBLE_URL_ENCODE, !s3ExpressAuthScheme.disableDoubleEncoding())", - AwsV4HttpSigner.class) - .addCode(".build());"); + + CodeBlock.Builder block = CodeBlock.builder(); + block.add("$1T.builder().schemeId($2T.SCHEME_ID)", AuthSchemeOption.class, s3ExpressAuthScheme) + .add("\n.putSignerProperty($T.SERVICE_SIGNING_NAME, s3ExpressAuthScheme.signingName())", AwsV4HttpSigner.class) + .add("\n.putSignerProperty($T.REGION_NAME, s3ExpressAuthScheme.signingRegion())", AwsV4HttpSigner.class) + .add("\n.putSignerProperty($T.DOUBLE_URL_ENCODE, !s3ExpressAuthScheme.disableDoubleEncoding())", + AwsV4HttpSigner.class); + + if (sigV4AuthSchemeCodegenKnowledgeIndex.hasSigV4Overrides()) { + spec.addCode("$1T s3ExpressAuthSchemeOption = applySigV4FamilyDefaults(", AuthSchemeOption.class) + .addCode(block.build()) + .addCode(", params)") + .addStatement(".build()"); + } else { + spec.addCode("$1T s3ExpressAuthSchemeOption = ", AuthSchemeOption.class) + .addCode(block.build()) + .addStatement(".build()"); + } + spec.addStatement("options.add(s3ExpressAuthSchemeOption)"); spec.addStatement("break"); + } private void addAuthSchemeSwitchDefaultCase(MethodSpec.Builder spec) { @@ -212,6 +281,55 @@ private void addAuthSchemeSwitchDefaultCase(MethodSpec.Builder spec) { spec.addStatement("throw new $T($S + name)", IllegalArgumentException.class, "Unknown auth scheme: "); } + + private MethodSpec addV4Defaults() { + MethodSpec.Builder spec = MethodSpec.methodBuilder("applySigV4FamilyDefaults") + .addModifiers(Modifier.PRIVATE, Modifier.STATIC) + .returns(AuthSchemeOption.Builder.class) + .addParameter(AuthSchemeOption.Builder.class, "option") + .addParameter(authSchemeSpecUtils.parametersInterfaceName(), "params"); + + // All the operations share the same set of auth schemes, no need to create a switch statement. + if (!sigV4AuthSchemeCodegenKnowledgeIndex.hasPerOperationSigV4Overrides()) { + AuthSchemeCodegenMetadata authType = sigV4AuthSchemeCodegenKnowledgeIndex.serviceSigV4Overrides(); + addAuthTypeProperties(spec, authType); + return spec.build(); + } + spec.beginControlFlow("switch(params.operation())"); + sigV4AuthSchemeCodegenKnowledgeIndex.forEachOperationsOverridesGroup((ops, scheme) -> { + if (!ops.isEmpty()) { + addCasesForOperations(spec, ops, scheme); + } + }); + AuthSchemeCodegenMetadata authType = sigV4AuthSchemeCodegenKnowledgeIndex.serviceSigV4Overrides(); + if (authType != null) { + addCasesForDefault(spec, authType); + } + spec.endControlFlow(); + return spec.build(); + } + + private void addCasesForOperations(MethodSpec.Builder spec, List operations, + AuthSchemeCodegenMetadata metadata) { + for (String name : operations) { + spec.addCode("case $S:\n", name); + } + addAuthTypeProperties(spec, metadata); + } + + private void addCasesForDefault(MethodSpec.Builder spec, + AuthSchemeCodegenMetadata metadata) { + spec.addCode("default:\n"); + addAuthTypeProperties(spec, metadata); + } + + private void addAuthTypeProperties(MethodSpec.Builder spec, AuthSchemeCodegenMetadata metadata) { + spec.addCode("option"); + spec.addCode(AuthSchemeCodegenMetadataExt.codegenSignerPropertiesIfAbsent(authSchemeSpecUtils, metadata.properties())); + spec.addStatement(""); + spec.addStatement("return option"); + } + private Map parameters() { return endpointRulesSpecUtils.parameters(); } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelAuthSchemeClassesKnowledgeIndex.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelAuthSchemeClassesKnowledgeIndex.java new file mode 100644 index 000000000000..92c6047301c7 --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelAuthSchemeClassesKnowledgeIndex.java @@ -0,0 +1,74 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.auth.scheme; + +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; +import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4aAuthScheme; +import software.amazon.awssdk.http.auth.scheme.NoAuthAuthScheme; + +/** + * Knowledge index of the configured auth schemes concrete classes. + */ +public final class ModelAuthSchemeClassesKnowledgeIndex { + private final Set> serviceConcreteAuthSchemeClasses; + + private ModelAuthSchemeClassesKnowledgeIndex(IntermediateModel intermediateModel) { + this.serviceConcreteAuthSchemeClasses = + getServiceConcreteAuthSchemeClasses(ModelAuthSchemeKnowledgeIndex.of(intermediateModel).operationsToMetadata(), + intermediateModel.getCustomizationConfig().isEnableEndpointAuthSchemeParams()); + } + + /** + * Creates a new {@link AuthSchemeCodegenKnowledgeIndex} using the given {@code intermediateModel}.. + */ + public static ModelAuthSchemeClassesKnowledgeIndex of(IntermediateModel intermediateModel) { + return new ModelAuthSchemeClassesKnowledgeIndex(intermediateModel); + } + + /** + * Returns the set of all the service supported concrete auth scheme classes. + */ + public Set> serviceConcreteAuthSchemeClasses() { + return serviceConcreteAuthSchemeClasses; + } + + private static Set> getServiceConcreteAuthSchemeClasses( + Map, List> operationsToAuthSchemes, + boolean useEndpointBasedAuthProvider + ) { + Set> result = operationsToAuthSchemes + .values() + .stream() + .flatMap(Collection::stream) + .map(AuthSchemeCodegenMetadata::authSchemeClass) + .collect(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Class::getSimpleName)))); + if (useEndpointBasedAuthProvider) { + // sigv4a is not modeled but needed for the endpoints based auth-scheme cases. + result.add(AwsV4aAuthScheme.class); + } + // Make the no-auth scheme available. + result.add(NoAuthAuthScheme.class); + return Collections.unmodifiableSet(result); + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelAuthSchemeKnowledgeIndex.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelAuthSchemeKnowledgeIndex.java new file mode 100644 index 000000000000..2b0a39145e43 --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelAuthSchemeKnowledgeIndex.java @@ -0,0 +1,165 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.auth.scheme; + +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; +import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; +import software.amazon.awssdk.codegen.model.intermediate.OperationModel; +import software.amazon.awssdk.codegen.model.service.AuthType; + +/** + * Knowledge index to get access to the configured service auth schemes and operations overrides. This index is optimized for + * code generation of switch statements therefore the data is grouped by operations that share the same auth schemes. This + * index is a building block for {@link AuthSchemeCodegenKnowledgeIndex} and {@link SigV4AuthSchemeCodegenKnowledgeIndex} + * indexes that have a friendly interface for the codegen use cases. + */ +public final class ModelAuthSchemeKnowledgeIndex { + private final IntermediateModel intermediateModel; + + private ModelAuthSchemeKnowledgeIndex(IntermediateModel intermediateModel) { + this.intermediateModel = intermediateModel; + } + + /** + * Creates a new knowledge index using the given model. + */ + public static ModelAuthSchemeKnowledgeIndex of(IntermediateModel intermediateModel) { + return new ModelAuthSchemeKnowledgeIndex(intermediateModel); + } + + /** + * Returns a map from a list of operations to all the auth schemes that the operations accept. + * + * @return a map from a list of operations to all the auth schemes that the operations accept + */ + public Map, List> operationsToMetadata() { + List serviceDefaults = serviceDefaultAuthTypes(); + if (serviceDefaults.size() == 1) { + String authTypeName = serviceDefaults.get(0).value(); + SigV4SignerDefaults defaults = AuthTypeToSigV4Default.authTypeToDefaults().get(authTypeName); + if (areServiceWide(defaults)) { + return operationsToModeledMetadataFormSigV4Defaults(defaults); + } + } + return operationsToModeledMetadata(); + } + + /** + * Computes a map from operations to codegen metadata objects. The intermediate model is used to compute mappings to + * {@link AuthType} values for the service and for each operation that has an override. Then we group all the operations that + * share the same set of auth types together and finally convert the auth types to their corresponding codegen metadata + * instances that then we can use to codegen switch statements. The service wide codegen metadata instances are keyed using + * {@link Collections#emptyList()}. + */ + private Map, List> operationsToModeledMetadata() { + Map, List> operationsToAuthType = operationsToAuthType(); + Map, List> operationsToMetadata = new LinkedHashMap<>(); + operationsToAuthType.forEach((k, v) -> operationsToMetadata.put(k, authTypeToCodegenMetadata(v))); + return operationsToMetadata; + } + + /** + * Returns a map from list of operations to the list of auth-types modeled for those operations. The values are taken directly + * from the model {@link OperationModel#getAuth()} method. + */ + private Map, List> operationsToAuthType() { + Map, List> authSchemesToOperations = + intermediateModel.getOperations() + .entrySet() + .stream() + .filter(kvp -> !kvp.getValue().getAuth().isEmpty()) + .collect(Collectors.groupingBy(kvp -> kvp.getValue().getAuth(), + Collectors.mapping(Map.Entry::getKey, Collectors.toList()))); + + Map, List> operationsToAuthType = authSchemesToOperations + .entrySet() + .stream() + .sorted(Comparator.comparing(kvp -> kvp.getValue().get(0))) + .collect(Collectors.toMap(Map.Entry::getValue, + Map.Entry::getKey, (a, b) -> b, + LinkedHashMap::new)); + + List serviceDefaults = serviceDefaultAuthTypes(); + + // Get the list of operations that share the same auth schemes as the system defaults and remove it from the result. We + // will take care of all of these in the fallback `default` case. + List operationsWithDefaults = authSchemesToOperations.remove(serviceDefaults); + operationsToAuthType.remove(operationsWithDefaults); + operationsToAuthType.put(Collections.emptyList(), serviceDefaults); + return operationsToAuthType; + } + + + /** + * Similar to {@link #operationsToModeledMetadata()} computes a map from operations to codegen metadata objects. The service + * default list of codegen metadata is keyed with {@link Collections#emptyList()}. + */ + private Map, List> operationsToModeledMetadataFormSigV4Defaults( + SigV4SignerDefaults defaults + ) { + Map> defaultsToOperations = + defaults.operations() + .entrySet() + .stream() + .collect(Collectors.groupingBy(Map.Entry::getValue, + Collectors.mapping(Map.Entry::getKey, + Collectors.toList()))); + + Map, SigV4SignerDefaults> operationsToDefaults = + defaultsToOperations.entrySet() + .stream() + .sorted(Comparator.comparing(left -> left.getValue().get(0))) + .collect(Collectors.toMap(Map.Entry::getValue, + Map.Entry::getKey, (a, b) -> b, + LinkedHashMap::new)); + + Map, List> result = new LinkedHashMap<>(); + for (Map.Entry, SigV4SignerDefaults> kvp : operationsToDefaults.entrySet()) { + result.put(kvp.getKey(), + Arrays.asList(AuthSchemeCodegenMetadataExt.fromConstants(kvp.getValue()))); + } + result.put(Collections.emptyList(), Arrays.asList(AuthSchemeCodegenMetadataExt.fromConstants(defaults))); + return result; + } + + /** + * Returns the list of modeled top-level auth-types. + */ + private List serviceDefaultAuthTypes() { + List modeled = intermediateModel.getMetadata().getAuth(); + if (!modeled.isEmpty()) { + return modeled; + } + return Collections.singletonList(intermediateModel.getMetadata().getAuthType()); + } + + private List authTypeToCodegenMetadata(List authTypes) { + return authTypes.stream().map(AuthSchemeCodegenMetadataExt::fromAuthType).collect(Collectors.toList()); + } + + private boolean areServiceWide(SigV4SignerDefaults defaults) { + return defaults != null + && defaults.isServiceOverrideAuthScheme() + && Objects.equals(intermediateModel.getMetadata().getServiceName(), defaults.service()); + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelBasedAuthSchemeProviderSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelBasedAuthSchemeProviderSpec.java index 9f9f0abcf04b..79d5125e65c5 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelBasedAuthSchemeProviderSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/ModelBasedAuthSchemeProviderSpec.java @@ -15,9 +15,6 @@ package software.amazon.awssdk.codegen.poet.auth.scheme; -import static software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeCodegenMetadata.SignerPropertyValueProvider; -import static software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeCodegenMetadata.fromAuthType; - import com.squareup.javapoet.ClassName; import com.squareup.javapoet.FieldSpec; import com.squareup.javapoet.MethodSpec; @@ -27,20 +24,20 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Map; import javax.lang.model.element.Modifier; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; -import software.amazon.awssdk.codegen.model.service.AuthType; import software.amazon.awssdk.codegen.poet.ClassSpec; import software.amazon.awssdk.codegen.poet.PoetUtils; import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; public class ModelBasedAuthSchemeProviderSpec implements ClassSpec { private final AuthSchemeSpecUtils authSchemeSpecUtils; + private final AuthSchemeCodegenKnowledgeIndex knowledgeIndex; public ModelBasedAuthSchemeProviderSpec(IntermediateModel intermediateModel) { this.authSchemeSpecUtils = new AuthSchemeSpecUtils(intermediateModel); + this.knowledgeIndex = AuthSchemeCodegenKnowledgeIndex.of(intermediateModel); } @Override @@ -93,54 +90,43 @@ private MethodSpec resolveAuthSchemeMethod() { spec.addStatement("$T options = new $T<>()", ParameterizedTypeName.get(List.class, AuthSchemeOption.class), TypeName.get(ArrayList.class)); - Map, List> operationsToAuthType = authSchemeSpecUtils.operationsToAuthType(); - - // All the operations share the same set of auth schemes, no need to create a switch statement. - if (operationsToAuthType.size() == 1) { - List types = operationsToAuthType.get(Collections.emptyList()); - for (AuthType authType : types) { + if (knowledgeIndex.hasPerOperationAuthSchemesOverrides()) { + // We create a switch to return the auth schemes overrides per + // operation. + spec.beginControlFlow("switch(params.operation())"); + knowledgeIndex.forEachOperationsOverridesGroup((ops, schemes) -> addCasesForOperations(spec, ops, schemes)); + addCasesForOperations(spec, Collections.emptyList(), knowledgeIndex.serviceDefaultAuthSchemes()); + spec.endControlFlow(); + } else { + // All the operations share the same set of auth schemes, no need to create a switch statement. + List types = knowledgeIndex.serviceDefaultAuthSchemes(); + for (AuthSchemeCodegenMetadata authType : types) { addAuthTypeProperties(spec, authType); } - return spec.addStatement("return $T.unmodifiableList(options)", Collections.class) - .build(); } - spec.beginControlFlow("switch(params.operation())"); - operationsToAuthType.forEach((ops, schemes) -> { - if (!ops.isEmpty()) { - addCasesForOperations(spec, ops, schemes); - } - }); - addCasesForOperations(spec, Collections.emptyList(), operationsToAuthType.get(Collections.emptyList())); - spec.endControlFlow(); - return spec.addStatement("return $T.unmodifiableList(options)", Collections.class) .build(); } - private void addCasesForOperations(MethodSpec.Builder spec, List operations, List schemes) { + private void addCasesForOperations(MethodSpec.Builder spec, List operations, + List schemes) { if (operations.isEmpty()) { - spec.addCode("default:"); + spec.addCode("default:\n"); } else { for (String name : operations) { - spec.addCode("case $S:", name); + spec.addCode("case $S\n:", name); } } - for (AuthType authType : schemes) { - addAuthTypeProperties(spec, authType); + for (AuthSchemeCodegenMetadata metadata : schemes) { + addAuthTypeProperties(spec, metadata); } spec.addStatement("break"); } - public void addAuthTypeProperties(MethodSpec.Builder spec, AuthType authType) { - AuthSchemeCodegenMetadata metadata = fromAuthType(authType); - spec.addCode("options.add($T.builder().schemeId($S)", - AuthSchemeOption.class, metadata.schemeId()); - for (SignerPropertyValueProvider property : metadata.properties()) { - spec.addCode(".putSignerProperty($T.$N, ", property.containingClass(), property.fieldName()); - property.emitValue(spec, authSchemeSpecUtils); - spec.addCode(")"); - - } - spec.addCode(".build());\n"); + private void addAuthTypeProperties(MethodSpec.Builder spec, AuthSchemeCodegenMetadata metadata) { + spec.addCode("options.add("); + spec.addCode(AuthSchemeCodegenMetadataExt.codegenNewAuthOption(metadata, authSchemeSpecUtils)); + spec.addCode(".build()"); + spec.addCode(");\n"); } } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/SigV4AuthSchemeCodegenKnowledgeIndex.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/SigV4AuthSchemeCodegenKnowledgeIndex.java new file mode 100644 index 000000000000..832d349dc195 --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/SigV4AuthSchemeCodegenKnowledgeIndex.java @@ -0,0 +1,168 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.auth.scheme; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.BiConsumer; +import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; +import software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeCodegenMetadata.SignerPropertyValueProvider; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; + +/** + * Knowledge index to compute the sets of operations that share the same set of sigv4 overrides. + */ +public final class SigV4AuthSchemeCodegenKnowledgeIndex { + private final Map, AuthSchemeCodegenMetadata> operationsToSigv4AuthScheme; + + private SigV4AuthSchemeCodegenKnowledgeIndex(IntermediateModel intermediateModel) { + this.operationsToSigv4AuthScheme = + operationsToSigv4AuthScheme(ModelAuthSchemeKnowledgeIndex.of(intermediateModel).operationsToMetadata()); + } + + /** + * Creates a new knowledge index from the given model. + */ + public static SigV4AuthSchemeCodegenKnowledgeIndex of(IntermediateModel intermediateModel) { + return new SigV4AuthSchemeCodegenKnowledgeIndex(intermediateModel); + } + + /** + * Returns the service overrides for sigv4. This method returns null if there are none configured. The service may or may not + * support sigv4 regardless. + */ + public AuthSchemeCodegenMetadata serviceSigV4Overrides() { + return operationsToSigv4AuthScheme.get(Collections.emptyList()); + } + + /** + * Returns true if there are any sigv4 overrides per operation. + * + * @return true if there are auth scheme overrides per operation + */ + public boolean hasPerOperationSigV4Overrides() { + if (operationsToSigv4AuthScheme.containsKey(Collections.emptyList())) { + return operationsToSigv4AuthScheme.size() > 1; + } + return !operationsToSigv4AuthScheme.isEmpty(); + } + + /** + * Returns true if there are any service wide sigv4 overrides. + */ + public boolean hasServiceSigV4Overrides() { + return serviceSigV4Overrides() != null; + } + + /** + * Returns true if there are sigv4 signer overrides in the model. + */ + public boolean hasSigV4Overrides() { + return hasServiceSigV4Overrides() || hasPerOperationSigV4Overrides(); + } + + + /** + * Traverses each group of operations with the same set of auth schemes. + * + * @param consumer The consumer to call for each group of operations with the same set of auth schemes. + */ + public void forEachOperationsOverridesGroup(BiConsumer, AuthSchemeCodegenMetadata> consumer) { + for (Map.Entry, AuthSchemeCodegenMetadata> kvp : operationsToSigv4AuthScheme.entrySet()) { + if (kvp.getKey().isEmpty()) { + // Ignore service wide defaults. + continue; + } + consumer.accept(kvp.getKey(), kvp.getValue()); + } + } + + /** + * Returns a map that groups all operations that share the ame set of sigv4 signer properties with override values. The + * service wide default values are encoded using {@link Collections#emptyList()} as a key and the value may be null. + */ + private Map, AuthSchemeCodegenMetadata> operationsToSigv4AuthScheme( + Map, List> operationsToMetadata + ) { + Map, AuthSchemeCodegenMetadata> result = new HashMap<>(); + for (Map.Entry, List> kvp : operationsToMetadata.entrySet()) { + AuthSchemeCodegenMetadata sigv4 = sigV4AuthSchemeWithConstantOverrides(kvp.getValue()); + if (sigv4 != null) { + result.put(kvp.getKey(), sigv4); + } + } + return result; + } + + /** + * Finds the sigv4 auth scheme from the list and transforms it to remove any signer property that does not have a constant + * value. Returns null if there are no signer properties with constant values or if the sigv4 auth scheme is not found. + */ + private AuthSchemeCodegenMetadata sigV4AuthSchemeWithConstantOverrides(List authSchemes) { + AuthSchemeCodegenMetadata sigv4 = findSigV4AuthScheme(authSchemes); + if (sigv4 == null) { + return null; + } + List signerPropertiesWithConstantValues = + filterSignerPropertiesWithConstantValues(sigv4.properties()); + + // No signer properties with overrides, we return null: we are only + // interested when there are any properties with constant values for codegen. + if (signerPropertiesWithConstantValues.isEmpty()) { + return null; + } + // Return the auth scheme but only retain the properties with constant values. + return sigv4.toBuilder() + .properties(signerPropertiesWithConstantValues) + .build(); + } + + /** + * Returns a new list of singer properties with only those properties that use a constant value. + */ + private List filterSignerPropertiesWithConstantValues( + List properties + ) { + List result = null; + for (SignerPropertyValueProvider property : properties) { + if (property.isConstant()) { + if (result == null) { + result = new ArrayList<>(); + } + result.add(property); + } + } + if (result != null) { + return result; + } + return Collections.emptyList(); + } + + /** + * Filters out the auth scheme with scheme id "aws.auth#sigv4". Returns {@code null} if not found. + */ + private AuthSchemeCodegenMetadata findSigV4AuthScheme(List authSchemes) { + for (AuthSchemeCodegenMetadata metadata : authSchemes) { + if (metadata.schemeId().equals(AwsV4AuthScheme.SCHEME_ID)) { + return metadata; + } + } + return null; + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/SigV4SignerDefaults.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/SigV4SignerDefaults.java new file mode 100644 index 000000000000..4d6a69786ab0 --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/SigV4SignerDefaults.java @@ -0,0 +1,243 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.auth.scheme; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import software.amazon.awssdk.utils.Validate; + +/** + * Tracks a set of explicitly enabled signer properties for the family of AWS SigV4 signers. The currently supported attributes + * are {@code doubleUrlEncode}, {@code normalizePath}, {@code payloadSigningEnabled}, {@code chunkEncodingEnabled}. If the + * value is null then is not overridden. An auth type can also represent a service-wide set of defaults. + */ +public final class SigV4SignerDefaults { + private final String service; + private final String authType; + private final String schemeId; + private final Boolean doubleUrlEncode; + private final Boolean normalizePath; + private final Boolean payloadSigningEnabled; + private final Boolean chunkEncodingEnabled; + private final Map operations; + + private SigV4SignerDefaults(Builder builder) { + this.service = builder.service; + this.authType = Validate.notNull(builder.authType, "authType"); + this.schemeId = Validate.notNull(builder.schemeId, "schemeId"); + this.doubleUrlEncode = builder.doubleUrlEncode; + this.normalizePath = builder.normalizePath; + this.payloadSigningEnabled = builder.payloadSigningEnabled; + this.chunkEncodingEnabled = builder.chunkEncodingEnabled; + this.operations = Collections.unmodifiableMap(new HashMap<>(builder.operations)); + } + + public boolean isServiceOverrideAuthScheme() { + return service != null; + } + + public String service() { + return service; + } + + public String authType() { + return authType; + } + + public String schemeId() { + return schemeId; + } + + public Boolean doubleUrlEncode() { + return doubleUrlEncode; + } + + public Boolean normalizePath() { + return normalizePath; + } + + public Boolean payloadSigningEnabled() { + return payloadSigningEnabled; + } + + public Boolean chunkEncodingEnabled() { + return chunkEncodingEnabled; + } + + public Map operations() { + return operations; + } + + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + SigV4SignerDefaults defaults = (SigV4SignerDefaults) o; + + if (!Objects.equals(service, defaults.service)) { + return false; + } + if (!authType.equals(defaults.authType)) { + return false; + } + if (!schemeId.equals(defaults.schemeId)) { + return false; + } + if (!Objects.equals(doubleUrlEncode, defaults.doubleUrlEncode)) { + return false; + } + if (!Objects.equals(normalizePath, defaults.normalizePath)) { + return false; + } + if (!Objects.equals(payloadSigningEnabled, defaults.payloadSigningEnabled)) { + return false; + } + if (!Objects.equals(chunkEncodingEnabled, defaults.chunkEncodingEnabled)) { + return false; + } + return operations.equals(defaults.operations); + } + + @Override + public int hashCode() { + int result = service != null ? service.hashCode() : 0; + result = 31 * result + authType.hashCode(); + result = 31 * result + schemeId.hashCode(); + result = 31 * result + (doubleUrlEncode != null ? doubleUrlEncode.hashCode() : 0); + result = 31 * result + (normalizePath != null ? normalizePath.hashCode() : 0); + result = 31 * result + (payloadSigningEnabled != null ? payloadSigningEnabled.hashCode() : 0); + result = 31 * result + (chunkEncodingEnabled != null ? chunkEncodingEnabled.hashCode() : 0); + result = 31 * result + operations.hashCode(); + return result; + } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String authType; + private String service; + private String schemeId; + private Boolean doubleUrlEncode; + private Boolean normalizePath; + private Boolean payloadSigningEnabled; + private Boolean chunkEncodingEnabled; + + private Map operations = new HashMap<>(); + + public Builder() { + } + + public Builder(SigV4SignerDefaults other) { + this.service = other.service; + this.authType = Validate.notNull(other.authType, "name"); + this.schemeId = Validate.notNull(other.schemeId, "schemeId"); + this.doubleUrlEncode = other.doubleUrlEncode; + this.normalizePath = other.normalizePath; + this.payloadSigningEnabled = other.payloadSigningEnabled; + this.chunkEncodingEnabled = other.chunkEncodingEnabled; + this.operations.putAll(other.operations); + } + + public String service() { + return service; + } + + public Builder service(String service) { + this.service = service; + return this; + } + + public String authType() { + return authType; + } + + public Builder authType(String authType) { + this.authType = authType; + return this; + } + + public String schemeId() { + return schemeId; + } + + public Builder schemeId(String schemeId) { + this.schemeId = schemeId; + return this; + } + + public Boolean doubleUrlEncode() { + return doubleUrlEncode; + } + + public Builder doubleUrlEncode(Boolean doubleUrlEncode) { + this.doubleUrlEncode = doubleUrlEncode; + return this; + } + + public Boolean normalizePath() { + return normalizePath; + } + + public Builder normalizePath(Boolean normalizePath) { + this.normalizePath = normalizePath; + return this; + } + + public Boolean payloadSigningEnabled() { + return payloadSigningEnabled; + } + + public Builder payloadSigningEnabled(Boolean payloadSigningEnabled) { + this.payloadSigningEnabled = payloadSigningEnabled; + return this; + } + + public Boolean chunkEncodingEnabled() { + return chunkEncodingEnabled; + } + + public Builder chunkEncodingEnabled(Boolean chunkEncodingEnabled) { + this.chunkEncodingEnabled = chunkEncodingEnabled; + return this; + } + + public Map operations() { + return operations; + } + + public Builder putOperation(String name, SigV4SignerDefaults constants) { + this.operations.put(name, constants); + return this; + } + + public SigV4SignerDefaults build() { + return new SigV4SignerDefaults(this); + } + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java index b045552c5950..ed8418e1dc7c 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java @@ -51,6 +51,7 @@ import software.amazon.awssdk.codegen.poet.ClassSpec; import software.amazon.awssdk.codegen.poet.PoetUtils; import software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeSpecUtils; +import software.amazon.awssdk.codegen.poet.auth.scheme.ModelAuthSchemeClassesKnowledgeIndex; import software.amazon.awssdk.codegen.poet.model.ServiceClientConfigurationUtils; import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils; import software.amazon.awssdk.codegen.utils.AuthUtils; @@ -724,7 +725,8 @@ private MethodSpec authSchemesMethod() { .addModifiers(PRIVATE) .returns(returns); - Set> concreteAuthSchemeClasses = authSchemeSpecUtils.allServiceConcreteAuthSchemeClasses(); + ModelAuthSchemeClassesKnowledgeIndex index = ModelAuthSchemeClassesKnowledgeIndex.of(model); + Set> concreteAuthSchemeClasses = index.serviceConcreteAuthSchemeClasses(); builder.addStatement("$T schemes = new $T<>($L + this.additionalAuthSchemes.size())", returns, HashMap.class, concreteAuthSchemeClasses.size()); for (Class concreteAuthScheme : concreteAuthSchemeClasses) { @@ -744,7 +746,7 @@ private MethodSpec invokePluginsMethod() { .addParameter(SdkClientConfiguration.class, "config") .returns(SdkClientConfiguration.class); - builder.addStatement("$T internalPlugins = internalPlugins()", + builder.addStatement("$T internalPlugins = internalPlugins(config)", ParameterizedTypeName.get(List.class, SdkPlugin.class)); builder.addStatement("$T externalPlugins = plugins()", @@ -773,6 +775,7 @@ private MethodSpec internalPluginsMethod() { MethodSpec.Builder builder = MethodSpec.methodBuilder("internalPlugins") .addModifiers(PRIVATE) + .addParameter(SdkClientConfiguration.class, "config") .returns(parameterizedTypeName); List internalPlugins = model.getCustomizationConfig().getInternalPlugins(); @@ -784,14 +787,32 @@ private MethodSpec internalPluginsMethod() { builder.addStatement("$T internalPlugins = new $T<>()", parameterizedTypeName, ArrayList.class); for (String internalPlugin : internalPlugins) { - ClassName pluginClass = ClassName.bestGuess(internalPlugin); - builder.addStatement("internalPlugins.add(new $T())", pluginClass); + String arguments = internalPluginNewArguments(internalPlugin); + String internalPluginClass = internalPluginClass(internalPlugin); + ClassName pluginClass = ClassName.bestGuess(internalPluginClass); + builder.addStatement("internalPlugins.add(new $T($L))", pluginClass, arguments); } builder.addStatement("return internalPlugins"); return builder.build(); } + private String internalPluginClass(String internalPlugin) { + int openParenthesisIndex = internalPlugin.indexOf('('); + if (openParenthesisIndex == -1) { + return internalPlugin; + } + return internalPlugin.substring(0, openParenthesisIndex); + } + + private String internalPluginNewArguments(String internalPlugin) { + int openParenthesisIndex = internalPlugin.indexOf('('); + if (openParenthesisIndex == -1) { + return ""; + } + return internalPlugin.substring(openParenthesisIndex); + } + @Override public ClassName className() { return builderClassName; diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java index d3b465b66a77..4490e00fb9f4 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java @@ -172,8 +172,7 @@ protected void addAdditionalMethods(TypeSpec.Builder type) { type.addMethod(isSignerOverriddenOnClientMethod()); } } - type.addMethod(updateSdkClientConfigurationMethod(configurationUtils.serviceClientConfigurationBuilderClassName(), - "S3".equals(model.getMetadata().getServiceName()))); + type.addMethod(updateSdkClientConfigurationMethod(configurationUtils.serviceClientConfigurationBuilderClassName())); protocolSpec.createErrorResponseHandler().ifPresent(type::addMethod); } @@ -222,7 +221,9 @@ private MethodSpec constructor(TypeSpec.Builder classBuilder) { .addModifiers(PROTECTED) .addParameter(SdkClientConfiguration.class, "clientConfiguration") .addStatement("this.clientHandler = new $T(clientConfiguration)", AwsAsyncClientHandler.class) - .addStatement("this.clientConfiguration = clientConfiguration"); + .addStatement("this.clientConfiguration = clientConfiguration.toBuilder()" + + ".option($T.SDK_CLIENT, this)" + + ".build()", SdkClientOption.class); FieldSpec protocolFactoryField = protocolSpec.protocolFactory(model); if (model.getMetadata().isJsonProtocol()) { builder.addStatement("this.$N = init($T.builder()).build()", protocolFactoryField.name, @@ -293,8 +294,7 @@ protected MethodSpec serviceClientConfigMethod() { } protected static MethodSpec updateSdkClientConfigurationMethod( - TypeName serviceClientConfigurationBuilderClassName, - boolean shouldAddClientReference) { + TypeName serviceClientConfigurationBuilderClassName) { MethodSpec.Builder builder = MethodSpec.methodBuilder("updateSdkClientConfiguration") .addModifiers(PRIVATE) .addParameter(SdkRequest.class, "request") @@ -306,10 +306,6 @@ protected static MethodSpec updateSdkClientConfigurationMethod( ParameterizedTypeName.get(List.class, SdkPlugin.class)) .addStatement("$T configuration = clientConfiguration.toBuilder()", SdkClientConfiguration.Builder.class); - if (shouldAddClientReference) { - builder.addStatement("configuration.option($T.SDK_CLIENT, this)", SdkClientOption.class); - } - builder.beginControlFlow("if (plugins.isEmpty())") .addStatement("return configuration.build()") .endControlFlow() diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java index 95cb77412076..f0fba58873f6 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java @@ -148,8 +148,7 @@ protected void addAdditionalMethods(TypeSpec.Builder type) { .addMethod(resolveMetricPublishersMethod()); protocolSpec.createErrorResponseHandler().ifPresent(type::addMethod); - type.addMethod(updateSdkClientConfigurationMethod(configurationUtils.serviceClientConfigurationBuilderClassName(), - "S3".equals(model.getMetadata().getServiceName()))); + type.addMethod(updateSdkClientConfigurationMethod(configurationUtils.serviceClientConfigurationBuilderClassName())); type.addMethod(protocolSpec.initProtocolFactory(model)); } @@ -197,7 +196,9 @@ private MethodSpec constructor() { .addModifiers(PROTECTED) .addParameter(SdkClientConfiguration.class, "clientConfiguration") .addStatement("this.clientHandler = new $T(clientConfiguration)", protocolSpec.getClientHandlerClass()) - .addStatement("this.clientConfiguration = clientConfiguration"); + .addStatement("this.clientConfiguration = clientConfiguration.toBuilder()" + + ".option($T.SDK_CLIENT, this)" + + ".build()", SdkClientOption.class); FieldSpec protocolFactoryField = protocolSpec.protocolFactory(model); if (model.getMetadata().isJsonProtocol()) { @@ -426,8 +427,7 @@ protected MethodSpec.Builder waiterOperationBody(MethodSpec.Builder builder) { } protected MethodSpec updateSdkClientConfigurationMethod( - TypeName serviceClientConfigurationBuilderClassName, - boolean shouldAddClientReference) { + TypeName serviceClientConfigurationBuilderClassName) { MethodSpec.Builder builder = MethodSpec.methodBuilder("updateSdkClientConfiguration") .addModifiers(PRIVATE) .addParameter(SdkRequest.class, "request") @@ -439,10 +439,6 @@ protected MethodSpec updateSdkClientConfigurationMethod( ParameterizedTypeName.get(List.class, SdkPlugin.class)) .addStatement("$T configuration = clientConfiguration.toBuilder()", SdkClientConfiguration.Builder.class); - if (shouldAddClientReference) { - builder.addStatement("configuration.option($T.SDK_CLIENT, this)", SdkClientOption.class); - } - builder.beginControlFlow("if (plugins.isEmpty())") .addStatement("return configuration.build()") .endControlFlow() diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/traits/RequestCompressionTrait.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/traits/RequestCompressionTrait.java index 9290e02a003a..b59fa7a0c2ff 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/traits/RequestCompressionTrait.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/traits/RequestCompressionTrait.java @@ -38,7 +38,7 @@ private RequestCompressionTrait() { * return an empty code-block. */ public static CodeBlock create(OperationModel operationModel, IntermediateModel model) { - if (operationModel.getRequestCompression() == null) { + if (operationModel.getRequestcompression() == null) { return CodeBlock.of(""); } @@ -49,7 +49,7 @@ public static CodeBlock create(OperationModel operationModel, IntermediateModel throw new IllegalStateException("Request compression for S3 is not yet supported in the AWS SDK for Java."); } - List encodings = operationModel.getRequestCompression().getEncodings(); + List encodings = operationModel.getRequestcompression().getEncodings(); return CodeBlock.of(".putExecutionAttribute($T.REQUEST_COMPRESSION, " + "$T.builder().encodings($L).isStreaming($L).build())", diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointResolverInterceptorSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointResolverInterceptorSpec.java index b6b8ad3f3c5e..0fd239adf96d 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointResolverInterceptorSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointResolverInterceptorSpec.java @@ -58,6 +58,7 @@ import software.amazon.awssdk.codegen.poet.PoetExtension; import software.amazon.awssdk.codegen.poet.PoetUtils; import software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeSpecUtils; +import software.amazon.awssdk.codegen.poet.auth.scheme.ModelAuthSchemeClassesKnowledgeIndex; import software.amazon.awssdk.core.SdkRequest; import software.amazon.awssdk.core.SelectedAuthScheme; import software.amazon.awssdk.core.exception.SdkClientException; @@ -96,7 +97,8 @@ public EndpointResolverInterceptorSpec(IntermediateModel model) { // We need to know whether the service has a dependency on the http-auth-aws module. Because we can't check that // directly, assume that if they're using AwsV4AuthScheme or AwsV4aAuthScheme that it's available. - Set> supportedAuthSchemes = new AuthSchemeSpecUtils(model).allServiceConcreteAuthSchemeClasses(); + Set> supportedAuthSchemes = + ModelAuthSchemeClassesKnowledgeIndex.of(model).serviceConcreteAuthSchemeClasses(); this.dependsOnHttpAuthAws = supportedAuthSchemes.contains(AwsV4AuthScheme.class) || supportedAuthSchemes.contains(AwsV4aAuthScheme.class); diff --git a/codegen/src/test/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClassTest.java b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClassTest.java index ae6ea5a4df3c..253eadc0f59f 100644 --- a/codegen/src/test/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClassTest.java +++ b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClassTest.java @@ -73,12 +73,61 @@ public void syncComposedDefaultClientBuilderClass() { validateBaseClientBuilderClassGeneration(composedClientJsonServiceModels(), "test-composed-sync-default-client-builder.java"); } + + @Test + void baseClientBuilderClass_sra() { + validateBaseClientBuilderClassGeneration(restJsonServiceModels(), "test-client-builder-class.java", true); + } + + @Test + void baseClientBuilderClassWithBearerAuth_sra() { + validateBaseClientBuilderClassGeneration(bearerAuthServiceModels(), "test-bearer-auth-client-builder-class.java", true); + } + + @Test + void baseClientBuilderClassWithNoAuthOperation_sra() { + validateBaseClientBuilderClassGeneration(operationWithNoAuth(), "test-no-auth-ops-client-builder-class.java", true); + } + + @Test + void baseClientBuilderClassWithNoAuthService_sra() { + validateBaseClientBuilderClassGeneration(serviceWithNoAuth(), "test-no-auth-service-client-builder-class.java", true); + } + + @Test + void baseClientBuilderClassWithInternalUserAgent_sra() { + validateBaseClientBuilderClassGeneration(internalConfigModels(), "test-client-builder-internal-defaults-class.java", + true); + } + + @Test + void baseQueryClientBuilderClass_sra() { + validateBaseClientBuilderClassGeneration(queryServiceModels(), "test-query-client-builder-class.java", true); + } + + @Test + void baseClientBuilderClassWithEndpointsAuthParams_sra() { + validateBaseClientBuilderClassGeneration(queryServiceModelsEndpointAuthParamsWithAllowList(), + "test-client-builder-endpoints-auth-params.java", true); + } + + @Test + void syncComposedDefaultClientBuilderClass_sra() { + validateBaseClientBuilderClassGeneration(composedClientJsonServiceModels(), + "test-composed-sync-default-client-builder.java", true); + } private void validateBaseClientBuilderClassGeneration(IntermediateModel model, String expectedClassName) { - model.getCustomizationConfig().setUseSraAuth(false); - validateGeneration(BaseClientBuilderClass::new, model, expectedClassName); + validateBaseClientBuilderClassGeneration(model, expectedClassName, false); + } - model.getCustomizationConfig().setUseSraAuth(true); - validateGeneration(BaseClientBuilderClass::new, model, "sra/" + expectedClassName); + private void validateBaseClientBuilderClassGeneration(IntermediateModel model, String expectedClassName, boolean sra) { + if (sra) { + model.getCustomizationConfig().setUseSraAuth(true); + validateGeneration(BaseClientBuilderClass::new, model, "sra/" + expectedClassName); + } else { + model.getCustomizationConfig().setUseSraAuth(false); + validateGeneration(BaseClientBuilderClass::new, model, expectedClassName); + } } } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/mini-s3-auth-scheme-default-provider.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/mini-s3-auth-scheme-default-provider.java index dd7224fd84c7..07447fafbad4 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/mini-s3-auth-scheme-default-provider.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/mini-s3-auth-scheme-default-provider.java @@ -40,11 +40,11 @@ public static DefaultMiniS3AuthSchemeProvider create() { public List resolveAuthScheme(MiniS3AuthSchemeParams params) { List options = new ArrayList<>(); options.add(AuthSchemeOption.builder().schemeId("aws.auth#sigv4") - .putSignerProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, "mini-s3-service") - .putSignerProperty(AwsV4HttpSigner.REGION_NAME, params.region().id()) - .putSignerProperty(AwsV4HttpSigner.DOUBLE_URL_ENCODE, false) - .putSignerProperty(AwsV4HttpSigner.NORMALIZE_PATH, false) - .putSignerProperty(AwsV4HttpSigner.PAYLOAD_SIGNING_ENABLED, false).build()); + .putSignerProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, "mini-s3-service") + .putSignerProperty(AwsV4HttpSigner.REGION_NAME, params.region().id()) + .putSignerProperty(AwsV4HttpSigner.PAYLOAD_SIGNING_ENABLED, false) + .putSignerProperty(AwsV4HttpSigner.DOUBLE_URL_ENCODE, false) + .putSignerProperty(AwsV4HttpSigner.NORMALIZE_PATH, false).build()); return Collections.unmodifiableList(options); } } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-auth-scheme-interceptor.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-auth-scheme-interceptor.java index 1db64c130b05..48edb00b1855 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-auth-scheme-interceptor.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-auth-scheme-interceptor.java @@ -22,6 +22,7 @@ import software.amazon.awssdk.core.metrics.CoreMetric; import software.amazon.awssdk.http.auth.spi.scheme.AuthScheme; import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.HttpSigner; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; import software.amazon.awssdk.identity.spi.Identity; import software.amazon.awssdk.identity.spi.IdentityProvider; @@ -60,14 +61,12 @@ private SelectedAuthScheme selectAuthScheme(List> authSchemes = executionAttributes.getAttribute(SdkInternalExecutionAttribute.AUTH_SCHEMES); - IdentityProviders identityProviders = executionAttributes - .getAttribute(SdkInternalExecutionAttribute.IDENTITY_PROVIDERS); + IdentityProviders identityProviders = executionAttributes.getAttribute(SdkInternalExecutionAttribute.IDENTITY_PROVIDERS); List> discardedReasons = new ArrayList<>(); for (AuthSchemeOption authOption : authOptions) { AuthScheme authScheme = authSchemes.get(authOption.schemeId()); SelectedAuthScheme selectedAuthScheme = trySelectAuthScheme(authOption, authScheme, - identityProviders, discardedReasons, - metricCollector, executionAttributes); + identityProviders, discardedReasons, metricCollector, executionAttributes); if (selectedAuthScheme != null) { if (!discardedReasons.isEmpty()) { LOG.debug(() -> String.format("%s auth will be used, discarded: '%s'", authOption.schemeId(), @@ -90,8 +89,7 @@ private QueryAuthSchemeParams authSchemeParams(SdkRequest request, ExecutionAttr } private SelectedAuthScheme trySelectAuthScheme(AuthSchemeOption authOption, AuthScheme authScheme, - IdentityProviders identityProviders, List> discardedReasons, - MetricCollector metricCollector, + IdentityProviders identityProviders, List> discardedReasons, MetricCollector metricCollector, ExecutionAttributes executionAttributes) { if (authScheme == null) { discardedReasons.add(() -> String.format("'%s' is not enabled for this request.", authOption.schemeId())); @@ -103,6 +101,14 @@ private SelectedAuthScheme trySelectAuthScheme(AuthSchem .add(() -> String.format("'%s' does not have an identity provider configured.", authOption.schemeId())); return null; } + HttpSigner signer; + try { + signer = authScheme.signer(); + } catch (RuntimeException e) { + discardedReasons.add(() -> String.format("'%s' signer could not be retrieved: %s", authOption.schemeId(), + e.getMessage())); + return null; + } ResolveIdentityRequest.Builder identityRequestBuilder = ResolveIdentityRequest.builder(); authOption.forEachIdentityProperty(identityRequestBuilder::putProperty); CompletableFuture identity; @@ -113,7 +119,7 @@ private SelectedAuthScheme trySelectAuthScheme(AuthSchem identity = MetricUtils.reportDuration(() -> identityProvider.resolveIdentity(identityRequestBuilder.build()), metricCollector, metric); } - return new SelectedAuthScheme<>(identity, authScheme.signer(), authOption); + return new SelectedAuthScheme<>(identity, signer, authOption); } private SdkMetric getIdentityMetric(IdentityProvider identityProvider) { diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-default-params-with-allowlist.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-default-params-with-allowlist.java index e9fb9b7cfaeb..9bc1b2065fe1 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-default-params-with-allowlist.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-default-params-with-allowlist.java @@ -19,11 +19,12 @@ import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.query.auth.scheme.QueryAuthSchemeParams; +import software.amazon.awssdk.services.query.endpoints.QueryEndpointProvider; import software.amazon.awssdk.utils.Validate; @Generated("software.amazon.awssdk:codegen") @SdkInternalApi -public final class DefaultQueryAuthSchemeParams implements QueryAuthSchemeParams { +public final class DefaultQueryAuthSchemeParams implements QueryAuthSchemeParams, QueryEndpointResolverAware { private final String operation; private final Region region; @@ -40,6 +41,8 @@ public final class DefaultQueryAuthSchemeParams implements QueryAuthSchemeParams private final String operationContextParam; + private final QueryEndpointProvider endpointProvider; + private DefaultQueryAuthSchemeParams(Builder builder) { this.operation = Validate.paramNotNull(builder.operation, "operation"); this.region = builder.region; @@ -49,6 +52,7 @@ private DefaultQueryAuthSchemeParams(Builder builder) { this.booleanContextParam = builder.booleanContextParam; this.stringContextParam = builder.stringContextParam; this.operationContextParam = builder.operationContextParam; + this.endpointProvider = builder.endpointProvider; } public static QueryAuthSchemeParams.Builder builder() { @@ -96,12 +100,17 @@ public String operationContextParam() { return operationContextParam; } + @Override + public QueryEndpointProvider endpointProvider() { + return endpointProvider; + } + @Override public QueryAuthSchemeParams.Builder toBuilder() { return new Builder(this); } - private static final class Builder implements QueryAuthSchemeParams.Builder { + private static final class Builder implements QueryAuthSchemeParams.Builder, QueryEndpointResolverAware.Builder { private String operation; private Region region; @@ -118,6 +127,8 @@ private static final class Builder implements QueryAuthSchemeParams.Builder { private String operationContextParam; + private QueryEndpointProvider endpointProvider; + Builder() { } @@ -130,6 +141,7 @@ private static final class Builder implements QueryAuthSchemeParams.Builder { this.booleanContextParam = params.booleanContextParam; this.stringContextParam = params.stringContextParam; this.operationContextParam = params.operationContextParam; + this.endpointProvider = params.endpointProvider; } @Override @@ -187,6 +199,12 @@ public Builder operationContextParam(String operationContextParam) { return this; } + @Override + public Builder endpointProvider(QueryEndpointProvider endpointProvider) { + this.endpointProvider = endpointProvider; + return this; + } + @Override public QueryAuthSchemeParams build() { return new DefaultQueryAuthSchemeParams(this); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-default-params-without-allowlist.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-default-params-without-allowlist.java index a8680625c1f2..54c0b17c6990 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-default-params-without-allowlist.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-default-params-without-allowlist.java @@ -19,11 +19,12 @@ import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.query.auth.scheme.QueryAuthSchemeParams; +import software.amazon.awssdk.services.query.endpoints.QueryEndpointProvider; import software.amazon.awssdk.utils.Validate; @Generated("software.amazon.awssdk:codegen") @SdkInternalApi -public final class DefaultQueryAuthSchemeParams implements QueryAuthSchemeParams { +public final class DefaultQueryAuthSchemeParams implements QueryAuthSchemeParams, QueryEndpointResolverAware { private final String operation; private final Region region; @@ -49,6 +50,8 @@ public final class DefaultQueryAuthSchemeParams implements QueryAuthSchemeParams private final String operationContextParam; + private final QueryEndpointProvider endpointProvider; + private DefaultQueryAuthSchemeParams(Builder builder) { this.operation = Validate.paramNotNull(builder.operation, "operation"); this.region = builder.region; @@ -62,6 +65,7 @@ private DefaultQueryAuthSchemeParams(Builder builder) { this.booleanContextParam = builder.booleanContextParam; this.stringContextParam = builder.stringContextParam; this.operationContextParam = builder.operationContextParam; + this.endpointProvider = builder.endpointProvider; } public static QueryAuthSchemeParams.Builder builder() { @@ -129,12 +133,17 @@ public String operationContextParam() { return operationContextParam; } + @Override + public QueryEndpointProvider endpointProvider() { + return endpointProvider; + } + @Override public QueryAuthSchemeParams.Builder toBuilder() { return new Builder(this); } - private static final class Builder implements QueryAuthSchemeParams.Builder { + private static final class Builder implements QueryAuthSchemeParams.Builder, QueryEndpointResolverAware.Builder { private String operation; private Region region; @@ -159,6 +168,8 @@ private static final class Builder implements QueryAuthSchemeParams.Builder { private String operationContextParam; + private QueryEndpointProvider endpointProvider; + Builder() { } @@ -175,6 +186,7 @@ private static final class Builder implements QueryAuthSchemeParams.Builder { this.booleanContextParam = params.booleanContextParam; this.stringContextParam = params.stringContextParam; this.operationContextParam = params.operationContextParam; + this.endpointProvider = params.endpointProvider; } @Override @@ -256,6 +268,12 @@ public Builder operationContextParam(String operationContextParam) { return this; } + @Override + public Builder endpointProvider(QueryEndpointProvider endpointProvider) { + this.endpointProvider = endpointProvider; + return this; + } + @Override public QueryAuthSchemeParams build() { return new DefaultQueryAuthSchemeParams(this); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-endpoint-provider-without-allowlist.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-endpoint-provider-without-allowlist.java index 35cc3c2b27c3..30956f58d47b 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-endpoint-provider-without-allowlist.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-endpoint-provider-without-allowlist.java @@ -10,6 +10,8 @@ import software.amazon.awssdk.awscore.endpoints.authscheme.SigV4AuthScheme; import software.amazon.awssdk.awscore.endpoints.authscheme.SigV4aAuthScheme; import software.amazon.awssdk.endpoints.Endpoint; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4aAuthScheme; import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner; import software.amazon.awssdk.http.auth.aws.signer.AwsV4aHttpSigner; import software.amazon.awssdk.http.auth.aws.signer.RegionSet; @@ -45,7 +47,7 @@ public List resolveAuthScheme(QueryAuthSchemeParams params) { .defaultStringParam(params.defaultStringParam()).deprecatedParam(params.deprecatedParam()) .booleanContextParam(params.booleanContextParam()).stringContextParam(params.stringContextParam()) .operationContextParam(params.operationContextParam()).build(); - Endpoint endpoint = CompletableFutureUtils.joinLikeSync(DELEGATE.resolveEndpoint(endpointParameters)); + Endpoint endpoint = CompletableFutureUtils.joinLikeSync(endpointProvider(params).resolveEndpoint(endpointParameters)); List authSchemes = endpoint.attribute(AwsEndpointAttribute.AUTH_SCHEMES); if (authSchemes == null) { return MODELED_RESOLVER.resolveAuthScheme(params); @@ -58,20 +60,22 @@ public List resolveAuthScheme(QueryAuthSchemeParams params) { SigV4AuthScheme sigv4AuthScheme = Validate.isInstanceOf(SigV4AuthScheme.class, authScheme, "Expecting auth scheme of class SigV4AuthScheme, got instead object of class %s", authScheme.getClass() .getName()); - options.add(AuthSchemeOption.builder().schemeId("aws.auth#sigv4") - .putSignerProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, sigv4AuthScheme.signingName()) - .putSignerProperty(AwsV4HttpSigner.REGION_NAME, sigv4AuthScheme.signingRegion()) - .putSignerProperty(AwsV4HttpSigner.DOUBLE_URL_ENCODE, !sigv4AuthScheme.disableDoubleEncoding()).build()); + AuthSchemeOption sigv4AuthSchemeOption = AuthSchemeOption.builder().schemeId(AwsV4AuthScheme.SCHEME_ID) + .putSignerProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, sigv4AuthScheme.signingName()) + .putSignerProperty(AwsV4HttpSigner.REGION_NAME, sigv4AuthScheme.signingRegion()) + .putSignerProperty(AwsV4HttpSigner.DOUBLE_URL_ENCODE, !sigv4AuthScheme.disableDoubleEncoding()).build(); + options.add(sigv4AuthSchemeOption); break; case "sigv4a": SigV4aAuthScheme sigv4aAuthScheme = Validate.isInstanceOf(SigV4aAuthScheme.class, authScheme, "Expecting auth scheme of class SigV4AuthScheme, got instead object of class %s", authScheme.getClass() .getName()); RegionSet regionSet = RegionSet.create(sigv4aAuthScheme.signingRegionSet()); - options.add(AuthSchemeOption.builder().schemeId("aws.auth#sigv4a") - .putSignerProperty(AwsV4aHttpSigner.SERVICE_SIGNING_NAME, sigv4aAuthScheme.signingName()) - .putSignerProperty(AwsV4aHttpSigner.REGION_SET, regionSet) - .putSignerProperty(AwsV4aHttpSigner.DOUBLE_URL_ENCODE, !sigv4aAuthScheme.disableDoubleEncoding()).build()); + AuthSchemeOption sigv4aAuthSchemeOption = AuthSchemeOption.builder().schemeId(AwsV4aAuthScheme.SCHEME_ID) + .putSignerProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, sigv4aAuthScheme.signingName()) + .putSignerProperty(AwsV4aHttpSigner.REGION_SET, regionSet) + .putSignerProperty(AwsV4HttpSigner.DOUBLE_URL_ENCODE, !sigv4aAuthScheme.disableDoubleEncoding()).build(); + options.add(sigv4aAuthSchemeOption); break; default: throw new IllegalArgumentException("Unknown auth scheme: " + name); @@ -79,4 +83,15 @@ public List resolveAuthScheme(QueryAuthSchemeParams params) { } return Collections.unmodifiableList(options); } + + private QueryEndpointProvider endpointProvider(QueryAuthSchemeParams params) { + if (params instanceof QueryEndpointResolverAware) { + QueryEndpointResolverAware endpointAwareParams = (QueryEndpointResolverAware) params; + QueryEndpointProvider endpointProvider = endpointAwareParams.endpointProvider(); + if (endpointProvider != null) { + return endpointProvider; + } + } + return DELEGATE; + } } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-endpoint-provider.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-endpoint-provider.java index 0fd273b82882..ab4ed5f48035 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-endpoint-provider.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-auth-scheme-endpoint-provider.java @@ -10,6 +10,8 @@ import software.amazon.awssdk.awscore.endpoints.authscheme.SigV4AuthScheme; import software.amazon.awssdk.awscore.endpoints.authscheme.SigV4aAuthScheme; import software.amazon.awssdk.endpoints.Endpoint; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4aAuthScheme; import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner; import software.amazon.awssdk.http.auth.aws.signer.AwsV4aHttpSigner; import software.amazon.awssdk.http.auth.aws.signer.RegionSet; @@ -43,7 +45,7 @@ public List resolveAuthScheme(QueryAuthSchemeParams params) { .defaultTrueParam(params.defaultTrueParam()).defaultStringParam(params.defaultStringParam()) .deprecatedParam(params.deprecatedParam()).booleanContextParam(params.booleanContextParam()) .stringContextParam(params.stringContextParam()).operationContextParam(params.operationContextParam()).build(); - Endpoint endpoint = CompletableFutureUtils.joinLikeSync(DELEGATE.resolveEndpoint(endpointParameters)); + Endpoint endpoint = CompletableFutureUtils.joinLikeSync(endpointProvider(params).resolveEndpoint(endpointParameters)); List authSchemes = endpoint.attribute(AwsEndpointAttribute.AUTH_SCHEMES); if (authSchemes == null) { return MODELED_RESOLVER.resolveAuthScheme(params); @@ -56,20 +58,22 @@ public List resolveAuthScheme(QueryAuthSchemeParams params) { SigV4AuthScheme sigv4AuthScheme = Validate.isInstanceOf(SigV4AuthScheme.class, authScheme, "Expecting auth scheme of class SigV4AuthScheme, got instead object of class %s", authScheme.getClass() .getName()); - options.add(AuthSchemeOption.builder().schemeId("aws.auth#sigv4") - .putSignerProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, sigv4AuthScheme.signingName()) - .putSignerProperty(AwsV4HttpSigner.REGION_NAME, sigv4AuthScheme.signingRegion()) - .putSignerProperty(AwsV4HttpSigner.DOUBLE_URL_ENCODE, !sigv4AuthScheme.disableDoubleEncoding()).build()); + AuthSchemeOption sigv4AuthSchemeOption = AuthSchemeOption.builder().schemeId(AwsV4AuthScheme.SCHEME_ID) + .putSignerProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, sigv4AuthScheme.signingName()) + .putSignerProperty(AwsV4HttpSigner.REGION_NAME, sigv4AuthScheme.signingRegion()) + .putSignerProperty(AwsV4HttpSigner.DOUBLE_URL_ENCODE, !sigv4AuthScheme.disableDoubleEncoding()).build(); + options.add(sigv4AuthSchemeOption); break; case "sigv4a": SigV4aAuthScheme sigv4aAuthScheme = Validate.isInstanceOf(SigV4aAuthScheme.class, authScheme, "Expecting auth scheme of class SigV4AuthScheme, got instead object of class %s", authScheme.getClass() .getName()); RegionSet regionSet = RegionSet.create(sigv4aAuthScheme.signingRegionSet()); - options.add(AuthSchemeOption.builder().schemeId("aws.auth#sigv4a") - .putSignerProperty(AwsV4aHttpSigner.SERVICE_SIGNING_NAME, sigv4aAuthScheme.signingName()) - .putSignerProperty(AwsV4aHttpSigner.REGION_SET, regionSet) - .putSignerProperty(AwsV4aHttpSigner.DOUBLE_URL_ENCODE, !sigv4aAuthScheme.disableDoubleEncoding()).build()); + AuthSchemeOption sigv4aAuthSchemeOption = AuthSchemeOption.builder().schemeId(AwsV4aAuthScheme.SCHEME_ID) + .putSignerProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, sigv4aAuthScheme.signingName()) + .putSignerProperty(AwsV4aHttpSigner.REGION_SET, regionSet) + .putSignerProperty(AwsV4HttpSigner.DOUBLE_URL_ENCODE, !sigv4aAuthScheme.disableDoubleEncoding()).build(); + options.add(sigv4aAuthSchemeOption); break; default: throw new IllegalArgumentException("Unknown auth scheme: " + name); @@ -77,4 +81,15 @@ public List resolveAuthScheme(QueryAuthSchemeParams params) { } return Collections.unmodifiableList(options); } + + private QueryEndpointProvider endpointProvider(QueryAuthSchemeParams params) { + if (params instanceof QueryEndpointResolverAware) { + QueryEndpointResolverAware endpointAwareParams = (QueryEndpointResolverAware) params; + QueryEndpointProvider endpointProvider = endpointAwareParams.endpointProvider(); + if (endpointProvider != null) { + return endpointProvider; + } + } + return DELEGATE; + } } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-with-allowlist-auth-scheme-interceptor.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-with-allowlist-auth-scheme-interceptor.java index 5abf214378a0..942aa43d9aee 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-with-allowlist-auth-scheme-interceptor.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-with-allowlist-auth-scheme-interceptor.java @@ -19,8 +19,10 @@ import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; import software.amazon.awssdk.core.internal.util.MetricUtils; import software.amazon.awssdk.core.metrics.CoreMetric; +import software.amazon.awssdk.endpoints.EndpointProvider; import software.amazon.awssdk.http.auth.spi.scheme.AuthScheme; import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.HttpSigner; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; import software.amazon.awssdk.identity.spi.Identity; import software.amazon.awssdk.identity.spi.IdentityProvider; @@ -32,6 +34,7 @@ import software.amazon.awssdk.services.query.auth.scheme.QueryAuthSchemeParams; import software.amazon.awssdk.services.query.auth.scheme.QueryAuthSchemeProvider; import software.amazon.awssdk.services.query.endpoints.QueryEndpointParams; +import software.amazon.awssdk.services.query.endpoints.QueryEndpointProvider; import software.amazon.awssdk.services.query.endpoints.internal.QueryResolveEndpointInterceptor; import software.amazon.awssdk.utils.Logger; import software.amazon.awssdk.utils.Validate; @@ -60,14 +63,12 @@ private SelectedAuthScheme selectAuthScheme(List> authSchemes = executionAttributes.getAttribute(SdkInternalExecutionAttribute.AUTH_SCHEMES); - IdentityProviders identityProviders = executionAttributes - .getAttribute(SdkInternalExecutionAttribute.IDENTITY_PROVIDERS); + IdentityProviders identityProviders = executionAttributes.getAttribute(SdkInternalExecutionAttribute.IDENTITY_PROVIDERS); List> discardedReasons = new ArrayList<>(); for (AuthSchemeOption authOption : authOptions) { AuthScheme authScheme = authSchemes.get(authOption.schemeId()); SelectedAuthScheme selectedAuthScheme = trySelectAuthScheme(authOption, authScheme, - identityProviders, discardedReasons, - metricCollector, executionAttributes); + identityProviders, discardedReasons, metricCollector, executionAttributes); if (selectedAuthScheme != null) { if (!discardedReasons.isEmpty()) { LOG.debug(() -> String.format("%s auth will be used, discarded: '%s'", authOption.schemeId(), @@ -95,12 +96,17 @@ private QueryAuthSchemeParams authSchemeParams(SdkRequest request, ExecutionAttr builder.operationContextParam(endpointParams.operationContextParam()); String operation = executionAttributes.getAttribute(SdkExecutionAttribute.OPERATION_NAME); builder.operation(operation); + if (builder instanceof QueryEndpointResolverAware.Builder) { + EndpointProvider endpointProvider = executionAttributes.getAttribute(SdkInternalExecutionAttribute.ENDPOINT_PROVIDER); + if (endpointProvider instanceof QueryEndpointProvider) { + ((QueryEndpointResolverAware.Builder) builder).endpointProvider((QueryEndpointProvider) endpointProvider); + } + } return builder.build(); } private SelectedAuthScheme trySelectAuthScheme(AuthSchemeOption authOption, AuthScheme authScheme, - IdentityProviders identityProviders, List> discardedReasons, - MetricCollector metricCollector, + IdentityProviders identityProviders, List> discardedReasons, MetricCollector metricCollector, ExecutionAttributes executionAttributes) { if (authScheme == null) { discardedReasons.add(() -> String.format("'%s' is not enabled for this request.", authOption.schemeId())); @@ -112,6 +118,14 @@ private SelectedAuthScheme trySelectAuthScheme(AuthSchem .add(() -> String.format("'%s' does not have an identity provider configured.", authOption.schemeId())); return null; } + HttpSigner signer; + try { + signer = authScheme.signer(); + } catch (RuntimeException e) { + discardedReasons.add(() -> String.format("'%s' signer could not be retrieved: %s", authOption.schemeId(), + e.getMessage())); + return null; + } ResolveIdentityRequest.Builder identityRequestBuilder = ResolveIdentityRequest.builder(); authOption.forEachIdentityProperty(identityRequestBuilder::putProperty); CompletableFuture identity; @@ -122,7 +136,7 @@ private SelectedAuthScheme trySelectAuthScheme(AuthSchem identity = MetricUtils.reportDuration(() -> identityProvider.resolveIdentity(identityRequestBuilder.build()), metricCollector, metric); } - return new SelectedAuthScheme<>(identity, authScheme.signer(), authOption); + return new SelectedAuthScheme<>(identity, signer, authOption); } private SdkMetric getIdentityMetric(IdentityProvider identityProvider) { diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-without-allowlist-auth-scheme-interceptor.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-without-allowlist-auth-scheme-interceptor.java index e1d9bc96e3f1..38748945e02b 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-without-allowlist-auth-scheme-interceptor.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/auth/scheme/query-endpoint-auth-params-without-allowlist-auth-scheme-interceptor.java @@ -19,8 +19,10 @@ import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; import software.amazon.awssdk.core.internal.util.MetricUtils; import software.amazon.awssdk.core.metrics.CoreMetric; +import software.amazon.awssdk.endpoints.EndpointProvider; import software.amazon.awssdk.http.auth.spi.scheme.AuthScheme; import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.HttpSigner; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; import software.amazon.awssdk.identity.spi.Identity; import software.amazon.awssdk.identity.spi.IdentityProvider; @@ -32,6 +34,7 @@ import software.amazon.awssdk.services.query.auth.scheme.QueryAuthSchemeParams; import software.amazon.awssdk.services.query.auth.scheme.QueryAuthSchemeProvider; import software.amazon.awssdk.services.query.endpoints.QueryEndpointParams; +import software.amazon.awssdk.services.query.endpoints.QueryEndpointProvider; import software.amazon.awssdk.services.query.endpoints.internal.QueryResolveEndpointInterceptor; import software.amazon.awssdk.utils.Logger; import software.amazon.awssdk.utils.Validate; @@ -60,14 +63,12 @@ private SelectedAuthScheme selectAuthScheme(List> authSchemes = executionAttributes.getAttribute(SdkInternalExecutionAttribute.AUTH_SCHEMES); - IdentityProviders identityProviders = executionAttributes - .getAttribute(SdkInternalExecutionAttribute.IDENTITY_PROVIDERS); + IdentityProviders identityProviders = executionAttributes.getAttribute(SdkInternalExecutionAttribute.IDENTITY_PROVIDERS); List> discardedReasons = new ArrayList<>(); for (AuthSchemeOption authOption : authOptions) { AuthScheme authScheme = authSchemes.get(authOption.schemeId()); SelectedAuthScheme selectedAuthScheme = trySelectAuthScheme(authOption, authScheme, - identityProviders, discardedReasons, - metricCollector, executionAttributes); + identityProviders, discardedReasons, metricCollector, executionAttributes); if (selectedAuthScheme != null) { if (!discardedReasons.isEmpty()) { LOG.debug(() -> String.format("%s auth will be used, discarded: '%s'", authOption.schemeId(), @@ -99,12 +100,17 @@ private QueryAuthSchemeParams authSchemeParams(SdkRequest request, ExecutionAttr builder.operationContextParam(endpointParams.operationContextParam()); String operation = executionAttributes.getAttribute(SdkExecutionAttribute.OPERATION_NAME); builder.operation(operation); + if (builder instanceof QueryEndpointResolverAware.Builder) { + EndpointProvider endpointProvider = executionAttributes.getAttribute(SdkInternalExecutionAttribute.ENDPOINT_PROVIDER); + if (endpointProvider instanceof QueryEndpointProvider) { + ((QueryEndpointResolverAware.Builder) builder).endpointProvider((QueryEndpointProvider) endpointProvider); + } + } return builder.build(); } private SelectedAuthScheme trySelectAuthScheme(AuthSchemeOption authOption, AuthScheme authScheme, - IdentityProviders identityProviders, List> discardedReasons, - MetricCollector metricCollector, + IdentityProviders identityProviders, List> discardedReasons, MetricCollector metricCollector, ExecutionAttributes executionAttributes) { if (authScheme == null) { discardedReasons.add(() -> String.format("'%s' is not enabled for this request.", authOption.schemeId())); @@ -116,6 +122,14 @@ private SelectedAuthScheme trySelectAuthScheme(AuthSchem .add(() -> String.format("'%s' does not have an identity provider configured.", authOption.schemeId())); return null; } + HttpSigner signer; + try { + signer = authScheme.signer(); + } catch (RuntimeException e) { + discardedReasons.add(() -> String.format("'%s' signer could not be retrieved: %s", authOption.schemeId(), + e.getMessage())); + return null; + } ResolveIdentityRequest.Builder identityRequestBuilder = ResolveIdentityRequest.builder(); authOption.forEachIdentityProperty(identityRequestBuilder::putProperty); CompletableFuture identity; @@ -126,7 +140,7 @@ private SelectedAuthScheme trySelectAuthScheme(AuthSchem identity = MetricUtils.reportDuration(() -> identityProvider.resolveIdentity(identityRequestBuilder.build()), metricCollector, metric); } - return new SelectedAuthScheme<>(identity, authScheme.signer(), authOption); + return new SelectedAuthScheme<>(identity, signer, authOption); } private SdkMetric getIdentityMetric(IdentityProvider identityProvider) { diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java index d69b3bf46ee0..65fa6c74f696 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java @@ -127,7 +127,7 @@ private IdentityProvider defaultTokenProvider() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -141,7 +141,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-class.java index 139f9cb63620..8fc7ef906c62 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-class.java @@ -214,7 +214,7 @@ protected final AttributeMap serviceHttpConfig() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -228,7 +228,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { List internalPlugins = new ArrayList<>(); internalPlugins.add(new InternalTestPlugin1()); internalPlugins.add(new InternalTestPlugin2()); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-endpoints-auth-params.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-endpoints-auth-params.java index 843a92ab430e..0529fabd1584 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-endpoints-auth-params.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-endpoints-auth-params.java @@ -149,7 +149,7 @@ private IdentityProvider defaultTokenProvider() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -163,7 +163,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-internal-defaults-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-internal-defaults-class.java index 2d02273d245b..b8bced3923a8 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-internal-defaults-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-internal-defaults-class.java @@ -124,7 +124,7 @@ private Map> authSchemes() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -138,7 +138,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-composed-sync-default-client-builder.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-composed-sync-default-client-builder.java index 6d1252e85078..3ee6097742aa 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-composed-sync-default-client-builder.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-composed-sync-default-client-builder.java @@ -158,7 +158,7 @@ private IdentityProvider defaultTokenProvider() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -172,7 +172,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-ops-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-ops-client-builder-class.java index 487f9d1c42a9..62ded62ffa67 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-ops-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-ops-client-builder-class.java @@ -119,7 +119,7 @@ private Map> authSchemes() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -134,7 +134,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-service-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-service-client-builder-class.java index 9876e54cd444..e9881e8fc484 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-service-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-service-client-builder-class.java @@ -107,7 +107,7 @@ private Map> authSchemes() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -122,7 +122,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-query-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-query-client-builder-class.java index 2b2853cf98df..12e6fe65e94f 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-query-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-query-client-builder-class.java @@ -146,7 +146,7 @@ private IdentityProvider defaultTokenProvider() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -160,7 +160,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-class.java index b323e0e4b91b..e77d35434d4c 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-class.java @@ -98,7 +98,7 @@ private Signer defaultTokenSigner() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -112,7 +112,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-class.java index 8b44ec2ce87f..ee013e70a9c4 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-class.java @@ -188,7 +188,7 @@ protected final AttributeMap serviceHttpConfig() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -202,7 +202,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { List internalPlugins = new ArrayList<>(); internalPlugins.add(new InternalTestPlugin1()); internalPlugins.add(new InternalTestPlugin2()); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-endpoints-auth-params.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-endpoints-auth-params.java index 945b796781ae..5e7c97377b7c 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-endpoints-auth-params.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-endpoints-auth-params.java @@ -120,7 +120,7 @@ private Signer defaultTokenSigner() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -134,7 +134,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-internal-defaults-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-internal-defaults-class.java index 4185bbc4e72c..82a6d7ad5549 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-internal-defaults-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-internal-defaults-class.java @@ -96,7 +96,7 @@ private JsonEndpointProvider defaultEndpointProvider() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -110,7 +110,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-composed-sync-default-client-builder.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-composed-sync-default-client-builder.java index 01f52c3553c7..bbffc0a4d47c 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-composed-sync-default-client-builder.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-composed-sync-default-client-builder.java @@ -132,7 +132,7 @@ private Signer defaultTokenSigner() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -146,7 +146,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-ops-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-ops-client-builder-class.java index 450339ce03fd..8ff06f85e88d 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-ops-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-ops-client-builder-class.java @@ -88,7 +88,7 @@ private DatabaseEndpointProvider defaultEndpointProvider() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -103,7 +103,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-service-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-service-client-builder-class.java index f35b5f3c2b0d..dc6570ae80bc 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-service-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-service-client-builder-class.java @@ -73,7 +73,7 @@ private DatabaseEndpointProvider defaultEndpointProvider() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -88,7 +88,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java index 945b796781ae..5e7c97377b7c 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java @@ -120,7 +120,7 @@ private Signer defaultTokenSigner() { @Override protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { - List internalPlugins = internalPlugins(); + List internalPlugins = internalPlugins(config); List externalPlugins = plugins(); if (internalPlugins.isEmpty() && externalPlugins.isEmpty()) { return config; @@ -134,7 +134,7 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) { return configuration.build(); } - private List internalPlugins() { + private List internalPlugins(SdkClientConfiguration config) { return Collections.emptyList(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/json/service-2.json b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/json/service-2.json index 65d931001984..f7500034e765 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/json/service-2.json +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/json/service-2.json @@ -36,7 +36,7 @@ "method": "POST", "requestUri": "/" }, - "requestCompression": { + "requestcompression": { "encodings": ["gzip"] } }, diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/service-2.json b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/service-2.json index 940d58871464..6521234b771c 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/service-2.json +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/service-2.json @@ -65,7 +65,7 @@ "method": "POST", "requestUri": "/" }, - "requestCompression": { + "requestcompression": { "encodings": ["gzip"] } }, diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/rest-json/service-2.json b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/rest-json/service-2.json index f003ba7d1e66..a144431455dd 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/rest-json/service-2.json +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/rest-json/service-2.json @@ -28,7 +28,7 @@ "method": "POST", "requestUri": "/" }, - "requestCompression": { + "requestcompression": { "encodings": ["gzip"] } }, diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/xml/service-2.json b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/xml/service-2.json index 451eb30d1e28..bcc3b9796f47 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/xml/service-2.json +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/xml/service-2.json @@ -35,7 +35,7 @@ "method": "POST", "requestUri": "/" }, - "requestCompression": { + "requestcompression": { "encodings": ["gzip"] } }, diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java index bd61702ee884..721da70756f2 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java @@ -133,7 +133,7 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java index a64db8d40ed6..b31d21fa7637 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java @@ -141,7 +141,7 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java index 8d08737d1d75..1937b0d393b2 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java @@ -100,7 +100,7 @@ final class DefaultJsonClient implements JsonClient { protected DefaultJsonClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java index 271ccb784040..ddf56055a3c6 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java @@ -103,7 +103,7 @@ final class DefaultQueryAsyncClient implements QueryAsyncClient { protected DefaultQueryAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(); this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java index d7fb402cd792..de30297738dc 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java @@ -94,7 +94,7 @@ final class DefaultQueryClient implements QueryClient { protected DefaultQueryClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java index 38db12176238..fa54d4a765c5 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java @@ -108,7 +108,7 @@ final class DefaultXmlAsyncClient implements XmlAsyncClient { protected DefaultXmlAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java index b5faa021d650..f96469e1422f 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java @@ -89,7 +89,7 @@ final class DefaultXmlClient implements XmlClient { protected DefaultXmlClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java index 0b95dfd7fc6e..37a8d4803d1a 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java @@ -140,7 +140,7 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java index f3cb45af943c..47ef62c35751 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java @@ -60,7 +60,7 @@ final class DefaultQueryToJsonCompatibleAsyncClient implements QueryToJsonCompat protected DefaultQueryToJsonCompatibleAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java index 743fedebb338..85e39bcc67bf 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java @@ -56,7 +56,7 @@ final class DefaultQueryToJsonCompatibleClient implements QueryToJsonCompatibleC protected DefaultQueryToJsonCompatibleClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-async.java index 8ff2ba1a9319..ebcb96eb3c05 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-async.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-async.java @@ -57,7 +57,7 @@ final class DefaultProtocolRestJsonWithCustomPackageAsyncClient implements Proto protected DefaultProtocolRestJsonWithCustomPackageAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-sync.java index f024a8157593..d5b297ffc1d0 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-sync.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-custompackage-sync.java @@ -53,7 +53,7 @@ final class DefaultProtocolRestJsonWithCustomPackageClient implements ProtocolRe protected DefaultProtocolRestJsonWithCustomPackageClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java index 3d60f7a83fb2..88fa5fb4c4bf 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java @@ -57,7 +57,7 @@ final class DefaultProtocolRestJsonWithCustomContentTypeAsyncClient implements P protected DefaultProtocolRestJsonWithCustomContentTypeAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java index d4ee3fbc396e..d252296403e3 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java @@ -53,7 +53,7 @@ final class DefaultProtocolRestJsonWithCustomContentTypeClient implements Protoc protected DefaultProtocolRestJsonWithCustomContentTypeClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java index 3d89eea05731..a514a7f460e9 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java @@ -74,7 +74,7 @@ final class DefaultEndpointDiscoveryTestAsyncClient implements EndpointDiscovery protected DefaultEndpointDiscoveryTestAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); if (clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED)) { this.endpointDiscoveryCache = EndpointDiscoveryRefreshCache diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java index 618287cc5df3..1ee719380382 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java @@ -72,7 +72,7 @@ final class DefaultEndpointDiscoveryTestClient implements EndpointDiscoveryTestC protected DefaultEndpointDiscoveryTestClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); if (clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED)) { this.endpointDiscoveryCache = EndpointDiscoveryRefreshCache.create(EndpointDiscoveryTestEndpointDiscoveryCacheLoader diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java index c30ad3572f91..778e6ab56808 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java @@ -149,7 +149,7 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java index c50f30a6382f..9ab99f520fd5 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java @@ -106,7 +106,7 @@ final class DefaultJsonClient implements JsonClient { protected DefaultJsonClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java index c9e4fd24427f..11e753cf4dd6 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java @@ -109,7 +109,7 @@ final class DefaultQueryAsyncClient implements QueryAsyncClient { protected DefaultQueryAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(); this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java index cc90d386ef98..b32c43fb395b 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java @@ -99,7 +99,7 @@ final class DefaultQueryClient implements QueryClient { protected DefaultQueryClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java index 343ec21f22ac..fb00ce52de6a 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java @@ -114,7 +114,7 @@ final class DefaultXmlAsyncClient implements XmlAsyncClient { protected DefaultXmlAsyncClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java index 705ab47f7ca4..308251805754 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java @@ -94,7 +94,7 @@ final class DefaultXmlClient implements XmlClient { protected DefaultXmlClient(SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); - this.clientConfiguration = clientConfiguration; + this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build(); this.protocolFactory = init(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-class.java index 43064d2c9b5c..d15e8a73d6d7 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-class.java @@ -368,47 +368,6 @@ private static EndpointRuleset ruleSet() { .addParameter( Parameter.builder().name("operationContextParam").type(ParameterType.fromValue("string")) .required(false).build()).build()).addRule(endpointRule_0()).build(); - .builder() - .version("1.2") - .serviceId("query") - .parameters( - Parameters - .builder() - .addParameter( - Parameter.builder().name("region").type(ParameterType.fromValue("string")).required(true) - .builtIn("AWS::Region").documentation("The region to send requests to").build()) - .addParameter( - Parameter.builder().name("useDualStackEndpoint").type(ParameterType.fromValue("boolean")) - .required(false).builtIn("AWS::UseDualStack").build()) - .addParameter( - Parameter.builder().name("useFIPSEndpoint").type(ParameterType.fromValue("boolean")) - .required(false).builtIn("AWS::UseFIPS").build()) - .addParameter( - Parameter.builder().name("awsAccountId").type(ParameterType.fromValue("String")) - .required(false).builtIn("AWS::Auth::AccountId").build()) - .addParameter( - Parameter.builder().name("endpointId").type(ParameterType.fromValue("string")) - .required(false).build()) - .addParameter( - Parameter.builder().name("defaultTrueParam").type(ParameterType.fromValue("boolean")) - .required(false).documentation("A param that defauls to true") - .defaultValue(Value.fromBool(true)).build()) - .addParameter( - Parameter.builder().name("defaultStringParam").type(ParameterType.fromValue("string")) - .required(false).defaultValue(Value.fromStr("hello endpoints")).build()) - .addParameter( - Parameter.builder().name("deprecatedParam").type(ParameterType.fromValue("string")) - .required(false).deprecated(new Parameter.Deprecated("Don't use!", "2021-01-01")) - .build()) - .addParameter( - Parameter.builder().name("booleanContextParam").type(ParameterType.fromValue("boolean")) - .required(false).build()) - .addParameter( - Parameter.builder().name("stringContextParam").type(ParameterType.fromValue("string")) - .required(false).build()) - .addParameter( - Parameter.builder().name("operationContextParam").type(ParameterType.fromValue("string")) - .required(false).build()).build()).addRule(endpointRule_0()).build(); } @Override diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-know-prop-override-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-know-prop-override-class.java index ea1d2442d4ae..45e5f2314913 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-know-prop-override-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-provider-know-prop-override-class.java @@ -53,6 +53,9 @@ private static Map toIdentifierValueMap(QueryEndpointParams p if (params.useFipsEndpoint() != null) { paramsMap.put(Identifier.of("useFIPSEndpoint"), Value.fromBool(params.useFipsEndpoint())); } + if (params.awsAccountId() != null) { + paramsMap.put(Identifier.of("awsAccountId"), Value.fromStr(params.awsAccountId())); + } if (params.endpointId() != null) { paramsMap.put(Identifier.of("endpointId"), Value.fromStr(params.endpointId())); } @@ -338,6 +341,9 @@ private static EndpointRuleset ruleSet() { .addParameter( Parameter.builder().name("useFIPSEndpoint").type(ParameterType.fromValue("boolean")) .required(false).builtIn("AWS::UseFIPS").build()) + .addParameter( + Parameter.builder().name("awsAccountId").type(ParameterType.fromValue("String")) + .required(false).builtIn("AWS::Auth::AccountId").build()) .addParameter( Parameter.builder().name("endpointId").type(ParameterType.fromValue("string")) .required(false).build()) diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor-preSra.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor-preSra.java index e8c672150ac4..ac511d877f6e 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor-preSra.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor-preSra.java @@ -113,6 +113,7 @@ public static QueryEndpointParams ruleParams(SdkRequest request, ExecutionAttrib builder.region(AwsEndpointProviderUtils.regionBuiltIn(executionAttributes)); builder.useDualStackEndpoint(AwsEndpointProviderUtils.dualStackEnabledBuiltIn(executionAttributes)); builder.useFipsEndpoint(AwsEndpointProviderUtils.fipsEnabledBuiltIn(executionAttributes)); + builder.awsAccountId(AwsEndpointProviderUtils.accountIdBuiltIn(executionAttributes)); setClientContextParams(builder, executionAttributes); setContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME), request); setStaticContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME)); diff --git a/core/annotations/pom.xml b/core/annotations/pom.xml index 6353e9cbdea4..fe87b3e4724e 100644 --- a/core/annotations/pom.xml +++ b/core/annotations/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/arns/pom.xml b/core/arns/pom.xml index 93b17cddd8f7..98b0cb1391d7 100644 --- a/core/arns/pom.xml +++ b/core/arns/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/auth-crt/pom.xml b/core/auth-crt/pom.xml index a56363b41dd3..50962e9163ca 100644 --- a/core/auth-crt/pom.xml +++ b/core/auth-crt/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT auth-crt diff --git a/core/auth/pom.xml b/core/auth/pom.xml index 7d11eeb6394b..4e25e25c3f30 100644 --- a/core/auth/pom.xml +++ b/core/auth/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT auth diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/InstanceProfileCredentialsProvider.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/InstanceProfileCredentialsProvider.java index fa19467e99d0..db84a1b13ecf 100644 --- a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/InstanceProfileCredentialsProvider.java +++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/InstanceProfileCredentialsProvider.java @@ -31,6 +31,7 @@ import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.annotations.SdkTestInternalApi; import software.amazon.awssdk.auth.credentials.internal.Ec2MetadataConfigProvider; +import software.amazon.awssdk.auth.credentials.internal.Ec2MetadataDisableV1Resolver; import software.amazon.awssdk.auth.credentials.internal.HttpCredentialsLoader; import software.amazon.awssdk.auth.credentials.internal.HttpCredentialsLoader.LoadedCredentials; import software.amazon.awssdk.auth.credentials.internal.StaticResourcesEndpointProvider; @@ -40,6 +41,7 @@ import software.amazon.awssdk.profiles.ProfileFile; import software.amazon.awssdk.profiles.ProfileFileSupplier; import software.amazon.awssdk.profiles.ProfileFileSystemSetting; +import software.amazon.awssdk.profiles.ProfileProperty; import software.amazon.awssdk.regions.util.HttpResourcesUtils; import software.amazon.awssdk.regions.util.ResourcesEndpointProvider; import software.amazon.awssdk.utils.Logger; @@ -53,10 +55,13 @@ /** * Credentials provider implementation that loads credentials from the Amazon EC2 Instance Metadata Service. - * - *

+ *

* If {@link SdkSystemSetting#AWS_EC2_METADATA_DISABLED} is set to true, it will not try to load * credentials from EC2 metadata service and will return null. + *

+ * If {@link SdkSystemSetting#AWS_EC2_METADATA_V1_DISABLED} or {@link ProfileProperty#EC2_METADATA_V1_DISABLED} + * is set to true, credentials will only be loaded from EC2 metadata service if a token is successfully retrieved - + * fallback to load credentials without a token will be disabled. */ @SdkPublicApi public final class InstanceProfileCredentialsProvider @@ -73,6 +78,7 @@ public final class InstanceProfileCredentialsProvider private final Clock clock; private final String endpoint; private final Ec2MetadataConfigProvider configProvider; + private final Ec2MetadataDisableV1Resolver ec2MetadataDisableV1Resolver; private final HttpCredentialsLoader httpCredentialsLoader; private final CachedSupplier credentialsCache; @@ -92,15 +98,18 @@ private InstanceProfileCredentialsProvider(BuilderImpl builder) { this.endpoint = builder.endpoint; this.asyncCredentialUpdateEnabled = builder.asyncCredentialUpdateEnabled; this.asyncThreadName = builder.asyncThreadName; - this.profileFile = builder.profileFile; - this.profileName = builder.profileName; + this.profileFile = Optional.ofNullable(builder.profileFile) + .orElseGet(() -> ProfileFileSupplier.fixedProfileFile(ProfileFile.defaultProfileFile())); + this.profileName = Optional.ofNullable(builder.profileName) + .orElseGet(ProfileFileSystemSetting.AWS_PROFILE::getStringValueOrThrow); this.httpCredentialsLoader = HttpCredentialsLoader.create(); this.configProvider = Ec2MetadataConfigProvider.builder() - .profileFile(builder.profileFile) - .profileName(builder.profileName) + .profileFile(profileFile) + .profileName(profileName) .build(); + this.ec2MetadataDisableV1Resolver = Ec2MetadataDisableV1Resolver.create(profileFile, profileName); if (Boolean.TRUE.equals(builder.asyncCredentialUpdateEnabled)) { Validate.paramNotBlank(builder.asyncThreadName, "asyncThreadName"); @@ -135,7 +144,6 @@ public static InstanceProfileCredentialsProvider create() { return builder().build(); } - @Override public AwsCredentials resolveCredentials() { return credentialsCache.get(); @@ -225,17 +233,15 @@ private String getToken(String imdsHostname) { return HttpResourcesUtils.instance().readResource(tokenEndpoint, "PUT"); } catch (SdkServiceException e) { if (e.statusCode() == 400) { + throw SdkClientException.builder() .message("Unable to fetch metadata token.") .cause(e) .build(); } - - log.debug(() -> "Ignoring non-fatal exception while attempting to load metadata token from instance profile.", e); - return null; + return handleTokenErrorResponse(e); } catch (Exception e) { - log.debug(() -> "Ignoring non-fatal exception while attempting to load metadata token from instance profile.", e); - return null; + return handleTokenErrorResponse(e); } } @@ -247,6 +253,27 @@ private URI getTokenEndpoint(String imdsHostname) { return URI.create(finalHost + TOKEN_RESOURCE); } + private String handleTokenErrorResponse(Exception e) { + if (isInsecureFallbackDisabled()) { + String message = String.format("Failed to retrieve IMDS token, and fallback to IMDS v1 is disabled via the " + + "%s system property, %s environment variable, or %s configuration file profile" + + " setting.", + SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.environmentVariable(), + SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property(), + ProfileProperty.EC2_METADATA_V1_DISABLED); + throw SdkClientException.builder() + .message(message) + .cause(e) + .build(); + } + log.debug(() -> "Ignoring non-fatal exception while attempting to load metadata token from instance profile.", e); + return null; + } + + private boolean isInsecureFallbackDisabled() { + return ec2MetadataDisableV1Resolver.resolve(); + } + private String[] getSecurityCredentials(String imdsHostname, String metadataToken) { ResourcesEndpointProvider securityCredentialsEndpoint = new StaticResourcesEndpointProvider(URI.create(imdsHostname + SECURITY_CREDENTIALS_RESOURCE), diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.java index 13cbdd5f57b1..95d6bb88afb4 100644 --- a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.java +++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.java @@ -71,9 +71,9 @@ private ProfileCredentialsProvider(BuilderImpl builder) { try { selectedProfileName = Optional.ofNullable(builder.profileName) .orElseGet(ProfileFileSystemSetting.AWS_PROFILE::getStringValueOrThrow); - - selectedProfileSupplier = Optional.ofNullable(builder.profileFile) - .orElseGet(() -> builder.defaultProfileFileLoader); + selectedProfileSupplier = + Optional.ofNullable(builder.profileFile) + .orElseGet(() -> ProfileFileSupplier.fixedProfileFile(builder.defaultProfileFileLoader.get())); } catch (RuntimeException e) { // If we couldn't load the credentials provider for some reason, save an exception describing why. This exception diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/Ec2MetadataDisableV1Resolver.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/Ec2MetadataDisableV1Resolver.java new file mode 100644 index 000000000000..b5d4173a374c --- /dev/null +++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/Ec2MetadataDisableV1Resolver.java @@ -0,0 +1,63 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.auth.credentials.internal; + +import java.util.Optional; +import java.util.function.Supplier; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.core.SdkSystemSetting; +import software.amazon.awssdk.profiles.ProfileFile; +import software.amazon.awssdk.profiles.ProfileProperty; +import software.amazon.awssdk.utils.Lazy; +import software.amazon.awssdk.utils.OptionalUtils; + +@SdkInternalApi +public final class Ec2MetadataDisableV1Resolver { + private final Supplier profileFile; + private final String profileName; + private final Lazy resolvedValue; + + private Ec2MetadataDisableV1Resolver(Supplier profileFile, String profileName) { + this.profileFile = profileFile; + this.profileName = profileName; + this.resolvedValue = new Lazy<>(this::doResolve); + } + + public static Ec2MetadataDisableV1Resolver create(Supplier profileFile, String profileName) { + return new Ec2MetadataDisableV1Resolver(profileFile, profileName); + } + + public boolean resolve() { + return resolvedValue.getValue(); + } + + public boolean doResolve() { + return OptionalUtils.firstPresent(fromSystemSettings(), + () -> fromProfileFile(profileFile, profileName)) + .orElse(false); + } + + private static Optional fromSystemSettings() { + return SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.getBooleanValue(); + } + + private static Optional fromProfileFile(Supplier profileFile, String profileName) { + return profileFile.get() + .profile(profileName) + .flatMap(p -> p.booleanProperty(ProfileProperty.EC2_METADATA_V1_DISABLED)); + } + +} diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtils.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtils.java index 78d2a69e5f64..22da5e9986fd 100644 --- a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtils.java +++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/ProfileCredentialsUtils.java @@ -269,15 +269,10 @@ private AwsCredentialsProvider credentialSourceCredentialProvider(CredentialSour case ECS_CONTAINER: return ContainerCredentialsProvider.builder().build(); case EC2_INSTANCE_METADATA: - // The IMDS credentials provider should source the endpoint config properties from the currently active profile - Ec2MetadataConfigProvider configProvider = Ec2MetadataConfigProvider.builder() - .profileFile(() -> profileFile) - .profileName(name) - .build(); - return InstanceProfileCredentialsProvider.builder() - .endpoint(configProvider.getEndpoint()) - .build(); + .profileFile(profileFile) + .profileName(name) + .build(); case ENVIRONMENT: return AwsCredentialsProviderChain.builder() .addCredentialsProvider(SystemPropertyCredentialsProvider.create()) diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/InstanceProfileCredentialsProviderTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/InstanceProfileCredentialsProviderTest.java index 0f32ed3c17bd..05db14c7a2fd 100644 --- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/InstanceProfileCredentialsProviderTest.java +++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/InstanceProfileCredentialsProviderTest.java @@ -23,6 +23,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.putRequestedFor; import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; +import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static java.time.temporal.ChronoUnit.HOURS; import static java.time.temporal.ChronoUnit.MINUTES; import static java.time.temporal.ChronoUnit.SECONDS; @@ -33,7 +34,8 @@ import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder; import com.github.tomakehurst.wiremock.client.WireMock; import com.github.tomakehurst.wiremock.core.WireMockConfiguration; -import com.github.tomakehurst.wiremock.junit.WireMockRule; +import com.github.tomakehurst.wiremock.junit5.WireMockExtension; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; import com.github.tomakehurst.wiremock.matching.RequestPattern; import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder; import java.time.Clock; @@ -45,11 +47,12 @@ import java.util.List; import java.util.function.Supplier; import java.util.stream.Collectors; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import software.amazon.awssdk.core.SdkSystemSetting; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.core.util.SdkUserAgent; @@ -60,6 +63,7 @@ import software.amazon.awssdk.utils.Pair; import software.amazon.awssdk.utils.StringInputStream; +@WireMockTest public class InstanceProfileCredentialsProviderTest { private static final String TOKEN_RESOURCE_PATH = "/latest/api/token"; private static final String CREDENTIALS_RESOURCE_PATH = "/latest/meta-data/iam/security-credentials/"; @@ -67,169 +71,197 @@ public class InstanceProfileCredentialsProviderTest { + "\"Expiration\":\"" + DateUtils.formatIso8601Date(Instant.now().plus(Duration.ofDays(1))) + "\"}"; private static final String TOKEN_HEADER = "x-aws-ec2-metadata-token"; + private static final String USER_AGENT_HEADER = "User-Agent"; + private static final String TOKEN_STUB = "some-token"; + private static final String PROFILE_NAME = "some-profile"; + private static final String USER_AGENT = SdkUserAgent.create().userAgent(); private static final String EC2_METADATA_TOKEN_TTL_HEADER = "x-aws-ec2-metadata-token-ttl-seconds"; + @RegisterExtension + static WireMockExtension wireMockServer = WireMockExtension.newInstance() + .options(wireMockConfig().dynamicPort().dynamicPort()) + .configureStaticDsl(true) + .build(); - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Rule - public WireMockRule mockMetadataEndpoint = new WireMockRule(); - - @Before + @BeforeEach public void methodSetup() { - System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_SERVICE_ENDPOINT.property(), "http://localhost:" + mockMetadataEndpoint.port()); + System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_SERVICE_ENDPOINT.property(), "http://localhost:" + wireMockServer.getPort()); } - @AfterClass + @AfterAll public static void teardown() { System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_SERVICE_ENDPOINT.property()); } - @Test - public void resolveCredentials_metadataLookupDisabled_throws() { - System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_DISABLED.property(), "true"); - thrown.expect(SdkClientException.class); - thrown.expectMessage("IMDS credentials have been disabled"); - try { - InstanceProfileCredentialsProvider.builder().build().resolveCredentials(); - } finally { - System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_DISABLED.property()); - } + private void stubSecureCredentialsResponse(ResponseDefinitionBuilder responseDefinitionBuilder) { + wireMockServer.stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody(TOKEN_STUB))); + stubCredentialsResponse(responseDefinitionBuilder); } - @Test - public void resolveCredentials_requestsIncludeUserAgent() { - String stubToken = "some-token"; - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody(stubToken))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody("some-profile"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).willReturn(aResponse().withBody(STUB_CREDENTIALS))); + private void stubTokenFetchErrorResponse(ResponseDefinitionBuilder responseDefinitionBuilder, int statusCode) { + wireMockServer.stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(statusCode) + .withBody("oops"))); + stubCredentialsResponse(responseDefinitionBuilder); + } - InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); + private void stubCredentialsResponse(ResponseDefinitionBuilder responseDefinitionBuilder) { + wireMockServer.stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody(PROFILE_NAME))); + wireMockServer.stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + PROFILE_NAME)).willReturn(responseDefinitionBuilder)); + } - provider.resolveCredentials(); + private void verifyImdsCallWithToken() { + WireMock.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT)) + .withHeader(EC2_METADATA_TOKEN_TTL_HEADER, equalTo("21600"))); + WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)) + .withHeader(TOKEN_HEADER, equalTo(TOKEN_STUB)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")) + .withHeader(TOKEN_HEADER, equalTo(TOKEN_STUB)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + } - String userAgentHeader = "User-Agent"; - String userAgent = SdkUserAgent.create().userAgent(); - WireMock.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).withHeader(userAgentHeader, equalTo(userAgent))); + private void verifyImdsCallInsecure() { + WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)) + .withoutHeader(TOKEN_HEADER) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")) + .withoutHeader(TOKEN_HEADER) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); } @Test - public void resolveCredentials_queriesTokenResource() { - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody("some-token"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody("some-profile"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).willReturn(aResponse().withBody(STUB_CREDENTIALS))); - + public void resolveCredentials_queriesTokenResource_includesTokenInCredentialsRequests() { + stubSecureCredentialsResponse(aResponse().withBody(STUB_CREDENTIALS)); InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); - provider.resolveCredentials(); - - WireMock.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)).withHeader(EC2_METADATA_TOKEN_TTL_HEADER, equalTo("21600"))); + verifyImdsCallWithToken(); } - @Test - public void resolveCredentials_queriesTokenResource_includedInCredentialsRequests() { - String stubToken = "some-token"; - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody(stubToken))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody("some-profile"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).willReturn(aResponse().withBody(STUB_CREDENTIALS))); - + @ParameterizedTest + @ValueSource(ints = {403, 404, 405}) + public void resolveCredentials_queriesTokenResource_40xError_fallbackToInsecure(int statusCode) { + stubTokenFetchErrorResponse(aResponse().withBody(STUB_CREDENTIALS), statusCode); InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); - provider.resolveCredentials(); - - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).withHeader(TOKEN_HEADER, equalTo(stubToken))); - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).withHeader(TOKEN_HEADER, equalTo(stubToken))); + verifyImdsCallInsecure(); } @Test - public void resolveCredentials_queriesTokenResource_403Error_fallbackToInsecure() { - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(403).withBody("oops"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody("some-profile"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).willReturn(aResponse().withBody(STUB_CREDENTIALS))); + public void resolveCredentials_queriesTokenResource_socketTimeout_fallbackToInsecure() { + stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody("some-token").withFixedDelay(Integer.MAX_VALUE))); + stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody(PROFILE_NAME))); + stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + PROFILE_NAME)).willReturn(aResponse().withBody(STUB_CREDENTIALS))); InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); - provider.resolveCredentials(); + verifyImdsCallInsecure(); + } - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH))); - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile"))); + @ParameterizedTest + @ValueSource(ints = {403, 404, 405}) + public void resolveCredentials_fallbackToInsecureDisabledThroughProperty_throwsWhenTokenFails(int statusCode) { + System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property(), "true"); + stubTokenFetchErrorResponse(aResponse().withBody(STUB_CREDENTIALS), statusCode); + try { + InstanceProfileCredentialsProvider.builder().build().resolveCredentials(); + } catch (Exception e) { + assertThat(e).isInstanceOf(SdkClientException.class); + Throwable cause = e.getCause(); + assertThat(cause).isInstanceOf(SdkClientException.class); + assertThat(cause).hasMessageContaining("fallback to IMDS v1 is disabled"); + } + finally { + System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property()); + } } @Test - public void resolveCredentials_queriesTokenResource_404Error_fallbackToInsecure() { - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(404).withBody("oops"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody("some-profile"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).willReturn(aResponse().withBody(STUB_CREDENTIALS))); - - InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); - - provider.resolveCredentials(); + public void resolveCredentials_fallbackToInsecureDisabledThroughProperty_returnsCredentialsWhenTokenReturned() { + System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property(), "true"); + stubSecureCredentialsResponse(aResponse().withBody(STUB_CREDENTIALS)); + try { + InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); + provider.resolveCredentials(); + verifyImdsCallWithToken(); + } finally { + System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property()); + } + } - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH))); - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile"))); + @ParameterizedTest + @ValueSource(ints = {403, 404, 405}) + public void resolveCredentials_fallbackToInsecureDisabledThroughConfig_throwsWhenTokenFails(int statusCode) { + stubTokenFetchErrorResponse(aResponse().withBody(STUB_CREDENTIALS), statusCode); + try { + InstanceProfileCredentialsProvider.builder() + .profileFile(configFile("profile test", Pair.of(ProfileProperty.EC2_METADATA_V1_DISABLED, "true"))) + .profileName("test") + .build() + .resolveCredentials(); + } catch (Exception e) { + assertThat(e).isInstanceOf(SdkClientException.class); + Throwable cause = e.getCause(); + assertThat(cause).isInstanceOf(SdkClientException.class); + assertThat(cause).hasMessageContaining("fallback to IMDS v1 is disabled"); + } } @Test - public void resolveCredentials_queriesTokenResource_405Error_fallbackToInsecure() { - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(405).withBody("oops"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody("some-profile"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).willReturn(aResponse().withBody(STUB_CREDENTIALS))); - - InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); - - provider.resolveCredentials(); - - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH))); - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile"))); + public void resolveCredentials_fallbackToInsecureDisabledThroughConfig_returnsCredentialsWhenTokenReturned() { + stubSecureCredentialsResponse(aResponse().withBody(STUB_CREDENTIALS)); + InstanceProfileCredentialsProvider.builder() + .profileFile(configFile("profile test", Pair.of(ProfileProperty.EC2_METADATA_V1_DISABLED, "true"))) + .profileName("test") + .build() + .resolveCredentials(); + verifyImdsCallWithToken(); } @Test - public void resolveCredentials_queriesTokenResource_400Error_throws() { - thrown.expect(SdkClientException.class); - thrown.expectMessage("Failed to load credentials from IMDS"); - - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(400).withBody("oops"))); - - InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); - - provider.resolveCredentials(); + public void resolveCredentials_fallbackToInsecureEnabledThroughConfig_returnsCredentialsWhenTokenReturned() { + stubSecureCredentialsResponse(aResponse().withBody(STUB_CREDENTIALS)); + InstanceProfileCredentialsProvider.builder() + .profileFile(configFile("profile test", + Pair.of(ProfileProperty.EC2_METADATA_V1_DISABLED, "false"))) + .profileName("test") + .build() + .resolveCredentials(); + verifyImdsCallWithToken(); } @Test - public void resolveCredentials_queriesTokenResource_socketTimeout_fallbackToInsecure() { - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody("some-token").withFixedDelay(Integer.MAX_VALUE))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody("some-profile"))); - stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).willReturn(aResponse().withBody(STUB_CREDENTIALS))); - - InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); - - provider.resolveCredentials(); + public void resolveCredentials_queriesTokenResource_400Error_throws() { + stubTokenFetchErrorResponse(aResponse().withBody(STUB_CREDENTIALS), 400); - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH))); - WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile"))); + assertThatThrownBy(() -> InstanceProfileCredentialsProvider.builder().build().resolveCredentials()) + .isInstanceOf(SdkClientException.class).hasMessage("Failed to load credentials from IMDS."); } @Test public void resolveCredentials_endpointSettingEmpty_throws() { - thrown.expect(SdkClientException.class); - System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_SERVICE_ENDPOINT.property(), ""); - InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); - - provider.resolveCredentials(); + assertThatThrownBy(() -> InstanceProfileCredentialsProvider.builder().build().resolveCredentials()) + .isInstanceOf(SdkClientException.class).hasMessage("Failed to load credentials from IMDS."); } @Test public void resolveCredentials_endpointSettingHostNotExists_throws() { - thrown.expect(SdkClientException.class); - System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_SERVICE_ENDPOINT.property(), "some-host-that-does-not-exist"); - InstanceProfileCredentialsProvider provider = InstanceProfileCredentialsProvider.builder().build(); + assertThatThrownBy(() -> InstanceProfileCredentialsProvider.builder().build().resolveCredentials()) + .isInstanceOf(SdkClientException.class).hasMessage("Failed to load credentials from IMDS."); + } - provider.resolveCredentials(); + @Test + public void resolveCredentials_metadataLookupDisabled_throws() { + System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_DISABLED.property(), "true"); + try { + assertThatThrownBy(() -> InstanceProfileCredentialsProvider.builder().build().resolveCredentials()) + .isInstanceOf(SdkClientException.class) + .hasMessage("IMDS credentials have been disabled by environment variable or system property."); + } finally { + System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_DISABLED.property()); + } } @Test @@ -250,14 +282,15 @@ public void resolveCredentials_customProfileFileAndName_usesCorrectEndpoint() { provider.resolveCredentials(); - String userAgentHeader = "User-Agent"; - String userAgent = SdkUserAgent.create().userAgent(); - mockMetadataEndpoint_2.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).withHeader(userAgentHeader, equalTo(userAgent))); + mockMetadataEndpoint_2.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); // all requests should have gone to the second server, and none to the other one - mockMetadataEndpoint.verify(0, RequestPatternBuilder.allRequests()); + wireMockServer.verify(0, RequestPatternBuilder.allRequests()); } finally { mockMetadataEndpoint_2.stop(); } @@ -293,14 +326,15 @@ public void resolveCredentials_customProfileFileSupplierAndNameSettingEndpointOv assertThat(awsCredentials1).isNotNull(); - String userAgentHeader = "User-Agent"; - String userAgent = SdkUserAgent.create().userAgent(); - mockMetadataEndpoint_2.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).withHeader(userAgentHeader, equalTo(userAgent))); + mockMetadataEndpoint_2.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); // all requests should have gone to the second server, and none to the other one - mockMetadataEndpoint.verify(0, RequestPatternBuilder.allRequests()); + wireMockServer.verify(0, RequestPatternBuilder.allRequests()); } finally { mockMetadataEndpoint_2.stop(); } @@ -334,14 +368,15 @@ public void resolveCredentials_customSupplierProfileFileAndNameSettingEndpointOv assertThat(awsCredentials1).isNotNull(); - String userAgentHeader = "User-Agent"; - String userAgent = SdkUserAgent.create().userAgent(); - mockMetadataEndpoint_2.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).withHeader(userAgentHeader, equalTo(userAgent))); + mockMetadataEndpoint_2.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + mockMetadataEndpoint_2.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); // all requests should have gone to the second server, and none to the other one - mockMetadataEndpoint.verify(0, RequestPatternBuilder.allRequests()); + wireMockServer.verify(0, RequestPatternBuilder.allRequests()); } finally { mockMetadataEndpoint_2.stop(); } @@ -356,7 +391,7 @@ public void resolveCredentials_doesNotFailIfImdsReturnsExpiredCredentials() { + "\"Expiration\":\"" + DateUtils.formatIso8601Date(Instant.now().minus(Duration.ofHours(1))) + '"' + "}"; - stubCredentialsResponse(aResponse().withBody(credentialsResponse)); + stubSecureCredentialsResponse(aResponse().withBody(credentialsResponse)); AwsCredentials credentials = InstanceProfileCredentialsProvider.builder().build().resolveCredentials(); @@ -373,18 +408,18 @@ public void resolveCredentials_onlyCallsImdsOnceEvenWithExpiredCredentials() { + "\"Expiration\":\"" + DateUtils.formatIso8601Date(Instant.now().minus(Duration.ofHours(1))) + '"' + "}"; - stubCredentialsResponse(aResponse().withBody(credentialsResponse)); + stubSecureCredentialsResponse(aResponse().withBody(credentialsResponse)); AwsCredentialsProvider credentialsProvider = InstanceProfileCredentialsProvider.builder().build(); credentialsProvider.resolveCredentials(); - int requestCountAfterOneRefresh = mockMetadataEndpoint.countRequestsMatching(RequestPattern.everything()).getCount(); + int requestCountAfterOneRefresh = wireMockServer.countRequestsMatching(RequestPattern.everything()).getCount(); credentialsProvider.resolveCredentials(); credentialsProvider.resolveCredentials(); - int requestCountAfterThreeRefreshes = mockMetadataEndpoint.countRequestsMatching(RequestPattern.everything()).getCount(); + int requestCountAfterThreeRefreshes = wireMockServer.countRequestsMatching(RequestPattern.everything()).getCount(); assertThat(requestCountAfterThreeRefreshes).isEqualTo(requestCountAfterOneRefresh); } @@ -398,8 +433,8 @@ public void resolveCredentials_failsIfImdsReturns500OnFirstCall() { + "\"message\": \"" + errorMessage + "\"" + "}"; - stubCredentialsResponse(aResponse().withStatus(500) - .withBody(credentialsResponse)); + stubSecureCredentialsResponse(aResponse().withStatus(500) + .withBody(credentialsResponse)); assertThatThrownBy(InstanceProfileCredentialsProvider.builder().build()::resolveCredentials) .isInstanceOf(SdkClientException.class) @@ -419,12 +454,12 @@ public void resolveCredentials_usesCacheIfImdsFailsOnSecondCall() { // Set the time to the past, so that the cache expiration time is still is in the past, and then prime the cache clock.time = Instant.now().minus(24, HOURS); - stubCredentialsResponse(aResponse().withBody(successfulCredentialsResponse)); + stubSecureCredentialsResponse(aResponse().withBody(successfulCredentialsResponse)); AwsCredentials credentialsBefore = credentialsProvider.resolveCredentials(); // Travel to the present time take down IMDS, so we can see if we use the cached credentials clock.time = Instant.now(); - stubCredentialsResponse(aResponse().withStatus(500)); + stubSecureCredentialsResponse(aResponse().withStatus(500)); AwsCredentials credentialsAfter = credentialsProvider.resolveCredentials(); assertThat(credentialsBefore).isEqualTo(credentialsAfter); @@ -451,18 +486,18 @@ public void resolveCredentials_callsImdsIfCredentialsWithin5MinutesOfExpiration( // Set the time to the past and call IMDS to prime the cache clock.time = now.minus(24, HOURS); - stubCredentialsResponse(aResponse().withBody(successfulCredentialsResponse1)); + stubSecureCredentialsResponse(aResponse().withBody(successfulCredentialsResponse1)); AwsCredentials credentials24HoursAgo = credentialsProvider.resolveCredentials(); // Set the time to 10 minutes before expiration, and fail to call IMDS clock.time = now.minus(10, MINUTES); - stubCredentialsResponse(aResponse().withStatus(500)); + stubSecureCredentialsResponse(aResponse().withStatus(500)); AwsCredentials credentials10MinutesAgo = credentialsProvider.resolveCredentials(); // Set the time to 10 seconds before expiration, and verify that we still call IMDS to try to get credentials in at the // last moment before expiration clock.time = now.minus(10, SECONDS); - stubCredentialsResponse(aResponse().withBody(successfulCredentialsResponse2)); + stubSecureCredentialsResponse(aResponse().withBody(successfulCredentialsResponse2)); AwsCredentials credentials10SecondsAgo = credentialsProvider.resolveCredentials(); assertThat(credentials24HoursAgo).isEqualTo(credentials10MinutesAgo); @@ -493,12 +528,12 @@ public void imdsCallFrequencyIsLimited() { // Set the time to 5 minutes before expiration and call IMDS clock.time = now.minus(5, MINUTES); - stubCredentialsResponse(aResponse().withBody(successfulCredentialsResponse1)); + stubSecureCredentialsResponse(aResponse().withBody(successfulCredentialsResponse1)); AwsCredentials credentials5MinutesAgo = credentialsProvider.resolveCredentials(); // Set the time to 2 seconds before expiration, and verify that do not call IMDS because it hasn't been 5 minutes yet clock.time = now.minus(2, SECONDS); - stubCredentialsResponse(aResponse().withBody(successfulCredentialsResponse2)); + stubSecureCredentialsResponse(aResponse().withBody(successfulCredentialsResponse2)); AwsCredentials credentials2SecondsAgo = credentialsProvider.resolveCredentials(); assertThat(credentials2SecondsAgo).isEqualTo(credentials5MinutesAgo); @@ -513,15 +548,6 @@ private AwsCredentialsProvider credentialsProviderWithClock(Clock clock) { return builder.build(); } - private void stubCredentialsResponse(ResponseDefinitionBuilder responseDefinitionBuilder) { - mockMetadataEndpoint.stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)) - .willReturn(aResponse().withBody("some-token"))); - mockMetadataEndpoint.stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)) - .willReturn(aResponse().withBody("some-profile"))); - mockMetadataEndpoint.stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")) - .willReturn(responseDefinitionBuilder)); - } - private static class AdjustableClock extends Clock { private Instant time; diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/Ec2MetadataDisableV1ResolverTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/Ec2MetadataDisableV1ResolverTest.java new file mode 100644 index 000000000000..fe7bb90eca6d --- /dev/null +++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/Ec2MetadataDisableV1ResolverTest.java @@ -0,0 +1,129 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.auth.credentials.internal; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import java.util.Arrays; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; +import software.amazon.awssdk.core.SdkSystemSetting; +import software.amazon.awssdk.profiles.ProfileFile; +import software.amazon.awssdk.profiles.ProfileProperty; +import software.amazon.awssdk.testutils.EnvironmentVariableHelper; +import software.amazon.awssdk.utils.Pair; +import software.amazon.awssdk.utils.StringInputStream; + +public class Ec2MetadataDisableV1ResolverTest { + + private static final EnvironmentVariableHelper ENVIRONMENT_VARIABLE_HELPER = new EnvironmentVariableHelper(); + + @BeforeEach + public void methodSetup() { + ENVIRONMENT_VARIABLE_HELPER.reset(); + System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property()); + } + + @ParameterizedTest(name = "{index} - EXPECTED:{3} (sys:{0}, env:{1}, cfg:{2})") + @MethodSource("booleanConfigValues") + public void resolveDisableValue_whenBoolean_resolvesCorrectly( + String systemProperty, String envVar, ProfileFile profileFile, boolean expected) { + + setUpSystemSettings(systemProperty, envVar); + + Ec2MetadataDisableV1Resolver resolver = Ec2MetadataDisableV1Resolver.create(() -> profileFile, "test"); + assertThat(resolver.resolve()).isEqualTo(expected); + } + + private static Stream booleanConfigValues() { + ProfileFile emptyProfile = configFile("profile test", Pair.of("foo", "bar")); + + Function profileDisableValues = + s -> configFile("profile test", Pair.of(ProfileProperty.EC2_METADATA_V1_DISABLED, s)); + + return Stream.of( + Arguments.of(null, null, emptyProfile, false), + Arguments.of("false", null, null, false), + Arguments.of("true", null, null, true), + Arguments.of(null, "false", null, false), + Arguments.of(null, "true", null, true), + Arguments.of(null, null, profileDisableValues.apply("false"), false), + Arguments.of(null, null, profileDisableValues.apply("true"), true), + Arguments.of(null, null, configFile("profile test", Pair.of("bar", "baz")), false), + Arguments.of(null, null, configFile("profile foo", Pair.of(ProfileProperty.EC2_METADATA_V1_DISABLED, "true")), + false), + Arguments.of("false", "true", null, false), + Arguments.of("true", "false", null, true), + Arguments.of("false", null, profileDisableValues.apply("true"), false), + Arguments.of("true", null, profileDisableValues.apply("false"), true) + ); + } + + @ParameterizedTest(name = "{index} - sys:{0}, env:{1}, cfg:{2}") + @MethodSource("nonBooleanConfigValues") + public void resolveDisableValue_whenNonBoolean_throws( + String systemProperty, String envVar, ProfileFile profileFile) { + + setUpSystemSettings(systemProperty, envVar); + + Ec2MetadataDisableV1Resolver resolver = Ec2MetadataDisableV1Resolver.create(() -> profileFile, "test"); + assertThatThrownBy(resolver::resolve).isInstanceOf(IllegalStateException.class); + } + + private static Stream nonBooleanConfigValues() { + Function profileDisableValues = + s -> configFile("profile test", Pair.of(ProfileProperty.EC2_METADATA_V1_DISABLED, s)); + + return Stream.of( + Arguments.of("foo", null, null), + Arguments.of(null, "foo", null), + Arguments.of(null, null, profileDisableValues.apply("foo")) + ); + } + + private static void setUpSystemSettings(String systemProperty, String envVar) { + if (systemProperty != null) { + System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property(), systemProperty); + + } + if (envVar != null) { + ENVIRONMENT_VARIABLE_HELPER.set(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.environmentVariable(), + envVar); + } + } + + private static ProfileFile configFile(String name, Pair... pairs) { + String values = Arrays.stream(pairs) + .map(pair -> String.format("%s=%s", pair.left(), pair.right())) + .collect(Collectors.joining(System.lineSeparator())); + String contents = String.format("[%s]\n%s", name, values); + + return configFile(contents); + } + + private static ProfileFile configFile(String credentialFile) { + return ProfileFile.builder() + .content(new StringInputStream(credentialFile)) + .type(ProfileFile.Type.CONFIGURATION) + .build(); + } +} diff --git a/core/aws-core/pom.xml b/core/aws-core/pom.xml index 87554cd0a4ee..934f5ddba0ac 100644 --- a/core/aws-core/pom.xml +++ b/core/aws-core/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT aws-core diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/handler/AwsClientHandlerUtils.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/handler/AwsClientHandlerUtils.java index d195e09774e8..f69b79469cce 100644 --- a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/handler/AwsClientHandlerUtils.java +++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/handler/AwsClientHandlerUtils.java @@ -45,13 +45,15 @@ public static ByteBuffer encodeEventStreamRequestToByteBuffer(SdkHttpFullRequest Map headers = new LinkedHashMap<>(); request.forEachHeader((name, value) -> headers.put(name, HeaderValue.fromString(firstIfPresent(value)))); - byte[] payload = null; + byte[] payload; if (request.contentStreamProvider().isPresent()) { try { payload = IoUtils.toByteArray(request.contentStreamProvider().get().newStream()); } catch (IOException e) { throw new UncheckedIOException(e); } + } else { + payload = new byte[0]; } return new Message(headers, payload).toByteBuffer(); diff --git a/core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/handler/AwsClientHandlerUtilsTest.java b/core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/handler/AwsClientHandlerUtilsTest.java new file mode 100644 index 000000000000..4f3636c34cb9 --- /dev/null +++ b/core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/handler/AwsClientHandlerUtilsTest.java @@ -0,0 +1,48 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.awscore.client.handler; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.net.URI; +import java.nio.ByteBuffer; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.http.SdkHttpFullRequest; +import software.amazon.awssdk.http.SdkHttpMethod; +import software.amazon.awssdk.utils.StringInputStream; + +public class AwsClientHandlerUtilsTest { + + @Test + void nonNullPayload_shouldEncodeToEmptyMessage() { + SdkHttpFullRequest request = SdkHttpFullRequest.builder() + .method(SdkHttpMethod.GET) + .uri(URI.create("http://localhost")) + .contentStreamProvider(() -> new StringInputStream("test")) + .build(); + ByteBuffer buffer = AwsClientHandlerUtils.encodeEventStreamRequestToByteBuffer(request); + assertThat(buffer).isNotNull(); + } + + @Test + void nullPayload_shouldEncodeToEmptyMessage() { + SdkHttpFullRequest request = SdkHttpFullRequest.builder() + .method(SdkHttpMethod.GET) + .uri(URI.create("http://localhost")).build(); + ByteBuffer buffer = AwsClientHandlerUtils.encodeEventStreamRequestToByteBuffer(request); + assertThat(buffer).isNotNull(); + } +} diff --git a/core/checksums-spi/pom.xml b/core/checksums-spi/pom.xml index cc47c43b9fc1..b39bfb2fe761 100644 --- a/core/checksums-spi/pom.xml +++ b/core/checksums-spi/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT checksums-spi diff --git a/core/checksums/pom.xml b/core/checksums/pom.xml index f02371c6c454..b4005a7f2bc4 100644 --- a/core/checksums/pom.xml +++ b/core/checksums/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT checksums diff --git a/core/crt-core/pom.xml b/core/crt-core/pom.xml index 6bc0b0a18d3a..dfa14303f7c3 100644 --- a/core/crt-core/pom.xml +++ b/core/crt-core/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT crt-core diff --git a/core/endpoints-spi/pom.xml b/core/endpoints-spi/pom.xml index 5d3e399db9e2..b9aa680c529a 100644 --- a/core/endpoints-spi/pom.xml +++ b/core/endpoints-spi/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/http-auth-aws-crt/pom.xml b/core/http-auth-aws-crt/pom.xml index c1b607ade1b9..9b5c1e3aecb0 100644 --- a/core/http-auth-aws-crt/pom.xml +++ b/core/http-auth-aws-crt/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT http-auth-aws-crt diff --git a/core/http-auth-aws-eventstream/pom.xml b/core/http-auth-aws-eventstream/pom.xml index cd0f2654c32e..6c1c46a85b49 100644 --- a/core/http-auth-aws-eventstream/pom.xml +++ b/core/http-auth-aws-eventstream/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT http-auth-aws-eventstream diff --git a/core/http-auth-aws/pom.xml b/core/http-auth-aws/pom.xml index 05c438932268..eab1bc4cb898 100644 --- a/core/http-auth-aws/pom.xml +++ b/core/http-auth-aws/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT http-auth-aws diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/AwsChunkedV4aPayloadSigner.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/AwsChunkedV4aPayloadSigner.java index 8a036b8d87e3..0cae6f6364eb 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/AwsChunkedV4aPayloadSigner.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/AwsChunkedV4aPayloadSigner.java @@ -74,7 +74,7 @@ public ContentStreamProvider sign(ContentStreamProvider payload, V4aRequestSigni .builder() .inputStream(inputStream) .chunkSize(chunkSize) - .header(chunk -> Integer.toHexString(chunk.length).getBytes(StandardCharsets.UTF_8)); + .header(chunk -> Integer.toHexString(chunk.remaining()).getBytes(StandardCharsets.UTF_8)); preExistingTrailers.forEach(trailer -> chunkedEncodedInputStreamBuilder.addTrailer(() -> trailer)); diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/RollingSigner.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/RollingSigner.java index 1a22cd8a427f..eef6fb5e0b4c 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/RollingSigner.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/RollingSigner.java @@ -15,7 +15,8 @@ package software.amazon.awssdk.http.auth.aws.crt.internal.signer; -import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.ByteBuffer; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -45,14 +46,14 @@ public RollingSigner(byte[] seedSignature, AwsSigningConfig signingConfig) { this.signingConfig = signingConfig; } - private static byte[] signChunk(byte[] chunkBody, byte[] previousSignature, AwsSigningConfig signingConfig) { + private static byte[] signChunk(ByteBuffer chunkBody, byte[] previousSignature, AwsSigningConfig signingConfig) { // All the config remains the same as signing config except the Signature Type. AwsSigningConfig configCopy = signingConfig.clone(); configCopy.setSignatureType(AwsSigningConfig.AwsSignatureType.HTTP_REQUEST_CHUNK); configCopy.setSignedBodyHeader(AwsSigningConfig.AwsSignedBodyHeaderType.NONE); configCopy.setSignedBodyValue(null); - HttpRequestBodyStream crtBody = new CrtInputStream(() -> new ByteArrayInputStream(chunkBody)); + HttpRequestBodyStream crtBody = new CrtInputStream(() -> new ByteBufferBackedInputStream(chunkBody)); return CompletableFutureUtils.joinLikeSync(AwsSigner.signChunk(crtBody, previousSignature, configCopy)); } @@ -75,7 +76,7 @@ private static AwsSigningResult signTrailerHeaders(Map> hea /** * Using a template that incorporates the previous calculated signature, sign the string and return it. */ - public byte[] sign(byte[] chunkBody) { + public byte[] sign(ByteBuffer chunkBody) { previousSignature = signChunk(chunkBody, previousSignature, signingConfig); return previousSignature; } @@ -89,4 +90,29 @@ public byte[] sign(Map> headerMap) { public void reset() { previousSignature = seedSignature; } + + private static class ByteBufferBackedInputStream extends InputStream { + private final ByteBuffer buf; + + private ByteBufferBackedInputStream(ByteBuffer buf) { + this.buf = buf; + } + + public int read() { + if (!buf.hasRemaining()) { + return -1; + } + return buf.get() & 0xFF; + } + + public int read(byte[] bytes, int off, int len) { + if (!buf.hasRemaining()) { + return -1; + } + + len = Math.min(len, buf.remaining()); + buf.get(bytes, off, len); + return len; + } + } } diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/SigV4aChunkExtensionProvider.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/SigV4aChunkExtensionProvider.java index 9e6173e47c0c..87de8387c79b 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/SigV4aChunkExtensionProvider.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/crt/internal/signer/SigV4aChunkExtensionProvider.java @@ -15,6 +15,7 @@ package software.amazon.awssdk.http.auth.aws.crt.internal.signer; +import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.http.auth.aws.internal.signer.CredentialScope; @@ -38,11 +39,8 @@ public void reset() { } @Override - public Pair get(byte[] chunk) { + public Pair get(ByteBuffer chunk) { byte[] chunkSig = signer.sign(chunk); - return Pair.of( - "chunk-signature".getBytes(StandardCharsets.UTF_8), - chunkSig - ); + return Pair.of("chunk-signature".getBytes(StandardCharsets.UTF_8), chunkSig); } } diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/scheme/DefaultAwsV4aAuthScheme.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/scheme/DefaultAwsV4aAuthScheme.java index 8be2e8c43e80..b00574dac8ae 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/scheme/DefaultAwsV4aAuthScheme.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/scheme/DefaultAwsV4aAuthScheme.java @@ -52,10 +52,27 @@ public IdentityProvider identityProvider(IdentityProvide */ @Override public AwsV4aHttpSigner signer() { + if (SignerSingletonHolder.ERROR != null) { + throw SignerSingletonHolder.ERROR; + } return SignerSingletonHolder.INSTANCE; } private static class SignerSingletonHolder { - private static final AwsV4aHttpSigner INSTANCE = AwsV4aHttpSigner.create(); + private static final AwsV4aHttpSigner INSTANCE; + private static final RuntimeException ERROR; + + // Attempt to load the Sigv4a signer and cache the error if CRT is not available on the classpath. + static { + AwsV4aHttpSigner instance = null; + RuntimeException error = null; + try { + instance = AwsV4aHttpSigner.create(); + } catch (RuntimeException e) { + error = e; + } + INSTANCE = instance; + ERROR = error; + } } } diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/AwsChunkedV4PayloadSigner.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/AwsChunkedV4PayloadSigner.java index fb6a203cf9f1..23d4b0dc33d3 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/AwsChunkedV4PayloadSigner.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/AwsChunkedV4PayloadSigner.java @@ -84,7 +84,7 @@ public ContentStreamProvider sign(ContentStreamProvider payload, V4RequestSignin .builder() .inputStream(payload.newStream()) .chunkSize(chunkSize) - .header(chunk -> Integer.toHexString(chunk.length).getBytes(StandardCharsets.UTF_8)); + .header(chunk -> Integer.toHexString(chunk.remaining()).getBytes(StandardCharsets.UTF_8)); preExistingTrailers.forEach(trailer -> chunkedEncodedInputStreamBuilder.addTrailer(() -> trailer)); diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/V4CanonicalRequest.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/V4CanonicalRequest.java index fb6d06f7009c..54b06813090d 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/V4CanonicalRequest.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/V4CanonicalRequest.java @@ -181,7 +181,10 @@ public static List>> getCanonicalHeaders(Map>> canonicalHeaders) { - StringBuilder result = new StringBuilder(512); + // 2048 chosen experimentally to avoid always needing to resize the string builder's internal byte array. + // The minimal DynamoDB get-item request at the time of testing used ~1100 bytes. 2048 was chosen as the + // next-highest power-of-two. + StringBuilder result = new StringBuilder(2048); canonicalHeaders.forEach(header -> { result.append(header.left()); result.append(":"); @@ -246,35 +249,45 @@ private static String getCanonicalRequestString(String httpMethod, String canoni * Matcher object as well. */ private static void addAndTrim(StringBuilder result, String value) { - int lengthBefore = result.length(); - boolean isStart = true; - boolean previousIsWhiteSpace = false; - - for (int i = 0; i < value.length(); i++) { - char ch = value.charAt(i); - if (isWhiteSpace(ch)) { - if (previousIsWhiteSpace || isStart) { - continue; - } - result.append(' '); - previousIsWhiteSpace = true; - } else { - result.append(ch); - isStart = false; - previousIsWhiteSpace = false; - } + int valueLength = value.length(); + if (valueLength == 0) { + return; } - if (lengthBefore == result.length()) { - return; + int start = 0; + // Find first non-whitespace + while (isWhiteSpace(value.charAt(start))) { + ++start; + if (start >= valueLength) { + return; + } } - int lastNonWhitespaceChar = result.length() - 1; - while (isWhiteSpace(result.charAt(lastNonWhitespaceChar))) { - --lastNonWhitespaceChar; + // Add things word-by-word + int lastWordStart = start; + boolean lastWasWhitespace = false; + for (int i = start; i < valueLength; i++) { + char c = value.charAt(i); + + if (isWhiteSpace(c)) { + if (!lastWasWhitespace) { + // End of word, add word + result.append(value, lastWordStart, i); + lastWasWhitespace = true; + } + } else { + if (lastWasWhitespace) { + // Start of new word, add space + result.append(' '); + lastWordStart = i; + lastWasWhitespace = false; + } + } } - result.setLength(lastNonWhitespaceChar + 1); + if (!lastWasWhitespace) { + result.append(value, lastWordStart, valueLength); + } } /** @@ -365,7 +378,17 @@ private static String getCanonicalQueryString(SortedMap> ca } private static boolean isWhiteSpace(char ch) { - return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\u000b' || ch == '\r' || ch == '\f'; + switch (ch) { + case ' ': + case '\t': + case '\n': + case '\u000b': + case '\r': + case '\f': + return true; + default: + return false; + } } /** diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/checksums/Crc32CChecksum.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/checksums/Crc32CChecksum.java index def890a88e94..8e0f94fd5ea1 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/checksums/Crc32CChecksum.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/checksums/Crc32CChecksum.java @@ -29,6 +29,7 @@ public class Crc32CChecksum implements SdkChecksum { private static final String CRT_CLASSPATH_FOR_CRC32C = "software.amazon.awssdk.crt.checksums.CRC32C"; + private static final ThreadLocal IS_CRT_AVAILABLE = ThreadLocal.withInitial(Crc32CChecksum::isCrtAvailable); private Checksum crc32c; private Checksum lastMarkedCrc32C; @@ -37,7 +38,7 @@ public class Crc32CChecksum implements SdkChecksum { * Creates CRT Based Crc32C checksum if Crt classpath for Crc32c is loaded, else create Sdk Implemented Crc32c */ public Crc32CChecksum() { - if (isCrtAvailable()) { + if (IS_CRT_AVAILABLE.get()) { crc32c = new CRC32C(); } else { crc32c = SdkCrc32CChecksum.create(); diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/checksums/Crc32Checksum.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/checksums/Crc32Checksum.java index 016c941e1e5e..9c32f596994f 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/checksums/Crc32Checksum.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/checksums/Crc32Checksum.java @@ -27,17 +27,18 @@ */ @SdkInternalApi public class Crc32Checksum implements SdkChecksum { - private static final String CRT_CLASSPATH_FOR_CRC32 = "software.amazon.awssdk.crt.checksums.CRC32"; + private static final ThreadLocal IS_CRT_AVAILABLE = ThreadLocal.withInitial(Crc32Checksum::isCrtAvailable); private Checksum crc32; private Checksum lastMarkedCrc32; + /** * Creates CRT Based Crc32 checksum if Crt classpath for Crc32 is loaded, else create Sdk Implemented Crc32. */ public Crc32Checksum() { - if (isCrtAvailable()) { + if (IS_CRT_AVAILABLE.get()) { crc32 = new CRC32(); } else { crc32 = SdkCrc32Checksum.create(); diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkExtensionProvider.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkExtensionProvider.java index bb434c64ba53..1de6b0696313 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkExtensionProvider.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkExtensionProvider.java @@ -15,6 +15,7 @@ package software.amazon.awssdk.http.auth.aws.internal.signer.chunkedencoding; +import java.nio.ByteBuffer; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.utils.Pair; @@ -32,5 +33,5 @@ @FunctionalInterface @SdkInternalApi public interface ChunkExtensionProvider extends Resettable { - Pair get(byte[] chunk); + Pair get(ByteBuffer chunk); } diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkHeaderProvider.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkHeaderProvider.java index 2c6f95c7f1aa..74eecc19a8b3 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkHeaderProvider.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkHeaderProvider.java @@ -15,6 +15,7 @@ package software.amazon.awssdk.http.auth.aws.internal.signer.chunkedencoding; +import java.nio.ByteBuffer; import software.amazon.awssdk.annotations.SdkInternalApi; /** @@ -27,5 +28,5 @@ @FunctionalInterface @SdkInternalApi public interface ChunkHeaderProvider extends Resettable { - byte[] get(byte[] chunk); + byte[] get(ByteBuffer chunk); } diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkedEncodedInputStream.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkedEncodedInputStream.java index dacabafbf4e1..b9e8f7e0f49c 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkedEncodedInputStream.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkedEncodedInputStream.java @@ -16,12 +16,13 @@ package software.amazon.awssdk.http.auth.aws.internal.signer.chunkedencoding; import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.SequenceInputStream; +import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.List; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.utils.Logger; @@ -52,6 +53,10 @@ public final class ChunkedEncodedInputStream extends InputStream { private static final Logger LOG = Logger.loggerFor(ChunkedEncodedInputStream.class); private static final byte[] CRLF = {'\r', '\n'}; private static final byte[] END = {}; + private static final byte[] SEMICOLON = {';'}; + private static final byte[] EQUALS = {'='}; + private static final byte[] COLON = {':'}; + private static final byte[] COMMA = {','}; private final InputStream inputStream; private final int chunkSize; @@ -77,11 +82,20 @@ public static Builder builder() { @Override public int read() throws IOException { + return currentChunk().stream().read(); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + return currentChunk().stream().read(b, off, len); + } + + private Chunk currentChunk() throws IOException { if (currentChunk == null || !currentChunk.hasRemaining() && !isFinished) { currentChunk = getChunk(inputStream); } - return currentChunk.stream().read(); + return currentChunk; } /** @@ -92,14 +106,14 @@ private Chunk getChunk(InputStream stream) throws IOException { if (currentChunk != null) { currentChunk.close(); } - // we *have* to read from the backing stream in order to figure out if it's the end or not - // TODO(sra-identity-and-auth): We can likely optimize this by not copying the entire chunk of data into memory + + // We have to read from the input stream into a format that can be used for signing and headers. byte[] chunkData = new byte[chunkSize]; int read = read(stream, chunkData, chunkSize); if (read > 0) { // set the current chunk to the newly written chunk - return getNextChunk(Arrays.copyOf(chunkData, read)); + return getNextChunk(ByteBuffer.wrap(chunkData, 0, read)); } LOG.debug(() -> "End of backing stream reached. Reading final chunk."); @@ -133,58 +147,71 @@ private int read(InputStream inputStream, byte[] buf, int maxBytesToRead) throws * Create a chunk from a byte-array, which includes the header, the extensions, and the chunk data. The input array should be * correctly sized, i.e. the number of bytes should equal its length. */ - private Chunk getNextChunk(byte[] data) throws IOException { - ByteArrayOutputStream chunkStream = new ByteArrayOutputStream(); - writeChunk(data, chunkStream); - chunkStream.write(CRLF); - byte[] newChunkData = chunkStream.toByteArray(); - - return Chunk.create(new ByteArrayInputStream(newChunkData), newChunkData.length); + private Chunk getNextChunk(ByteBuffer data) { + LengthAwareSequenceInputStream newChunkData = + LengthAwareSequenceInputStream.builder() + .add(createChunkStream(data)) + .add(CRLF) + .build(); + return Chunk.create(newChunkData, newChunkData.size); } /** * Create the final chunk, which includes the header, the extensions, the chunk (if applicable), and the trailer */ private Chunk getFinalChunk() throws IOException { - ByteArrayOutputStream chunkStream = new ByteArrayOutputStream(); - writeChunk(END, chunkStream); - writeTrailers(chunkStream); - chunkStream.write(CRLF); - byte[] newChunkData = chunkStream.toByteArray(); - - return Chunk.create(new ByteArrayInputStream(newChunkData), newChunkData.length); + LengthAwareSequenceInputStream chunkData = + LengthAwareSequenceInputStream.builder() + .add(createChunkStream(ByteBuffer.wrap(END))) + .add(createTrailerStream()) + .add(CRLF) + .build(); + + return Chunk.create(chunkData, chunkData.size); } - private void writeChunk(byte[] chunk, ByteArrayOutputStream outputStream) throws IOException { - writeHeader(chunk, outputStream); - writeExtensions(chunk, outputStream); - outputStream.write(CRLF); - outputStream.write(chunk); + private LengthAwareSequenceInputStream createChunkStream(ByteBuffer chunkData) { + return LengthAwareSequenceInputStream.builder() + .add(createHeaderStream(chunkData.asReadOnlyBuffer())) + .add(createExtensionsStream(chunkData.asReadOnlyBuffer())) + .add(CRLF) + .add(new ByteArrayInputStream(chunkData.array(), + chunkData.arrayOffset(), + chunkData.remaining())) + .build(); } - private void writeHeader(byte[] chunk, ByteArrayOutputStream outputStream) throws IOException { - byte[] hdr = header.get(chunk); - outputStream.write(hdr); + private ByteArrayInputStream createHeaderStream(ByteBuffer chunkData) { + return new ByteArrayInputStream(header.get(chunkData)); } - private void writeExtensions(byte[] chunk, ByteArrayOutputStream outputStream) throws IOException { + private LengthAwareSequenceInputStream createExtensionsStream(ByteBuffer chunkData) { + LengthAwareSequenceInputStream.Builder result = LengthAwareSequenceInputStream.builder(); for (ChunkExtensionProvider chunkExtensionProvider : extensions) { - Pair ext = chunkExtensionProvider.get(chunk); - outputStream.write((byte) ';'); - outputStream.write(ext.left()); - outputStream.write((byte) '='); - outputStream.write(ext.right()); + Pair ext = chunkExtensionProvider.get(chunkData); + result.add(SEMICOLON); + result.add(ext.left()); + result.add(EQUALS); + result.add(ext.right()); } + return result.build(); } - private void writeTrailers(ByteArrayOutputStream outputStream) throws IOException { + private LengthAwareSequenceInputStream createTrailerStream() throws IOException { + LengthAwareSequenceInputStream.Builder result = LengthAwareSequenceInputStream.builder(); for (TrailerProvider trailer : trailers) { Pair> tlr = trailer.get(); - outputStream.write(tlr.left().getBytes(StandardCharsets.UTF_8)); - outputStream.write((byte) ':'); - outputStream.write(String.join(",", tlr.right()).getBytes(StandardCharsets.UTF_8)); - outputStream.write(CRLF); + result.add(tlr.left().getBytes(StandardCharsets.UTF_8)); + result.add(COLON); + for (String trailerValue : tlr.right()) { + result.add(trailerValue.getBytes(StandardCharsets.UTF_8)); + result.add(COMMA); + } + + // Replace trailing comma with clrf + result.replaceLast(new ByteArrayInputStream(CRLF), COMMA.length); } + return result.build(); } @Override @@ -207,7 +234,8 @@ public static class Builder { private final List trailers = new ArrayList<>(); private InputStream inputStream; private int chunkSize; - private ChunkHeaderProvider header = chunk -> Integer.toHexString(chunk.length).getBytes(StandardCharsets.UTF_8); + private ChunkHeaderProvider header = + chunk -> Integer.toHexString(chunk.remaining()).getBytes(StandardCharsets.UTF_8); public InputStream inputStream() { return this.inputStream; @@ -258,5 +286,51 @@ public ChunkedEncodedInputStream build() { return new ChunkedEncodedInputStream(this); } } + + + private static class LengthAwareSequenceInputStream extends SequenceInputStream { + private final int size; + + private LengthAwareSequenceInputStream(Builder builder) { + super(Collections.enumeration(builder.streams)); + this.size = builder.size; + } + + private static Builder builder() { + return new Builder(); + } + + private static class Builder { + private final List streams = new ArrayList<>(); + private int size = 0; + + public Builder add(ByteArrayInputStream stream) { + streams.add(stream); + size += stream.available(); + return this; + } + + public Builder add(byte[] stream) { + return add(new ByteArrayInputStream(stream)); + } + + public Builder add(LengthAwareSequenceInputStream stream) { + streams.add(stream); + size += stream.size; + return this; + } + + public Builder replaceLast(ByteArrayInputStream stream, int lastLength) { + streams.set(streams.size() - 1, stream); + size -= lastLength; + size += stream.available(); + return this; + } + + public LengthAwareSequenceInputStream build() { + return new LengthAwareSequenceInputStream(this); + } + } + } } diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/SigV4ChunkExtensionProvider.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/SigV4ChunkExtensionProvider.java index 02e02fb99546..60abcd7a92d9 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/SigV4ChunkExtensionProvider.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/SigV4ChunkExtensionProvider.java @@ -18,6 +18,7 @@ import static software.amazon.awssdk.http.auth.aws.internal.signer.util.SignerUtils.hash; import static software.amazon.awssdk.utils.BinaryUtils.toHex; +import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.http.auth.aws.internal.signer.CredentialScope; @@ -42,7 +43,7 @@ public void reset() { signer.reset(); } - private String getStringToSign(String previousSignature, byte[] chunk) { + private String getStringToSign(String previousSignature, ByteBuffer chunk) { // build the string-to-sign template for the rolling-signer to sign return String.join("\n", "AWS4-HMAC-SHA256-PAYLOAD", @@ -55,11 +56,9 @@ private String getStringToSign(String previousSignature, byte[] chunk) { } @Override - public Pair get(byte[] chunk) { + public Pair get(ByteBuffer chunk) { String chunkSig = signer.sign(previousSig -> getStringToSign(previousSig, chunk)); - return Pair.of( - "chunk-signature".getBytes(StandardCharsets.UTF_8), - chunkSig.getBytes(StandardCharsets.UTF_8) - ); + return Pair.of("chunk-signature".getBytes(StandardCharsets.UTF_8), + chunkSig.getBytes(StandardCharsets.UTF_8)); } } diff --git a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/util/SignerUtils.java b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/util/SignerUtils.java index f1fc97b970a4..c61523f49a5c 100644 --- a/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/util/SignerUtils.java +++ b/core/http-auth-aws/src/main/java/software/amazon/awssdk/http/auth/aws/internal/signer/util/SignerUtils.java @@ -20,6 +20,7 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; +import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.time.Instant; @@ -238,6 +239,16 @@ public static byte[] hash(InputStream input) { } } + public static byte[] hash(ByteBuffer input) { + try { + MessageDigest md = getMessageDigestInstance(); + md.update(input); + return md.digest(); + } catch (Exception e) { + throw new RuntimeException("Unable to compute hash while signing request: ", e); + } + } + public static byte[] hash(byte[] data) { try { MessageDigest md = getMessageDigestInstance(); diff --git a/core/http-auth-aws/src/test/java/software/amazon/awssdk/http/auth/aws/internal/signer/V4CanonicalRequestTest.java b/core/http-auth-aws/src/test/java/software/amazon/awssdk/http/auth/aws/internal/signer/V4CanonicalRequestTest.java index 2b24a8dfca25..66aa6abc3d5c 100644 --- a/core/http-auth-aws/src/test/java/software/amazon/awssdk/http/auth/aws/internal/signer/V4CanonicalRequestTest.java +++ b/core/http-auth-aws/src/test/java/software/amazon/awssdk/http/auth/aws/internal/signer/V4CanonicalRequestTest.java @@ -123,6 +123,36 @@ public void canonicalRequest_withSpacedHeaders_shouldStripWhitespace() { assertEquals("PUT\n/\n\nfoo:bar baz\n\nfoo\nsha-256", cr.getCanonicalRequestString()); } + @Test + public void canonicalRequest_withEmptyHeaders_shouldSucceed() { + SdkHttpRequest request = SdkHttpRequest.builder() + .protocol("https") + .host("localhost") + .method(SdkHttpMethod.PUT) + .putHeader("foo", "") + .build(); + V4CanonicalRequest cr = new V4CanonicalRequest(request, "sha-256", + new V4CanonicalRequest.Options(true, + true)); + + assertEquals("PUT\n/\n\nfoo:\n\nfoo\nsha-256", cr.getCanonicalRequestString()); + } + + @Test + public void canonicalRequest_withWhitespaceHeaders_shouldSucceed() { + SdkHttpRequest request = SdkHttpRequest.builder() + .protocol("https") + .host("localhost") + .method(SdkHttpMethod.PUT) + .putHeader("foo", " ") + .build(); + V4CanonicalRequest cr = new V4CanonicalRequest(request, "sha-256", + new V4CanonicalRequest.Options(true, + true)); + + assertEquals("PUT\n/\n\nfoo:\n\nfoo\nsha-256", cr.getCanonicalRequestString()); + } + @Test public void canonicalRequest_WithNullParamValue_shouldIncludeEquals() { SdkHttpRequest request = SdkHttpRequest.builder() diff --git a/core/http-auth-aws/src/test/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkedEncodedInputStreamTest.java b/core/http-auth-aws/src/test/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkedEncodedInputStreamTest.java index 9c207feada8c..131468a4e28d 100644 --- a/core/http-auth-aws/src/test/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkedEncodedInputStreamTest.java +++ b/core/http-auth-aws/src/test/java/software/amazon/awssdk/http/auth/aws/internal/signer/chunkedencoding/ChunkedEncodedInputStreamTest.java @@ -54,7 +54,7 @@ public void ChunkEncodedInputStream_withBasicParams_returnsEncodedChunks() throw .builder() .inputStream(payload) .chunkSize(chunkSize) - .header(chunk -> Integer.toHexString(chunk.length).getBytes()) + .header(chunk -> Integer.toHexString(chunk.remaining()).getBytes()) .build(); byte[] tmp = new byte[64]; @@ -90,7 +90,7 @@ public void ChunkEncodedInputStream_withExtensions_returnsEncodedExtendedChunks( .builder() .inputStream(payload) .chunkSize(chunkSize) - .header(chunk -> Integer.toHexString(chunk.length).getBytes()) + .header(chunk -> Integer.toHexString(chunk.remaining()).getBytes()) .extensions(Collections.singletonList(helloWorldExt)) .build(); @@ -128,7 +128,7 @@ public void ChunkEncodedInputStream_withTrailers_returnsEncodedChunksAndTrailerC .builder() .inputStream(payload) .chunkSize(chunkSize) - .header(chunk -> Integer.toHexString(chunk.length).getBytes()) + .header(chunk -> Integer.toHexString(chunk.remaining()).getBytes()) .trailers(Collections.singletonList(helloWorldTrailer)) .build(); @@ -168,7 +168,7 @@ public void ChunkEncodedInputStream_withExtensionsAndTrailers_EncodedExtendedChu .builder() .inputStream(payload) .chunkSize(chunkSize) - .header(chunk -> Integer.toHexString(chunk.length).getBytes()) + .header(chunk -> Integer.toHexString(chunk.remaining()).getBytes()) .addExtension(aExt) .addExtension(bExt) .addTrailer(aTrailer) @@ -243,7 +243,7 @@ public void ChunkEncodedInputStream_withAwsParams_returnsAwsSignedAndEncodedChun .builder() .inputStream(payload) .chunkSize(chunkSize) - .header(chunk -> Integer.toHexString(chunk.length).getBytes()) + .header(chunk -> Integer.toHexString(chunk.remaining()).getBytes()) .extensions(Collections.singletonList(ext)) .trailers(Arrays.asList(checksumTrailer, signatureTrailer)) .build(); @@ -274,8 +274,8 @@ public void ChunkEncodedInputStream_withAwsParams_returnsAwsSignedAndEncodedChun "\r\n").getBytes(StandardCharsets.UTF_8) ); - assertEquals(expectedBytesRead, bytesRead); assertArrayEquals(expected.toByteArray(), actualBytes); + assertEquals(expectedBytesRead, bytesRead); } @ParameterizedTest @@ -316,10 +316,9 @@ private int readAll(InputStream src, byte[] dst) throws IOException { int read = 0; int offset = 0; while (read >= 0) { - read = src.read(); + read = src.read(dst, offset, dst.length - offset); if (read >= 0) { - dst[offset] = (byte) read; - offset += 1; + offset += read; } } return offset; diff --git a/core/http-auth-spi/pom.xml b/core/http-auth-spi/pom.xml index bd57edd58f5c..095be8799b41 100644 --- a/core/http-auth-spi/pom.xml +++ b/core/http-auth-spi/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT http-auth-spi diff --git a/core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/signer/BaseSignRequest.java b/core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/signer/BaseSignRequest.java index ec8214c1bc02..6f9f12c123df 100644 --- a/core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/signer/BaseSignRequest.java +++ b/core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/signer/BaseSignRequest.java @@ -70,7 +70,7 @@ default boolean hasProperty(SignerProperty property) { * The value, {@link T}, is return when present, and an exception is thrown otherwise. */ default T requireProperty(SignerProperty property) { - return Validate.notNull(property(property), property.toString() + " must not be null!"); + return Validate.notNull(property(property), "%s must not be null!", property); } /** diff --git a/core/http-auth/pom.xml b/core/http-auth/pom.xml index e1c7fa4eb1cc..70a85769b55a 100644 --- a/core/http-auth/pom.xml +++ b/core/http-auth/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT http-auth diff --git a/core/identity-spi/pom.xml b/core/identity-spi/pom.xml index f9718d089a88..ad1759f1a305 100644 --- a/core/identity-spi/pom.xml +++ b/core/identity-spi/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT identity-spi diff --git a/core/imds/pom.xml b/core/imds/pom.xml index 1bea4c38fb3e..cd6ddca09eb2 100644 --- a/core/imds/pom.xml +++ b/core/imds/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 imds diff --git a/core/json-utils/pom.xml b/core/json-utils/pom.xml index 0fb3aafb843a..0a30add6739d 100644 --- a/core/json-utils/pom.xml +++ b/core/json-utils/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/metrics-spi/pom.xml b/core/metrics-spi/pom.xml index be5382cfb1be..7ba1171a2237 100644 --- a/core/metrics-spi/pom.xml +++ b/core/metrics-spi/pom.xml @@ -5,7 +5,7 @@ core software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/pom.xml b/core/pom.xml index 7377a23170d8..e1843c469c07 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT core diff --git a/core/profiles/pom.xml b/core/profiles/pom.xml index 21c0f42c5cce..3f19262d2673 100644 --- a/core/profiles/pom.xml +++ b/core/profiles/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT profiles diff --git a/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileProperty.java b/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileProperty.java index b1553a04f177..09485084c0c0 100644 --- a/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileProperty.java +++ b/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileProperty.java @@ -148,6 +148,8 @@ public final class ProfileProperty { public static final String EC2_METADATA_SERVICE_ENDPOINT = "ec2_metadata_service_endpoint"; + public static final String EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled"; + /** * Whether request compression is disabled for operations marked with the RequestCompression trait. The default value is * false, i.e., request compression is enabled. diff --git a/core/protocols/aws-cbor-protocol/pom.xml b/core/protocols/aws-cbor-protocol/pom.xml index 679150f1fd18..82d8811b497d 100644 --- a/core/protocols/aws-cbor-protocol/pom.xml +++ b/core/protocols/aws-cbor-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-json-protocol/pom.xml b/core/protocols/aws-json-protocol/pom.xml index 0e702bd5deee..767312718c7c 100644 --- a/core/protocols/aws-json-protocol/pom.xml +++ b/core/protocols/aws-json-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/JsonProtocolMarshaller.java b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/JsonProtocolMarshaller.java index b81110bd1026..92f34920d2c8 100644 --- a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/JsonProtocolMarshaller.java +++ b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/JsonProtocolMarshaller.java @@ -181,12 +181,16 @@ void doMarshall(SdkPojo pojo) { Object val = field.getValueOrDefault(pojo); if (isExplicitBinaryPayload(field)) { if (val != null) { - request.contentStreamProvider(((SdkBytes) val)::asInputStream); + SdkBytes sdkBytes = (SdkBytes) val; + request.contentStreamProvider(sdkBytes::asInputStream); + updateContentLengthHeader(sdkBytes.asByteArrayUnsafe().length); } } else if (isExplicitStringPayload(field)) { if (val != null) { byte[] content = ((String) val).getBytes(StandardCharsets.UTF_8); request.contentStreamProvider(() -> new ByteArrayInputStream(content)); + updateContentLengthHeader(content.length); + } } else if (isExplicitPayloadMember(field)) { marshallExplicitJsonPayload(field, val); @@ -196,6 +200,10 @@ void doMarshall(SdkPojo pojo) { } } + private void updateContentLengthHeader(int contentLength) { + request.putHeader(CONTENT_LENGTH, Integer.toString(contentLength)); + } + private boolean isExplicitBinaryPayload(SdkField field) { return isExplicitPayloadMember(field) && MarshallingType.SDK_BYTES.equals(field.marshallingType()); } diff --git a/core/protocols/aws-query-protocol/pom.xml b/core/protocols/aws-query-protocol/pom.xml index 3c5fe004c5c8..678f8447e453 100644 --- a/core/protocols/aws-query-protocol/pom.xml +++ b/core/protocols/aws-query-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-xml-protocol/pom.xml b/core/protocols/aws-xml-protocol/pom.xml index 2d703238bcf5..04d1968117f2 100644 --- a/core/protocols/aws-xml-protocol/pom.xml +++ b/core/protocols/aws-xml-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlProtocolMarshaller.java b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlProtocolMarshaller.java index c8f392251d65..2f6f6bb89eb7 100644 --- a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlProtocolMarshaller.java +++ b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlProtocolMarshaller.java @@ -91,8 +91,10 @@ void doMarshall(SdkPojo pojo) { Object val = field.getValueOrDefault(pojo); if (isBinary(field, val)) { - request.contentStreamProvider(((SdkBytes) val)::asInputStream); + SdkBytes sdkBytes = (SdkBytes) val; + request.contentStreamProvider(sdkBytes::asInputStream); setContentTypeHeaderIfNeeded("binary/octet-stream"); + request.putHeader(CONTENT_LENGTH, Integer.toString(sdkBytes.asByteArrayUnsafe().length)); } else if (isExplicitPayloadMember(field) && val instanceof String) { byte[] content = ((String) val).getBytes(StandardCharsets.UTF_8); diff --git a/core/protocols/pom.xml b/core/protocols/pom.xml index 95aefdfd12ac..ef5d3e7fd19c 100644 --- a/core/protocols/pom.xml +++ b/core/protocols/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/protocols/protocol-core/pom.xml b/core/protocols/protocol-core/pom.xml index d1395d3ef52b..d39def1fd067 100644 --- a/core/protocols/protocol-core/pom.xml +++ b/core/protocols/protocol-core/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/core/regions/pom.xml b/core/regions/pom.xml index 54a83b1b221f..72b3b9ff9605 100644 --- a/core/regions/pom.xml +++ b/core/regions/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT regions diff --git a/core/regions/src/main/java/software/amazon/awssdk/regions/internal/util/EC2MetadataUtils.java b/core/regions/src/main/java/software/amazon/awssdk/regions/internal/util/EC2MetadataUtils.java index a7aedf74810e..83c41052da92 100644 --- a/core/regions/src/main/java/software/amazon/awssdk/regions/internal/util/EC2MetadataUtils.java +++ b/core/regions/src/main/java/software/amazon/awssdk/regions/internal/util/EC2MetadataUtils.java @@ -33,6 +33,7 @@ import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.core.exception.SdkServiceException; import software.amazon.awssdk.core.util.SdkUserAgent; +import software.amazon.awssdk.profiles.ProfileProperty; import software.amazon.awssdk.protocols.jsoncore.JsonNode; import software.amazon.awssdk.protocols.jsoncore.JsonNodeParser; import software.amazon.awssdk.regions.util.HttpResourcesUtils; @@ -54,11 +55,13 @@ * retrieve their content from the Amazon S3 bucket you specify at launch. To * add a new customer at any time, simply create a bucket for the customer, add * their content, and launch your AMI.
- * - *

+ *

* If {@link SdkSystemSetting#AWS_EC2_METADATA_DISABLED} is set to true, EC2 metadata usage * will be disabled and {@link SdkClientException} will be thrown for any metadata retrieval attempt. - * + *

+ * If {@link SdkSystemSetting#AWS_EC2_METADATA_V1_DISABLED} or {@link ProfileProperty#EC2_METADATA_V1_DISABLED} + * is set to true, data will only be loaded from EC2 metadata service if a token is successfully retrieved - + * fallback to load data without a token will be disabled. *

* More information about Amazon EC2 Metadata * @@ -85,6 +88,10 @@ public final class EC2MetadataUtils { private static final Logger log = LoggerFactory.getLogger(EC2MetadataUtils.class); private static final Map CACHE = new ConcurrentHashMap<>(); + private static final Ec2MetadataDisableV1Resolver EC2_METADATA_DISABLE_V1_RESOLVER = Ec2MetadataDisableV1Resolver.create(); + private static final Object FALLBACK_LOCK = new Object(); + private static volatile Boolean IS_INSECURE_FALLBACK_DISABLED; + private static final InstanceProviderTokenEndpointProvider TOKEN_ENDPOINT_PROVIDER = new InstanceProviderTokenEndpointProvider(); @@ -372,6 +379,11 @@ public static void clearCache() { CACHE.clear(); } + @SdkTestInternalApi + public static void resetIsFallbackDisableResolved() { + IS_INSECURE_FALLBACK_DISABLED = null; + } + private static List getItems(String path, int tries, boolean slurp) { if (tries == 0) { throw SdkClientException.builder().message("Unable to contact EC2 metadata service.").build(); @@ -434,9 +446,35 @@ public static String getToken() { .cause(e) .build(); } + return handleTokenErrorResponse(e); + } + } - return null; + private static String handleTokenErrorResponse(Exception e) { + if (isInsecureFallbackDisabled()) { + String message = String.format("Failed to retrieve IMDS token, and fallback to IMDS v1 is disabled via the " + + "%s system property, %s environment variable, or %s configuration file profile" + + " setting.", + SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.environmentVariable(), + SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property(), + ProfileProperty.EC2_METADATA_V1_DISABLED); + throw SdkClientException.builder() + .message(message) + .cause(e) + .build(); + } + return null; + } + + private static boolean isInsecureFallbackDisabled() { + if (IS_INSECURE_FALLBACK_DISABLED == null) { + synchronized (FALLBACK_LOCK) { + if (IS_INSECURE_FALLBACK_DISABLED == null) { + IS_INSECURE_FALLBACK_DISABLED = EC2_METADATA_DISABLE_V1_RESOLVER.resolve(); + } + } } + return IS_INSECURE_FALLBACK_DISABLED; } private static String fetchData(String path) { diff --git a/core/regions/src/main/java/software/amazon/awssdk/regions/internal/util/Ec2MetadataDisableV1Resolver.java b/core/regions/src/main/java/software/amazon/awssdk/regions/internal/util/Ec2MetadataDisableV1Resolver.java new file mode 100644 index 000000000000..414a47e2501d --- /dev/null +++ b/core/regions/src/main/java/software/amazon/awssdk/regions/internal/util/Ec2MetadataDisableV1Resolver.java @@ -0,0 +1,70 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.regions.internal.util; + +import java.util.Optional; +import java.util.function.Supplier; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.core.SdkSystemSetting; +import software.amazon.awssdk.profiles.ProfileFile; +import software.amazon.awssdk.profiles.ProfileFileSystemSetting; +import software.amazon.awssdk.profiles.ProfileProperty; +import software.amazon.awssdk.utils.OptionalUtils; + +@SdkInternalApi +public final class Ec2MetadataDisableV1Resolver { + + private Ec2MetadataDisableV1Resolver() { + } + + public static Ec2MetadataDisableV1Resolver create() { + return new Ec2MetadataDisableV1Resolver(); + } + + public boolean resolve() { + return OptionalUtils.firstPresent(fromSystemSettings(), Ec2MetadataDisableV1Resolver::fromProfileFile) + .orElse(false); + } + + private static Optional fromSystemSettings() { + return SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.getBooleanValue(); + } + + private static Optional fromProfileFile() { + Supplier profileFile = ProfileFile::defaultProfileFile; + String profileName = ProfileFileSystemSetting.AWS_PROFILE.getStringValueOrThrow(); + if (profileFile.get() == null) { + return Optional.empty(); + } + return profileFile.get() + .profile(profileName) + .flatMap(p -> p.property(ProfileProperty.EC2_METADATA_V1_DISABLED)) + .map(Ec2MetadataDisableV1Resolver::safeProfileStringToBoolean); + } + + private static boolean safeProfileStringToBoolean(String value) { + if (value.equalsIgnoreCase("true")) { + return true; + } + if (value.equalsIgnoreCase("false")) { + return false; + } + + throw new IllegalStateException("Profile property '" + ProfileProperty.EC2_METADATA_V1_DISABLED + "', " + + "was defined as '" + value + "', but should be 'false' or 'true'"); + } + +} diff --git a/core/regions/src/main/java/software/amazon/awssdk/regions/providers/InstanceProfileRegionProvider.java b/core/regions/src/main/java/software/amazon/awssdk/regions/providers/InstanceProfileRegionProvider.java index 0d12df38f882..83011c06e885 100644 --- a/core/regions/src/main/java/software/amazon/awssdk/regions/providers/InstanceProfileRegionProvider.java +++ b/core/regions/src/main/java/software/amazon/awssdk/regions/providers/InstanceProfileRegionProvider.java @@ -18,16 +18,20 @@ import software.amazon.awssdk.annotations.SdkProtectedApi; import software.amazon.awssdk.core.SdkSystemSetting; import software.amazon.awssdk.core.exception.SdkClientException; +import software.amazon.awssdk.profiles.ProfileProperty; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.regions.internal.util.EC2MetadataUtils; /** * Attempts to load region information from the EC2 Metadata service. If the application is not - * running on EC2 this provider will thrown an exception. - * - *

+ * running on EC2 this provider will throw an exception. + *

* If {@link SdkSystemSetting#AWS_EC2_METADATA_DISABLED} is set to true, it will not try to load * region from EC2 metadata service and will return null. + *

+ * If {@link SdkSystemSetting#AWS_EC2_METADATA_V1_DISABLED} or {@link ProfileProperty#EC2_METADATA_V1_DISABLED} + * is set to true, the region will only be loaded from EC2 metadata service if a token is successfully retrieved - + * fallback to load region without a token will be disabled. */ @SdkProtectedApi public final class InstanceProfileRegionProvider implements AwsRegionProvider { diff --git a/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json index d1d1b6f20274..c931c4beaa86 100644 --- a/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json +++ b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json @@ -349,6 +349,12 @@ "tags" : [ "fips" ] } ] }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "acm-pca-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -364,6 +370,13 @@ "deprecated" : true, "hostname" : "acm-pca-fips.ca-central-1.amazonaws.com" }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "acm-pca-fips.ca-west-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -2246,10 +2259,58 @@ "eu-central-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "us-east-1" : { + "variants" : [ { + "hostname" : "auditmanager-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-1-fips" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "auditmanager-fips.us-east-1.amazonaws.com" + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "auditmanager-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-2-fips" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "hostname" : "auditmanager-fips.us-east-2.amazonaws.com" + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "auditmanager-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-1-fips" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "hostname" : "auditmanager-fips.us-west-1.amazonaws.com" + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "auditmanager-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2-fips" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "auditmanager-fips.us-west-2.amazonaws.com" + } } }, "autoscaling" : { @@ -3199,6 +3260,7 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -5802,6 +5864,12 @@ "tags" : [ "fips" ] } ] }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "ec2-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -5822,6 +5890,13 @@ "deprecated" : true, "hostname" : "ec2-fips.ca-central-1.amazonaws.com" }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "ec2-fips.ca-west-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -6409,6 +6484,12 @@ "tags" : [ "fips" ] } ] }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "elasticfilesystem-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { "variants" : [ { "hostname" : "elasticfilesystem-fips.eu-central-1.amazonaws.com", @@ -6541,6 +6622,13 @@ "deprecated" : true, "hostname" : "elasticfilesystem-fips.ca-central-1.amazonaws.com" }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "elasticfilesystem-fips.ca-west-1.amazonaws.com" + }, "fips-eu-central-1" : { "credentialScope" : { "region" : "eu-central-1" @@ -11281,6 +11369,7 @@ "eu-central-1" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -11299,6 +11388,7 @@ "fips-us-west-2" : { "deprecated" : true }, + "il-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -11567,9 +11657,12 @@ "endpoints" : { "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-northeast-3" : { }, "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-4" : { }, + "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, "eu-west-1" : { }, @@ -12763,8 +12856,10 @@ "ap-southeast-2" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-north-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-1" : { }, @@ -13286,6 +13381,13 @@ } } }, + "private-networks" : { + "endpoints" : { + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "profile" : { "endpoints" : { "af-south-1" : { }, @@ -14139,16 +14241,76 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, - "ca-central-1" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "redshift-serverless-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-north-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "redshift-serverless-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "redshift-serverless-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "hostname" : "redshift-serverless-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "hostname" : "redshift-serverless-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "redshift-serverless-fips.us-west-2.amazonaws.com" + }, + "us-east-1" : { + "variants" : [ { + "hostname" : "redshift-serverless-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "redshift-serverless-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "redshift-serverless-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "redshift-serverless-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } } }, "rekognition" : { @@ -14339,96 +14501,26 @@ } }, "resource-explorer-2" : { - "defaults" : { - "dnsSuffix" : "api.aws", - "variants" : [ { - "dnsSuffix" : "api.aws", - "hostname" : "{service}-fips.{region}.{dnsSuffix}", - "tags" : [ "fips" ] - } ] - }, "endpoints" : { - "af-south-1" : { - "hostname" : "resource-explorer-2.af-south-1.api.aws" - }, - "ap-east-1" : { - "hostname" : "resource-explorer-2.ap-east-1.api.aws" - }, - "ap-northeast-1" : { - "hostname" : "resource-explorer-2.ap-northeast-1.api.aws" - }, - "ap-northeast-2" : { - "hostname" : "resource-explorer-2.ap-northeast-2.api.aws" - }, - "ap-northeast-3" : { - "hostname" : "resource-explorer-2.ap-northeast-3.api.aws" - }, - "ap-south-1" : { - "hostname" : "resource-explorer-2.ap-south-1.api.aws" - }, - "ap-south-2" : { - "hostname" : "resource-explorer-2.ap-south-2.api.aws" - }, - "ap-southeast-1" : { - "hostname" : "resource-explorer-2.ap-southeast-1.api.aws" - }, - "ap-southeast-2" : { - "hostname" : "resource-explorer-2.ap-southeast-2.api.aws" - }, - "ap-southeast-3" : { - "hostname" : "resource-explorer-2.ap-southeast-3.api.aws" - }, - "ap-southeast-4" : { - "hostname" : "resource-explorer-2.ap-southeast-4.api.aws" - }, - "ca-central-1" : { - "hostname" : "resource-explorer-2.ca-central-1.api.aws" - }, - "eu-central-1" : { - "hostname" : "resource-explorer-2.eu-central-1.api.aws" - }, - "eu-central-2" : { - "hostname" : "resource-explorer-2.eu-central-2.api.aws" - }, - "eu-north-1" : { - "hostname" : "resource-explorer-2.eu-north-1.api.aws" - }, - "eu-south-1" : { - "hostname" : "resource-explorer-2.eu-south-1.api.aws" - }, - "eu-west-1" : { - "hostname" : "resource-explorer-2.eu-west-1.api.aws" - }, - "eu-west-2" : { - "hostname" : "resource-explorer-2.eu-west-2.api.aws" - }, - "eu-west-3" : { - "hostname" : "resource-explorer-2.eu-west-3.api.aws" - }, - "il-central-1" : { - "hostname" : "resource-explorer-2.il-central-1.api.aws" - }, - "me-central-1" : { - "hostname" : "resource-explorer-2.me-central-1.api.aws" - }, - "me-south-1" : { - "hostname" : "resource-explorer-2.me-south-1.api.aws" - }, - "sa-east-1" : { - "hostname" : "resource-explorer-2.sa-east-1.api.aws" - }, - "us-east-1" : { - "hostname" : "resource-explorer-2.us-east-1.api.aws" - }, - "us-east-2" : { - "hostname" : "resource-explorer-2.us-east-2.api.aws" - }, - "us-west-1" : { - "hostname" : "resource-explorer-2.us-west-1.api.aws" - }, - "us-west-2" : { - "hostname" : "resource-explorer-2.us-west-2.api.aws" - } + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-northeast-3" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ap-southeast-3" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "me-south-1" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } } }, "resource-groups" : { @@ -16835,10 +16927,16 @@ }, "sms-voice" : { "endpoints" : { + "af-south-1" : { }, "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "sms-voice-fips.ca-central-1.amazonaws.com", @@ -16846,8 +16944,13 @@ } ] }, "eu-central-1" : { }, + "eu-central-2" : { }, + "eu-north-1" : { }, + "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "eu-west-3" : { }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -16862,6 +16965,20 @@ "deprecated" : true, "hostname" : "sms-voice-fips.us-east-1.amazonaws.com" }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "hostname" : "sms-voice-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "hostname" : "sms-voice-fips.us-west-1.amazonaws.com" + }, "fips-us-west-2" : { "credentialScope" : { "region" : "us-west-2" @@ -16869,12 +16986,28 @@ "deprecated" : true, "hostname" : "sms-voice-fips.us-west-2.amazonaws.com" }, + "il-central-1" : { }, + "me-central-1" : { }, + "me-south-1" : { }, + "sa-east-1" : { }, "us-east-1" : { "variants" : [ { "hostname" : "sms-voice-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] } ] }, + "us-east-2" : { + "variants" : [ { + "hostname" : "sms-voice-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "sms-voice-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "us-west-2" : { "variants" : [ { "hostname" : "sms-voice-fips.us-west-2.amazonaws.com", @@ -19769,7 +19902,10 @@ "wisdom" : { "endpoints" : { "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ca-central-1" : { }, "eu-central-1" : { }, "eu-west-2" : { }, "fips-us-east-1" : { @@ -19779,7 +19915,10 @@ "deprecated" : true }, "ui-ap-northeast-1" : { }, + "ui-ap-northeast-2" : { }, + "ui-ap-southeast-1" : { }, "ui-ap-southeast-2" : { }, + "ui-ca-central-1" : { }, "ui-eu-central-1" : { }, "ui-eu-west-2" : { }, "ui-us-east-1" : { }, @@ -20677,6 +20816,12 @@ "cn-northwest-1" : { } } }, + "inspector2" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "internetmonitor" : { "defaults" : { "dnsSuffix" : "api.amazonwebservices.com.cn", @@ -20979,6 +21124,11 @@ } } }, + "quicksight" : { + "endpoints" : { + "cn-north-1" : { } + } + }, "ram" : { "endpoints" : { "cn-north-1" : { }, @@ -21008,24 +21158,6 @@ "cn-north-1" : { } } }, - "resource-explorer-2" : { - "defaults" : { - "dnsSuffix" : "api.amazonwebservices.com.cn", - "variants" : [ { - "dnsSuffix" : "api.amazonwebservices.com.cn", - "hostname" : "{service}-fips.{region}.{dnsSuffix}", - "tags" : [ "fips" ] - } ] - }, - "endpoints" : { - "cn-north-1" : { - "hostname" : "resource-explorer-2.cn-north-1.api.amazonwebservices.com.cn" - }, - "cn-northwest-1" : { - "hostname" : "resource-explorer-2.cn-northwest-1.api.amazonwebservices.com.cn" - } - } - }, "resource-groups" : { "endpoints" : { "cn-north-1" : { }, @@ -23243,6 +23375,12 @@ "us-gov-west-1" : { } } }, + "emr-serverless" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "es" : { "endpoints" : { "fips" : { @@ -24926,24 +25064,6 @@ } } }, - "resource-explorer-2" : { - "defaults" : { - "dnsSuffix" : "api.aws", - "variants" : [ { - "dnsSuffix" : "api.aws", - "hostname" : "{service}-fips.{region}.{dnsSuffix}", - "tags" : [ "fips" ] - } ] - }, - "endpoints" : { - "us-gov-east-1" : { - "hostname" : "resource-explorer-2.us-gov-east-1.api.aws" - }, - "us-gov-west-1" : { - "hostname" : "resource-explorer-2.us-gov-west-1.api.aws" - } - } - }, "resource-groups" : { "defaults" : { "variants" : [ { @@ -25539,6 +25659,13 @@ }, "sms-voice" : { "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, + "hostname" : "sms-voice-fips.us-gov-east-1.amazonaws.com" + }, "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" @@ -25546,6 +25673,12 @@ "deprecated" : true, "hostname" : "sms-voice-fips.us-gov-west-1.amazonaws.com" }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "sms-voice-fips.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "us-gov-west-1" : { "variants" : [ { "hostname" : "sms-voice-fips.us-gov-west-1.amazonaws.com", @@ -26263,6 +26396,16 @@ } } }, + "api.pricing" : { + "defaults" : { + "credentialScope" : { + "service" : "pricing" + } + }, + "endpoints" : { + "us-iso-east-1" : { } + } + }, "api.sagemaker" : { "endpoints" : { "us-iso-east-1" : { } @@ -26294,6 +26437,11 @@ "us-iso-west-1" : { } } }, + "arc-zonal-shift" : { + "endpoints" : { + "us-iso-east-1" : { } + } + }, "athena" : { "endpoints" : { "us-iso-east-1" : { } @@ -26352,6 +26500,13 @@ }, "datasync" : { "endpoints" : { + "fips-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "hostname" : "datasync-fips.us-iso-east-1.c2s.ic.gov" + }, "fips-us-iso-west-1" : { "credentialScope" : { "region" : "us-iso-west-1" @@ -26359,6 +26514,12 @@ "deprecated" : true, "hostname" : "datasync-fips.us-iso-west-1.c2s.ic.gov" }, + "us-iso-east-1" : { + "variants" : [ { + "hostname" : "datasync-fips.us-iso-east-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + }, "us-iso-west-1" : { "variants" : [ { "hostname" : "datasync-fips.us-iso-west-1.c2s.ic.gov", @@ -27060,6 +27221,16 @@ } } }, + "api.pricing" : { + "defaults" : { + "credentialScope" : { + "service" : "pricing" + } + }, + "endpoints" : { + "us-isob-east-1" : { } + } + }, "api.sagemaker" : { "endpoints" : { "us-isob-east-1" : { } @@ -27083,6 +27254,11 @@ "us-isob-east-1" : { } } }, + "arc-zonal-shift" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "autoscaling" : { "defaults" : { "protocols" : [ "http", "https" ] diff --git a/core/regions/src/test/java/software/amazon/awssdk/regions/internal/util/EC2MetadataUtilsTest.java b/core/regions/src/test/java/software/amazon/awssdk/regions/internal/util/EC2MetadataUtilsTest.java index 4172db957e78..506dba82522e 100644 --- a/core/regions/src/test/java/software/amazon/awssdk/regions/internal/util/EC2MetadataUtilsTest.java +++ b/core/regions/src/test/java/software/amazon/awssdk/regions/internal/util/EC2MetadataUtilsTest.java @@ -39,10 +39,10 @@ public class EC2MetadataUtilsTest { private static final String TOKEN_RESOURCE_PATH = "/latest/api/token"; private static final String TOKEN_HEADER = "x-aws-ec2-metadata-token"; private static final String EC2_METADATA_TOKEN_TTL_HEADER = "x-aws-ec2-metadata-token-ttl-seconds"; - private static final String EC2_METADATA_ROOT = "/latest/meta-data"; - private static final String AMI_ID_RESOURCE = EC2_METADATA_ROOT + "/ami-id"; + private static final String TOKEN_STUB = "some-token"; + private static final String EMPTY_BODY = "{}"; @Rule @@ -55,32 +55,33 @@ public class EC2MetadataUtilsTest { public void methodSetup() { System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_SERVICE_ENDPOINT.property(), "http://localhost:" + mockMetadataEndpoint.port()); EC2MetadataUtils.clearCache(); + EC2MetadataUtils.resetIsFallbackDisableResolved(); + System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property()); } @Test public void getToken_queriesCorrectPath() { - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody("some-token"))); + stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody(TOKEN_STUB))); String token = EC2MetadataUtils.getToken(); - assertThat(token).isEqualTo("some-token"); + assertThat(token).isEqualTo(TOKEN_STUB); WireMock.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)).withHeader(EC2_METADATA_TOKEN_TTL_HEADER, equalTo("21600"))); } @Test public void getAmiId_queriesAndIncludesToken() { - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody("some-token"))); + stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody(TOKEN_STUB))); stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withBody("{}"))); EC2MetadataUtils.getAmiId(); WireMock.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)).withHeader(EC2_METADATA_TOKEN_TTL_HEADER, equalTo("21600"))); - WireMock.verify(getRequestedFor(urlPathEqualTo(AMI_ID_RESOURCE)).withHeader(TOKEN_HEADER, equalTo("some-token"))); + WireMock.verify(getRequestedFor(urlPathEqualTo(AMI_ID_RESOURCE)).withHeader(TOKEN_HEADER, equalTo(TOKEN_STUB))); } @Test public void getAmiId_tokenQueryTimeout_fallsBackToInsecure() { - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withFixedDelay(Integer.MAX_VALUE))); stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withBody("{}"))); @@ -93,7 +94,7 @@ public void getAmiId_tokenQueryTimeout_fallsBackToInsecure() { @Test public void getAmiId_queriesTokenResource_403Error_fallbackToInsecure() { stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(403).withBody("oops"))); - stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withBody("{}"))); + stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withBody(EMPTY_BODY))); EC2MetadataUtils.getAmiId(); @@ -104,7 +105,7 @@ public void getAmiId_queriesTokenResource_403Error_fallbackToInsecure() { @Test public void getAmiId_queriesTokenResource_404Error_fallbackToInsecure() { stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(404).withBody("oops"))); - stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withBody("{}"))); + stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withBody(EMPTY_BODY))); EC2MetadataUtils.getAmiId(); @@ -115,7 +116,7 @@ public void getAmiId_queriesTokenResource_404Error_fallbackToInsecure() { @Test public void getAmiId_queriesTokenResource_405Error_fallbackToInsecure() { stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(405).withBody("oops"))); - stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withBody("{}"))); + stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withBody(EMPTY_BODY))); EC2MetadataUtils.getAmiId(); @@ -123,6 +124,35 @@ public void getAmiId_queriesTokenResource_405Error_fallbackToInsecure() { WireMock.verify(getRequestedFor(urlPathEqualTo(AMI_ID_RESOURCE)).withoutHeader(TOKEN_HEADER)); } + @Test + public void getAmiId_fallbackToInsecureDisabledThroughProperty_throwsWhenTokenFails() { + System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property(), "true"); + stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(403).withBody("oops"))); + try { + EC2MetadataUtils.getAmiId(); + } catch (Exception e) { + assertThat(e).isInstanceOf(SdkClientException.class); + assertThat(e).hasMessageContaining("fallback to IMDS v1 is disabled"); + } + finally { + System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property()); + } + } + + @Test + public void getAmiId_fallbackToInsecureDisabledThroughProperty_returnsDataWhenTokenReturned() { + System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property(), "true"); + stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody(TOKEN_STUB))); + stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withBody("{}"))); + try { + EC2MetadataUtils.getAmiId(); + WireMock.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)).withHeader(EC2_METADATA_TOKEN_TTL_HEADER, equalTo("21600"))); + WireMock.verify(getRequestedFor(urlPathEqualTo(AMI_ID_RESOURCE)).withHeader(TOKEN_HEADER, equalTo(TOKEN_STUB))); + } finally { + System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property()); + } + } + @Test public void getAmiId_queriesTokenResource_400Error_throws() { thrown.expect(SdkClientException.class); @@ -140,7 +170,7 @@ public void fetchDataWithAttemptNumber_ioError_shouldHonor() { thrown.expect(SdkClientException.class); thrown.expectMessage("Unable to contact EC2 metadata service"); - stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody("some-token")));; + stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody(TOKEN_STUB))); stubFor(get(urlPathEqualTo(AMI_ID_RESOURCE)).willReturn(aResponse().withFault(Fault.CONNECTION_RESET_BY_PEER))); EC2MetadataUtils.fetchData(AMI_ID_RESOURCE, false, attempts); diff --git a/core/regions/src/test/java/software/amazon/awssdk/regions/internal/util/Ec2MetadataDisableV1ResolverTest.java b/core/regions/src/test/java/software/amazon/awssdk/regions/internal/util/Ec2MetadataDisableV1ResolverTest.java new file mode 100644 index 000000000000..46d0a2c7e389 --- /dev/null +++ b/core/regions/src/test/java/software/amazon/awssdk/regions/internal/util/Ec2MetadataDisableV1ResolverTest.java @@ -0,0 +1,90 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.regions.internal.util; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import java.util.stream.Stream; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; +import software.amazon.awssdk.core.SdkSystemSetting; +import software.amazon.awssdk.testutils.EnvironmentVariableHelper; + +public class Ec2MetadataDisableV1ResolverTest { + + private static final EnvironmentVariableHelper ENVIRONMENT_VARIABLE_HELPER = new EnvironmentVariableHelper(); + + @BeforeEach + public void methodSetup() { + ENVIRONMENT_VARIABLE_HELPER.reset(); + System.clearProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property()); + } + + @ParameterizedTest(name = "{index} - EXPECTED:{3} (sys:{0}, env:{1}, cfg:{2})") + @MethodSource("booleanConfigValues") + public void resolveDisableValue_whenBoolean_resolvesCorrectly( + String systemProperty, String envVar, boolean expected) { + + setUpSystemSettings(systemProperty, envVar); + + Ec2MetadataDisableV1Resolver resolver = Ec2MetadataDisableV1Resolver.create(); + assertThat(resolver.resolve()).isEqualTo(expected); + } + + private static Stream booleanConfigValues() { + return Stream.of( + Arguments.of(null, null, false), + Arguments.of("false", null, false), + Arguments.of("true", null, true), + Arguments.of(null, "false", false), + Arguments.of(null, "true", true), + Arguments.of(null, null, false), + Arguments.of("false", "true", false), + Arguments.of("true", "false", true) + ); + } + + @ParameterizedTest(name = "{index} - sys:{0}, env:{1}") + @MethodSource("nonBooleanConfigValues") + public void resolveDisableValue_whenNonBoolean_throws(String systemProperty, String envVar) { + setUpSystemSettings(systemProperty, envVar); + + Ec2MetadataDisableV1Resolver resolver = Ec2MetadataDisableV1Resolver.create(); + assertThatThrownBy(resolver::resolve).isInstanceOf(IllegalStateException.class) + .hasMessageContaining("but should be 'false' or 'true'"); + } + + private static Stream nonBooleanConfigValues() { + return Stream.of( + Arguments.of("foo", null, null), + Arguments.of(null, "foo", null) + ); + } + + private static void setUpSystemSettings(String systemProperty, String envVar) { + if (systemProperty != null) { + System.setProperty(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.property(), systemProperty); + + } + if (envVar != null) { + ENVIRONMENT_VARIABLE_HELPER.set(SdkSystemSetting.AWS_EC2_METADATA_V1_DISABLED.environmentVariable(), + envVar); + } + } +} diff --git a/core/sdk-core/pom.xml b/core/sdk-core/pom.xml index 58fcc0c32f06..5db6abbf628b 100644 --- a/core/sdk-core/pom.xml +++ b/core/sdk-core/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk core - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sdk-core AWS Java SDK :: SDK Core diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkSystemSetting.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkSystemSetting.java index c74880eda64f..6295f900c8ab 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkSystemSetting.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkSystemSetting.java @@ -75,6 +75,11 @@ public enum SdkSystemSetting implements SystemSetting { */ AWS_EC2_METADATA_DISABLED("aws.disableEc2Metadata", "false"), + /** + * Whether to disable fallback to insecure EC2 Metadata instance service v1 on errors or timeouts. + */ + AWS_EC2_METADATA_V1_DISABLED("aws.disableEc2MetadataV1", null), + /** * The EC2 instance metadata service endpoint. * diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/async/listener/PublisherListener.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/async/listener/PublisherListener.java index bbee3e203447..da8a4861cfd0 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/async/listener/PublisherListener.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/async/listener/PublisherListener.java @@ -45,6 +45,10 @@ static SdkPublisher wrap(SdkPublisher delegate, PublisherListener l return new NotifyingPublisher<>(delegate, listener); } + static NoOpPublisherListener noOp() { + return NoOpPublisherListener.getInstance(); + } + @SdkInternalApi final class NotifyingPublisher implements SdkPublisher { private static final Logger log = Logger.loggerFor(NotifyingPublisher.class); @@ -72,4 +76,17 @@ static void invoke(Runnable runnable, String callbackName) { } } } + + @SdkInternalApi + final class NoOpPublisherListener implements PublisherListener { + + private static final NoOpPublisherListener NO_OP_PUBLISHER_LISTENER = new NoOpPublisherListener(); + + private NoOpPublisherListener() { + } + + static NoOpPublisherListener getInstance() { + return NO_OP_PUBLISHER_LISTENER; + } + } } diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/SdkAdvancedAsyncClientOption.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/SdkAdvancedAsyncClientOption.java index ab9d87026abc..fb2a1135eeba 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/SdkAdvancedAsyncClientOption.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/SdkAdvancedAsyncClientOption.java @@ -45,10 +45,12 @@ public final class SdkAdvancedAsyncClientOption extends ClientOption { *

  • You want more fine-grained control over the {@link ThreadPoolExecutor} used, such as configuring the pool size * or sharing a single pool between multiple clients. *
  • You want to add instrumentation (i.e., metrics) around how the {@link Executor} is used. - *
  • You know, for certain, that all of your {@link CompletableFuture} usage is strictly non-blocking, and you wish to - * remove the minor overhead incurred by using a separate thread. In this case, you can use - * {@code Runnable::run} to execute the future-completion directly from within the I/O thread. * + * WARNING + *

    + * We strongly discourage using {@code Runnable::run}, which executes the future-completion directly from + * within the I/O thread because it may block the I/O thread and cause deadlock, especially if you are sending + * another SDK request in the {@link CompletableFuture} chain since the SDK may perform blocking calls in some cases. */ public static final SdkAdvancedAsyncClientOption FUTURE_COMPLETION_EXECUTOR = new SdkAdvancedAsyncClientOption<>(Executor.class); diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/interceptor/ExecutionInterceptorChain.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/interceptor/ExecutionInterceptorChain.java index 84819ec51aa2..cd2bff920ffd 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/interceptor/ExecutionInterceptorChain.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/interceptor/ExecutionInterceptorChain.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; -import java.util.Optional; import java.util.function.Consumer; import org.reactivestreams.Publisher; import software.amazon.awssdk.annotations.SdkProtectedApi; @@ -29,8 +28,6 @@ import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.internal.interceptor.DefaultFailedExecutionContext; import software.amazon.awssdk.core.sync.RequestBody; -import software.amazon.awssdk.http.ContentStreamProvider; -import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpRequest; import software.amazon.awssdk.http.SdkHttpResponse; import software.amazon.awssdk.utils.Logger; @@ -66,9 +63,11 @@ public InterceptorContext modifyRequest(InterceptorContext context, ExecutionAtt InterceptorContext result = context; for (ExecutionInterceptor interceptor : interceptors) { SdkRequest interceptorResult = interceptor.modifyRequest(result, executionAttributes); - validateInterceptorResult(result.request(), interceptorResult, interceptor, "modifyRequest"); - result = result.copy(b -> b.request(interceptorResult)); + if (interceptorResult != result.request()) { + validateInterceptorResult(result.request(), interceptorResult, interceptor, "modifyRequest"); + result = result.copy(b -> b.request(interceptorResult)); + } } return result; } @@ -88,46 +87,20 @@ public InterceptorContext modifyHttpRequestAndHttpContent(InterceptorContext con AsyncRequestBody asyncRequestBody = interceptor.modifyAsyncHttpContent(result, executionAttributes).orElse(null); RequestBody requestBody = interceptor.modifyHttpContent(result, executionAttributes).orElse(null); SdkHttpRequest interceptorResult = interceptor.modifyHttpRequest(result, executionAttributes); - validateInterceptorResult(result.httpRequest(), interceptorResult, interceptor, "modifyHttpRequest"); - InterceptorContext.Builder builder = result.toBuilder(); + if (asyncRequestBody != result.asyncRequestBody().orElse(null) || + requestBody != result.requestBody().orElse(null) || + interceptorResult != result.httpRequest()) { - applySdkHttpFullRequestHack(result, builder); - - result = builder.httpRequest(interceptorResult) - .asyncRequestBody(asyncRequestBody) - .requestBody(requestBody) - .build(); + validateInterceptorResult(result.httpRequest(), interceptorResult, interceptor, "modifyHttpRequest"); + result = result.copy(r -> r.httpRequest(interceptorResult) + .asyncRequestBody(asyncRequestBody) + .requestBody(requestBody)); + } } return result; } - private void applySdkHttpFullRequestHack(InterceptorContext context, InterceptorContext.Builder builder) { - // Someone thought it would be a great idea to allow interceptors to return SdkHttpFullRequest to modify the payload - // instead of using the modifyPayload method. This is for backwards-compatibility with those interceptors. - // TODO: Update interceptors to use the proper payload-modifying method so that this code path is only used for older - // client versions. Maybe if we ever decide to break @SdkProtectedApis (if we stop using Jackson?!) we can even remove - // this hack! - SdkHttpFullRequest sdkHttpFullRequest = (SdkHttpFullRequest) context.httpRequest(); - - if (context.requestBody().isPresent()) { - return; - } - - Optional contentStreamProvider = sdkHttpFullRequest.contentStreamProvider(); - - if (!contentStreamProvider.isPresent()) { - return; - } - - long contentLength = Long.parseLong(sdkHttpFullRequest.firstMatchingHeader("Content-Length").orElse("0")); - String contentType = sdkHttpFullRequest.firstMatchingHeader("Content-Type").orElse(""); - RequestBody requestBody = RequestBody.fromContentProvider(contentStreamProvider.get(), - contentLength, - contentType); - builder.requestBody(requestBody); - } - public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { interceptors.forEach(i -> i.beforeTransmission(context, executionAttributes)); } @@ -143,11 +116,15 @@ public InterceptorContext modifyHttpResponse(InterceptorContext context, for (int i = interceptors.size() - 1; i >= 0; i--) { SdkHttpResponse interceptorResult = interceptors.get(i).modifyHttpResponse(result, executionAttributes); - validateInterceptorResult(result.httpResponse(), interceptorResult, interceptors.get(i), "modifyHttpResponse"); - InputStream response = interceptors.get(i).modifyHttpResponseContent(result, executionAttributes).orElse(null); - result = result.toBuilder().httpResponse(interceptorResult).responseBody(response).build(); + if (interceptorResult != result.httpResponse() || response != result.responseBody().orElse(null)) { + validateInterceptorResult(result.httpResponse(), interceptorResult, interceptors.get(i), "modifyHttpResponse"); + result = result.copy(r -> r.httpResponse(interceptorResult) + .responseBody(response)); + } + + } return result; @@ -163,9 +140,9 @@ public InterceptorContext modifyAsyncHttpResponse(InterceptorContext context, Publisher newResponsePublisher = interceptor.modifyAsyncHttpResponseContent(result, executionAttributes).orElse(null); - result = result.toBuilder() - .responsePublisher(newResponsePublisher) - .build(); + if (newResponsePublisher != result.responsePublisher().orElse(null)) { + result = result.copy(r -> r.responsePublisher(newResponsePublisher)); + } } return result; @@ -183,9 +160,11 @@ public InterceptorContext modifyResponse(InterceptorContext context, ExecutionAt InterceptorContext result = context; for (int i = interceptors.size() - 1; i >= 0; i--) { SdkResponse interceptorResult = interceptors.get(i).modifyResponse(result, executionAttributes); - validateInterceptorResult(result.response(), interceptorResult, interceptors.get(i), "modifyResponse"); - result = result.copy(b -> b.response(interceptorResult)); + if (interceptorResult != result.response()) { + validateInterceptorResult(result.response(), interceptorResult, interceptors.get(i), "modifyResponse"); + result = result.copy(b -> b.response(interceptorResult)); + } } return result; @@ -200,8 +179,12 @@ public DefaultFailedExecutionContext modifyException(DefaultFailedExecutionConte DefaultFailedExecutionContext result = context; for (int i = interceptors.size() - 1; i >= 0; i--) { Throwable interceptorResult = interceptors.get(i).modifyException(result, executionAttributes); - validateInterceptorResult(result.exception(), interceptorResult, interceptors.get(i), "modifyException"); - result = result.copy(b -> b.exception(interceptorResult)); + + if (interceptorResult != result.exception()) { + validateInterceptorResult(result.exception(), interceptorResult, + interceptors.get(i), "modifyException"); + result = result.copy(b -> b.exception(interceptorResult)); + } } return result; diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/InputStreamResponseTransformer.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/InputStreamResponseTransformer.java index 084a293f6344..434894a44c8c 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/InputStreamResponseTransformer.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/InputStreamResponseTransformer.java @@ -22,7 +22,7 @@ import software.amazon.awssdk.core.SdkResponse; import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.core.async.SdkPublisher; -import software.amazon.awssdk.utils.async.InputStreamSubscriber; +import software.amazon.awssdk.http.async.AbortableInputStreamSubscriber; /** * A {@link AsyncResponseTransformer} that allows performing blocking reads on the response data. @@ -50,7 +50,7 @@ public void onResponse(ResponseT response) { @Override public void onStream(SdkPublisher publisher) { - InputStreamSubscriber inputStreamSubscriber = new InputStreamSubscriber(); + AbortableInputStreamSubscriber inputStreamSubscriber = AbortableInputStreamSubscriber.builder().build(); publisher.subscribe(inputStreamSubscriber); future.complete(new ResponseInputStream<>(response, inputStreamSubscriber)); } diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/SplittingPublisher.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/SplittingPublisher.java index 6d8d18a14754..12278cf84dca 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/SplittingPublisher.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/SplittingPublisher.java @@ -203,6 +203,7 @@ public void onError(Throwable t) { private void sendCurrentBody(AsyncRequestBody body) { downstreamPublisher.send(body).exceptionally(t -> { downstreamPublisher.error(t); + upstreamSubscription.cancel(); return null; }); } diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/SigningStage.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/SigningStage.java index 2399c39cab58..d92628c2bba2 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/SigningStage.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/SigningStage.java @@ -117,6 +117,18 @@ private SdkHttpFullRequest doSraSign(SdkHttpFullRequest req private SdkHttpFullRequest toSdkHttpFullRequest(SignedRequest signedRequest) { SdkHttpRequest request = signedRequest.request(); + // Optimization: don't do any conversion if we can avoid it. + if (request instanceof SdkHttpFullRequest) { + SdkHttpFullRequest fullRequest = (SdkHttpFullRequest) request; + if (signedRequest.payload().orElse(null) == fullRequest.contentStreamProvider().orElse(null)) { + return fullRequest; + } + + return fullRequest.toBuilder() + .contentStreamProvider(signedRequest.payload().orElse(null)) + .build(); + } + return SdkHttpFullRequest.builder() .contentStreamProvider(signedRequest.payload().orElse(null)) .protocol(request.protocol()) diff --git a/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/SplittingPublisherTest.java b/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/SplittingPublisherTest.java index d2e06f28492a..6f116ca2667c 100644 --- a/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/SplittingPublisherTest.java +++ b/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/SplittingPublisherTest.java @@ -16,6 +16,7 @@ package software.amazon.awssdk.core.internal.async; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.Assertions.fail; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static software.amazon.awssdk.core.internal.async.SplittingPublisherTestUtils.verifyIndividualAsyncRequestBody; import static software.amazon.awssdk.utils.FunctionalUtils.invokeSafely; @@ -146,6 +147,20 @@ public Optional contentLength() { } + @Test + void downStreamFailed_shouldPropagateCancellation() { + CompletableFuture future = new CompletableFuture<>(); + TestAsyncRequestBody asyncRequestBody = new TestAsyncRequestBody(); + SplittingPublisher splittingPublisher = new SplittingPublisher(asyncRequestBody, AsyncRequestBodySplitConfiguration.builder() + .chunkSizeInBytes((long) CHUNK_SIZE) + .bufferSizeInBytes(10L) + .build()); + + assertThatThrownBy(() -> splittingPublisher.subscribe(requestBody -> { + throw new RuntimeException("foobar"); + }).get(5, TimeUnit.SECONDS)).hasMessageContaining("foobar"); + assertThat(asyncRequestBody.cancelled).isTrue(); + } private static void verifySplitContent(AsyncRequestBody asyncRequestBody, int chunkSize) throws Exception { SplittingPublisher splittingPublisher = new SplittingPublisher(asyncRequestBody, diff --git a/docs/design/core/migration-tool/DecisionLog.md b/docs/design/core/migration-tool/DecisionLog.md new file mode 100644 index 000000000000..68aeba2281ab --- /dev/null +++ b/docs/design/core/migration-tool/DecisionLog.md @@ -0,0 +1,31 @@ +# Decision Log for AWS SDK fro Java v2 Migration Tool + +## Log Entry Template + +**Source**: (Meeting/aside/pair programming discussion/daily standup) to (discuss/implement) X + +**Attendees**: Anirudh, Anna-Karin, David, Dongie, Debora, Olivier, Matt, Jason, John, Zoe + +**Closed Decisions:** + +1. Question? Decision. Justification + +**Open Decisions:** + +1. (Old/Reopened/new) Question? + +## 01/26/2024 + +**Source:** Daily standup and offline discussion to discuss where we should host the source code of the v2 migration tool + +**Attendees:** Anna-Karin, David, Debora, Olivier, Matt, Jason, John, Zoe + +**Closed Decisions:** + +1. Should we host the source code in the same aws-sdk-java-v2 repo? Yes, because 1) no extra release infrastructure is needed since it can be released as part of the SDK release 2) it's easier to write scripts to generate recipes, for example, we need to write script to retrieve service IDs for all services and current version. 3) it has better discoverability. The only disadvantage is that it will increase the scope of the repo and increase the build and release time slightly. The alternatives are: 1) setting up a new GitHub repo, which require us to set up and maintain new CICD pipeline. 2) hosting the code internally, which would be a bad customer experience since the code is not public and there is no place for users to raise questions/PRs. + +2. Should we publish the tool to Maven central instead of vending a JAR through S3? Yes, because most customers, if not all, prefer to consume the library from the package manager instead of a JAR. + +**Open Decisions:** + +None diff --git a/http-client-spi/pom.xml b/http-client-spi/pom.xml index 1cd6de89091a..54c8f29d7a03 100644 --- a/http-client-spi/pom.xml +++ b/http-client-spi/pom.xml @@ -22,7 +22,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT http-client-spi AWS Java SDK :: HTTP Client Interface @@ -90,6 +90,16 @@ byte-buddy test + + org.mockito + mockito-junit-jupiter + test + + + org.mockito + mockito-inline + test + diff --git a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/AbortableInputStreamSubscriber.java b/http-client-spi/src/main/java/software/amazon/awssdk/http/async/AbortableInputStreamSubscriber.java similarity index 56% rename from http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/AbortableInputStreamSubscriber.java rename to http-client-spi/src/main/java/software/amazon/awssdk/http/async/AbortableInputStreamSubscriber.java index c6c2ad6151b0..630869825700 100644 --- a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/AbortableInputStreamSubscriber.java +++ b/http-client-spi/src/main/java/software/amazon/awssdk/http/async/AbortableInputStreamSubscriber.java @@ -13,30 +13,43 @@ * permissions and limitations under the License. */ -package software.amazon.awssdk.http.crt.internal.response; +package software.amazon.awssdk.http.async; import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; -import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.annotations.SdkProtectedApi; +import software.amazon.awssdk.annotations.SdkTestInternalApi; import software.amazon.awssdk.http.Abortable; +import software.amazon.awssdk.utils.FunctionalUtils; import software.amazon.awssdk.utils.async.InputStreamSubscriber; /** - * Wrapper of {@link InputStreamSubscriber} that also implements {@link Abortable} and closes the underlying connections when - * {@link #close()} or {@link #abort()} is invoked. + * Wrapper of {@link InputStreamSubscriber} that also implements {@link Abortable}. It will invoke {@link #close()} + * when {@link #abort()} is invoked. Upon closing, the underlying {@link InputStreamSubscriber} will be closed, and additional + * action can be added via {@link Builder#doAfterClose(Runnable)}. + * */ -@SdkInternalApi +@SdkProtectedApi public final class AbortableInputStreamSubscriber extends InputStream implements Subscriber, Abortable { - private final InputStreamSubscriber delegate; - private final Runnable closeConnection; - public AbortableInputStreamSubscriber(Runnable onClose, InputStreamSubscriber inputStreamSubscriber) { - this.delegate = inputStreamSubscriber; - this.closeConnection = onClose; + private final Runnable doAfterClose; + + private AbortableInputStreamSubscriber(Builder builder) { + this(builder, new InputStreamSubscriber()); + } + + @SdkTestInternalApi + AbortableInputStreamSubscriber(Builder builder, InputStreamSubscriber delegate) { + this.delegate = delegate; + this.doAfterClose = builder.doAfterClose == null ? FunctionalUtils.noOpRunnable() : builder.doAfterClose; + } + + public static Builder builder() { + return new Builder(); } @Override @@ -81,7 +94,23 @@ public void onComplete() { @Override public void close() { - closeConnection.run(); delegate.close(); + FunctionalUtils.invokeSafely(() -> doAfterClose.run()); + } + + public static final class Builder { + private Runnable doAfterClose; + + /** + * Additional action to run when {@link #close()} is invoked + */ + public Builder doAfterClose(Runnable doAfterClose) { + this.doAfterClose = doAfterClose; + return this; + } + + public AbortableInputStreamSubscriber build() { + return new AbortableInputStreamSubscriber(this); + } } } diff --git a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/AbortableInputStreamSubscriberTest.java b/http-client-spi/src/test/java/software/amazon/awssdk/http/async/AbortableInputStreamSubscriberTest.java similarity index 53% rename from http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/AbortableInputStreamSubscriberTest.java rename to http-client-spi/src/test/java/software/amazon/awssdk/http/async/AbortableInputStreamSubscriberTest.java index ca9ea61cecb2..dc3e49ff7205 100644 --- a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/AbortableInputStreamSubscriberTest.java +++ b/http-client-spi/src/test/java/software/amazon/awssdk/http/async/AbortableInputStreamSubscriberTest.java @@ -13,7 +13,7 @@ * permissions and limitations under the License. */ -package software.amazon.awssdk.http.crt.internal; +package software.amazon.awssdk.http.async; import static org.mockito.Mockito.verify; @@ -22,7 +22,6 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import software.amazon.awssdk.http.crt.internal.response.AbortableInputStreamSubscriber; import software.amazon.awssdk.utils.async.InputStreamSubscriber; @ExtendWith(MockitoExtension.class) @@ -33,20 +32,39 @@ public class AbortableInputStreamSubscriberTest { @Mock private Runnable onClose; + @Mock + private InputStreamSubscriber inputStreamSubscriber; + @BeforeEach void setUp() { - abortableInputStreamSubscriber = new AbortableInputStreamSubscriber(onClose, new InputStreamSubscriber()); + abortableInputStreamSubscriber = new AbortableInputStreamSubscriber(AbortableInputStreamSubscriber.builder() + .doAfterClose(onClose), + inputStreamSubscriber); + + } @Test - void close_shouldInvokeOnClose() { + void close_closeConfigured_shouldInvokeOnClose() { abortableInputStreamSubscriber.close(); + verify(inputStreamSubscriber).close(); verify(onClose).run(); } @Test void abort_shouldInvokeOnClose() { + abortableInputStreamSubscriber = new AbortableInputStreamSubscriber(AbortableInputStreamSubscriber.builder() + .doAfterClose(onClose), + inputStreamSubscriber); abortableInputStreamSubscriber.abort(); verify(onClose).run(); } + + @Test + void close_closeNotConfigured_shouldCloseDelegate() { + abortableInputStreamSubscriber = new AbortableInputStreamSubscriber(AbortableInputStreamSubscriber.builder(), + inputStreamSubscriber); + abortableInputStreamSubscriber.close(); + verify(inputStreamSubscriber).close(); + } } diff --git a/http-clients/apache-client/pom.xml b/http-clients/apache-client/pom.xml index 19d213e8a365..56d16a734d9e 100644 --- a/http-clients/apache-client/pom.xml +++ b/http-clients/apache-client/pom.xml @@ -21,7 +21,7 @@ http-clients software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT apache-client diff --git a/http-clients/aws-crt-client/pom.xml b/http-clients/aws-crt-client/pom.xml index 72984836681f..50e34ebc063c 100644 --- a/http-clients/aws-crt-client/pom.xml +++ b/http-clients/aws-crt-client/pom.xml @@ -21,14 +21,13 @@ http-clients software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 aws-crt-client AWS Java SDK :: HTTP Clients :: AWS Common Runtime Client jar - ${awsjavasdk.version} ${project.parent.version} @@ -105,7 +104,7 @@ org.mockito - mockito-core + mockito-inline test diff --git a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/AwsCrtHttpClient.java b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/AwsCrtHttpClient.java index 3ee178abeb9a..4db0cfcee8fb 100644 --- a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/AwsCrtHttpClient.java +++ b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/AwsCrtHttpClient.java @@ -129,6 +129,10 @@ public HttpExecuteResponse call() throws IOException { throw (HttpException) cause; } + if (cause instanceof InterruptedException) { + Thread.currentThread().interrupt(); + throw new IOException("Request was cancelled", cause); + } throw new RuntimeException(e.getCause()); } } @@ -136,7 +140,7 @@ public HttpExecuteResponse call() throws IOException { @Override public void abort() { if (responseFuture != null) { - responseFuture.cancel(true); + responseFuture.completeExceptionally(new IOException("Request ws cancelled")); } } } diff --git a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/CrtResponseAdapter.java b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/CrtResponseAdapter.java index bfb75050e55a..d2f246336ca8 100644 --- a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/CrtResponseAdapter.java +++ b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/CrtResponseAdapter.java @@ -20,6 +20,7 @@ import java.nio.ByteBuffer; import java.util.concurrent.CompletableFuture; import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.annotations.SdkTestInternalApi; import software.amazon.awssdk.crt.CRT; import software.amazon.awssdk.crt.http.HttpClientConnection; import software.amazon.awssdk.crt.http.HttpException; @@ -46,7 +47,7 @@ public final class CrtResponseAdapter implements HttpStreamResponseHandler { private final HttpClientConnection connection; private final CompletableFuture completionFuture; private final SdkAsyncHttpResponseHandler responseHandler; - private final SimplePublisher responsePublisher = new SimplePublisher<>(); + private final SimplePublisher responsePublisher; private final SdkHttpResponse.Builder responseBuilder; private final ResponseHandlerHelper responseHandlerHelper; @@ -54,11 +55,21 @@ public final class CrtResponseAdapter implements HttpStreamResponseHandler { private CrtResponseAdapter(HttpClientConnection connection, CompletableFuture completionFuture, SdkAsyncHttpResponseHandler responseHandler) { + this(connection, completionFuture, responseHandler, new SimplePublisher<>()); + } + + + @SdkTestInternalApi + public CrtResponseAdapter(HttpClientConnection connection, + CompletableFuture completionFuture, + SdkAsyncHttpResponseHandler responseHandler, + SimplePublisher simplePublisher) { this.connection = Validate.paramNotNull(connection, "connection"); this.completionFuture = Validate.paramNotNull(completionFuture, "completionFuture"); this.responseHandler = Validate.paramNotNull(responseHandler, "responseHandler"); this.responseBuilder = SdkHttpResponse.builder(); this.responseHandlerHelper = new ResponseHandlerHelper(responseBuilder, connection); + this.responsePublisher = simplePublisher; } public static HttpStreamResponseHandler toCrtResponseHandler(HttpClientConnection crtConn, @@ -95,9 +106,7 @@ public int onResponseBody(HttpStream stream, byte[] bodyBytesIn) { return; } - if (!responseHandlerHelper.connectionClosed().get()) { - stream.incrementWindow(bodyBytesIn.length); - } + responseHandlerHelper.incrementWindow(stream, bodyBytesIn.length); }); return 0; diff --git a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/InputStreamAdaptingHttpStreamResponseHandler.java b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/InputStreamAdaptingHttpStreamResponseHandler.java index 939405db38b8..66568efc2b6f 100644 --- a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/InputStreamAdaptingHttpStreamResponseHandler.java +++ b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/InputStreamAdaptingHttpStreamResponseHandler.java @@ -20,6 +20,7 @@ import java.nio.ByteBuffer; import java.util.concurrent.CompletableFuture; import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.annotations.SdkTestInternalApi; import software.amazon.awssdk.crt.CRT; import software.amazon.awssdk.crt.http.HttpClientConnection; import software.amazon.awssdk.crt.http.HttpException; @@ -30,9 +31,9 @@ import software.amazon.awssdk.http.AbortableInputStream; import software.amazon.awssdk.http.SdkHttpFullResponse; import software.amazon.awssdk.http.SdkHttpResponse; +import software.amazon.awssdk.http.async.AbortableInputStreamSubscriber; import software.amazon.awssdk.http.crt.AwsCrtHttpClient; import software.amazon.awssdk.utils.Logger; -import software.amazon.awssdk.utils.async.InputStreamSubscriber; import software.amazon.awssdk.utils.async.SimplePublisher; /** @@ -42,7 +43,7 @@ public final class InputStreamAdaptingHttpStreamResponseHandler implements HttpStreamResponseHandler { private static final Logger log = Logger.loggerFor(InputStreamAdaptingHttpStreamResponseHandler.class); private volatile AbortableInputStreamSubscriber inputStreamSubscriber; - private final SimplePublisher simplePublisher = new SimplePublisher<>(); + private final SimplePublisher simplePublisher; private final CompletableFuture requestCompletionFuture; private final HttpClientConnection crtConn; @@ -52,10 +53,18 @@ public final class InputStreamAdaptingHttpStreamResponseHandler implements HttpS public InputStreamAdaptingHttpStreamResponseHandler(HttpClientConnection crtConn, CompletableFuture requestCompletionFuture) { + this(crtConn, requestCompletionFuture, new SimplePublisher<>()); + } + + @SdkTestInternalApi + public InputStreamAdaptingHttpStreamResponseHandler(HttpClientConnection crtConn, + CompletableFuture requestCompletionFuture, + SimplePublisher simplePublisher) { this.crtConn = crtConn; this.requestCompletionFuture = requestCompletionFuture; this.responseBuilder = SdkHttpResponse.builder(); this.responseHandlerHelper = new ResponseHandlerHelper(responseBuilder, crtConn); + this.simplePublisher = simplePublisher; } @Override @@ -78,8 +87,10 @@ public void onResponseHeaders(HttpStream stream, int responseStatusCode, int blo @Override public int onResponseBody(HttpStream stream, byte[] bodyBytesIn) { if (inputStreamSubscriber == null) { - inputStreamSubscriber = new AbortableInputStreamSubscriber(() -> responseHandlerHelper.closeConnection(stream), - new InputStreamSubscriber()); + inputStreamSubscriber = + AbortableInputStreamSubscriber.builder() + .doAfterClose(() -> responseHandlerHelper.closeConnection(stream)) + .build(); simplePublisher.subscribe(inputStreamSubscriber); // For response with a payload, we need to complete the future here to allow downstream to retrieve the data from // the stream directly. @@ -101,11 +112,8 @@ public int onResponseBody(HttpStream stream, byte[] bodyBytesIn) { failFutureAndCloseConnection(stream, failure); return; } - - if (!responseHandlerHelper.connectionClosed().get()) { - // increment the window upon buffer consumption. - stream.incrementWindow(bodyBytesIn.length); - } + // increment the window upon buffer consumption. + responseHandlerHelper.incrementWindow(stream, bodyBytesIn.length); }); // Window will be incremented after the subscriber consumes the data, returning 0 here to disable it. diff --git a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/ResponseHandlerHelper.java b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/ResponseHandlerHelper.java index 69665d1aeff9..8aa4037df88b 100644 --- a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/ResponseHandlerHelper.java +++ b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/response/ResponseHandlerHelper.java @@ -15,7 +15,6 @@ package software.amazon.awssdk.http.crt.internal.response; -import java.util.concurrent.atomic.AtomicBoolean; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.crt.http.HttpClientConnection; import software.amazon.awssdk.crt.http.HttpHeader; @@ -30,14 +29,16 @@ * * CRT connection will only be closed, i.e., not reused, in one of the following conditions: * 1. 5xx server error OR - * 2. It fails to read the response. + * 2. It fails to read the response OR + * 3. the response stream is closed/aborted by the caller. */ @SdkInternalApi public class ResponseHandlerHelper { private final SdkHttpResponse.Builder responseBuilder; private final HttpClientConnection connection; - private AtomicBoolean connectionClosed = new AtomicBoolean(false); + private boolean connectionClosed; + private final Object lock = new Object(); public ResponseHandlerHelper(SdkHttpResponse.Builder responseBuilder, HttpClientConnection connection) { this.responseBuilder = responseBuilder; @@ -57,9 +58,20 @@ public void onResponseHeaders(HttpStream stream, int responseStatusCode, int hea * Release the connection back to the pool so that it can be reused. */ public void releaseConnection(HttpStream stream) { - if (connectionClosed.compareAndSet(false, true)) { - connection.close(); - stream.close(); + synchronized (lock) { + if (!connectionClosed) { + connectionClosed = true; + connection.close(); + stream.close(); + } + } + } + + public void incrementWindow(HttpStream stream, int windowSize) { + synchronized (lock) { + if (!connectionClosed) { + stream.incrementWindow(windowSize); + } } } @@ -67,10 +79,13 @@ public void releaseConnection(HttpStream stream) { * Close the connection completely */ public void closeConnection(HttpStream stream) { - if (connectionClosed.compareAndSet(false, true)) { - connection.shutdown(); - connection.close(); - stream.close(); + synchronized (lock) { + if (!connectionClosed) { + connectionClosed = true; + connection.shutdown(); + connection.close(); + stream.close(); + } } } @@ -82,8 +97,4 @@ public void cleanUpConnectionBasedOnStatusCode(HttpStream stream) { releaseConnection(stream); } } - - public AtomicBoolean connectionClosed() { - return connectionClosed; - } } diff --git a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/AwsCrtHttpClientWireMockTest.java b/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/AwsCrtHttpClientWireMockTest.java index e052f225a4c9..47b0f2be5bdb 100644 --- a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/AwsCrtHttpClientWireMockTest.java +++ b/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/AwsCrtHttpClientWireMockTest.java @@ -28,7 +28,11 @@ import com.github.tomakehurst.wiremock.junit.WireMockRule; import java.io.ByteArrayInputStream; +import java.io.IOException; import java.net.URI; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Rule; @@ -51,16 +55,20 @@ public class AwsCrtHttpClientWireMockTest { public WireMockRule mockServer = new WireMockRule(wireMockConfig() .dynamicPort()); + private static ScheduledExecutorService executorService; + @BeforeClass public static void setup() { System.setProperty("aws.crt.debugnative", "true"); Log.initLoggingToStdout(Log.LogLevel.Warn); + executorService = Executors.newScheduledThreadPool(1); } @AfterClass public static void tearDown() { // Verify there is no resource leak. CrtResource.waitForNoResources(); + executorService.shutdown(); } @Test @@ -107,6 +115,26 @@ public void sharedEventLoopGroup_closeOneClient_shouldNotAffectOtherClients() th } } + @Test + public void abortRequest_shouldFailTheExceptionWithIOException() throws Exception { + try (SdkHttpClient client = AwsCrtHttpClient.create()) { + String body = randomAlphabetic(10); + URI uri = URI.create("http://localhost:" + mockServer.port()); + stubFor(any(urlPathEqualTo("/")).willReturn(aResponse().withFixedDelay(1000).withBody(body))); + SdkHttpRequest request = createRequest(uri); + + HttpExecuteRequest.Builder executeRequestBuilder = HttpExecuteRequest.builder(); + executeRequestBuilder.request(request) + .contentStreamProvider(() -> new ByteArrayInputStream(new byte[0])); + + ExecutableHttpRequest executableRequest = client.prepareRequest(executeRequestBuilder.build()); + executorService.schedule(() -> executableRequest.abort(), 100, TimeUnit.MILLISECONDS); + executableRequest.abort(); + assertThatThrownBy(() -> executableRequest.call()).isInstanceOf(IOException.class) + .hasMessageContaining("cancelled"); + } + } + /** * Make a simple request and wait for it to finish. * diff --git a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/BaseHttpStreamResponseHandlerTest.java b/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/BaseHttpStreamResponseHandlerTest.java index 10c51b1a6028..f9b20742613f 100644 --- a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/BaseHttpStreamResponseHandlerTest.java +++ b/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/BaseHttpStreamResponseHandlerTest.java @@ -16,18 +16,25 @@ package software.amazon.awssdk.http.crt.internal; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import org.apache.commons.lang3.RandomStringUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import software.amazon.awssdk.crt.http.HttpClientConnection; import software.amazon.awssdk.crt.http.HttpException; @@ -35,6 +42,8 @@ import software.amazon.awssdk.crt.http.HttpHeaderBlock; import software.amazon.awssdk.crt.http.HttpStream; import software.amazon.awssdk.crt.http.HttpStreamResponseHandler; +import software.amazon.awssdk.http.crt.internal.response.InputStreamAdaptingHttpStreamResponseHandler; +import software.amazon.awssdk.utils.async.SimplePublisher; @ExtendWith(MockitoExtension.class) public abstract class BaseHttpStreamResponseHandlerTest { @@ -44,10 +53,15 @@ public abstract class BaseHttpStreamResponseHandlerTest { @Mock HttpStream httpStream; + @Mock + SimplePublisher simplePublisher; + HttpStreamResponseHandler responseHandler; abstract HttpStreamResponseHandler responseHandler(); + abstract HttpStreamResponseHandler responseHandlerWithMockedPublisher(SimplePublisher simplePublisher); + @BeforeEach public void setUp() { requestFuture = new CompletableFuture<>(); @@ -113,6 +127,101 @@ void streamClosed_shouldNotIncreaseStreamWindow() throws InterruptedException { verify(httpStream, never()).incrementWindow(anyInt()); } + @Test + void publisherWritesFutureFails_shouldShutdownConnection() { + SimplePublisher simplePublisher = Mockito.mock(SimplePublisher.class); + CompletableFuture future = new CompletableFuture<>(); + when(simplePublisher.send(any(ByteBuffer.class))).thenReturn(future); + + HttpStreamResponseHandler handler = responseHandlerWithMockedPublisher(simplePublisher); + HttpHeader[] httpHeaders = getHttpHeaders(); + + handler.onResponseHeaders(httpStream, 200, HttpHeaderBlock.MAIN.getValue(), + httpHeaders); + handler.onResponseHeadersDone(httpStream, 0); + handler.onResponseBody(httpStream, + RandomStringUtils.random(1 * 1024 * 1024).getBytes(StandardCharsets.UTF_8)); + RuntimeException runtimeException = new RuntimeException(); + future.completeExceptionally(runtimeException); + + try { + requestFuture.join(); + } catch (Exception e) { + // we don't verify here because it behaves differently in async and sync + } + + verify(crtConn).shutdown(); + verify(crtConn).close(); + verify(httpStream).close(); + verify(httpStream, never()).incrementWindow(anyInt()); + } + + @Test + void publisherWritesFutureCompletesAfterConnectionClosed_shouldNotInvokeIncrementWindow() { + CompletableFuture future = new CompletableFuture<>(); + when(simplePublisher.send(any(ByteBuffer.class))).thenReturn(future); + when(simplePublisher.complete()).thenReturn(future); + + HttpStreamResponseHandler handler = responseHandlerWithMockedPublisher(simplePublisher); + + + HttpHeader[] httpHeaders = getHttpHeaders(); + + handler.onResponseHeaders(httpStream, 200, HttpHeaderBlock.MAIN.getValue(), + httpHeaders); + handler.onResponseHeadersDone(httpStream, 0); + handler.onResponseBody(httpStream, + RandomStringUtils.random(1 * 1024 * 1024).getBytes(StandardCharsets.UTF_8)); + handler.onResponseComplete(httpStream, 0); + future.complete(null); + + requestFuture.join(); + verify(crtConn, never()).shutdown(); + verify(crtConn).close(); + verify(httpStream).close(); + verify(httpStream, never()).incrementWindow(anyInt()); + } + + @Test + void publisherWritesFutureCompletesWhenConnectionClosed_shouldNotInvokeIncrementWindow() { + CompletableFuture future = new CompletableFuture<>(); + when(simplePublisher.send(any(ByteBuffer.class))).thenReturn(future); + when(simplePublisher.complete()).thenReturn(future); + + HttpStreamResponseHandler handler = responseHandlerWithMockedPublisher(simplePublisher); + + + HttpHeader[] httpHeaders = getHttpHeaders(); + + handler.onResponseHeaders(httpStream, 200, HttpHeaderBlock.MAIN.getValue(), + httpHeaders); + handler.onResponseHeadersDone(httpStream, 0); + handler.onResponseBody(httpStream, + RandomStringUtils.random(1 * 1024 * 1024).getBytes(StandardCharsets.UTF_8)); + + // This tracker tracks which of the two operation completes first + AtomicInteger whenCompleteTracker = new AtomicInteger(0); + CompletableFuture onResponseComplete = CompletableFuture.runAsync(() -> handler.onResponseComplete(httpStream, 0)) + .whenComplete((r, t) -> whenCompleteTracker.compareAndSet(0, 1)); + + CompletableFuture writeComplete = CompletableFuture.runAsync(() -> future.complete(null)) + .whenComplete((r, t) -> whenCompleteTracker.compareAndSet(0, 2)); + requestFuture.join(); + + CompletableFuture.allOf(onResponseComplete, writeComplete).join(); + + if (whenCompleteTracker.get() == 1) { + // onResponseComplete finishes first + verify(httpStream, never()).incrementWindow(anyInt()); + } else { + verify(httpStream).incrementWindow(anyInt()); + } + + verify(crtConn, never()).shutdown(); + verify(crtConn).close(); + verify(httpStream).close(); + } + static HttpHeader[] getHttpHeaders() { HttpHeader[] httpHeaders = new HttpHeader[1]; httpHeaders[0] = new HttpHeader("Content-Length", "1"); diff --git a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/CrtResponseHandlerTest.java b/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/CrtResponseHandlerTest.java index 8668e0fc0054..0628efaf15b2 100644 --- a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/CrtResponseHandlerTest.java +++ b/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/CrtResponseHandlerTest.java @@ -41,6 +41,7 @@ import software.amazon.awssdk.http.async.SdkAsyncHttpResponseHandler; import software.amazon.awssdk.http.crt.internal.response.CrtResponseAdapter; import software.amazon.awssdk.http.crt.internal.response.InputStreamAdaptingHttpStreamResponseHandler; +import software.amazon.awssdk.utils.async.SimplePublisher; public class CrtResponseHandlerTest extends BaseHttpStreamResponseHandlerTest { @@ -53,6 +54,15 @@ HttpStreamResponseHandler responseHandler() { return CrtResponseAdapter.toCrtResponseHandler(crtConn, requestFuture, responseHandler); } + @Override + HttpStreamResponseHandler responseHandlerWithMockedPublisher(SimplePublisher simplePublisher) { + AsyncResponseHandler responseHandler = new AsyncResponseHandler<>((response, + executionAttributes) -> null, Function.identity(), new ExecutionAttributes()); + + responseHandler.prepare(); + return new CrtResponseAdapter(crtConn, requestFuture, responseHandler, simplePublisher); + } + @Test void publisherFailedToDeliverEvents_shouldShutDownConnection() { SdkAsyncHttpResponseHandler responseHandler = new TestAsyncHttpResponseHandler(); diff --git a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/InputStreamAdaptingHttpStreamResponseHandlerTest.java b/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/InputStreamAdaptingHttpStreamResponseHandlerTest.java index b5ef71dbc5cd..45c7fdccbfe9 100644 --- a/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/InputStreamAdaptingHttpStreamResponseHandlerTest.java +++ b/http-clients/aws-crt-client/src/test/java/software/amazon/awssdk/http/crt/internal/InputStreamAdaptingHttpStreamResponseHandlerTest.java @@ -17,12 +17,17 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import io.reactivex.Completable; import java.io.IOException; +import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.concurrent.CancellationException; import java.util.concurrent.CompletableFuture; @@ -34,6 +39,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import software.amazon.awssdk.crt.http.HttpClientConnection; import software.amazon.awssdk.crt.http.HttpHeader; @@ -45,6 +51,8 @@ import software.amazon.awssdk.http.async.SdkAsyncHttpResponseHandler; import software.amazon.awssdk.http.crt.internal.response.CrtResponseAdapter; import software.amazon.awssdk.http.crt.internal.response.InputStreamAdaptingHttpStreamResponseHandler; +import software.amazon.awssdk.utils.CompletableFutureUtils; +import software.amazon.awssdk.utils.async.SimplePublisher; public class InputStreamAdaptingHttpStreamResponseHandlerTest extends BaseHttpStreamResponseHandlerTest { @@ -53,6 +61,11 @@ HttpStreamResponseHandler responseHandler() { return new InputStreamAdaptingHttpStreamResponseHandler(crtConn, requestFuture); } + @Override + HttpStreamResponseHandler responseHandlerWithMockedPublisher(SimplePublisher simplePublisher) { + return new InputStreamAdaptingHttpStreamResponseHandler(crtConn, requestFuture, simplePublisher); + } + @Test void abortStream_shouldShutDownConnection() throws IOException { HttpHeader[] httpHeaders = getHttpHeaders(); diff --git a/http-clients/netty-nio-client/pom.xml b/http-clients/netty-nio-client/pom.xml index 9b8751fde215..447cb3fbddb6 100644 --- a/http-clients/netty-nio-client/pom.xml +++ b/http-clients/netty-nio-client/pom.xml @@ -20,7 +20,7 @@ http-clients software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java b/http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java index 4d653a45f729..eb3ecd09eb3c 100644 --- a/http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java +++ b/http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java @@ -314,7 +314,7 @@ private void onCancel() { try { SdkCancellationException e = new SdkCancellationException( "Subscriber cancelled before all events were published"); - log.warn(channelContext.channel(), () -> "Subscriber cancelled before all events were published"); + log.debug(channelContext.channel(), () -> "Subscriber cancelled before all events were published"); executeFuture.completeExceptionally(e); } finally { runAndLogError(channelContext.channel(), () -> "Could not release channel back to the pool", diff --git a/http-clients/pom.xml b/http-clients/pom.xml index 7fb306371b14..9481d62d6011 100644 --- a/http-clients/pom.xml +++ b/http-clients/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/http-clients/url-connection-client/pom.xml b/http-clients/url-connection-client/pom.xml index dde3b4b96b14..7ba19bdd265d 100644 --- a/http-clients/url-connection-client/pom.xml +++ b/http-clients/url-connection-client/pom.xml @@ -20,7 +20,7 @@ http-clients software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/metric-publishers/cloudwatch-metric-publisher/pom.xml b/metric-publishers/cloudwatch-metric-publisher/pom.xml index 3f4365d5ea8e..68012fb78147 100644 --- a/metric-publishers/cloudwatch-metric-publisher/pom.xml +++ b/metric-publishers/cloudwatch-metric-publisher/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk metric-publishers - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudwatch-metric-publisher diff --git a/metric-publishers/pom.xml b/metric-publishers/pom.xml index ac6844eeda6b..7e8120de3c8c 100644 --- a/metric-publishers/pom.xml +++ b/metric-publishers/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT metric-publishers diff --git a/mvnw b/mvnw index 5643201c7d82..8d937f4c14f1 100755 --- a/mvnw +++ b/mvnw @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- -# Maven Start Up Batch script +# Apache Maven Wrapper startup batch script, version 3.2.0 # # Required ENV vars: # ------------------ @@ -27,7 +27,6 @@ # # Optional ENV vars # ----------------- -# M2_HOME - location of maven2's installed home dir # MAVEN_OPTS - parameters passed to the Java VM when running Maven # e.g. to debug Maven itself, use # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @@ -54,7 +53,7 @@ fi cygwin=false; darwin=false; mingw=false -case "`uname`" in +case "$(uname)" in CYGWIN*) cygwin=true ;; MINGW*) mingw=true;; Darwin*) darwin=true @@ -62,9 +61,9 @@ case "`uname`" in # See https://developer.apple.com/library/mac/qa/qa1170/_index.html if [ -z "$JAVA_HOME" ]; then if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" + JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME else - export JAVA_HOME="/Library/Java/Home" + JAVA_HOME="/Library/Java/Home"; export JAVA_HOME fi fi ;; @@ -72,68 +71,38 @@ esac if [ -z "$JAVA_HOME" ] ; then if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` + JAVA_HOME=$(java-config --jre-home) fi fi -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + JAVA_HOME=$(cygpath --unix "$JAVA_HOME") [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` + CLASSPATH=$(cygpath --path --unix "$CLASSPATH") fi # For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && + JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" fi if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + javaExecutable="$(which javac)" + if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + readLink=$(which readlink) + if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + javaHome="$(dirname "\"$javaExecutable\"")" + javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" else - javaExecutable="`readlink -f \"$javaExecutable\"`" + javaExecutable="$(readlink -f "\"$javaExecutable\"")" fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` + javaHome="$(dirname "\"$javaExecutable\"")" + javaHome=$(expr "$javaHome" : '\(.*\)/bin') JAVA_HOME="$javaHome" export JAVA_HOME fi @@ -149,7 +118,7 @@ if [ -z "$JAVACMD" ] ; then JAVACMD="$JAVA_HOME/bin/java" fi else - JAVACMD="`\\unset -f command; \\command -v java`" + JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" fi fi @@ -163,12 +132,9 @@ if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { - if [ -z "$1" ] then echo "Path not specified to find_maven_basedir" @@ -184,96 +150,99 @@ find_maven_basedir() { fi # workaround for JBEAP-8937 (on Solaris 10/Sparc) if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` + wdir=$(cd "$wdir/.." || exit 1; pwd) fi # end of workaround done - echo "${basedir}" + printf '%s' "$(cd "$basedir" || exit 1; pwd)" } # concatenates all lines of a file concat_lines() { if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" + # Remove \r in case we run on Windows within Git Bash + # and check out the repository with auto CRLF management + # enabled. Otherwise, we may read lines that are delimited with + # \r\n and produce $'-Xarg\r' rather than -Xarg due to word + # splitting rules. + tr -s '\r\n' ' ' < "$1" + fi +} + +log() { + if [ "$MVNW_VERBOSE" = true ]; then + printf '%s\n' "$1" fi } -BASE_DIR=`find_maven_basedir "$(pwd)"` +BASE_DIR=$(find_maven_basedir "$(dirname "$0")") if [ -z "$BASE_DIR" ]; then exit 1; fi +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +log "$MAVEN_PROJECTBASEDIR" + ########################################################################################## # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central # This allows using the maven wrapper in projects that prohibit checking in binary data. ########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi +wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" +if [ -r "$wrapperJarPath" ]; then + log "Found $wrapperJarPath" else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi + log "Couldn't find $wrapperJarPath, downloading it ..." + if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" else - jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + while IFS="=" read -r key value; do + # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) + safeValue=$(echo "$value" | tr -d '\r') + case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" + log "Downloading from: $wrapperUrl" + if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") fi if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi + log "Found wget ... using wget" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" fi elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi + log "Found curl ... using curl" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" fi - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + log "Falling back to using Java to download" + javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" # For Cygwin, switch paths to Windows format before running javac if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` + javaSource=$(cygpath --path --windows "$javaSource") + javaClass=$(cygpath --path --windows "$javaClass") fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then + log " - Compiling MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/javac" "$javaSource") fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + if [ -e "$javaClass" ]; then + log " - Running MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" fi fi fi @@ -282,35 +251,58 @@ fi # End of extension ########################################################################################## -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR +# If specified, validate the SHA-256 sum of the Maven wrapper jar file +wrapperSha256Sum="" +while IFS="=" read -r key value; do + case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; + esac +done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" +if [ -n "$wrapperSha256Sum" ]; then + wrapperSha256Result=false + if command -v sha256sum > /dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then + wrapperSha256Result=true + fi + elif command -v shasum > /dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then + wrapperSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." + echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." + exit 1 + fi + if [ $wrapperSha256Result = false ]; then + echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2 + echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2 + echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2 + exit 1 + fi fi + MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + CLASSPATH=$(cygpath --path --windows "$CLASSPATH") [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` + MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") fi # Provide a "standardized" way to retrieve the CLI args that will # work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" export MAVEN_CMD_LINE_ARGS WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain +# shellcheck disable=SC2086 # safe args exec "$JAVACMD" \ $MAVEN_OPTS \ $MAVEN_DEBUG_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" \ "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd index 23b7079a3d4c..f80fbad3e766 100644 --- a/mvnw.cmd +++ b/mvnw.cmd @@ -18,13 +18,12 @@ @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script +@REM Apache Maven Wrapper startup batch script, version 3.2.0 @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @REM @REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven @@ -120,10 +119,10 @@ SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B + IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B ) @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central @@ -134,11 +133,11 @@ if exist %WRAPPER_JAR% ( ) ) else ( if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" ) if "%MVNW_VERBOSE%" == "true" ( echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% + echo Downloading from: %WRAPPER_URL% ) powershell -Command "&{"^ @@ -146,7 +145,7 @@ if exist %WRAPPER_JAR% ( "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ "}" if "%MVNW_VERBOSE%" == "true" ( echo Finished downloading %WRAPPER_JAR% @@ -154,6 +153,24 @@ if exist %WRAPPER_JAR% ( ) @REM End of extension +@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file +SET WRAPPER_SHA_256_SUM="" +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B +) +IF NOT %WRAPPER_SHA_256_SUM%=="" ( + powershell -Command "&{"^ + "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ + "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ + " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ + " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ + " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ + " exit 1;"^ + "}"^ + "}" + if ERRORLEVEL 1 goto error +) + @REM Provide a "standardized" way to retrieve the CLI args that will @REM work with both Windows and non-Windows executions. set MAVEN_CMD_LINE_ARGS=%* diff --git a/pom.xml b/pom.xml index a437cc74aad7..c8d07ec1f068 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 4.0.0 software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT pom AWS Java SDK :: Parent The Amazon Web Services SDK for Java provides Java APIs @@ -88,6 +88,7 @@ test/ruleset-testing-core test/old-client-version-compatibility-test test/bundle-logging-bridge-binding-test + test/crt-unavailable-tests ${scm.github.url} @@ -95,7 +96,7 @@ ${project.version} - 2.23.7 + 2.24.12 2.15.2 2.15.2 2.13.2 @@ -108,7 +109,7 @@ 3.15.1 - 4.1.100.Final + 4.1.107.Final 3.4.6 1.3 UTF-8 @@ -119,7 +120,7 @@ 2.2.21 1.15 1.29 - 0.29.7 + 0.29.9 5.10.0 @@ -133,7 +134,7 @@ 7.1.0 2.6 2.0.61.Final - 1.16.0 + 1.25.0 1.0.392 1.0.8.RELEASE 9.4.45.v20220203 @@ -159,7 +160,7 @@ 2.13.0 3.2.1 - 3.1.0 + 3.2.0 1.10.14 @@ -177,6 +178,9 @@ 1.0.4 + + 2.0.1 + ${skipTests} ${project.basedir}/src/it/java ${session.executionRootDirectory} @@ -270,6 +274,8 @@ **/*IntegrationTests.java **/*IntegTest.java **/*IntegrationTestCase.java + **/*ClientEndpointTests.java + **/*EndpointProviderTests.java **/Test*.java @@ -532,6 +538,9 @@ old interfaces, but that should become a test scoped dependency in modules where needed. And the line below removed. --> software.amazon.awssdk:auth + + + software.amazon.s3.accessgrants:* @@ -622,6 +631,14 @@ auth auth-crt aws-core + crt-core + http-auth + http-auth-spi + http-auth-aws + http-auth-aws-crt + http-auth-aws-eventstream + endpoints-spi + identity-spi json-utils metrics-spi profiles @@ -638,11 +655,13 @@ dynamodb-enhanced + s3-transfer-manager + iam-policy-builder - + s3 s3-control - + sqs rds apigateway polly @@ -651,13 +670,6 @@ *.internal.* software.amazon.awssdk.thirdparty.* software.amazon.awssdk.regions.* - - software.amazon.awssdk.auth.credentials.AwsCredentials - software.amazon.awssdk.auth.token.credentials.SdkToken - - software.amazon.awssdk.services.s3.model.ObjectPart - - software.amazon.awssdk.core.interceptor.ExecutionAttribute true diff --git a/release-scripts/pom.xml b/release-scripts/pom.xml index 3ebae95af1b5..7ed981b983f1 100644 --- a/release-scripts/pom.xml +++ b/release-scripts/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../pom.xml release-scripts diff --git a/scripts/changelog/writer.py b/scripts/changelog/writer.py index a1236f7032a3..ad9cad65e502 100644 --- a/scripts/changelog/writer.py +++ b/scripts/changelog/writer.py @@ -127,6 +127,10 @@ def get_map_for_type(self, t): def write(self, s): self.output_file.write(s) +def write_archived_changelogs_message(changelog_file): + message = " #### 👋 _Looking for changelogs for older versions? You can find them in the [changelogs](./changelogs) directory._\n" + changelog_file.write(message) + def write_changelog(): unreleased = load_unreleased_changes(".changes/next-release") released = load_all_released_changes(".changes") @@ -141,6 +145,7 @@ def write_changelog(): return with open('CHANGELOG.md', 'w') as cl: + write_archived_changelogs_message(cl) writer = ChangelogWriter(cl) for changes in all_changes: writer.write_changes(changes) diff --git a/services-custom/dynamodb-enhanced/pom.xml b/services-custom/dynamodb-enhanced/pom.xml index 2d31ad25b38d..cf3cfb916404 100644 --- a/services-custom/dynamodb-enhanced/pom.xml +++ b/services-custom/dynamodb-enhanced/pom.xml @@ -21,20 +21,12 @@ software.amazon.awssdk services-custom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT dynamodb-enhanced AWS Java SDK :: DynamoDB :: Enhanced Client https://aws.amazon.com/sdkforjava - - - dynamodblocal - AWS DynamoDB Local Release Repository - https://s3-us-west-2.amazonaws.com/dynamodb-local/release - - - ${project.parent.version} 1.8 @@ -94,6 +86,9 @@ ${project.build.directory}/native-libs + + 0 + diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/DynamoDbAsyncTable.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/DynamoDbAsyncTable.java index 3b117643331b..e193fe681df8 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/DynamoDbAsyncTable.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/DynamoDbAsyncTable.java @@ -324,7 +324,7 @@ default CompletableFuture> deleteItemWithResponse( * * * @param request A {@link GetItemEnhancedRequest} with key and optional directives for retrieving an item from the table. - * @return a {@link CompletableFuture} of the item that was persisted in the database before it was deleted. + * @return a {@link CompletableFuture} of the retrieved item. */ default CompletableFuture getItem(GetItemEnhancedRequest request) { throw new UnsupportedOperationException(); @@ -423,7 +423,7 @@ default CompletableFuture getItem(T keyItem) { * * * @param request A {@link GetItemEnhancedRequest} with key and optional directives for retrieving an item from the table. - * @return a {@link CompletableFuture} of the item that was persisted in the database before it was deleted. + * @return a {@link CompletableFuture} containing the response returned by DynamoDB. */ default CompletableFuture> getItemWithResponse(GetItemEnhancedRequest request) { throw new UnsupportedOperationException(); @@ -454,7 +454,7 @@ default CompletableFuture> getItemWithResponse(GetIte * * @param requestConsumer A {@link Consumer} of {@link GetItemEnhancedRequest.Builder} with key and optional directives * for retrieving an item from the table. - * @return a {@link CompletableFuture} of the retrieved item + * @return a {@link CompletableFuture} containing the response returned by DynamoDB. */ default CompletableFuture> getItemWithResponse( Consumer requestConsumer) { @@ -931,7 +931,7 @@ default CompletableFuture deleteTable() { } /** - * Describes a table in DynamoDb with the name defined for this {@link DynamoDbAsyncTable). + * Describes a table in DynamoDb with the name defined for this {@link DynamoDbAsyncTable}. * This operation calls the low-level DynamoDB API DescribeTable operation, * see {@link DynamoDbAsyncClient#describeTable(DescribeTableRequest)} * diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/Expression.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/Expression.java index 1721bc75f17d..fa0f69ad9ed3 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/Expression.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/Expression.java @@ -15,9 +15,13 @@ package software.amazon.awssdk.enhanced.dynamodb; +import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.LinkedList; import java.util.Map; +import java.util.stream.Collectors; import software.amazon.awssdk.annotations.NotThreadSafe; import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.annotations.ThreadSafe; @@ -46,6 +50,9 @@ @SdkPublicApi @ThreadSafe public final class Expression { + public static final String AND = "AND"; + public static final String OR = "OR"; + private final String expression; private final Map expressionValues; private final Map expressionNames; @@ -67,7 +74,7 @@ public static Builder builder() { } /** - * Coalesces two complete expressions into a single expression. The expression string will be joined using the + * Coalesces two complete expressions into a single expression. The expression string will be joined using the * supplied join token, and the ExpressionNames and ExpressionValues maps will be merged. * @param expression1 The first expression to coalesce * @param expression2 The second expression to coalesce @@ -93,6 +100,61 @@ public static Expression join(Expression expression1, Expression expression2, St .build(); } + /** + * @see #join(String, Collection) + */ + public static Expression and(Collection expressions) { + return join(AND, expressions); + } + + /** + * @see #join(String, Collection) + */ + public static Expression or(Collection expressions) { + return join(OR, expressions); + } + + /** + * @see #join(String, Collection) + */ + public static Expression join(String joinToken, Expression... expressions) { + return join(joinToken, Arrays.asList(expressions)); + } + + /** + * Coalesces multiple complete expressions into a single expression. The expression string will be joined using the + * supplied join token, and the ExpressionNames and ExpressionValues maps will be merged. + * @param joinToken The join token to be used to join the expression strings (e.g.: 'AND', 'OR') + * @param expressions The expressions to coalesce + * @return The coalesced expression + * @throws IllegalArgumentException if a conflict occurs when merging ExpressionNames or ExpressionValues + */ + public static Expression join(String joinToken, Collection expressions) { + joinToken = joinToken.trim(); + if (expressions.isEmpty()) { + return null; + } + + if (expressions.size() == 1) { + return expressions.toArray(new Expression[] {})[0]; + } + + joinToken = ") " + joinToken + " ("; + String expression = expressions.stream() + .map(Expression::expression) + .collect(Collectors.joining(joinToken, "(", ")")); + + Builder builder = Expression.builder() + .expression(expression); + + expressions.forEach(expr -> { + builder.mergeExpressionValues(expr.expressionValues()) + .mergeExpressionNames(expr.expressionNames()); + }); + + return builder.build(); + } + /** * Coalesces two expression strings into a single expression string. The expression string will be joined using the * supplied join token. @@ -198,6 +260,28 @@ public Expression and(Expression expression) { return join(this, expression, " AND "); } + /** + * Coalesces multiple complete expressions into a single expression joined by 'AND'. + * + * @see #join(String, Collection) + */ + public Expression and(Expression... expressions) { + LinkedList expressionList = new LinkedList<>(Arrays.asList(expressions)); + expressionList.addFirst(this); + return join(AND, expressionList); + } + + /** + * Coalesces multiple complete expressions into a single expression joined by 'OR'. + * + * @see #join(String, Collection) + */ + public Expression or(Expression... expressions) { + LinkedList expressionList = new LinkedList<>(Arrays.asList(expressions)); + expressionList.addFirst(this); + return join(OR, expressionList); + } + @Override public boolean equals(Object o) { if (this == o) { @@ -255,6 +339,33 @@ public Builder expressionValues(Map expressionValues) { return this; } + /** + * Merge the given ExpressionValues into the builders existing ExpressionValues + * @param expressionValues The values to merge into the ExpressionValues map + * @throws IllegalArgumentException if a conflict occurs when merging ExpressionValues + */ + public Builder mergeExpressionValues(Map expressionValues) { + if (this.expressionValues == null) { + return expressionValues(expressionValues); + } + + if (expressionValues == null) { + return this; + } + + expressionValues.forEach((key, value) -> { + AttributeValue oldValue = this.expressionValues.put(key, value); + + if (oldValue != null && !oldValue.equals(value)) { + throw new IllegalArgumentException( + String.format("Attempt to coalesce expressions with conflicting expression values. " + + "Expression value key = '%s'", key)); + } + }); + + return this; + } + /** * Adds a single element to the optional 'expression values' token map */ @@ -275,6 +386,33 @@ public Builder expressionNames(Map expressionNames) { return this; } + /** + * Merge the given ExpressionNames into the builders existing ExpressionNames + * @param expressionNames The values to merge into the ExpressionNames map + * @throws IllegalArgumentException if a conflict occurs when merging ExpressionNames + */ + public Builder mergeExpressionNames(Map expressionNames) { + if (this.expressionNames == null) { + return expressionNames(expressionNames); + } + + if (expressionNames == null) { + return this; + } + + expressionNames.forEach((key, value) -> { + String oldValue = this.expressionNames.put(key, value); + + if (oldValue != null && !oldValue.equals(value)) { + throw new IllegalArgumentException( + String.format("Attempt to coalesce expressions with conflicting expression names. " + + "Expression name key = '%s'", key)); + } + }); + + return this; + } + /** * Adds a single element to the optional 'expression names' token map */ diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/ExpressionTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/ExpressionTest.java index c5c394e89bbb..aa18fe7f553b 100644 --- a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/ExpressionTest.java +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/ExpressionTest.java @@ -144,4 +144,242 @@ public void joinValues_conflictingKey() { exception.expectMessage("two"); Expression.joinValues(values1, values2); } + + @Test + public void join_correctlyJoins() { + Map names1 = new HashMap<>(); + names1.put("one", "1"); + Map values1 = new HashMap<>(); + values1.put("one", EnhancedAttributeValue.fromString("1").toAttributeValue()); + Expression expression1 = Expression.builder() + .expression("one") + .expressionNames(names1) + .expressionValues(values1) + .build(); + + Map names2 = new HashMap<>(); + names2.put("two", "2"); + Map values2 = new HashMap<>(); + values2.put("two", EnhancedAttributeValue.fromString("2").toAttributeValue()); + Expression expression2 = Expression.builder() + .expression("two") + .expressionNames(names2) + .expressionValues(values2) + .build(); + + Map names3 = new HashMap<>(); + names3.put("three", "3"); + Map values3 = new HashMap<>(); + values3.put("three", EnhancedAttributeValue.fromString("3").toAttributeValue()); + Expression expression3 = Expression.builder() + .expression("three") + .expressionNames(names3) + .expressionValues(values3) + .build(); + + Expression joinedExpression = Expression.join(Expression.AND, expression1, expression2, expression3); + + String expectedExpression = "(one) AND (two) AND (three)"; + assertThat(joinedExpression.expression(), is(expectedExpression)); + + final Map names = joinedExpression.expressionNames(); + assertThat(names.size(), is(3)); + assertThat(names, hasEntry("one", "1")); + assertThat(names, hasEntry("two", "2")); + assertThat(names, hasEntry("three", "3")); + + final Map values = joinedExpression.expressionValues(); + assertThat(values.size(), is(3)); + assertThat(values, hasEntry("one", AttributeValue.fromS("1"))); + assertThat(values, hasEntry("two", AttributeValue.fromS("2"))); + assertThat(values, hasEntry("three", AttributeValue.fromS("3"))); + } + + @Test + public void join_conflictingKey() { + Map names1 = new HashMap<>(); + names1.put("one", "1"); + Map values1 = new HashMap<>(); + values1.put("one", EnhancedAttributeValue.fromString("1").toAttributeValue()); + Expression expression1 = Expression.builder() + .expression("one") + .expressionNames(names1) + .expressionValues(values1) + .build(); + + Map names2 = new HashMap<>(); + names2.put("one", "2"); + Map values2 = new HashMap<>(); + values2.put("one", EnhancedAttributeValue.fromString("2").toAttributeValue()); + Expression expression2 = Expression.builder() + .expression("two") + .expressionNames(names2) + .expressionValues(values2) + .build(); + + Map names3 = new HashMap<>(); + names3.put("one", "3"); + Map values3 = new HashMap<>(); + values3.put("one", EnhancedAttributeValue.fromString("3").toAttributeValue()); + Expression expression3 = Expression.builder() + .expression("three") + .expressionNames(names3) + .expressionValues(values3) + .build(); + + exception.expect(IllegalArgumentException.class); + exception.expectMessage("on"); + Expression.join(Expression.AND, expression1, expression2, expression3); + } + + @Test + public void and_correctlyJoins() { + Map names1 = new HashMap<>(); + names1.put("one", "1"); + Map values1 = new HashMap<>(); + values1.put("one", EnhancedAttributeValue.fromString("1").toAttributeValue()); + Expression expression1 = Expression.builder() + .expression("one") + .expressionNames(names1) + .expressionValues(values1) + .build(); + + Map names2 = new HashMap<>(); + names2.put("two", "2"); + Map values2 = new HashMap<>(); + values2.put("two", EnhancedAttributeValue.fromString("2").toAttributeValue()); + Expression expression2 = Expression.builder() + .expression("two") + .expressionNames(names2) + .expressionValues(values2) + .build(); + + Map names3 = new HashMap<>(); + names3.put("three", "3"); + Map values3 = new HashMap<>(); + values3.put("three", EnhancedAttributeValue.fromString("3").toAttributeValue()); + Expression expression3 = Expression.builder() + .expression("three") + .expressionNames(names3) + .expressionValues(values3) + .build(); + + Expression joinedExpression = expression1.and(expression2, expression3); + + String expectedExpression = "(one) AND (two) AND (three)"; + assertThat(joinedExpression.expression(), is(expectedExpression)); + + final Map names = joinedExpression.expressionNames(); + assertThat(names.size(), is(3)); + assertThat(names, hasEntry("one", "1")); + assertThat(names, hasEntry("two", "2")); + assertThat(names, hasEntry("three", "3")); + + final Map values = joinedExpression.expressionValues(); + assertThat(values.size(), is(3)); + assertThat(values, hasEntry("one", AttributeValue.fromS("1"))); + assertThat(values, hasEntry("two", AttributeValue.fromS("2"))); + assertThat(values, hasEntry("three", AttributeValue.fromS("3"))); + } + + @Test + public void or_correctlyJoins() { + Map names1 = new HashMap<>(); + names1.put("one", "1"); + Map values1 = new HashMap<>(); + values1.put("one", EnhancedAttributeValue.fromString("1").toAttributeValue()); + Expression expression1 = Expression.builder() + .expression("one") + .expressionNames(names1) + .expressionValues(values1) + .build(); + + Map names2 = new HashMap<>(); + names2.put("two", "2"); + Map values2 = new HashMap<>(); + values2.put("two", EnhancedAttributeValue.fromString("2").toAttributeValue()); + Expression expression2 = Expression.builder() + .expression("two") + .expressionNames(names2) + .expressionValues(values2) + .build(); + + Map names3 = new HashMap<>(); + names3.put("three", "3"); + Map values3 = new HashMap<>(); + values3.put("three", EnhancedAttributeValue.fromString("3").toAttributeValue()); + Expression expression3 = Expression.builder() + .expression("three") + .expressionNames(names3) + .expressionValues(values3) + .build(); + + Expression joinedExpression = expression1.or(expression2, expression3); + + String expectedExpression = "(one) OR (two) OR (three)"; + assertThat(joinedExpression.expression(), is(expectedExpression)); + + final Map names = joinedExpression.expressionNames(); + assertThat(names.size(), is(3)); + assertThat(names, hasEntry("one", "1")); + assertThat(names, hasEntry("two", "2")); + assertThat(names, hasEntry("three", "3")); + + final Map values = joinedExpression.expressionValues(); + assertThat(values.size(), is(3)); + assertThat(values, hasEntry("one", AttributeValue.fromS("1"))); + assertThat(values, hasEntry("two", AttributeValue.fromS("2"))); + assertThat(values, hasEntry("three", AttributeValue.fromS("3"))); + } + + @Test + public void compounded_expressions_correctlyJoins() { + Map names1 = new HashMap<>(); + names1.put("one", "1"); + Map values1 = new HashMap<>(); + values1.put("one", EnhancedAttributeValue.fromString("1").toAttributeValue()); + Expression expression1 = Expression.builder() + .expression("one") + .expressionNames(names1) + .expressionValues(values1) + .build(); + + Map names2 = new HashMap<>(); + names2.put("two", "2"); + Map values2 = new HashMap<>(); + values2.put("two", EnhancedAttributeValue.fromString("2").toAttributeValue()); + Expression expression2 = Expression.builder() + .expression("two") + .expressionNames(names2) + .expressionValues(values2) + .build(); + + Map names3 = new HashMap<>(); + names3.put("three", "3"); + Map values3 = new HashMap<>(); + values3.put("three", EnhancedAttributeValue.fromString("3").toAttributeValue()); + Expression expression3 = Expression.builder() + .expression("three") + .expressionNames(names3) + .expressionValues(values3) + .build(); + + Expression joinedExpression = expression1.and(expression2.or(expression3)); + + String expectedExpression = "(one) AND ((two) OR (three))"; + assertThat(joinedExpression.expression(), is(expectedExpression)); + + final Map names = joinedExpression.expressionNames(); + assertThat(names.size(), is(3)); + assertThat(names, hasEntry("one", "1")); + assertThat(names, hasEntry("two", "2")); + assertThat(names, hasEntry("three", "3")); + + final Map values = joinedExpression.expressionValues(); + assertThat(values.size(), is(3)); + assertThat(values, hasEntry("one", AttributeValue.fromS("1"))); + assertThat(values, hasEntry("two", AttributeValue.fromS("2"))); + assertThat(values, hasEntry("three", AttributeValue.fromS("3"))); + } + } diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/LocalDynamoDb.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/LocalDynamoDb.java index 7a6bdb5fce6a..c1e2cdabd19f 100644 --- a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/LocalDynamoDb.java +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/LocalDynamoDb.java @@ -76,7 +76,7 @@ DynamoDbClient createClient() { // The region is meaningless for local DynamoDb but required for client builder validation .region(Region.US_EAST_1) .credentialsProvider(StaticCredentialsProvider.create( - AwsBasicCredentials.create("dummy-key", "dummy-secret"))) + AwsBasicCredentials.create("dummykey", "dummysecret"))) .overrideConfiguration(o -> o.addExecutionInterceptor(new VerifyUserAgentInterceptor())) .build(); } @@ -87,7 +87,7 @@ DynamoDbAsyncClient createAsyncClient() { .endpointOverride(URI.create(endpoint)) .region(Region.US_EAST_1) .credentialsProvider(StaticCredentialsProvider.create( - AwsBasicCredentials.create("dummy-key", "dummy-secret"))) + AwsBasicCredentials.create("dummykey", "dummysecret"))) .overrideConfiguration(o -> o.addExecutionInterceptor(new VerifyUserAgentInterceptor())) .build(); } diff --git a/services-custom/iam-policy-builder/pom.xml b/services-custom/iam-policy-builder/pom.xml index 66b8d95d165e..725116602312 100644 --- a/services-custom/iam-policy-builder/pom.xml +++ b/services-custom/iam-policy-builder/pom.xml @@ -21,11 +21,10 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml iam-policy-builder - ${awsjavasdk.version} AWS Java SDK :: IAM :: Policy Builder Library simplifying the building, marshalling and unmarshalling of IAM Policies. diff --git a/services-custom/pom.xml b/services-custom/pom.xml index 2c8b411e1dc3..574e2bb21fc6 100644 --- a/services-custom/pom.xml +++ b/services-custom/pom.xml @@ -19,7 +19,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT services-custom AWS Java SDK :: Custom Services diff --git a/services-custom/s3-transfer-manager/pom.xml b/services-custom/s3-transfer-manager/pom.xml index c42092b54015..80f58754899d 100644 --- a/services-custom/s3-transfer-manager/pom.xml +++ b/services-custom/s3-transfer-manager/pom.xml @@ -21,11 +21,10 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml s3-transfer-manager - ${awsjavasdk.version} AWS Java SDK :: S3 :: Transfer Manager The S3 Transfer Manager allows customers to easily and optimally diff --git a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java index 98f81b731014..26f963177190 100644 --- a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java +++ b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java @@ -68,7 +68,9 @@ public static void setUpForAllIntegTests() throws Exception { Log.initLoggingToStdout(Log.LogLevel.Warn); System.setProperty("aws.crt.debugnative", "true"); s3 = s3ClientBuilder().build(); - s3Async = s3AsyncClientBuilder().build(); + s3Async = s3AsyncClientBuilder() + .multipartEnabled(true) + .build(); s3CrtAsync = S3CrtAsyncClient.builder() .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) .region(DEFAULT_REGION) diff --git a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadIntegrationTest.java b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadIntegrationTest.java index 2966a2bff8a1..4598e388af39 100644 --- a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadIntegrationTest.java +++ b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadIntegrationTest.java @@ -23,9 +23,9 @@ import java.nio.file.Files; import java.util.HashMap; import java.util.Map; -import java.util.UUID; import java.util.concurrent.CancellationException; import java.util.stream.Stream; +import org.apache.commons.lang3.RandomStringUtils; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.params.ParameterizedTest; @@ -97,22 +97,22 @@ void upload_file_SentCorrectly(S3TransferManager transferManager) throws IOExcep assertThat(obj.response().responseMetadata().requestId()).isNotNull(); assertThat(obj.response().metadata()).containsEntry("foobar", "FOO BAR"); assertThat(fileUpload.progress().snapshot().sdkResponse()).isPresent(); - assertListenerForSuccessfulTransferComplete(transferListener); + assertListenerForSuccessfulTransferComplete(transferListener); } private static void assertListenerForSuccessfulTransferComplete(CaptureTransferListener transferListener) { assertThat(transferListener.isTransferInitiated()).isTrue(); assertThat(transferListener.isTransferComplete()).isTrue(); assertThat(transferListener.getRatioTransferredList()).isNotEmpty(); - assertThat(transferListener.getRatioTransferredList().contains(0.0)); - assertThat(transferListener.getRatioTransferredList().contains(100.0)); + assertThat(transferListener.getRatioTransferredList()).contains(0.0); + assertThat(transferListener.getRatioTransferredList()).contains(1.0); assertThat(transferListener.getExceptionCaught()).isNull(); } @ParameterizedTest @MethodSource("transferManagers") void upload_asyncRequestBodyFromString_SentCorrectly(S3TransferManager transferManager) throws IOException { - String content = UUID.randomUUID().toString(); + String content = RandomStringUtils.randomAscii(OBJ_SIZE); CaptureTransferListener transferListener = new CaptureTransferListener(); Upload upload = diff --git a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadPauseResumeIntegrationTest.java b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadPauseResumeIntegrationTest.java index 23705c6bc5bf..0e995048e1ae 100644 --- a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadPauseResumeIntegrationTest.java +++ b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadPauseResumeIntegrationTest.java @@ -16,7 +16,6 @@ package software.amazon.awssdk.transfer.s3; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import static software.amazon.awssdk.testutils.service.S3BucketUtils.temporaryBucketName; import static software.amazon.awssdk.transfer.s3.SizeConstant.MB; @@ -26,9 +25,12 @@ import java.time.Duration; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.stream.Stream; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import software.amazon.awssdk.core.retry.backoff.FixedDelayBackoffStrategy; import software.amazon.awssdk.core.waiters.AsyncWaiter; import software.amazon.awssdk.core.waiters.Waiter; @@ -48,7 +50,8 @@ public class S3TransferManagerUploadPauseResumeIntegrationTest extends S3Integra private static final String BUCKET = temporaryBucketName(S3TransferManagerUploadPauseResumeIntegrationTest.class); private static final String KEY = "key"; // 24 * MB is chosen to make sure we have data written in the file already upon pausing. - private static final long OBJ_SIZE = 24 * MB; + private static final long LARGE_OBJ_SIZE = 24 * MB; + private static final long SMALL_OBJ_SIZE = 2 * MB; private static File largeFile; private static File smallFile; private static ScheduledExecutorService executorService; @@ -56,8 +59,8 @@ public class S3TransferManagerUploadPauseResumeIntegrationTest extends S3Integra @BeforeAll public static void setup() throws Exception { createBucket(BUCKET); - largeFile = new RandomTempFile(OBJ_SIZE); - smallFile = new RandomTempFile(2 * MB); + largeFile = new RandomTempFile(LARGE_OBJ_SIZE); + smallFile = new RandomTempFile(SMALL_OBJ_SIZE); executorService = Executors.newScheduledThreadPool(3); } @@ -69,30 +72,42 @@ public static void cleanup() { executorService.shutdown(); } - @Test - void pause_singlePart_shouldResume() { + private static Stream transferManagers() { + return Stream.of( + Arguments.of(tmJava, tmJava), + Arguments.of(tmCrt, tmCrt), + Arguments.of(tmCrt, tmJava), + Arguments.of(tmJava, tmCrt) + ); + } + + @ParameterizedTest + @MethodSource("transferManagers") + void pause_singlePart_shouldResume(S3TransferManager uploadTm, S3TransferManager resumeTm) { UploadFileRequest request = UploadFileRequest.builder() .putObjectRequest(b -> b.bucket(BUCKET).key(KEY)) .source(smallFile) .build(); - FileUpload fileUpload = tmCrt.uploadFile(request); + FileUpload fileUpload = uploadTm.uploadFile(request); ResumableFileUpload resumableFileUpload = fileUpload.pause(); log.debug(() -> "Paused: " + resumableFileUpload); validateEmptyResumeToken(resumableFileUpload); - FileUpload resumedUpload = tmCrt.resumeUploadFile(resumableFileUpload); + FileUpload resumedUpload = resumeTm.resumeUploadFile(resumableFileUpload); resumedUpload.completionFuture().join(); + assertThat(resumedUpload.progress().snapshot().totalBytes()).hasValue(SMALL_OBJ_SIZE); } - @Test - void pause_fileNotChanged_shouldResume() { + @ParameterizedTest + @MethodSource("transferManagers") + void pause_fileNotChanged_shouldResume(S3TransferManager uploadTm, S3TransferManager resumeTm) throws Exception { UploadFileRequest request = UploadFileRequest.builder() .putObjectRequest(b -> b.bucket(BUCKET).key(KEY)) .addTransferListener(LoggingTransferListener.create()) .source(largeFile) .build(); - FileUpload fileUpload = tmCrt.uploadFile(request); + FileUpload fileUpload = uploadTm.uploadFile(request); waitUntilMultipartUploadExists(); ResumableFileUpload resumableFileUpload = fileUpload.pause(); log.debug(() -> "Paused: " + resumableFileUpload); @@ -103,33 +118,37 @@ void pause_fileNotChanged_shouldResume() { verifyMultipartUploadIdExists(resumableFileUpload); - FileUpload resumedUpload = tmCrt.resumeUploadFile(resumableFileUpload); + FileUpload resumedUpload = resumeTm.resumeUploadFile(resumableFileUpload); resumedUpload.completionFuture().join(); + assertThat(resumedUpload.progress().snapshot().totalBytes()).hasValue(LARGE_OBJ_SIZE); } - @Test - void pauseImmediately_resume_shouldStartFromBeginning() { + @ParameterizedTest + @MethodSource("transferManagers") + void pauseImmediately_resume_shouldStartFromBeginning(S3TransferManager uploadTm, S3TransferManager resumeTm) { UploadFileRequest request = UploadFileRequest.builder() - .putObjectRequest(b -> b.bucket(BUCKET).key(KEY)) - .source(largeFile) - .build(); - FileUpload fileUpload = tmCrt.uploadFile(request); + .putObjectRequest(b -> b.bucket(BUCKET).key(KEY)) + .source(largeFile) + .build(); + FileUpload fileUpload = uploadTm.uploadFile(request); ResumableFileUpload resumableFileUpload = fileUpload.pause(); log.debug(() -> "Paused: " + resumableFileUpload); validateEmptyResumeToken(resumableFileUpload); - FileUpload resumedUpload = tmCrt.resumeUploadFile(resumableFileUpload); + FileUpload resumedUpload = resumeTm.resumeUploadFile(resumableFileUpload); resumedUpload.completionFuture().join(); + assertThat(resumedUpload.progress().snapshot().totalBytes()).hasValue(LARGE_OBJ_SIZE); } - @Test - void pause_fileChanged_resumeShouldStartFromBeginning() throws Exception { + @ParameterizedTest + @MethodSource("transferManagers") + void pause_fileChanged_resumeShouldStartFromBeginning(S3TransferManager uploadTm, S3TransferManager resumeTm) throws Exception { UploadFileRequest request = UploadFileRequest.builder() .putObjectRequest(b -> b.bucket(BUCKET).key(KEY)) .source(largeFile) .build(); - FileUpload fileUpload = tmCrt.uploadFile(request); + FileUpload fileUpload = uploadTm.uploadFile(request); waitUntilMultipartUploadExists(); ResumableFileUpload resumableFileUpload = fileUpload.pause(); log.debug(() -> "Paused: " + resumableFileUpload); @@ -139,13 +158,18 @@ void pause_fileChanged_resumeShouldStartFromBeginning() throws Exception { assertThat(resumableFileUpload.totalParts()).isNotEmpty(); verifyMultipartUploadIdExists(resumableFileUpload); - byte[] bytes = "helloworld".getBytes(StandardCharsets.UTF_8); - Files.write(largeFile.toPath(), bytes); - - FileUpload resumedUpload = tmCrt.resumeUploadFile(resumableFileUpload); - resumedUpload.completionFuture().join(); - verifyMultipartUploadIdNotExist(resumableFileUpload); - assertThat(resumedUpload.progress().snapshot().totalBytes()).hasValue(bytes.length); + byte[] originalBytes = Files.readAllBytes(largeFile.toPath()); + try { + byte[] bytes = "helloworld".getBytes(StandardCharsets.UTF_8); + Files.write(largeFile.toPath(), bytes); + + FileUpload resumedUpload = resumeTm.resumeUploadFile(resumableFileUpload); + resumedUpload.completionFuture().join(); + verifyMultipartUploadIdNotExist(resumableFileUpload); + assertThat(resumedUpload.progress().snapshot().totalBytes()).hasValue(bytes.length); + } finally { + Files.write(largeFile.toPath(), originalBytes); + } } private void verifyMultipartUploadIdExists(ResumableFileUpload resumableFileUpload) { diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/CrtS3TransferManager.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/CrtS3TransferManager.java index eef9205be1c7..71ebeef56e62 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/CrtS3TransferManager.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/CrtS3TransferManager.java @@ -20,7 +20,6 @@ import static software.amazon.awssdk.services.s3.crt.S3CrtSdkHttpExecutionAttribute.METAREQUEST_PAUSE_OBSERVABLE; import static software.amazon.awssdk.services.s3.internal.crt.S3InternalSdkHttpExecutionAttribute.CRT_PAUSE_RESUME_TOKEN; import static software.amazon.awssdk.transfer.s3.internal.GenericS3TransferManager.assertNotUnsupportedArn; -import static software.amazon.awssdk.transfer.s3.internal.utils.FileUtils.fileNotModified; import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; @@ -31,7 +30,6 @@ import software.amazon.awssdk.http.SdkHttpExecutionAttributes; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.internal.crt.S3MetaRequestPauseObservable; -import software.amazon.awssdk.services.s3.model.AbortMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; import software.amazon.awssdk.transfer.s3.S3TransferManager; @@ -51,6 +49,7 @@ @SdkInternalApi class CrtS3TransferManager extends DelegatingS3TransferManager { private static final Logger log = Logger.loggerFor(S3TransferManager.class); + private static final PauseResumeHelper PAUSE_RESUME_HELPER = new PauseResumeHelper(); private final S3AsyncClient s3AsyncClient; CrtS3TransferManager(TransferManagerConfiguration transferConfiguration, S3AsyncClient s3AsyncClient, @@ -99,67 +98,15 @@ public FileUpload uploadFile(UploadFileRequest uploadFileRequest) { return new CrtFileUpload(returnFuture, progressUpdater.progress(), observable, uploadFileRequest); } - private FileUpload uploadFromBeginning(ResumableFileUpload resumableFileUpload, boolean fileModified, - boolean noResumeToken) { - UploadFileRequest uploadFileRequest = resumableFileUpload.uploadFileRequest(); - PutObjectRequest putObjectRequest = uploadFileRequest.putObjectRequest(); - if (fileModified) { - log.debug(() -> String.format("The file (%s) has been modified since " - + "the last pause. " + - "The SDK will upload the requested object in bucket" - + " (%s) with key (%s) from " - + "the " - + "beginning.", - uploadFileRequest.source(), - putObjectRequest.bucket(), - putObjectRequest.key())); - resumableFileUpload.multipartUploadId() - .ifPresent(id -> { - log.debug(() -> "Aborting previous upload with multipartUploadId: " + id); - s3AsyncClient.abortMultipartUpload( - AbortMultipartUploadRequest.builder() - .bucket(putObjectRequest.bucket()) - .key(putObjectRequest.key()) - .uploadId(id) - .build()) - .exceptionally(t -> { - log.warn(() -> String.format("Failed to abort previous multipart upload " - + "(id: %s)" - + ". You may need to call " - + "S3AsyncClient#abortMultiPartUpload to " - + "free all storage consumed by" - + " all parts. ", - id), t); - return null; - }); - }); - } - - if (noResumeToken) { - log.debug(() -> String.format("No resume token is found. " + - "The SDK will upload the requested object in bucket" - + " (%s) with key (%s) from " - + "the beginning.", - putObjectRequest.bucket(), - putObjectRequest.key())); - } - - - return uploadFile(uploadFileRequest); - } - @Override public FileUpload resumeUploadFile(ResumableFileUpload resumableFileUpload) { Validate.paramNotNull(resumableFileUpload, "resumableFileUpload"); - boolean fileModified = !fileNotModified(resumableFileUpload.fileLength(), - resumableFileUpload.fileLastModified(), - resumableFileUpload.uploadFileRequest().source()); - - boolean noResumeToken = !hasResumeToken(resumableFileUpload); + boolean fileModified = PAUSE_RESUME_HELPER.fileModified(resumableFileUpload, s3AsyncClient); + boolean noResumeToken = !PAUSE_RESUME_HELPER.hasResumeToken(resumableFileUpload); if (fileModified || noResumeToken) { - return uploadFromBeginning(resumableFileUpload, fileModified, noResumeToken); + return uploadFile(resumableFileUpload.uploadFileRequest()); } return doResumeUpload(resumableFileUpload); @@ -188,10 +135,6 @@ private static ResumeToken crtResumeToken(ResumableFileUpload resumableFileUploa .withUploadId(resumableFileUpload.multipartUploadId().orElse(null))); } - private boolean hasResumeToken(ResumableFileUpload resumableFileUpload) { - return resumableFileUpload.totalParts().isPresent() && resumableFileUpload.partSizeInBytes().isPresent(); - } - private PutObjectRequest attachSdkAttribute(PutObjectRequest putObjectRequest, Consumer builderMutation) { SdkHttpExecutionAttributes modifiedAttributes = diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/GenericS3TransferManager.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/GenericS3TransferManager.java index b06d0824b709..9f4412a804ac 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/GenericS3TransferManager.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/GenericS3TransferManager.java @@ -15,21 +15,28 @@ package software.amazon.awssdk.transfer.s3.internal; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.JAVA_PROGRESS_LISTENER; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.PAUSE_OBSERVABLE; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.RESUME_TOKEN; import static software.amazon.awssdk.transfer.s3.SizeConstant.MB; import static software.amazon.awssdk.transfer.s3.internal.utils.ResumableRequestConverter.toDownloadFileRequestAndTransformer; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionException; +import java.util.function.Consumer; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.annotations.SdkTestInternalApi; import software.amazon.awssdk.arns.Arn; +import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration; import software.amazon.awssdk.core.FileTransformerConfiguration; import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.core.exception.SdkException; import software.amazon.awssdk.core.internal.async.FileAsyncRequestBody; +import software.amazon.awssdk.services.s3.DelegatingS3AsyncClient; import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.internal.multipart.MultipartS3AsyncClient; import software.amazon.awssdk.services.s3.internal.resource.S3AccessPointResource; import software.amazon.awssdk.services.s3.internal.resource.S3ArnConverter; import software.amazon.awssdk.services.s3.internal.resource.S3Resource; @@ -39,6 +46,8 @@ import software.amazon.awssdk.services.s3.model.HeadObjectResponse; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; +import software.amazon.awssdk.services.s3.multipart.PauseObservable; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; import software.amazon.awssdk.transfer.s3.S3TransferManager; import software.amazon.awssdk.transfer.s3.internal.model.DefaultCopy; import software.amazon.awssdk.transfer.s3.internal.model.DefaultDirectoryDownload; @@ -65,6 +74,7 @@ import software.amazon.awssdk.transfer.s3.model.FileDownload; import software.amazon.awssdk.transfer.s3.model.FileUpload; import software.amazon.awssdk.transfer.s3.model.ResumableFileDownload; +import software.amazon.awssdk.transfer.s3.model.ResumableFileUpload; import software.amazon.awssdk.transfer.s3.model.Upload; import software.amazon.awssdk.transfer.s3.model.UploadDirectoryRequest; import software.amazon.awssdk.transfer.s3.model.UploadFileRequest; @@ -80,6 +90,7 @@ class GenericS3TransferManager implements S3TransferManager { protected static final int DEFAULT_FILE_UPLOAD_CHUNK_SIZE = (int) (16 * MB); private static final Logger log = Logger.loggerFor(S3TransferManager.class); + private static final PauseResumeHelper PAUSE_RESUME_HELPER = new PauseResumeHelper(); private final S3AsyncClient s3AsyncClient; private final UploadDirectoryHelper uploadDirectoryHelper; private final DownloadDirectoryHelper downloadDirectoryHelper; @@ -101,11 +112,11 @@ class GenericS3TransferManager implements S3TransferManager { } @SdkTestInternalApi - GenericS3TransferManager(S3AsyncClient s3CrtAsyncClient, + GenericS3TransferManager(S3AsyncClient s3AsyncClient, UploadDirectoryHelper uploadDirectoryHelper, TransferManagerConfiguration configuration, DownloadDirectoryHelper downloadDirectoryHelper) { - this.s3AsyncClient = s3CrtAsyncClient; + this.s3AsyncClient = s3AsyncClient; this.isDefaultS3AsyncClient = false; this.transferConfiguration = configuration; this.uploadDirectoryHelper = uploadDirectoryHelper; @@ -126,16 +137,23 @@ public Upload upload(UploadRequest uploadRequest) { requestBody = progressUpdater.wrapRequestBody(requestBody); progressUpdater.registerCompletion(returnFuture); + PutObjectRequest putObjectRequest = uploadRequest.putObjectRequest(); + if (isS3ClientMultipartEnabled()) { + Consumer attachProgressListener = + b -> b.putExecutionAttribute(JAVA_PROGRESS_LISTENER, progressUpdater.multipartClientProgressListener()); + putObjectRequest = attachSdkAttribute(uploadRequest.putObjectRequest(), attachProgressListener); + } + try { assertNotUnsupportedArn(uploadRequest.putObjectRequest().bucket(), "upload"); - CompletableFuture crtFuture = - s3AsyncClient.putObject(uploadRequest.putObjectRequest(), requestBody); + CompletableFuture future = + s3AsyncClient.putObject(putObjectRequest, requestBody); - // Forward upload cancellation to CRT future - CompletableFutureUtils.forwardExceptionTo(returnFuture, crtFuture); + // Forward upload cancellation to future + CompletableFutureUtils.forwardExceptionTo(returnFuture, future); - CompletableFutureUtils.forwardTransformedResultTo(crtFuture, returnFuture, + CompletableFutureUtils.forwardTransformedResultTo(future, returnFuture, r -> CompletedUpload.builder() .response(r) .build()); @@ -156,8 +174,6 @@ public FileUpload uploadFile(UploadFileRequest uploadFileRequest) { .chunkSizeInBytes(DEFAULT_FILE_UPLOAD_CHUNK_SIZE) .build(); - PutObjectRequest putObjectRequest = uploadFileRequest.putObjectRequest(); - CompletableFuture returnFuture = new CompletableFuture<>(); TransferProgressUpdater progressUpdater = new TransferProgressUpdater(uploadFileRequest, @@ -166,6 +182,19 @@ public FileUpload uploadFile(UploadFileRequest uploadFileRequest) { requestBody = progressUpdater.wrapRequestBody(requestBody); progressUpdater.registerCompletion(returnFuture); + PutObjectRequest putObjectRequest = uploadFileRequest.putObjectRequest(); + PauseObservable pauseObservable; + if (isS3ClientMultipartEnabled()) { + pauseObservable = new PauseObservable(); + Consumer attachObservableAndListener = + b -> b.putExecutionAttribute(PAUSE_OBSERVABLE, pauseObservable) + .putExecutionAttribute(JAVA_PROGRESS_LISTENER, progressUpdater.multipartClientProgressListener()); + putObjectRequest = attachSdkAttribute(uploadFileRequest.putObjectRequest(), attachObservableAndListener); + } else { + pauseObservable = null; + } + + try { assertNotUnsupportedArn(putObjectRequest.bucket(), "upload"); @@ -182,8 +211,72 @@ public FileUpload uploadFile(UploadFileRequest uploadFileRequest) { } catch (Throwable throwable) { returnFuture.completeExceptionally(throwable); } + return new DefaultFileUpload(returnFuture, progressUpdater.progress(), pauseObservable, uploadFileRequest); + } + + @Override + public FileUpload resumeUploadFile(ResumableFileUpload resumableFileUpload) { + Validate.paramNotNull(resumableFileUpload, "resumableFileUpload"); + + boolean fileModified = PAUSE_RESUME_HELPER.fileModified(resumableFileUpload, s3AsyncClient); + boolean noResumeToken = !PAUSE_RESUME_HELPER.hasResumeToken(resumableFileUpload); + + if (fileModified || noResumeToken) { + return uploadFile(resumableFileUpload.uploadFileRequest()); + } + + return doResumeUpload(resumableFileUpload); + } + + private boolean isS3ClientMultipartEnabled() { + // TODO use configuration getter when available + return s3AsyncClient instanceof MultipartS3AsyncClient; + } + + private FileUpload doResumeUpload(ResumableFileUpload resumableFileUpload) { + UploadFileRequest uploadFileRequest = resumableFileUpload.uploadFileRequest(); + PutObjectRequest putObjectRequest = uploadFileRequest.putObjectRequest(); + S3ResumeToken s3ResumeToken = s3ResumeToken(resumableFileUpload); + + Consumer attachResumeToken = + b -> b.putExecutionAttribute(RESUME_TOKEN, s3ResumeToken); + + PutObjectRequest modifiedPutObjectRequest = attachSdkAttribute(putObjectRequest, attachResumeToken); + + return uploadFile(uploadFileRequest.toBuilder() + .putObjectRequest(modifiedPutObjectRequest) + .build()); + } + + private static S3ResumeToken s3ResumeToken(ResumableFileUpload resumableFileUpload) { + S3ResumeToken.Builder builder = S3ResumeToken.builder(); + + builder.uploadId(resumableFileUpload.multipartUploadId().orElse(null)); + if (resumableFileUpload.partSizeInBytes().isPresent()) { + builder.partSize(resumableFileUpload.partSizeInBytes().getAsLong()); + } + if (resumableFileUpload.totalParts().isPresent()) { + builder.totalNumParts(resumableFileUpload.totalParts().getAsLong()); + } + if (resumableFileUpload.transferredParts().isPresent()) { + builder.numPartsCompleted(resumableFileUpload.transferredParts().getAsLong()); + } - return new DefaultFileUpload(returnFuture, progressUpdater.progress(), uploadFileRequest); + return builder.build(); + } + + private PutObjectRequest attachSdkAttribute(PutObjectRequest putObjectRequest, + Consumer builderMutation) { + AwsRequestOverrideConfiguration modifiedRequestOverrideConfig = + putObjectRequest.overrideConfiguration() + .map(o -> o.toBuilder().applyMutation(builderMutation).build()) + .orElseGet(() -> AwsRequestOverrideConfiguration.builder() + .applyMutation(builderMutation) + .build()); + + return putObjectRequest.toBuilder() + .overrideConfiguration(modifiedRequestOverrideConfig) + .build(); } @Override @@ -216,13 +309,12 @@ public Download download(DownloadRequest downloadReq try { assertNotUnsupportedArn(downloadRequest.getObjectRequest().bucket(), "download"); - CompletableFuture crtFuture = - s3AsyncClient.getObject(downloadRequest.getObjectRequest(), responseTransformer); + CompletableFuture future = doGetObject(downloadRequest.getObjectRequest(), responseTransformer); - // Forward download cancellation to CRT future - CompletableFutureUtils.forwardExceptionTo(returnFuture, crtFuture); + // Forward download cancellation to future + CompletableFutureUtils.forwardExceptionTo(returnFuture, future); - CompletableFutureUtils.forwardTransformedResultTo(crtFuture, returnFuture, + CompletableFutureUtils.forwardTransformedResultTo(future, returnFuture, r -> CompletedDownload.builder() .result(r) .build()); @@ -259,14 +351,12 @@ private TransferProgressUpdater doDownloadFile( assertNotUnsupportedArn(downloadRequest.getObjectRequest().bucket(), "download"); - CompletableFuture crtFuture = - s3AsyncClient.getObject(downloadRequest.getObjectRequest(), - responseTransformer); + CompletableFuture future = doGetObject(downloadRequest.getObjectRequest(), responseTransformer); - // Forward download cancellation to CRT future - CompletableFutureUtils.forwardExceptionTo(returnFuture, crtFuture); + // Forward download cancellation to future + CompletableFutureUtils.forwardExceptionTo(returnFuture, future); - CompletableFutureUtils.forwardTransformedResultTo(crtFuture, returnFuture, + CompletableFutureUtils.forwardTransformedResultTo(future, returnFuture, res -> CompletedFileDownload.builder() .response(res) .build()); @@ -368,13 +458,13 @@ public Copy copy(CopyRequest copyRequest) { assertNotUnsupportedArn(copyRequest.copyObjectRequest().sourceBucket(), "copy sourceBucket"); assertNotUnsupportedArn(copyRequest.copyObjectRequest().destinationBucket(), "copy destinationBucket"); - CompletableFuture crtFuture = + CompletableFuture future = s3AsyncClient.copyObject(copyRequest.copyObjectRequest()); - // Forward transfer cancellation to CRT future - CompletableFutureUtils.forwardExceptionTo(returnFuture, crtFuture); + // Forward transfer cancellation to future + CompletableFutureUtils.forwardExceptionTo(returnFuture, future); - CompletableFutureUtils.forwardTransformedResultTo(crtFuture, returnFuture, + CompletableFutureUtils.forwardTransformedResultTo(future, returnFuture, r -> CompletedCopy.builder() .response(r) .build()); @@ -429,4 +519,14 @@ private static boolean isMrapArn(Arn arn) { return !s3EndpointResource.region().isPresent(); } + + // TODO remove once MultipartS3AsyncClient is complete + private CompletableFuture doGetObject( + GetObjectRequest getObjectRequest, AsyncResponseTransformer asyncResponseTransformer) { + S3AsyncClient clientToUse = s3AsyncClient; + if (s3AsyncClient instanceof MultipartS3AsyncClient) { + clientToUse = (S3AsyncClient) ((DelegatingS3AsyncClient) s3AsyncClient).delegate(); + } + return clientToUse.getObject(getObjectRequest, asyncResponseTransformer); + } } diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/PauseResumeHelper.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/PauseResumeHelper.java new file mode 100644 index 000000000000..9c5220f388e4 --- /dev/null +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/PauseResumeHelper.java @@ -0,0 +1,91 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.transfer.s3.internal; + +import static software.amazon.awssdk.transfer.s3.internal.utils.FileUtils.fileNotModified; + +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.model.AbortMultipartUploadRequest; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.transfer.s3.model.ResumableFileUpload; +import software.amazon.awssdk.transfer.s3.model.UploadFileRequest; +import software.amazon.awssdk.utils.Logger; + +@SdkInternalApi +public class PauseResumeHelper { + private static final Logger log = Logger.loggerFor(PauseResumeHelper.class); + + protected boolean fileModified(ResumableFileUpload resumableFileUpload, S3AsyncClient s3AsyncClient) { + boolean fileModified = !fileNotModified(resumableFileUpload.fileLength(), + resumableFileUpload.fileLastModified(), + resumableFileUpload.uploadFileRequest().source()); + + if (fileModified) { + UploadFileRequest uploadFileRequest = resumableFileUpload.uploadFileRequest(); + PutObjectRequest putObjectRequest = uploadFileRequest.putObjectRequest(); + log.debug(() -> String.format("The file (%s) has been modified since " + + "the last pause. " + + "The SDK will upload the requested object in bucket" + + " (%s) with key (%s) from " + + "the " + + "beginning.", + uploadFileRequest.source(), + putObjectRequest.bucket(), + putObjectRequest.key())); + resumableFileUpload.multipartUploadId() + .ifPresent(id -> { + log.debug(() -> "Aborting previous upload with multipartUploadId: " + id); + s3AsyncClient.abortMultipartUpload( + AbortMultipartUploadRequest.builder() + .bucket(putObjectRequest.bucket()) + .key(putObjectRequest.key()) + .uploadId(id) + .build()) + .exceptionally(t -> { + log.warn(() -> String.format("Failed to abort previous multipart upload " + + "(id: %s)" + + ". You may need to call " + + "S3AsyncClient#abortMultiPartUpload to " + + "free all storage consumed by" + + " all parts. ", + id), t); + return null; + }); + }); + } + + return fileModified; + } + + protected boolean hasResumeToken(ResumableFileUpload resumableFileUpload) { + boolean hasResumeToken = + resumableFileUpload.totalParts().isPresent() && resumableFileUpload.partSizeInBytes().isPresent(); + + if (!hasResumeToken) { + UploadFileRequest uploadFileRequest = resumableFileUpload.uploadFileRequest(); + PutObjectRequest putObjectRequest = uploadFileRequest.putObjectRequest(); + log.debug(() -> String.format("No resume token is found. " + + "The SDK will upload the requested object in bucket" + + " (%s) with key (%s) from " + + "the beginning.", + putObjectRequest.bucket(), + putObjectRequest.key())); + } + + return hasResumeToken; + } +} diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/TransferManagerFactory.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/TransferManagerFactory.java index a87d8d6fcd60..7b4041804a29 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/TransferManagerFactory.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/TransferManagerFactory.java @@ -21,6 +21,7 @@ import software.amazon.awssdk.core.internal.util.ClassLoaderHelper; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.internal.crt.S3CrtAsyncClient; +import software.amazon.awssdk.services.s3.internal.multipart.MultipartS3AsyncClient; import software.amazon.awssdk.transfer.s3.S3TransferManager; import software.amazon.awssdk.utils.Logger; @@ -56,6 +57,10 @@ public static S3TransferManager createTransferManager(DefaultBuilder tmBuilder) log.warn(() -> "The provided DefaultS3AsyncClient is not an instance of S3CrtAsyncClient, and thus multipart" + " upload/download feature is not enabled and resumable file upload is not supported. To benefit " + "from maximum throughput, consider using S3AsyncClient.crtBuilder().build() instead."); + } else if (s3AsyncClient instanceof MultipartS3AsyncClient) { + log.warn(() -> "The provided S3AsyncClient is an instance of MultipartS3AsyncClient, and thus multipart" + + " download feature is not enabled. To benefit from all features, " + + "consider using S3AsyncClient.crtBuilder().build() instead."); } else { log.debug(() -> "The provided S3AsyncClient is not an instance of S3CrtAsyncClient, and thus multipart" + " upload/download feature may not be enabled and resumable file upload may not be supported."); @@ -68,7 +73,7 @@ private static Supplier defaultS3AsyncClient() { if (crtInClasspath()) { return S3AsyncClient::crtCreate; } - return S3AsyncClient::create; + return S3AsyncClient.builder().multipartEnabled(true)::build; } private static boolean crtInClasspath() { diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/model/CrtFileUpload.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/model/CrtFileUpload.java index 4f7a4a757c2c..790fb0d2ba60 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/model/CrtFileUpload.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/model/CrtFileUpload.java @@ -148,7 +148,7 @@ public int hashCode() { @Override public String toString() { - return ToString.builder("DefaultFileUpload") + return ToString.builder("CrtFileUpload") .add("completionFuture", completionFuture) .add("progress", progress) .add("request", request) diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/model/DefaultFileUpload.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/model/DefaultFileUpload.java index 1579c64dbdf1..66647d27cd61 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/model/DefaultFileUpload.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/model/DefaultFileUpload.java @@ -15,35 +15,77 @@ package software.amazon.awssdk.transfer.s3.internal.model; +import java.io.File; +import java.time.Instant; import java.util.concurrent.CompletableFuture; import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.services.s3.multipart.PauseObservable; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; import software.amazon.awssdk.transfer.s3.model.CompletedFileUpload; import software.amazon.awssdk.transfer.s3.model.FileUpload; import software.amazon.awssdk.transfer.s3.model.ResumableFileUpload; import software.amazon.awssdk.transfer.s3.model.UploadFileRequest; import software.amazon.awssdk.transfer.s3.progress.TransferProgress; +import software.amazon.awssdk.utils.Lazy; import software.amazon.awssdk.utils.ToString; import software.amazon.awssdk.utils.Validate; @SdkInternalApi public final class DefaultFileUpload implements FileUpload { + private final Lazy resumableFileUpload; private final CompletableFuture completionFuture; private final TransferProgress progress; private final UploadFileRequest request; + private final PauseObservable pauseObservable; public DefaultFileUpload(CompletableFuture completionFuture, TransferProgress progress, + PauseObservable pauseObservable, UploadFileRequest request) { this.completionFuture = Validate.paramNotNull(completionFuture, "completionFuture"); this.progress = Validate.paramNotNull(progress, "progress"); this.request = Validate.paramNotNull(request, "request"); + this.pauseObservable = pauseObservable; + this.resumableFileUpload = new Lazy<>(this::doPause); } @Override public ResumableFileUpload pause() { - throw new UnsupportedOperationException("Pausing an upload is not supported in a non CRT-based S3 Client. For " - + "upload pause support, pass an AWS CRT-based S3 client to S3TransferManager" - + "instead: S3AsyncClient.crtBuilder().build();"); + if (pauseObservable == null) { + throw new UnsupportedOperationException("Pausing an upload is not supported in a non CRT-based S3Client that does " + + "not have multipart configuration enabled. For upload pause support, pass " + + "a CRT-based S3Client or an S3Client with multipart enabled to " + + "S3TransferManager."); + } + + return resumableFileUpload.getValue(); + } + + private ResumableFileUpload doPause() { + File sourceFile = request.source().toFile(); + Instant fileLastModified = Instant.ofEpochMilli(sourceFile.lastModified()); + + ResumableFileUpload.Builder resumableFileBuilder = ResumableFileUpload.builder() + .fileLastModified(fileLastModified) + .fileLength(sourceFile.length()) + .uploadFileRequest(request); + + if (completionFuture.isDone()) { + return resumableFileBuilder.build(); + } + + S3ResumeToken token = pauseObservable.pause(); + + // Upload hasn't started yet, or it's a single object upload + if (token == null) { + return resumableFileBuilder.build(); + } + + return resumableFileBuilder.multipartUploadId(token.uploadId()) + .totalParts(token.totalNumParts()) + .transferredParts(token.numPartsCompleted()) + .partSizeInBytes(token.partSize()) + .build(); } @Override @@ -67,20 +109,28 @@ public boolean equals(Object o) { DefaultFileUpload that = (DefaultFileUpload) o; + if (!resumableFileUpload.equals(that.resumableFileUpload)) { + return false; + } if (!completionFuture.equals(that.completionFuture)) { return false; } if (!progress.equals(that.progress)) { return false; } - return request.equals(that.request); + if (!request.equals(that.request)) { + return false; + } + return pauseObservable == that.pauseObservable; } @Override public int hashCode() { - int result = completionFuture.hashCode(); + int result = resumableFileUpload.hashCode(); + result = 31 * result + completionFuture.hashCode(); result = 31 * result + progress.hashCode(); result = 31 * result + request.hashCode(); + result = 31 * result + pauseObservable.hashCode(); return result; } diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/progress/TransferProgressUpdater.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/progress/TransferProgressUpdater.java index 0c0c9f0d65d8..67970031c9aa 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/progress/TransferProgressUpdater.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/progress/TransferProgressUpdater.java @@ -111,6 +111,34 @@ private void endOfStreamFutureCompleted() { }); } + /** + * Progress listener for Java-based S3Client with multipart enabled. + */ + public PublisherListener multipartClientProgressListener() { + + return new PublisherListener() { + @Override + public void publisherSubscribe(Subscriber subscriber) { + resetBytesTransferred(); + } + + @Override + public void subscriberOnNext(Long contentLength) { + incrementBytesTransferred(contentLength); + } + + @Override + public void subscriberOnError(Throwable t) { + transferFailed(t); + } + + @Override + public void subscriberOnComplete() { + endOfStreamFuture.complete(null); + } + }; + } + public PublisherListener crtProgressListener() { return new PublisherListener() { diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/FileUpload.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/FileUpload.java index 28486d76bd0b..90e99f2829f0 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/FileUpload.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/FileUpload.java @@ -18,6 +18,8 @@ import java.util.concurrent.CompletableFuture; import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.S3AsyncClientBuilder; +import software.amazon.awssdk.services.s3.multipart.MultipartConfiguration; import software.amazon.awssdk.transfer.s3.S3TransferManager; /** @@ -32,12 +34,15 @@ public interface FileUpload extends ObjectTransfer { *

    * The information object is serializable for persistent storage until it should be resumed. * See {@link ResumableFileUpload} for supported formats. - * + * *

    * Currently, it's only supported if the underlying {@link S3AsyncClient} is CRT-based (created via - * {@link S3AsyncClient#crtBuilder()} or {@link S3AsyncClient#crtCreate()}). + * {@link S3AsyncClient#crtBuilder()} or {@link S3AsyncClient#crtCreate()}), OR the underlying + * {@link S3AsyncClient} has multipart enabled ({@link S3AsyncClientBuilder#multipartConfiguration(MultipartConfiguration)} + * or {@link S3AsyncClientBuilder#multipartEnabled(Boolean)}). * It will throw {@link UnsupportedOperationException} if the {@link S3TransferManager} is created - * with a non CRT-based S3 client (created via {@link S3AsyncClient#builder()}). + * with a non CRT-based S3 client (created via {@link S3AsyncClient#builder()}) and does not have + * multipart configuration enabled. * * @return A {@link ResumableFileUpload} that can be used to resume the upload. */ diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/CrtFileUploadTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/CrtFileUploadTest.java index 9aecc1c05f29..2235da4b5660 100644 --- a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/CrtFileUploadTest.java +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/CrtFileUploadTest.java @@ -40,6 +40,7 @@ import software.amazon.awssdk.crt.s3.ResumeToken; import software.amazon.awssdk.crt.s3.S3MetaRequest; import software.amazon.awssdk.services.s3.internal.crt.S3MetaRequestPauseObservable; +import software.amazon.awssdk.services.s3.internal.crt.S3MetaRequestWrapper; import software.amazon.awssdk.services.s3.model.PutObjectResponse; import software.amazon.awssdk.transfer.s3.internal.model.CrtFileUpload; import software.amazon.awssdk.transfer.s3.internal.progress.DefaultTransferProgressSnapshot; @@ -53,7 +54,7 @@ class CrtFileUploadTest { private static final int NUM_OF_PARTS_COMPLETED = 5; private static final long PART_SIZE_IN_BYTES = 8 * MB; private static final String MULTIPART_UPLOAD_ID = "someId"; - private S3MetaRequest metaRequest; + private S3MetaRequestPauseObservable observable; private static FileSystem fileSystem; private static File file; private static ResumeToken token; @@ -77,7 +78,7 @@ public static void tearDown() throws IOException { @BeforeEach void setUpBeforeEachTest() { - metaRequest = Mockito.mock(S3MetaRequest.class); + observable = Mockito.mock(S3MetaRequestPauseObservable.class); } @Test @@ -102,17 +103,13 @@ void pause_futureCompleted_shouldReturnNormally() { .sdkResponse(putObjectResponse) .transferredBytes(0L) .build()); - S3MetaRequestPauseObservable observable = new S3MetaRequestPauseObservable(); - UploadFileRequest request = uploadFileRequest(); CrtFileUpload fileUpload = new CrtFileUpload(future, transferProgress, observable, request); - observable.subscribe(metaRequest); - ResumableFileUpload resumableFileUpload = fileUpload.pause(); - Mockito.verify(metaRequest, Mockito.never()).pause(); + Mockito.verify(observable, Mockito.never()).pause(); assertThat(resumableFileUpload.totalParts()).isEmpty(); assertThat(resumableFileUpload.partSizeInBytes()).isEmpty(); assertThat(resumableFileUpload.multipartUploadId()).isEmpty(); @@ -130,10 +127,7 @@ void pauseTwice_shouldReturnTheSame() { .transferredBytes(1000L) .build()); UploadFileRequest request = uploadFileRequest(); - - S3MetaRequestPauseObservable observable = new S3MetaRequestPauseObservable(); - when(metaRequest.pause()).thenReturn(token); - observable.subscribe(metaRequest); + when(observable.pause()).thenReturn(token); CrtFileUpload fileUpload = new CrtFileUpload(future, transferProgress, observable, request); @@ -154,10 +148,8 @@ void pause_crtThrowException_shouldPropogate() { .build()); UploadFileRequest request = uploadFileRequest(); - S3MetaRequestPauseObservable observable = new S3MetaRequestPauseObservable(); CrtRuntimeException exception = new CrtRuntimeException("exception"); - when(metaRequest.pause()).thenThrow(exception); - observable.subscribe(metaRequest); + when(observable.pause()).thenThrow(exception); CrtFileUpload fileUpload = new CrtFileUpload(future, transferProgress, observable, request); @@ -173,17 +165,14 @@ void pause_futureNotComplete_shouldPause() { when(transferProgress.snapshot()).thenReturn(DefaultTransferProgressSnapshot.builder() .transferredBytes(0L) .build()); - S3MetaRequestPauseObservable observable = new S3MetaRequestPauseObservable(); - when(metaRequest.pause()).thenReturn(token); + when(observable.pause()).thenReturn(token); UploadFileRequest request = uploadFileRequest(); CrtFileUpload fileUpload = new CrtFileUpload(future, transferProgress, observable, request); - observable.subscribe(metaRequest); - ResumableFileUpload resumableFileUpload = fileUpload.pause(); - Mockito.verify(metaRequest).pause(); + Mockito.verify(observable).pause(); assertThat(resumableFileUpload.totalParts()).hasValue(TOTAL_PARTS); assertThat(resumableFileUpload.partSizeInBytes()).hasValue(PART_SIZE_IN_BYTES); assertThat(resumableFileUpload.multipartUploadId()).hasValue(MULTIPART_UPLOAD_ID); @@ -204,17 +193,14 @@ void pause_singlePart_shouldPause() { .sdkResponse(putObjectResponse) .transferredBytes(0L) .build()); - S3MetaRequestPauseObservable observable = new S3MetaRequestPauseObservable(); - when(metaRequest.pause()).thenThrow(new CrtRuntimeException(6)); + when(observable.pause()).thenThrow(new CrtRuntimeException(6)); UploadFileRequest request = uploadFileRequest(); CrtFileUpload fileUpload = new CrtFileUpload(future, transferProgress, observable, request); - observable.subscribe(metaRequest); - ResumableFileUpload resumableFileUpload = fileUpload.pause(); - Mockito.verify(metaRequest).pause(); + Mockito.verify(observable).pause(); assertThat(resumableFileUpload.totalParts()).isEmpty(); assertThat(resumableFileUpload.partSizeInBytes()).isEmpty(); assertThat(resumableFileUpload.multipartUploadId()).isEmpty(); diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/DefaultFileUploadTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/DefaultFileUploadTest.java index 539433734920..f7e523d9355f 100644 --- a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/DefaultFileUploadTest.java +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/DefaultFileUploadTest.java @@ -15,38 +15,179 @@ package software.amazon.awssdk.transfer.s3.internal; -import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static software.amazon.awssdk.transfer.s3.SizeConstant.MB; -import java.nio.file.Paths; +import com.google.common.jimfs.Jimfs; +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.FileSystem; +import java.nio.file.Files; +import java.time.Instant; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import nl.jqno.equalsverifier.EqualsVerifier; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import software.amazon.awssdk.transfer.s3.S3TransferManager; +import software.amazon.awssdk.services.s3.internal.multipart.PausableUpload; +import software.amazon.awssdk.services.s3.multipart.PauseObservable; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; +import software.amazon.awssdk.services.s3.model.PutObjectResponse; import software.amazon.awssdk.transfer.s3.internal.model.DefaultFileUpload; -import software.amazon.awssdk.transfer.s3.model.FileUpload; +import software.amazon.awssdk.transfer.s3.internal.progress.DefaultTransferProgressSnapshot; +import software.amazon.awssdk.transfer.s3.model.CompletedFileUpload; +import software.amazon.awssdk.transfer.s3.model.ResumableFileUpload; import software.amazon.awssdk.transfer.s3.model.UploadFileRequest; import software.amazon.awssdk.transfer.s3.progress.TransferProgress; class DefaultFileUploadTest { + private static final long TOTAL_PARTS = 10; + private static final long NUM_OF_PARTS_COMPLETED = 5; + private static final long PART_SIZE_IN_BYTES = 8 * MB; + private static final String MULTIPART_UPLOAD_ID = "someId"; + private static FileSystem fileSystem; + private static File file; + private static S3ResumeToken token; + + @BeforeAll + public static void setUp() throws IOException { + fileSystem = Jimfs.newFileSystem(); + file = File.createTempFile("test", UUID.randomUUID().toString()); + Files.write(file.toPath(), RandomStringUtils.random(2000).getBytes(StandardCharsets.UTF_8)); + token = S3ResumeToken.builder() + .uploadId(MULTIPART_UPLOAD_ID) + .totalNumParts(TOTAL_PARTS) + .numPartsCompleted(NUM_OF_PARTS_COMPLETED) + .partSize(PART_SIZE_IN_BYTES) + .build(); + } + + @AfterAll + public static void tearDown() throws IOException { + file.delete(); + } + @Test void equals_hashcode() { EqualsVerifier.forClass(DefaultFileUpload.class) - .withNonnullFields("completionFuture", "progress", "request") + .withNonnullFields("completionFuture", "progress", "request", "resumableFileUpload", "pauseObservable") + .withPrefabValues(PauseObservable.class, new PauseObservable(), new PauseObservable()) .verify(); } + private S3ResumeToken s3ResumeToken(CompletableFuture future) { + if (future.isDone()) { + return null; + } + return token; + } + @Test - void pause_shouldThrowUnsupportedOperation() { - TransferProgress transferProgress = Mockito.mock(TransferProgress.class); - UploadFileRequest request = UploadFileRequest.builder() - .source(Paths.get("test")) - .putObjectRequest(p -> p.key("test").bucket("bucket")) - .build(); - FileUpload fileUpload = new DefaultFileUpload(new CompletableFuture<>(), - transferProgress, - request); - - assertThatThrownBy(() -> fileUpload.pause()).isInstanceOf(UnsupportedOperationException.class); + void pause_futureCompleted_shouldReturnNormally() { + CompletableFuture future = + CompletableFuture.completedFuture(CompletedFileUpload.builder() + .response(PutObjectResponse.builder().build()) + .build()); + TransferProgress transferProgress = mock(TransferProgress.class); + PauseObservable observable = new PauseObservable(); + PausableUpload pausableUpload = mock(PausableUpload.class); + observable.setPausableUpload(pausableUpload); + when(pausableUpload.pause()).thenReturn(s3ResumeToken(future)); + + UploadFileRequest request = uploadFileRequest(); + DefaultFileUpload fileUpload = new DefaultFileUpload(future, transferProgress, observable, request); + + ResumableFileUpload resumableFileUpload = fileUpload.pause(); + + verify(pausableUpload, Mockito.never()).pause(); + assertThat(resumableFileUpload.totalParts()).isEmpty(); + assertThat(resumableFileUpload.partSizeInBytes()).isEmpty(); + assertThat(resumableFileUpload.multipartUploadId()).isEmpty(); + assertThat(resumableFileUpload.fileLength()).isEqualTo(file.length()); + assertThat(resumableFileUpload.uploadFileRequest()).isEqualTo(request); + assertThat(resumableFileUpload.fileLastModified()).isEqualTo(Instant.ofEpochMilli(file.lastModified())); + } + + + @Test + void pauseTwice_shouldReturnTheSame() { + CompletableFuture future = new CompletableFuture<>(); + TransferProgress transferProgress = mock(TransferProgress.class); + PauseObservable observable = new PauseObservable(); + PausableUpload pausableUpload = mock(PausableUpload.class); + observable.setPausableUpload(pausableUpload); + when(pausableUpload.pause()).thenReturn(s3ResumeToken(future)); + + UploadFileRequest request = uploadFileRequest(); + DefaultFileUpload fileUpload = new DefaultFileUpload(future, transferProgress, observable, request); + + ResumableFileUpload resumableFileUpload = fileUpload.pause(); + ResumableFileUpload resumableFileUpload2 = fileUpload.pause(); + + verify(pausableUpload).pause(); + assertThat(resumableFileUpload).isEqualTo(resumableFileUpload2); + } + + @Test + void pause_futureNotComplete_shouldPause() { + CompletableFuture future = new CompletableFuture<>(); + TransferProgress transferProgress = mock(TransferProgress.class); + when(transferProgress.snapshot()).thenReturn(DefaultTransferProgressSnapshot.builder() + .transferredBytes(0L) + .build()); + + + PauseObservable observable = new PauseObservable(); + PausableUpload pausableUpload = mock(PausableUpload.class); + observable.setPausableUpload(pausableUpload); + when(pausableUpload.pause()).thenReturn(s3ResumeToken(future)); + + UploadFileRequest request = uploadFileRequest(); + DefaultFileUpload fileUpload = new DefaultFileUpload(future, transferProgress, observable, request); + + ResumableFileUpload resumableFileUpload = fileUpload.pause(); + + verify(pausableUpload).pause(); + assertThat(resumableFileUpload.totalParts()).hasValue(TOTAL_PARTS); + assertThat(resumableFileUpload.partSizeInBytes()).hasValue(PART_SIZE_IN_BYTES); + assertThat(resumableFileUpload.multipartUploadId()).hasValue(MULTIPART_UPLOAD_ID); + assertThat(resumableFileUpload.transferredParts()).hasValue(NUM_OF_PARTS_COMPLETED); + assertThat(resumableFileUpload.fileLength()).isEqualTo(file.length()); + assertThat(resumableFileUpload.uploadFileRequest()).isEqualTo(request); + assertThat(resumableFileUpload.fileLastModified()).isEqualTo(Instant.ofEpochMilli(file.lastModified())); + } + + @Test + void pause_singlePart_shouldReturnNullResumeToken() { + CompletableFuture future = new CompletableFuture<>(); + TransferProgress transferProgress = mock(TransferProgress.class); + + PauseObservable observable = new PauseObservable(); + observable.setPausableUpload(null); + + UploadFileRequest request = uploadFileRequest(); + DefaultFileUpload fileUpload = new DefaultFileUpload(future, transferProgress, observable, request); + + ResumableFileUpload resumableFileUpload = fileUpload.pause(); + assertThat(resumableFileUpload.totalParts()).isEmpty(); + assertThat(resumableFileUpload.partSizeInBytes()).isEmpty(); + assertThat(resumableFileUpload.multipartUploadId()).isEmpty(); + assertThat(resumableFileUpload.fileLength()).isEqualTo(file.length()); + assertThat(resumableFileUpload.uploadFileRequest()).isEqualTo(request); + assertThat(resumableFileUpload.fileLastModified()).isEqualTo(Instant.ofEpochMilli(file.lastModified())); + } + + private UploadFileRequest uploadFileRequest() { + return UploadFileRequest.builder() + .source(file) + .putObjectRequest(p -> p.key("test").bucket("bucket")) + .build(); } } \ No newline at end of file diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/MultipartDownloadJavaBasedTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/MultipartDownloadJavaBasedTest.java new file mode 100644 index 000000000000..1b5c1063239f --- /dev/null +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/MultipartDownloadJavaBasedTest.java @@ -0,0 +1,67 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.transfer.s3.internal; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.nio.file.Paths; +import java.util.concurrent.CompletableFuture; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.core.async.AsyncResponseTransformer; +import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.internal.multipart.MultipartS3AsyncClient; +import software.amazon.awssdk.services.s3.model.GetObjectRequest; +import software.amazon.awssdk.services.s3.model.GetObjectResponse; +import software.amazon.awssdk.services.s3.multipart.MultipartConfiguration; +import software.amazon.awssdk.transfer.s3.S3TransferManager; +import software.amazon.awssdk.transfer.s3.model.CompletedFileDownload; + +class MultipartDownloadJavaBasedTest { + private S3AsyncClient mockDelegate; + private MultipartS3AsyncClient s3Multi; + private S3TransferManager tm; + private UploadDirectoryHelper uploadDirectoryHelper; + private DownloadDirectoryHelper downloadDirectoryHelper; + private TransferManagerConfiguration configuration; + + @BeforeEach + public void methodSetup() { + mockDelegate = mock(S3AsyncClient.class); + s3Multi = MultipartS3AsyncClient.create(mockDelegate, MultipartConfiguration.builder().build()); + uploadDirectoryHelper = mock(UploadDirectoryHelper.class); + configuration = mock(TransferManagerConfiguration.class); + downloadDirectoryHelper = mock(DownloadDirectoryHelper.class); + tm = new GenericS3TransferManager(s3Multi, uploadDirectoryHelper, configuration, downloadDirectoryHelper); + } + + @Test + void usingMultipartDownload_shouldNotThrowException() { + GetObjectResponse response = GetObjectResponse.builder().build(); + when(mockDelegate.getObject(any(GetObjectRequest.class), any(AsyncResponseTransformer.class))) + .thenReturn(CompletableFuture.completedFuture(response)); + + CompletedFileDownload completedFileDownload = tm.downloadFile(d -> d.getObjectRequest(g -> g.bucket("bucket") + .key("key")) + .destination(Paths.get("."))) + .completionFuture() + .join(); + assertThat(completedFileDownload.response()).isEqualTo(response); + } +} diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3CrtTransferProgressListenerTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3CrtTransferProgressListenerTest.java index 580cced1808a..10aa2fd68e2e 100644 --- a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3CrtTransferProgressListenerTest.java +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3CrtTransferProgressListenerTest.java @@ -160,7 +160,9 @@ void listeners_reports_ErrorsWhenCancelled(WireMockRuntimeInfo wm) throws Interr assertThat(transferListener.getExceptionCaught()).isInstanceOf(CancellationException.class); assertThat(transferListener.isTransferComplete()).isFalse(); assertThat(transferListener.isTransferInitiated()).isTrue(); - assertMockOnFailure(transferListenerMock); + Mockito.verify(transferListenerMock, times(1)).transferFailed(ArgumentMatchers.any()); + Mockito.verify(transferListenerMock, times(1)).transferInitiated(ArgumentMatchers.any()); + Mockito.verify(transferListenerMock, times(0)).transferComplete(ArgumentMatchers.any()); } diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3JavaMultipartTransferProgressListenerTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3JavaMultipartTransferProgressListenerTest.java new file mode 100644 index 000000000000..22e57473dbef --- /dev/null +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3JavaMultipartTransferProgressListenerTest.java @@ -0,0 +1,212 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.transfer.s3.internal; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.any; +import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; + +import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; +import java.io.IOException; +import java.net.URI; +import java.util.concurrent.CancellationException; +import java.util.concurrent.CompletionException; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; +import org.mockito.ArgumentMatchers; +import org.mockito.Mockito; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.model.NoSuchBucketException; +import software.amazon.awssdk.services.s3.model.S3Exception; +import software.amazon.awssdk.testutils.RandomTempFile; +import software.amazon.awssdk.transfer.s3.CaptureTransferListener; +import software.amazon.awssdk.transfer.s3.S3TransferManager; +import software.amazon.awssdk.transfer.s3.model.FileUpload; +import software.amazon.awssdk.transfer.s3.progress.LoggingTransferListener; +import software.amazon.awssdk.transfer.s3.progress.TransferListener; + +@WireMockTest +public class S3JavaMultipartTransferProgressListenerTest { + + public static final String ERROR_CODE = "NoSuchBucket"; + public static final String ERROR_MESSAGE = "We encountered an internal error. Please try again."; + public static final String ERROR_BODY = "\n" + + "\n" + + " " + ERROR_CODE + "\n" + + " " + ERROR_MESSAGE + "\n" + + ""; + private static final String EXAMPLE_BUCKET = "Example-Bucket"; + private static final String TEST_KEY = "16mib_file.dat"; + private static final int OBJ_SIZE = 16 * 1024 * 1024; + private static RandomTempFile testFile; + private static URI testEndpoint; + + @BeforeAll + public static void init(WireMockRuntimeInfo wm) throws IOException { + testEndpoint = URI.create(wm.getHttpBaseUrl()); + testFile = new RandomTempFile(TEST_KEY, OBJ_SIZE); + } + + private static S3AsyncClient s3AsyncClient(boolean multipartEnabled) { + return S3AsyncClient.builder() + .multipartEnabled(multipartEnabled) + .region(Region.US_EAST_1) + .endpointOverride(testEndpoint) + .credentialsProvider( + StaticCredentialsProvider.create(AwsBasicCredentials.create("key", "secret"))) + .build(); + } + + private static void assertMockOnFailure(TransferListener transferListenerMock) { + Mockito.verify(transferListenerMock, times(1)).transferFailed(ArgumentMatchers.any()); + Mockito.verify(transferListenerMock, times(1)).transferInitiated(ArgumentMatchers.any()); + Mockito.verify(transferListenerMock, times(0)).transferComplete(ArgumentMatchers.any()); + } + + @ParameterizedTest + @ValueSource(booleans = {true, false}) + void listeners_reports_ErrorsWithValidPayload(boolean multipartEnabled) throws InterruptedException { + S3AsyncClient s3Async = s3AsyncClient(multipartEnabled); + + TransferListener transferListenerMock = mock(TransferListener.class); + stubFor(any(anyUrl()).willReturn(aResponse().withStatus(404).withBody(ERROR_BODY))); + S3TransferManager tm = new GenericS3TransferManager(s3Async, mock(UploadDirectoryHelper.class), + mock(TransferManagerConfiguration.class), + mock(DownloadDirectoryHelper.class)); + CaptureTransferListener transferListener = new CaptureTransferListener(); + + FileUpload fileUpload = + tm.uploadFile(u -> u.putObjectRequest(p -> p.bucket(EXAMPLE_BUCKET).key(TEST_KEY)) + .source(testFile) + .addTransferListener(LoggingTransferListener.create()) + .addTransferListener(transferListener) + .addTransferListener(transferListenerMock) + .build()); + + assertThatExceptionOfType(CompletionException.class).isThrownBy(() -> fileUpload.completionFuture().join()); + Thread.sleep(500); + assertThat(transferListener.getExceptionCaught()).isInstanceOf(NoSuchBucketException.class); + assertThat(transferListener.isTransferComplete()).isFalse(); + assertThat(transferListener.isTransferInitiated()).isTrue(); + + assertMockOnFailure(transferListenerMock); + } + + @ParameterizedTest + @ValueSource(booleans = {true, false}) + void listeners_reports_ErrorsWithValidInValidPayload(boolean multipartEnabled) throws InterruptedException { + S3AsyncClient s3Async = s3AsyncClient(multipartEnabled); + + TransferListener transferListenerMock = mock(TransferListener.class); + stubFor(any(anyUrl()).willReturn(aResponse().withStatus(404).withBody("?"))); + S3TransferManager tm = new GenericS3TransferManager(s3Async, mock(UploadDirectoryHelper.class), + mock(TransferManagerConfiguration.class), + mock(DownloadDirectoryHelper.class)); + CaptureTransferListener transferListener = new CaptureTransferListener(); + + FileUpload fileUpload = + tm.uploadFile(u -> u.putObjectRequest(p -> p.bucket(EXAMPLE_BUCKET).key(TEST_KEY)) + .source(testFile) + .addTransferListener(LoggingTransferListener.create()) + .addTransferListener(transferListener) + .addTransferListener(transferListenerMock) + .build()); + + assertThatExceptionOfType(CompletionException.class).isThrownBy(() -> fileUpload.completionFuture().join()); + Thread.sleep(500); + + assertThat(transferListener.getExceptionCaught()).isInstanceOf(S3Exception.class); + assertThat(transferListener.isTransferComplete()).isFalse(); + assertThat(transferListener.isTransferInitiated()).isTrue(); + assertMockOnFailure(transferListenerMock); + + } + + + @ParameterizedTest + @ValueSource(booleans = {true, false}) + void listeners_reports_ErrorsWhenCancelled(boolean multipartEnabled) throws InterruptedException { + S3AsyncClient s3Async = s3AsyncClient(multipartEnabled); + + TransferListener transferListenerMock = mock(TransferListener.class); + stubFor(any(anyUrl()).willReturn(aResponse().withStatus(200).withBody("{}"))); + S3TransferManager tm = new GenericS3TransferManager(s3Async, mock(UploadDirectoryHelper.class), + mock(TransferManagerConfiguration.class), + mock(DownloadDirectoryHelper.class)); + CaptureTransferListener transferListener = new CaptureTransferListener(); + + tm.uploadFile(u -> u.putObjectRequest(p -> p.bucket(EXAMPLE_BUCKET).key(TEST_KEY)) + .source(testFile) + .addTransferListener(LoggingTransferListener.create()) + .addTransferListener(transferListener) + .addTransferListener(transferListenerMock) + .build()).completionFuture().cancel(true); + + Thread.sleep(500); + + assertThat(transferListener.getExceptionCaught()).isInstanceOf(CancellationException.class); + assertThat(transferListener.isTransferComplete()).isFalse(); + assertThat(transferListener.isTransferInitiated()).isTrue(); + assertMockOnFailure(transferListenerMock); + + } + + @ParameterizedTest + @ValueSource(booleans = {true, false}) + void listeners_reports_ProgressWhenSuccess(boolean multipartEnabled) throws InterruptedException { + S3AsyncClient s3Async = s3AsyncClient(multipartEnabled); + + TransferListener transferListenerMock = mock(TransferListener.class); + String createMpuUrl = "/" + EXAMPLE_BUCKET + "/" + TEST_KEY + "?uploads"; + String createMpuResponse = "1234"; + stubFor(post(urlEqualTo(createMpuUrl)).willReturn(aResponse().withStatus(200).withBody(createMpuResponse))); + stubFor(any(anyUrl()).atPriority(6).willReturn(aResponse().withStatus(200).withBody(""))); + S3TransferManager tm = new GenericS3TransferManager(s3Async, mock(UploadDirectoryHelper.class), + mock(TransferManagerConfiguration.class), + mock(DownloadDirectoryHelper.class)); + CaptureTransferListener transferListener = new CaptureTransferListener(); + + tm.uploadFile(u -> u.putObjectRequest(p -> p.bucket(EXAMPLE_BUCKET).key(TEST_KEY)) + .source(testFile) + .addTransferListener(LoggingTransferListener.create()) + .addTransferListener(transferListener) + .addTransferListener(transferListenerMock) + .build()).completionFuture().join(); + + Thread.sleep(500); + assertThat(transferListener.getExceptionCaught()).isNull(); + assertThat(transferListener.isTransferComplete()).isTrue(); + assertThat(transferListener.isTransferInitiated()).isTrue(); + Mockito.verify(transferListenerMock, times(0)).transferFailed(ArgumentMatchers.any()); + Mockito.verify(transferListenerMock, times(1)).transferInitiated(ArgumentMatchers.any()); + Mockito.verify(transferListenerMock, times(1)).transferComplete(ArgumentMatchers.any()); + + int numTimesBytesTransferred = multipartEnabled ? 2 : 1; + Mockito.verify(transferListenerMock, times(numTimesBytesTransferred)).bytesTransferred(ArgumentMatchers.any()); + } +} diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3TransferManagerUploadPauseAndResumeTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3TransferManagerUploadPauseAndResumeTest.java index 351fd03f7495..dccc03e44dfa 100644 --- a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3TransferManagerUploadPauseAndResumeTest.java +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/S3TransferManagerUploadPauseAndResumeTest.java @@ -22,6 +22,7 @@ import static org.mockito.Mockito.when; import static software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute.SDK_HTTP_EXECUTION_ATTRIBUTES; import static software.amazon.awssdk.services.s3.internal.crt.S3InternalSdkHttpExecutionAttribute.CRT_PAUSE_RESUME_TOKEN; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.RESUME_TOKEN; import static software.amazon.awssdk.transfer.s3.SizeConstant.MB; import java.io.File; @@ -32,15 +33,20 @@ import java.time.Instant; import java.util.UUID; import java.util.concurrent.CompletableFuture; +import java.util.stream.Stream; import org.apache.commons.lang3.RandomStringUtils; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.mockito.ArgumentCaptor; import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration; import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.http.SdkHttpExecutionAttributes; +import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.internal.crt.S3CrtAsyncClient; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; import software.amazon.awssdk.services.s3.model.AbortMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.AbortMultipartUploadResponse; import software.amazon.awssdk.services.s3.model.PutObjectRequest; @@ -52,7 +58,9 @@ class S3TransferManagerUploadPauseAndResumeTest { private S3CrtAsyncClient mockS3Crt; - private S3TransferManager tm; + private S3AsyncClient mockS3; + private S3TransferManager tmCrt; + private S3TransferManager tmJava; private UploadDirectoryHelper uploadDirectoryHelper; private DownloadDirectoryHelper downloadDirectoryHelper; private TransferManagerConfiguration configuration; @@ -62,21 +70,52 @@ class S3TransferManagerUploadPauseAndResumeTest { public void methodSetup() throws IOException { file = RandomTempFile.createTempFile("test", UUID.randomUUID().toString()); Files.write(file.toPath(), RandomStringUtils.randomAlphanumeric(1000).getBytes(StandardCharsets.UTF_8)); - mockS3Crt = mock(S3CrtAsyncClient.class); uploadDirectoryHelper = mock(UploadDirectoryHelper.class); configuration = mock(TransferManagerConfiguration.class); downloadDirectoryHelper = mock(DownloadDirectoryHelper.class); - tm = new CrtS3TransferManager(configuration, mockS3Crt, false); + mockS3Crt = mock(S3CrtAsyncClient.class); + mockS3 = mock(S3AsyncClient.class); + tmCrt = new CrtS3TransferManager(configuration, mockS3Crt, false); + tmJava = new GenericS3TransferManager(mockS3, uploadDirectoryHelper, configuration, downloadDirectoryHelper); } @AfterEach public void methodTeardown() { file.delete(); - tm.close(); + tmCrt.close(); + tmJava.close(); + } + + enum TmType{ + JAVA, CRT + } + + private static Stream transferManagers() { + return Stream.of( + Arguments.of(TmType.JAVA), + Arguments.of(TmType.CRT) + ); } - @Test - void resumeUploadFile_noResumeToken_shouldUploadFromBeginning() { + private S3TransferManager configureTestBehavior(TmType tmType, PutObjectResponse response) { + if (tmType == TmType.JAVA) { + when(mockS3.putObject(any(PutObjectRequest.class), any(AsyncRequestBody.class))) + .thenReturn(CompletableFuture.completedFuture(response)); + when(mockS3.abortMultipartUpload(any(AbortMultipartUploadRequest.class))) + .thenReturn(CompletableFuture.completedFuture(AbortMultipartUploadResponse.builder().build())); + return tmJava; + } else { + when(mockS3Crt.putObject(any(PutObjectRequest.class), any(Path.class))) + .thenReturn(CompletableFuture.completedFuture(response)); + when(mockS3Crt.abortMultipartUpload(any(AbortMultipartUploadRequest.class))) + .thenReturn(CompletableFuture.completedFuture(AbortMultipartUploadResponse.builder().build())); + return tmCrt; + } + } + + @ParameterizedTest + @MethodSource("transferManagers") + void resumeUploadFile_noResumeToken_shouldUploadFromBeginning(TmType tmType) { PutObjectRequest putObjectRequest = putObjectRequest(); PutObjectResponse response = PutObjectResponse.builder().build(); Instant fileLastModified = Instant.ofEpochMilli(file.lastModified()); @@ -87,9 +126,7 @@ void resumeUploadFile_noResumeToken_shouldUploadFromBeginning() { .source(file) .build(); - - when(mockS3Crt.putObject(any(PutObjectRequest.class), any(Path.class))) - .thenReturn(CompletableFuture.completedFuture(response)); + S3TransferManager tm = configureTestBehavior(tmType, response); CompletedFileUpload completedFileUpload = tm.resumeUploadFile(r -> r.fileLength(fileLength) .uploadFileRequest(uploadFileRequest) @@ -97,11 +134,17 @@ void resumeUploadFile_noResumeToken_shouldUploadFromBeginning() { .completionFuture() .join(); assertThat(completedFileUpload.response()).isEqualTo(response); - verifyActualPutObjectRequestNotResumed(); + + if (tmType == TmType.JAVA) { + verifyActualPutObjectRequestNotResumed_tmJava(); + } else { + verifyActualPutObjectRequestNotResumed_tmCrt(); + } } - @Test - void resumeUploadFile_fileModified_shouldAbortExistingAndUploadFromBeginning() { + @ParameterizedTest + @MethodSource("transferManagers") + void resumeUploadFile_fileModified_shouldAbortExistingAndUploadFromBeginning(TmType tmType) { PutObjectRequest putObjectRequest = putObjectRequest(); PutObjectResponse response = PutObjectResponse.builder().build(); Instant fileLastModified = Instant.ofEpochMilli(file.lastModified()); @@ -112,12 +155,7 @@ void resumeUploadFile_fileModified_shouldAbortExistingAndUploadFromBeginning() { .source(file) .build(); - - when(mockS3Crt.putObject(any(PutObjectRequest.class), any(Path.class))) - .thenReturn(CompletableFuture.completedFuture(response)); - - when(mockS3Crt.abortMultipartUpload(any(AbortMultipartUploadRequest.class))) - .thenReturn(CompletableFuture.completedFuture(AbortMultipartUploadResponse.builder().build())); + S3TransferManager tm = configureTestBehavior(tmType, response); String multipartId = "someId"; CompletedFileUpload completedFileUpload = tm.resumeUploadFile(r -> r.fileLength(fileLength + 10L) @@ -129,18 +167,29 @@ void resumeUploadFile_fileModified_shouldAbortExistingAndUploadFromBeginning() { .completionFuture() .join(); assertThat(completedFileUpload.response()).isEqualTo(response); - verifyActualPutObjectRequestNotResumed(); + + if (tmType == TmType.JAVA) { + verifyActualPutObjectRequestNotResumed_tmJava(); + } else { + verifyActualPutObjectRequestNotResumed_tmCrt(); + } ArgumentCaptor abortMultipartUploadRequestArgumentCaptor = ArgumentCaptor.forClass(AbortMultipartUploadRequest.class); - verify(mockS3Crt).abortMultipartUpload(abortMultipartUploadRequestArgumentCaptor.capture()); + + if (tmType == TmType.JAVA) { + verify(mockS3).abortMultipartUpload(abortMultipartUploadRequestArgumentCaptor.capture()); + } else { + verify(mockS3Crt).abortMultipartUpload(abortMultipartUploadRequestArgumentCaptor.capture()); + } AbortMultipartUploadRequest actualRequest = abortMultipartUploadRequestArgumentCaptor.getValue(); assertThat(actualRequest.uploadId()).isEqualTo(multipartId); } - @Test - void resumeUploadFile_hasValidResumeToken_shouldResumeUpload() { + @ParameterizedTest + @MethodSource("transferManagers") + void resumeUploadFile_hasValidResumeToken_shouldResumeUpload(TmType tmType) { PutObjectRequest putObjectRequest = putObjectRequest(); PutObjectResponse response = PutObjectResponse.builder().build(); Instant fileLastModified = Instant.ofEpochMilli(file.lastModified()); @@ -151,10 +200,7 @@ void resumeUploadFile_hasValidResumeToken_shouldResumeUpload() { .source(file) .build(); - - when(mockS3Crt.putObject(any(PutObjectRequest.class), any(Path.class))) - .thenReturn(CompletableFuture.completedFuture(response)); - + S3TransferManager tm = configureTestBehavior(tmType, response); String multipartId = "someId"; long totalParts = 10L; @@ -169,31 +215,65 @@ void resumeUploadFile_hasValidResumeToken_shouldResumeUpload() { .join(); assertThat(completedFileUpload.response()).isEqualTo(response); - ArgumentCaptor putObjectRequestArgumentCaptor = - ArgumentCaptor.forClass(PutObjectRequest.class); - verify(mockS3Crt).putObject(putObjectRequestArgumentCaptor.capture(), any(Path.class)); + if (tmType == TmType.JAVA) { + verifyActualPutObjectRequestResumedAndCorrectTokenReturned_tmJava(multipartId, partSizeInBytes, totalParts); + } else { + verifyActualPutObjectRequestResumedAndCorrectTokenReturned_tmCrt(multipartId, partSizeInBytes, totalParts); + } + } + + private void verifyActualPutObjectRequestNotResumed_tmCrt() { + ArgumentCaptor putObjectRequestArgumentCaptor = ArgumentCaptor.forClass(PutObjectRequest.class); + + verify(mockS3Crt).putObject(putObjectRequestArgumentCaptor.capture(), any(Path.class)); PutObjectRequest actualRequest = putObjectRequestArgumentCaptor.getValue(); AwsRequestOverrideConfiguration awsRequestOverrideConfiguration = actualRequest.overrideConfiguration().get(); SdkHttpExecutionAttributes attribute = awsRequestOverrideConfiguration.executionAttributes().getAttribute(SDK_HTTP_EXECUTION_ATTRIBUTES); - assertThat(attribute.getAttribute(CRT_PAUSE_RESUME_TOKEN)).satisfies(token -> { - assertThat(token.getUploadId()).isEqualTo(multipartId); - assertThat(token.getPartSize()).isEqualTo(partSizeInBytes); - assertThat(token.getTotalNumParts()).isEqualTo(totalParts); - }); + assertThat(attribute.getAttribute(CRT_PAUSE_RESUME_TOKEN)).isNull(); + } + + private void verifyActualPutObjectRequestNotResumed_tmJava() { + ArgumentCaptor putObjectRequestArgumentCaptor = ArgumentCaptor.forClass(PutObjectRequest.class); + + verify(mockS3).putObject(putObjectRequestArgumentCaptor.capture(), any(AsyncRequestBody.class)); + PutObjectRequest actualRequest = putObjectRequestArgumentCaptor.getValue(); + + assertThat(actualRequest.overrideConfiguration()).isEmpty(); + } + + private void verifyActualPutObjectRequestResumedAndCorrectTokenReturned_tmJava(String multipartId, long partSizeInBytes, + long totalParts) { + ArgumentCaptor putObjectRequestArgumentCaptor = ArgumentCaptor.forClass(PutObjectRequest.class); + + verify(mockS3).putObject(putObjectRequestArgumentCaptor.capture(), any(AsyncRequestBody.class)); + PutObjectRequest actualRequest = putObjectRequestArgumentCaptor.getValue(); + AwsRequestOverrideConfiguration awsRequestOverrideConfiguration = actualRequest.overrideConfiguration().get(); + + assertThat(awsRequestOverrideConfiguration.executionAttributes().getAttribute(RESUME_TOKEN)).isNotNull(); + S3ResumeToken s3ResumeToken = awsRequestOverrideConfiguration.executionAttributes().getAttribute(RESUME_TOKEN); + + assertThat(s3ResumeToken.uploadId()).isEqualTo(multipartId); + assertThat(s3ResumeToken.partSize()).isEqualTo(partSizeInBytes); + assertThat(s3ResumeToken.totalNumParts()).isEqualTo(totalParts); } - private void verifyActualPutObjectRequestNotResumed() { - ArgumentCaptor putObjectRequestArgumentCaptor = - ArgumentCaptor.forClass(PutObjectRequest.class); + private void verifyActualPutObjectRequestResumedAndCorrectTokenReturned_tmCrt(String multipartId, long partSizeInBytes, + long totalParts) { + ArgumentCaptor putObjectRequestArgumentCaptor = ArgumentCaptor.forClass(PutObjectRequest.class); + verify(mockS3Crt).putObject(putObjectRequestArgumentCaptor.capture(), any(Path.class)); PutObjectRequest actualRequest = putObjectRequestArgumentCaptor.getValue(); AwsRequestOverrideConfiguration awsRequestOverrideConfiguration = actualRequest.overrideConfiguration().get(); SdkHttpExecutionAttributes attribute = awsRequestOverrideConfiguration.executionAttributes().getAttribute(SDK_HTTP_EXECUTION_ATTRIBUTES); - assertThat(attribute.getAttribute(CRT_PAUSE_RESUME_TOKEN)).isNull(); + assertThat(attribute.getAttribute(CRT_PAUSE_RESUME_TOKEN)).satisfies(token -> { + assertThat(token.getUploadId()).isEqualTo(multipartId); + assertThat(token.getPartSize()).isEqualTo(partSizeInBytes); + assertThat(token.getTotalNumParts()).isEqualTo(totalParts); + }); } private static PutObjectRequest putObjectRequest() { diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/UploadDirectoryHelperTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/UploadDirectoryHelperTest.java index aba7cc86ae0d..9e975f09a357 100644 --- a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/UploadDirectoryHelperTest.java +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/UploadDirectoryHelperTest.java @@ -48,7 +48,7 @@ import org.junit.jupiter.params.provider.MethodSource; import org.mockito.ArgumentCaptor; import software.amazon.awssdk.core.exception.SdkClientException; -import software.amazon.awssdk.services.s3.internal.crt.S3MetaRequestPauseObservable; +import software.amazon.awssdk.services.s3.multipart.PauseObservable; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; import software.amazon.awssdk.testutils.FileUtils; @@ -443,6 +443,7 @@ private DefaultFileUpload completedUpload() { new DefaultTransferProgress(DefaultTransferProgressSnapshot.builder() .transferredBytes(0L) .build()), + new PauseObservable(), UploadFileRequest.builder() .source(Paths.get(".")).putObjectRequest(b -> b.bucket("bucket").key("key")) .build()); @@ -453,6 +454,7 @@ private FileUpload newUpload(CompletableFuture future) { new DefaultTransferProgress(DefaultTransferProgressSnapshot.builder() .transferredBytes(0L) .build()), + new PauseObservable(), UploadFileRequest.builder() .putObjectRequest(p -> p.key("key").bucket("bucket")).source(Paths.get( "test.txt")) diff --git a/services/accessanalyzer/pom.xml b/services/accessanalyzer/pom.xml index ec9e94a1ea17..b4e62473a262 100644 --- a/services/accessanalyzer/pom.xml +++ b/services/accessanalyzer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT accessanalyzer AWS Java SDK :: Services :: AccessAnalyzer diff --git a/services/accessanalyzer/src/main/resources/codegen-resources/customization.config b/services/accessanalyzer/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/accessanalyzer/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/account/pom.xml b/services/account/pom.xml index 3087e74cc5ee..01626d0f5c55 100644 --- a/services/account/pom.xml +++ b/services/account/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT account AWS Java SDK :: Services :: Account diff --git a/services/account/src/main/resources/codegen-resources/customization.config b/services/account/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/account/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/acm/pom.xml b/services/acm/pom.xml index 19653b45e8c1..17f0ce2f866d 100644 --- a/services/acm/pom.xml +++ b/services/acm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT acm AWS Java SDK :: Services :: AWS Certificate Manager diff --git a/services/acm/src/main/resources/codegen-resources/customization.config b/services/acm/src/main/resources/codegen-resources/customization.config index c3ef1316d06a..2e642dc4284c 100644 --- a/services/acm/src/main/resources/codegen-resources/customization.config +++ b/services/acm/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listCertificates" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true } diff --git a/services/acmpca/pom.xml b/services/acmpca/pom.xml index e1df5acfc581..0f90aee7d570 100644 --- a/services/acmpca/pom.xml +++ b/services/acmpca/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT acmpca AWS Java SDK :: Services :: ACM PCA diff --git a/services/acmpca/src/main/resources/codegen-resources/customization.config b/services/acmpca/src/main/resources/codegen-resources/customization.config index e969b771c15f..fa05c9e79dcb 100644 --- a/services/acmpca/src/main/resources/codegen-resources/customization.config +++ b/services/acmpca/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listCertificateAuthorities" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true } diff --git a/services/acmpca/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/acmpca/src/main/resources/codegen-resources/endpoint-rule-set.json index 32fd04c4617b..94cc1c481020 100644 --- a/services/acmpca/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/acmpca/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,18 +212,17 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ - "aws-us-gov", { "fn": "getAttr", "argv": [ @@ -236,7 +231,8 @@ }, "name" ] - } + }, + "aws-us-gov" ] } ], @@ -256,14 +252,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -277,7 +275,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -297,7 +294,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -308,14 +304,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -326,9 +324,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/acmpca/src/main/resources/codegen-resources/service-2.json b/services/acmpca/src/main/resources/codegen-resources/service-2.json index 62fbca99dbca..8a7365ac146c 100644 --- a/services/acmpca/src/main/resources/codegen-resources/service-2.json +++ b/services/acmpca/src/main/resources/codegen-resources/service-2.json @@ -551,7 +551,7 @@ "type":"string", "max":200, "min":5, - "pattern":"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" + "pattern":"arn:[\\w+=/,.@-]+:acm-pca:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" }, "AuditReportId":{ "type":"string", @@ -882,9 +882,25 @@ "S3ObjectAcl":{ "shape":"S3ObjectAcl", "documentation":"

    Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access.

    If no value is specified, the default is PUBLIC_READ.

    Note: This default can cause CA creation to fail in some circumstances. If you have have enabled the Block Public Access (BPA) feature in your S3 account, then you must specify the value of this parameter as BUCKET_OWNER_FULL_CONTROL, and not doing so results in an error. If you have disabled BPA in S3, then you can specify either BUCKET_OWNER_FULL_CONTROL or PUBLIC_READ as the value.

    For more information, see Blocking public access to the S3 bucket.

    " + }, + "CrlDistributionPointExtensionConfiguration":{ + "shape":"CrlDistributionPointExtensionConfiguration", + "documentation":"

    Configures the behavior of the CRL Distribution Point extension for certificates issued by your certificate authority. If this field is not provided, then the CRl Distribution Point Extension will be present and contain the default CRL URL.

    " } }, - "documentation":"

    Contains configuration information for a certificate revocation list (CRL). Your private certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You can enable CRLs for your new or an existing private CA by setting the Enabled parameter to true. Your private CA writes CRLs to an S3 bucket that you specify in the S3BucketName parameter. You can hide the name of your bucket by specifying a value for the CustomCname parameter. Your private CA copies the CNAME or the S3 bucket name to the CRL Distribution Points extension of each certificate it issues. Your S3 bucket policy must give write permission to Amazon Web Services Private CA.

    Amazon Web Services Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see Encrypting Your CRLs.

    Your private CA uses the value in the ExpirationInDays parameter to calculate the nextUpdate field in the CRL. The CRL is refreshed prior to a certificate's expiration date or when a certificate is revoked. When a certificate is revoked, it appears in the CRL until the certificate expires, and then in one additional CRL after expiration, and it always appears in the audit report.

    A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, Amazon Web Services Private CA makes further attempts every 15 minutes.

    CRLs contain the following fields:

    • Version: The current version number defined in RFC 5280 is V2. The integer value is 0x1.

    • Signature Algorithm: The name of the algorithm used to sign the CRL.

    • Issuer: The X.500 distinguished name of your private CA that issued the CRL.

    • Last Update: The issue date and time of this CRL.

    • Next Update: The day and time by which the next CRL will be issued.

    • Revoked Certificates: List of revoked certificates. Each list item contains the following information.

      • Serial Number: The serial number, in hexadecimal format, of the revoked certificate.

      • Revocation Date: Date and time the certificate was revoked.

      • CRL Entry Extensions: Optional extensions for the CRL entry.

        • X509v3 CRL Reason Code: Reason the certificate was revoked.

    • CRL Extensions: Optional extensions for the CRL.

      • X509v3 Authority Key Identifier: Identifies the public key associated with the private key used to sign the certificate.

      • X509v3 CRL Number:: Decimal sequence number for the CRL.

    • Signature Algorithm: Algorithm used by your private CA to sign the CRL.

    • Signature Value: Signature computed over the CRL.

    Certificate revocation lists created by Amazon Web Services Private CA are DER-encoded. You can use the following OpenSSL command to list a CRL.

    openssl crl -inform DER -text -in crl_path -noout

    For more information, see Planning a certificate revocation list (CRL) in the Amazon Web Services Private Certificate Authority User Guide

    " + "documentation":"

    Contains configuration information for a certificate revocation list (CRL). Your private certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You can enable CRLs for your new or an existing private CA by setting the Enabled parameter to true. Your private CA writes CRLs to an S3 bucket that you specify in the S3BucketName parameter. You can hide the name of your bucket by specifying a value for the CustomCname parameter. Your private CA by default copies the CNAME or the S3 bucket name to the CRL Distribution Points extension of each certificate it issues. If you want to configure this default behavior to be something different, you can set the CrlDistributionPointExtensionConfiguration parameter. Your S3 bucket policy must give write permission to Amazon Web Services Private CA.

    Amazon Web Services Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see Encrypting Your CRLs.

    Your private CA uses the value in the ExpirationInDays parameter to calculate the nextUpdate field in the CRL. The CRL is refreshed prior to a certificate's expiration date or when a certificate is revoked. When a certificate is revoked, it appears in the CRL until the certificate expires, and then in one additional CRL after expiration, and it always appears in the audit report.

    A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, Amazon Web Services Private CA makes further attempts every 15 minutes.

    CRLs contain the following fields:

    • Version: The current version number defined in RFC 5280 is V2. The integer value is 0x1.

    • Signature Algorithm: The name of the algorithm used to sign the CRL.

    • Issuer: The X.500 distinguished name of your private CA that issued the CRL.

    • Last Update: The issue date and time of this CRL.

    • Next Update: The day and time by which the next CRL will be issued.

    • Revoked Certificates: List of revoked certificates. Each list item contains the following information.

      • Serial Number: The serial number, in hexadecimal format, of the revoked certificate.

      • Revocation Date: Date and time the certificate was revoked.

      • CRL Entry Extensions: Optional extensions for the CRL entry.

        • X509v3 CRL Reason Code: Reason the certificate was revoked.

    • CRL Extensions: Optional extensions for the CRL.

      • X509v3 Authority Key Identifier: Identifies the public key associated with the private key used to sign the certificate.

      • X509v3 CRL Number:: Decimal sequence number for the CRL.

    • Signature Algorithm: Algorithm used by your private CA to sign the CRL.

    • Signature Value: Signature computed over the CRL.

    Certificate revocation lists created by Amazon Web Services Private CA are DER-encoded. You can use the following OpenSSL command to list a CRL.

    openssl crl -inform DER -text -in crl_path -noout

    For more information, see Planning a certificate revocation list (CRL) in the Amazon Web Services Private Certificate Authority User Guide

    " + }, + "CrlDistributionPointExtensionConfiguration":{ + "type":"structure", + "required":["OmitExtension"], + "members":{ + "OmitExtension":{ + "shape":"Boolean", + "documentation":"

    Configures whether the CRL Distribution Point extension should be populated with the default URL to the CRL. If set to true, then the CDP extension will not be present in any certificates issued by that CA unless otherwise specified through CSR or API passthrough.

    Only set this if you have another way to distribute the CRL Distribution Points ffor certificates issued by your CA, such as the Matter Distributed Compliance Ledger

    This configuration cannot be enabled with a custom CNAME set.

    ", + "box":true + } + }, + "documentation":"

    Contains configuration information for the default behavior of the CRL Distribution Point (CDP) extension in certificates issued by your CA. This extension contains a link to download the CRL, so you can check whether a certificate has been revoked. To choose whether you want this extension omitted or not in certificates issued by your CA, you can set the OmitExtension parameter.

    " }, "CsrBlob":{ "type":"blob", @@ -927,7 +943,7 @@ "CustomAttributeList":{ "type":"list", "member":{"shape":"CustomAttribute"}, - "max":30, + "max":150, "min":1 }, "CustomExtension":{ @@ -956,7 +972,7 @@ "CustomExtensionList":{ "type":"list", "member":{"shape":"CustomExtension"}, - "max":20, + "max":150, "min":1 }, "CustomObjectIdentifier":{ @@ -1185,7 +1201,7 @@ "GeneralNameList":{ "type":"list", "member":{"shape":"GeneralName"}, - "max":20, + "max":150, "min":1 }, "GetCertificateAuthorityCertificateRequest":{ @@ -1494,7 +1510,7 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    Use this parameter when paginating results to specify the maximum number of items to return in the response on each page. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items.

    " + "documentation":"

    Use this parameter when paginating results to specify the maximum number of items to return in the response on each page. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items.

    Although the maximum value is 1000, the action only returns a maximum of 100 items.

    " }, "ResourceOwner":{ "shape":"ResourceOwner", @@ -1608,7 +1624,7 @@ }, "NextToken":{ "type":"string", - "max":500, + "max":43739, "min":1 }, "OcspConfiguration":{ diff --git a/services/acmpca/src/main/resources/codegen-resources/waiters-2.json b/services/acmpca/src/main/resources/codegen-resources/waiters-2.json index 79bf399b9909..245186cadf81 100644 --- a/services/acmpca/src/main/resources/codegen-resources/waiters-2.json +++ b/services/acmpca/src/main/resources/codegen-resources/waiters-2.json @@ -22,7 +22,7 @@ "CertificateIssued": { "description": "Wait until a certificate is issued", "operation": "GetCertificate", - "delay": 3, + "delay": 1, "maxAttempts": 60, "acceptors": [ { diff --git a/services/alexaforbusiness/pom.xml b/services/alexaforbusiness/pom.xml index ef0b17bd41c2..d658fae21cb4 100644 --- a/services/alexaforbusiness/pom.xml +++ b/services/alexaforbusiness/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 alexaforbusiness diff --git a/services/alexaforbusiness/src/main/resources/codegen-resources/customization.config b/services/alexaforbusiness/src/main/resources/codegen-resources/customization.config index 9ef3f846f7a8..bf752c5c8eb1 100644 --- a/services/alexaforbusiness/src/main/resources/codegen-resources/customization.config +++ b/services/alexaforbusiness/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,7 @@ { - "excludedSimpleMethods" : ["*"] + "excludedSimpleMethods": [ + "*" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true } diff --git a/services/amp/pom.xml b/services/amp/pom.xml index 44b91496fa44..30c93b9ac1d2 100644 --- a/services/amp/pom.xml +++ b/services/amp/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT amp AWS Java SDK :: Services :: Amp diff --git a/services/amp/src/main/resources/codegen-resources/customization.config b/services/amp/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/amp/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/amp/src/main/resources/codegen-resources/service-2.json b/services/amp/src/main/resources/codegen-resources/service-2.json index 8020640a984f..fb8386642173 100644 --- a/services/amp/src/main/resources/codegen-resources/service-2.json +++ b/services/amp/src/main/resources/codegen-resources/service-2.json @@ -30,7 +30,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Create an alert manager definition.

    ", + "documentation":"

    The CreateAlertManagerDefinition operation creates the alert manager definition in a workspace. If a workspace already has an alert manager definition, don't use this operation to update it. Instead, use PutAlertManagerDefinition.

    ", "idempotent":true }, "CreateLoggingConfiguration":{ @@ -48,7 +48,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Create logging configuration.

    ", + "documentation":"

    The CreateLoggingConfiguration operation creates a logging configuration for the workspace. Use this operation to set the CloudWatch log group to which the logs will be published to.

    ", "idempotent":true }, "CreateRuleGroupsNamespace":{ @@ -69,7 +69,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Create a rule group namespace.

    ", + "documentation":"

    The CreateRuleGroupsNamespace operation creates a rule groups namespace within a workspace. A rule groups namespace is associated with exactly one rules file. A workspace can have multiple rule groups namespaces.

    Use this operation only to create new rule groups namespaces. To update an existing rule groups namespace, use PutRuleGroupsNamespace.

    ", "idempotent":true }, "CreateScraper":{ @@ -90,7 +90,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Create a scraper.

    ", + "documentation":"

    The CreateScraper operation creates a scraper to collect metrics. A scraper pulls metrics from Prometheus-compatible sources within an Amazon EKS cluster, and sends them to your Amazon Managed Service for Prometheus workspace. You can configure the scraper to control what metrics are collected, and what transformations are applied prior to sending them to your workspace.

    If needed, an IAM role will be created for you that gives Amazon Managed Service for Prometheus access to the metrics in your cluster. For more information, see Using roles for scraping metrics from EKS in the Amazon Managed Service for Prometheus User Guide.

    You cannot update a scraper. If you want to change the configuration of the scraper, create a new scraper and delete the old one.

    The scrapeConfiguration parameter contains the base64-encoded version of the YAML configuration file.

    For more information about collectors, including what metrics are collected, and how to configure the scraper, see Amazon Web Services managed collectors in the Amazon Managed Service for Prometheus User Guide.

    ", "idempotent":true }, "CreateWorkspace":{ @@ -110,7 +110,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Creates a new AMP workspace.

    ", + "documentation":"

    Creates a Prometheus workspace. A workspace is a logical space dedicated to the storage and querying of Prometheus metrics. You can have one or more workspaces in each Region in your account.

    ", "idempotent":true }, "DeleteAlertManagerDefinition":{ @@ -129,7 +129,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Deletes an alert manager definition.

    ", + "documentation":"

    Deletes the alert manager definition from a workspace.

    ", "idempotent":true }, "DeleteLoggingConfiguration":{ @@ -147,7 +147,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Delete logging configuration.

    ", + "documentation":"

    Deletes the logging configuration for a workspace.

    ", "idempotent":true }, "DeleteRuleGroupsNamespace":{ @@ -166,7 +166,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Delete a rule groups namespace.

    ", + "documentation":"

    Deletes one rule groups namespace and its associated rule groups definition.

    ", "idempotent":true }, "DeleteScraper":{ @@ -186,7 +186,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Deletes a scraper.

    ", + "documentation":"

    The DeleteScraper operation deletes one scraper, and stops any metrics collection that the scraper performs.

    ", "idempotent":true }, "DeleteWorkspace":{ @@ -205,7 +205,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Deletes an AMP workspace.

    ", + "documentation":"

    Deletes an existing workspace.

    When you delete a workspace, the data that has been ingested into it is not immediately deleted. It will be permanently deleted within one month.

    ", "idempotent":true }, "DescribeAlertManagerDefinition":{ @@ -224,7 +224,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Describes an alert manager definition.

    " + "documentation":"

    Retrieves the full information about the alert manager definition for a workspace.

    " }, "DescribeLoggingConfiguration":{ "name":"DescribeLoggingConfiguration", @@ -241,7 +241,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Describes logging configuration.

    " + "documentation":"

    Returns complete information about the current logging configuration of the workspace.

    " }, "DescribeRuleGroupsNamespace":{ "name":"DescribeRuleGroupsNamespace", @@ -259,7 +259,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Describe a rule groups namespace.

    " + "documentation":"

    Returns complete information about one rule groups namespace. To retrieve a list of rule groups namespaces, use ListRuleGroupsNamespaces.

    " }, "DescribeScraper":{ "name":"DescribeScraper", @@ -277,7 +277,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Describe an existing scraper.

    " + "documentation":"

    The DescribeScraper operation displays information about an existing scraper.

    " }, "DescribeWorkspace":{ "name":"DescribeWorkspace", @@ -295,7 +295,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Describes an existing AMP workspace.

    " + "documentation":"

    Returns information about an existing workspace.

    " }, "GetDefaultScraperConfiguration":{ "name":"GetDefaultScraperConfiguration", @@ -311,7 +311,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Gets a default configuration.

    " + "documentation":"

    The GetDefaultScraperConfiguration operation returns the default scraper configuration used when Amazon EKS creates a scraper for you.

    " }, "ListRuleGroupsNamespaces":{ "name":"ListRuleGroupsNamespaces", @@ -329,7 +329,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Lists rule groups namespaces.

    " + "documentation":"

    Returns a list of rule groups namespaces in a workspace.

    " }, "ListScrapers":{ "name":"ListScrapers", @@ -346,7 +346,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Lists all scrapers in a customer account, including scrapers being created or deleted. You may provide filters to return a more specific list of results.

    " + "documentation":"

    The ListScrapers operation lists all of the scrapers in your account. This includes scrapers being created or deleted. You can optionally filter the returned list.

    " }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -364,7 +364,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Lists the tags you have assigned to the resource.

    " + "documentation":"

    The ListTagsForResource operation returns the tags that are associated with an Amazon Managed Service for Prometheus resource. Currently, the only resources that can be tagged are workspaces and rule groups namespaces.

    " }, "ListWorkspaces":{ "name":"ListWorkspaces", @@ -381,7 +381,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Lists all AMP workspaces, including workspaces being created or deleted.

    " + "documentation":"

    Lists all of the Amazon Managed Service for Prometheus workspaces in your account. This includes workspaces being created or deleted.

    " }, "PutAlertManagerDefinition":{ "name":"PutAlertManagerDefinition", @@ -401,7 +401,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Update an alert manager definition.

    ", + "documentation":"

    Updates an existing alert manager definition in a workspace. If the workspace does not already have an alert manager definition, don't use this operation to create it. Instead, use CreateAlertManagerDefinition.

    ", "idempotent":true }, "PutRuleGroupsNamespace":{ @@ -422,7 +422,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Update a rule groups namespace.

    ", + "documentation":"

    Updates an existing rule groups namespace within a workspace. A rule groups namespace is associated with exactly one rules file. A workspace can have multiple rule groups namespaces.

    Use this operation only to update existing rule groups namespaces. To create a new rule groups namespace, use CreateRuleGroupsNamespace.

    You can't use this operation to add tags to an existing rule groups namespace. Instead, use TagResource.

    ", "idempotent":true }, "TagResource":{ @@ -441,7 +441,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Creates tags for the specified resource.

    " + "documentation":"

    The TagResource operation associates tags with an Amazon Managed Service for Prometheus resource. The only resources that can be tagged are workspaces and rule groups namespaces.

    If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.

    " }, "UntagResource":{ "name":"UntagResource", @@ -459,7 +459,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Deletes tags from the specified resource.

    ", + "documentation":"

    Removes the specified tags from an Amazon Managed Service for Prometheus resource. The only resources that can be tagged are workspaces and rule groups namespaces.

    ", "idempotent":true }, "UpdateLoggingConfiguration":{ @@ -478,7 +478,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Update logging configuration.

    ", + "documentation":"

    Updates the log group ARN or the workspace ID of the current logging configuration.

    ", "idempotent":true }, "UpdateWorkspaceAlias":{ @@ -498,7 +498,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Updates an AMP workspace alias.

    ", + "documentation":"

    Updates the alias of an existing workspace.

    ", "idempotent":true } }, @@ -512,7 +512,7 @@ "documentation":"

    Description of the error.

    " } }, - "documentation":"

    User does not have sufficient access to perform this action.

    ", + "documentation":"

    You do not have sufficient access to perform this action.

    ", "error":{ "httpStatusCode":403, "senderFault":true @@ -521,35 +521,35 @@ }, "AlertManagerDefinitionData":{ "type":"blob", - "documentation":"

    The alert manager definition data.

    " + "documentation":"

    The base-64 encoded blob that is alert manager definition.

    For details about the alert manager definition, see AlertManagedDefinitionData.

    " }, "AlertManagerDefinitionDescription":{ "type":"structure", "required":[ - "status", - "data", "createdAt", - "modifiedAt" + "data", + "modifiedAt", + "status" ], "members":{ - "status":{ - "shape":"AlertManagerDefinitionStatus", - "documentation":"

    The status of alert manager definition.

    " + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the alert manager definition was created.

    " }, "data":{ "shape":"AlertManagerDefinitionData", - "documentation":"

    The alert manager definition.

    " - }, - "createdAt":{ - "shape":"Timestamp", - "documentation":"

    The time when the alert manager definition was created.

    " + "documentation":"

    The actual alert manager definition.

    For details about the alert manager definition, see AlertManagedDefinitionData.

    " }, "modifiedAt":{ "shape":"Timestamp", - "documentation":"

    The time when the alert manager definition was modified.

    " + "documentation":"

    The date and time that the alert manager definition was most recently changed.

    " + }, + "status":{ + "shape":"AlertManagerDefinitionStatus", + "documentation":"

    A structure that displays the current status of the alert manager definition..

    " } }, - "documentation":"

    Represents the properties of an alert manager definition.

    " + "documentation":"

    The details of an alert manager definition.

    " }, "AlertManagerDefinitionStatus":{ "type":"structure", @@ -557,18 +557,18 @@ "members":{ "statusCode":{ "shape":"AlertManagerDefinitionStatusCode", - "documentation":"

    Status code of this definition.

    " + "documentation":"

    The current status of the alert manager.

    " }, "statusReason":{ "shape":"String", - "documentation":"

    The reason for failure if any.

    " + "documentation":"

    If there is a failure, the reason for the failure.

    " } }, - "documentation":"

    Represents the status of a definition.

    " + "documentation":"

    The status of the alert manager.

    " }, "AlertManagerDefinitionStatusCode":{ "type":"string", - "documentation":"

    State of an alert manager definition.

    ", + "documentation":"

    State of an AlertManagerDefinition.

    ", "enum":[ "CREATING", "ACTIVE", @@ -584,16 +584,16 @@ "members":{ "workspaceArn":{ "shape":"WorkspaceArn", - "documentation":"

    The ARN of an AMP workspace.

    " + "documentation":"

    ARN of the Amazon Managed Service for Prometheus workspace.

    " } }, - "documentation":"

    A representation of an AMP destination.

    " + "documentation":"

    The AmpConfiguration structure defines the Amazon Managed Service for Prometheus instance a scraper should send metrics to.

    " }, "Blob":{"type":"blob"}, "ClusterArn":{ "type":"string", "documentation":"

    The ARN of an EKS cluster.

    ", - "pattern":"arn:aws[-a-z]*:eks:[-a-z0-9]+:[0-9]{12}:cluster/.+" + "pattern":"^arn:aws[-a-z]*:eks:[-a-z0-9]+:[0-9]{12}:cluster/.+$" }, "ConflictException":{ "type":"structure", @@ -616,7 +616,7 @@ "documentation":"

    Type of the resource affected.

    " } }, - "documentation":"

    Updating or deleting a resource can cause an inconsistent state.

    ", + "documentation":"

    The request would cause an inconsistent state.

    ", "error":{ "httpStatusCode":409, "senderFault":true @@ -626,27 +626,27 @@ "CreateAlertManagerDefinitionRequest":{ "type":"structure", "required":[ - "workspaceId", - "data" + "data", + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace in which to create the alert manager definition.

    ", - "location":"uri", - "locationName":"workspaceId" + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", + "idempotencyToken":true }, "data":{ "shape":"AlertManagerDefinitionData", - "documentation":"

    The alert manager definition data.

    " + "documentation":"

    The alert manager definition to add. A base64-encoded version of the YAML alert manager definition file.

    For details about the alert manager definition, see AlertManagedDefinitionData.

    " }, - "clientToken":{ - "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", - "idempotencyToken":true + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace to add the alert manager definition to.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a CreateAlertManagerDefinition operation.

    " + "documentation":"

    Represents the input of a CreateAlertManagerDefinition operation.

    " }, "CreateAlertManagerDefinitionResponse":{ "type":"structure", @@ -654,35 +654,35 @@ "members":{ "status":{ "shape":"AlertManagerDefinitionStatus", - "documentation":"

    The status of alert manager definition.

    " + "documentation":"

    A structure that displays the current status of the alert manager definition.

    " } }, - "documentation":"

    Represents the output of a CreateAlertManagerDefinition operation.

    " + "documentation":"

    Represents the output of a CreateAlertManagerDefinition operation.

    " }, "CreateLoggingConfigurationRequest":{ "type":"structure", "required":[ - "workspaceId", - "logGroupArn" + "logGroupArn", + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace to vend logs to.

    ", - "location":"uri", - "locationName":"workspaceId" + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", + "idempotencyToken":true }, "logGroupArn":{ "shape":"LogGroupArn", - "documentation":"

    The ARN of the CW log group to which the vended log data will be published.

    " + "documentation":"

    The ARN of the CloudWatch log group to which the vended log data will be published. This log group must exist prior to calling this API.

    " }, - "clientToken":{ - "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", - "idempotencyToken":true + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace to create the logging configuration for.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a CreateLoggingConfiguration operation.

    " + "documentation":"

    Represents the input of a CreateLoggingConfiguration operation.

    " }, "CreateLoggingConfigurationResponse":{ "type":"structure", @@ -690,277 +690,277 @@ "members":{ "status":{ "shape":"LoggingConfigurationStatus", - "documentation":"

    The status of the logging configuration.

    " + "documentation":"

    A structure that displays the current status of the logging configuration.

    " } }, - "documentation":"

    Represents the output of a CreateLoggingConfiguration operation.

    " + "documentation":"

    Represents the output of a CreateLoggingConfiguration operation.

    " }, "CreateRuleGroupsNamespaceRequest":{ "type":"structure", "required":[ - "workspaceId", + "data", "name", - "data" + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace in which to create the rule group namespace.

    ", - "location":"uri", - "locationName":"workspaceId" - }, - "name":{ - "shape":"RuleGroupsNamespaceName", - "documentation":"

    The rule groups namespace name.

    " + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", + "idempotencyToken":true }, "data":{ "shape":"RuleGroupsNamespaceData", - "documentation":"

    The namespace data that define the rule groups.

    " + "documentation":"

    The rules file to use in the new namespace.

    Contains the base64-encoded version of the YAML rules file.

    For details about the rule groups namespace structure, see RuleGroupsNamespaceData.

    " }, - "clientToken":{ - "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", - "idempotencyToken":true + "name":{ + "shape":"RuleGroupsNamespaceName", + "documentation":"

    The name for the new rule groups namespace.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    Optional, user-provided tags for this rule groups namespace.

    " + "documentation":"

    The list of tag keys and values to associate with the rule groups namespace.

    " + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace to add the rule groups namespace.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a CreateRuleGroupsNamespace operation.

    " + "documentation":"

    Represents the input of a CreateRuleGroupsNamespace operation.

    " }, "CreateRuleGroupsNamespaceResponse":{ "type":"structure", "required":[ - "name", "arn", + "name", "status" ], "members":{ - "name":{ - "shape":"RuleGroupsNamespaceName", - "documentation":"

    The rule groups namespace name.

    " - }, "arn":{ "shape":"RuleGroupsNamespaceArn", - "documentation":"

    The Amazon Resource Name (ARN) of this rule groups namespace.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the new rule groups namespace.

    " + }, + "name":{ + "shape":"RuleGroupsNamespaceName", + "documentation":"

    The name of the new rule groups namespace.

    " }, "status":{ "shape":"RuleGroupsNamespaceStatus", - "documentation":"

    The status of rule groups namespace.

    " + "documentation":"

    A structure that returns the current status of the rule groups namespace.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    The tags of this rule groups namespace.

    " + "documentation":"

    The list of tag keys and values that are associated with the namespace.

    " } }, - "documentation":"

    Represents the output of a CreateRuleGroupsNamespace operation.

    " + "documentation":"

    Represents the output of a CreateRuleGroupsNamespace operation.

    " }, "CreateScraperRequest":{ "type":"structure", "required":[ + "destination", "scrapeConfiguration", - "source", - "destination" + "source" ], "members":{ "alias":{ "shape":"ScraperAlias", - "documentation":"

    An optional user-assigned alias for this scraper. This alias is for user reference and does not need to be unique.

    " + "documentation":"

    (optional) a name to associate with the scraper. This is for your use, and does not need to be unique.

    " + }, + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

    (Optional) A unique, case-sensitive identifier that you can provide to ensure the idempotency of the request.

    ", + "idempotencyToken":true + }, + "destination":{ + "shape":"Destination", + "documentation":"

    The Amazon Managed Service for Prometheus workspace to send metrics to.

    " }, "scrapeConfiguration":{ "shape":"ScrapeConfiguration", - "documentation":"

    The configuration used to create the scraper.

    " + "documentation":"

    The configuration file to use in the new scraper. For more information, see Scraper configuration in the Amazon Managed Service for Prometheus User Guide.

    " }, "source":{ "shape":"Source", - "documentation":"

    The source that the scraper will be discovering and collecting metrics from.

    " - }, - "destination":{ - "shape":"Destination", - "documentation":"

    The destination that the scraper will be producing metrics to.

    " - }, - "clientToken":{ - "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", - "idempotencyToken":true + "documentation":"

    The Amazon EKS cluster from which the scraper will collect metrics.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    Optional, user-provided tags for this scraper.

    " + "documentation":"

    (Optional) The list of tag keys and values to associate with the scraper.

    " } }, - "documentation":"

    Represents the input of a CreateScraper operation.

    " + "documentation":"

    Represents the input of a CreateScraper operation.

    " }, "CreateScraperResponse":{ "type":"structure", "required":[ - "scraperId", "arn", + "scraperId", "status" ], "members":{ - "scraperId":{ - "shape":"ScraperId", - "documentation":"

    The generated ID of the scraper that was just created.

    " - }, "arn":{ "shape":"ScraperArn", - "documentation":"

    The ARN of the scraper that was just created.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the new scraper.

    " + }, + "scraperId":{ + "shape":"ScraperId", + "documentation":"

    The ID of the new scraper.

    " }, "status":{ "shape":"ScraperStatus", - "documentation":"

    The status of the scraper that was just created (usually CREATING).

    " + "documentation":"

    A structure that displays the current status of the scraper.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    The tags of this scraper.

    " + "documentation":"

    The list of tag keys and values that are associated with the scraper.

    " } }, - "documentation":"

    Represents the output of a CreateScraper operation.

    " + "documentation":"

    Represents the output of a CreateScraper operation.

    " }, "CreateWorkspaceRequest":{ "type":"structure", "members":{ "alias":{ "shape":"WorkspaceAlias", - "documentation":"

    An optional user-assigned alias for this workspace. This alias is for user reference and does not need to be unique.

    " + "documentation":"

    An alias that you assign to this workspace to help you identify it. It does not need to be unique.

    Blank spaces at the beginning or end of the alias that you specify will be trimmed from the value used.

    " }, "clientToken":{ "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", "idempotencyToken":true }, - "tags":{ - "shape":"TagMap", - "documentation":"

    Optional, user-provided tags for this workspace.

    " - }, "kmsKeyArn":{ "shape":"KmsKeyArn", - "documentation":"

    Optional, customer managed KMS key used to encrypt data for this workspace

    " + "documentation":"

    (optional) The ARN for a customer managed KMS key to use for encrypting data within your workspace. For more information about using your own key in your workspace, see Encryption at rest in the Amazon Managed Service for Prometheus User Guide.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The list of tag keys and values to associate with the workspace.

    " } }, - "documentation":"

    Represents the input of a CreateWorkspace operation.

    " + "documentation":"

    Represents the input of a CreateWorkspace operation.

    " }, "CreateWorkspaceResponse":{ "type":"structure", "required":[ - "workspaceId", "arn", - "status" + "status", + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The generated ID of the workspace that was just created.

    " - }, "arn":{ "shape":"WorkspaceArn", - "documentation":"

    The ARN of the workspace that was just created.

    " + "documentation":"

    The ARN for the new workspace.

    " + }, + "kmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

    (optional) If the workspace was created with a customer managed KMS key, the ARN for the key used.

    " }, "status":{ "shape":"WorkspaceStatus", - "documentation":"

    The status of the workspace that was just created (usually CREATING).

    " + "documentation":"

    The current status of the new workspace. Immediately after you create the workspace, the status is usually CREATING.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    The tags of this workspace.

    " + "documentation":"

    The list of tag keys and values that are associated with the workspace.

    " }, - "kmsKeyArn":{ - "shape":"KmsKeyArn", - "documentation":"

    Customer managed KMS key ARN for this workspace

    " + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The unique ID for the new workspace.

    " } }, - "documentation":"

    Represents the output of a CreateWorkspace operation.

    " + "documentation":"

    Represents the output of a CreateWorkspace operation.

    " }, "DeleteAlertManagerDefinitionRequest":{ "type":"structure", "required":["workspaceId"], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace in which to delete the alert manager definition.

    ", - "location":"uri", - "locationName":"workspaceId" - }, "clientToken":{ "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", "idempotencyToken":true, "location":"querystring", "locationName":"clientToken" + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace to delete the alert manager definition from.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a DeleteAlertManagerDefinition operation.

    " + "documentation":"

    Represents the input of a DeleteAlertManagerDefinition operation.

    " }, "DeleteLoggingConfigurationRequest":{ "type":"structure", "required":["workspaceId"], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace to vend logs to.

    ", - "location":"uri", - "locationName":"workspaceId" - }, "clientToken":{ "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", "idempotencyToken":true, "location":"querystring", "locationName":"clientToken" + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace containing the logging configuration to delete.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a DeleteLoggingConfiguration operation.

    " + "documentation":"

    Represents the input of a DeleteLoggingConfiguration operation.

    " }, "DeleteRuleGroupsNamespaceRequest":{ "type":"structure", "required":[ - "workspaceId", - "name" + "name", + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace to delete rule group definition.

    ", - "location":"uri", - "locationName":"workspaceId" + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" }, "name":{ "shape":"RuleGroupsNamespaceName", - "documentation":"

    The rule groups namespace name.

    ", + "documentation":"

    The name of the rule groups namespace to delete.

    ", "location":"uri", "locationName":"name" }, - "clientToken":{ - "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", - "idempotencyToken":true, - "location":"querystring", - "locationName":"clientToken" + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace containing the rule groups namespace and definition to delete.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a DeleteRuleGroupsNamespace operation.

    " + "documentation":"

    Represents the input of a DeleteRuleGroupsNamespace operation.

    " }, "DeleteScraperRequest":{ "type":"structure", "required":["scraperId"], "members":{ - "scraperId":{ - "shape":"ScraperId", - "documentation":"

    The ID of the scraper to delete.

    ", - "location":"uri", - "locationName":"scraperId" - }, "clientToken":{ "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", + "documentation":"

    (Optional) A unique, case-sensitive identifier that you can provide to ensure the idempotency of the request.

    ", "idempotencyToken":true, "location":"querystring", "locationName":"clientToken" + }, + "scraperId":{ + "shape":"ScraperId", + "documentation":"

    The ID of the scraper to delete.

    ", + "location":"uri", + "locationName":"scraperId" } }, - "documentation":"

    Represents the input of a DeleteScraper operation.

    " + "documentation":"

    Represents the input of a DeleteScraper operation.

    " }, "DeleteScraperResponse":{ "type":"structure", @@ -971,34 +971,34 @@ "members":{ "scraperId":{ "shape":"ScraperId", - "documentation":"

    The ID of the scraper that was deleted.

    " + "documentation":"

    The ID of the scraper to delete.

    " }, "status":{ "shape":"ScraperStatus", - "documentation":"

    The status of the scraper that is being deleted.

    " + "documentation":"

    The current status of the scraper.

    " } }, - "documentation":"

    Represents the output of a DeleteScraper operation.

    " + "documentation":"

    Represents the output of a DeleteScraper operation.

    " }, "DeleteWorkspaceRequest":{ "type":"structure", "required":["workspaceId"], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace to delete.

    ", - "location":"uri", - "locationName":"workspaceId" - }, "clientToken":{ "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", "idempotencyToken":true, "location":"querystring", "locationName":"clientToken" + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace to delete.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a DeleteWorkspace operation.

    " + "documentation":"

    Represents the input of a DeleteWorkspace operation.

    " }, "DescribeAlertManagerDefinitionRequest":{ "type":"structure", @@ -1006,12 +1006,12 @@ "members":{ "workspaceId":{ "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace to describe.

    ", + "documentation":"

    The ID of the workspace to retrieve the alert manager definition from.

    ", "location":"uri", "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a DescribeAlertManagerDefinition operation.

    " + "documentation":"

    Represents the input of a DescribeAlertManagerDefinition operation.

    " }, "DescribeAlertManagerDefinitionResponse":{ "type":"structure", @@ -1019,10 +1019,10 @@ "members":{ "alertManagerDefinition":{ "shape":"AlertManagerDefinitionDescription", - "documentation":"

    The properties of the selected workspace's alert manager definition.

    " + "documentation":"

    The alert manager definition.

    " } }, - "documentation":"

    Represents the output of a DescribeAlertManagerDefinition operation.

    " + "documentation":"

    Represents the output of a DescribeAlertManagerDefinition operation.

    " }, "DescribeLoggingConfigurationRequest":{ "type":"structure", @@ -1030,12 +1030,12 @@ "members":{ "workspaceId":{ "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace to vend logs to.

    ", + "documentation":"

    The ID of the workspace to describe the logging configuration for.

    ", "location":"uri", "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a DescribeLoggingConfiguration operation.

    " + "documentation":"

    Represents the input of a DescribeLoggingConfiguration operation.

    " }, "DescribeLoggingConfigurationResponse":{ "type":"structure", @@ -1043,32 +1043,32 @@ "members":{ "loggingConfiguration":{ "shape":"LoggingConfigurationMetadata", - "documentation":"

    Metadata object containing information about the logging configuration of a workspace.

    " + "documentation":"

    A structure that displays the information about the logging configuration.

    " } }, - "documentation":"

    Represents the output of a DescribeLoggingConfiguration operation.

    " + "documentation":"

    Represents the output of a DescribeLoggingConfiguration operation.

    " }, "DescribeRuleGroupsNamespaceRequest":{ "type":"structure", "required":[ - "workspaceId", - "name" + "name", + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace to describe.

    ", - "location":"uri", - "locationName":"workspaceId" - }, "name":{ "shape":"RuleGroupsNamespaceName", - "documentation":"

    The rule groups namespace.

    ", + "documentation":"

    The name of the rule groups namespace that you want information for.

    ", "location":"uri", "locationName":"name" + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace containing the rule groups namespace.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a DescribeRuleGroupsNamespace operation.

    " + "documentation":"

    Represents the input of a DescribeRuleGroupsNamespace operation.

    " }, "DescribeRuleGroupsNamespaceResponse":{ "type":"structure", @@ -1076,10 +1076,10 @@ "members":{ "ruleGroupsNamespace":{ "shape":"RuleGroupsNamespaceDescription", - "documentation":"

    The selected rule groups namespace.

    " + "documentation":"

    The information about the rule groups namespace.

    " } }, - "documentation":"

    Represents the output of a DescribeRuleGroupsNamespace operation.

    " + "documentation":"

    Represents the output of a DescribeRuleGroupsNamespace operation.

    " }, "DescribeScraperRequest":{ "type":"structure", @@ -1087,12 +1087,12 @@ "members":{ "scraperId":{ "shape":"ScraperId", - "documentation":"

    The IDs of the scraper to describe.

    ", + "documentation":"

    The ID of the scraper to describe.

    ", "location":"uri", "locationName":"scraperId" } }, - "documentation":"

    Represents the input of a DescribeScraper operation.

    " + "documentation":"

    Represents the input of a DescribeScraper operation.

    " }, "DescribeScraperResponse":{ "type":"structure", @@ -1100,10 +1100,10 @@ "members":{ "scraper":{ "shape":"ScraperDescription", - "documentation":"

    The properties of the selected scrapers.

    " + "documentation":"

    Contains details about the scraper.

    " } }, - "documentation":"

    Represents the output of a DescribeScraper operation.

    " + "documentation":"

    Represents the output of a DescribeScraper operation.

    " }, "DescribeWorkspaceRequest":{ "type":"structure", @@ -1116,7 +1116,7 @@ "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a DescribeWorkspace operation.

    " + "documentation":"

    Represents the input of a DescribeWorkspace operation.

    " }, "DescribeWorkspaceResponse":{ "type":"structure", @@ -1124,20 +1124,20 @@ "members":{ "workspace":{ "shape":"WorkspaceDescription", - "documentation":"

    The properties of the selected workspace.

    " + "documentation":"

    A structure that contains details about the workspace.

    " } }, - "documentation":"

    Represents the output of a DescribeWorkspace operation.

    " + "documentation":"

    Represents the output of a DescribeWorkspace operation.

    " }, "Destination":{ "type":"structure", "members":{ "ampConfiguration":{ "shape":"AmpConfiguration", - "documentation":"

    A representation of an AMP destination.

    " + "documentation":"

    The Amazon Managed Service for Prometheusworkspace to send metrics to.

    " } }, - "documentation":"

    A representation of a destination that a scraper can produce metrics to.

    ", + "documentation":"

    Where to send the metrics from a scraper.

    ", "union":true }, "EksConfiguration":{ @@ -1149,28 +1149,28 @@ "members":{ "clusterArn":{ "shape":"ClusterArn", - "documentation":"

    The ARN of an EKS cluster.

    " + "documentation":"

    ARN of the Amazon EKS cluster.

    " }, "securityGroupIds":{ "shape":"SecurityGroupIds", - "documentation":"

    A list of security group IDs specified for VPC configuration.

    " + "documentation":"

    A list of the security group IDs for the Amazon EKS cluster VPC configuration.

    " }, "subnetIds":{ "shape":"SubnetIds", - "documentation":"

    A list of subnet IDs specified for VPC configuration.

    " + "documentation":"

    A list of subnet IDs for the Amazon EKS cluster VPC configuration.

    " } }, - "documentation":"

    A representation of an EKS source.

    " + "documentation":"

    The EksConfiguration structure describes the connection to the Amazon EKS cluster from which a scraper collects metrics.

    " }, "FilterKey":{ "type":"string", - "documentation":"

    The name of the key to filter by.

    ", + "documentation":"

    The name of the key by which to filter.

    ", "max":256, "min":1 }, "FilterValue":{ "type":"string", - "documentation":"

    The value of a given key to filter by.

    ", + "documentation":"

    The value for a given key by which to filter.

    ", "max":256, "min":1 }, @@ -1185,7 +1185,7 @@ "type":"structure", "members":{ }, - "documentation":"

    Represents the input of a GetDefaultScraperConfiguration operation.

    " + "documentation":"

    Represents the input of a GetDefaultScraperConfiguration operation.

    " }, "GetDefaultScraperConfigurationResponse":{ "type":"structure", @@ -1193,10 +1193,10 @@ "members":{ "configuration":{ "shape":"Blob", - "documentation":"

    The default configuration.

    " + "documentation":"

    The configuration file. Base 64 encoded. For more information, see Scraper configurationin the Amazon Managed Service for Prometheus User Guide.

    " } }, - "documentation":"

    Represents the output of a GetDefaultScraperConfiguration operation.

    " + "documentation":"

    Represents the output of a GetDefaultScraperConfiguration operation.

    " }, "IamRoleArn":{ "type":"string", @@ -1207,7 +1207,7 @@ "documentation":"

    An identifier used to ensure the idempotency of a write request.

    ", "max":64, "min":1, - "pattern":"[!-~]+" + "pattern":"^[!-~]+$" }, "Integer":{ "type":"integer", @@ -1228,7 +1228,7 @@ "locationName":"Retry-After" } }, - "documentation":"

    Unexpected error during processing of request.

    ", + "documentation":"

    An unexpected error occurred during the processing of the request.

    ", "error":{"httpStatusCode":500}, "exception":true, "fault":true, @@ -1239,38 +1239,38 @@ "documentation":"

    A KMS Key ARN.

    ", "max":2048, "min":20, - "pattern":"arn:aws:kms:[a-z0-9\\-]+:\\d+:key/[a-f0-9\\-]+" + "pattern":"^arn:aws:kms:[a-z0-9\\-]+:\\d+:key/[a-f0-9\\-]+$" }, "ListRuleGroupsNamespacesRequest":{ "type":"structure", "required":["workspaceId"], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace.

    ", - "location":"uri", - "locationName":"workspaceId" + "maxResults":{ + "shape":"ListRuleGroupsNamespacesRequestMaxResultsInteger", + "documentation":"

    The maximum number of results to return. The default is 100.

    ", + "location":"querystring", + "locationName":"maxResults" }, "name":{ "shape":"RuleGroupsNamespaceName", - "documentation":"

    Optional filter for rule groups namespace name. Only the rule groups namespace that begin with this value will be returned.

    ", + "documentation":"

    Use this parameter to filter the rule groups namespaces that are returned. Only the namespaces with names that begin with the value that you specify are returned.

    ", "location":"querystring", "locationName":"name" }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

    Pagination token to request the next page in a paginated list. This token is obtained from the output of the previous ListRuleGroupsNamespaces request.

    ", + "documentation":"

    The token for the next set of items to return. You receive this token from a previous call, and use it to get the next page of results. The other parameters must be the same as the initial call.

    For example, if your initial request has maxResults of 10, and there are 12 rule groups namespaces to return, then your initial request will return 10 and a nextToken. Using the next token in a subsequent call will return the remaining 2 namespaces.

    ", "location":"querystring", "locationName":"nextToken" }, - "maxResults":{ - "shape":"ListRuleGroupsNamespacesRequestMaxResultsInteger", - "documentation":"

    Maximum results to return in response (default=100, maximum=1000).

    ", - "location":"querystring", - "locationName":"maxResults" + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace containing the rule groups namespaces.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a ListRuleGroupsNamespaces operation.

    " + "documentation":"

    Represents the input of a ListRuleGroupsNamespaces operation.

    " }, "ListRuleGroupsNamespacesRequestMaxResultsInteger":{ "type":"integer", @@ -1282,39 +1282,39 @@ "type":"structure", "required":["ruleGroupsNamespaces"], "members":{ - "ruleGroupsNamespaces":{ - "shape":"RuleGroupsNamespaceSummaryList", - "documentation":"

    The list of the selected rule groups namespaces.

    " - }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

    Pagination token to use when requesting the next page in this list.

    " + "documentation":"

    A token indicating that there are more results to retrieve. You can use this token as part of your next ListRuleGroupsNamespaces request to retrieve those results.

    " + }, + "ruleGroupsNamespaces":{ + "shape":"RuleGroupsNamespaceSummaryList", + "documentation":"

    The returned list of rule groups namespaces.

    " } }, - "documentation":"

    Represents the output of a ListRuleGroupsNamespaces operation.

    " + "documentation":"

    Represents the output of a ListRuleGroupsNamespaces operation.

    " }, "ListScrapersRequest":{ "type":"structure", "members":{ "filters":{ "shape":"ScraperFilters", - "documentation":"

    A list of scraper filters.

    ", + "documentation":"

    (Optional) A list of key-value pairs to filter the list of scrapers returned. Keys include status, sourceArn, destinationArn, and alias.

    Filters on the same key are OR'd together, and filters on different keys are AND'd together. For example, status=ACTIVE&status=CREATING&alias=Test, will return all scrapers that have the alias Test, and are either in status ACTIVE or CREATING.

    To find all active scrapers that are sending metrics to a specific Amazon Managed Service for Prometheus workspace, you would use the ARN of the workspace in a query:

    status=ACTIVE&destinationArn=arn:aws:aps:us-east-1:123456789012:workspace/ws-example1-1234-abcd-56ef-123456789012

    If this is included, it filters the results to only the scrapers that match the filter.

    ", "location":"querystring" }, - "nextToken":{ - "shape":"PaginationToken", - "documentation":"

    Pagination token to request the next page in a paginated list. This token is obtained from the output of the previous ListScrapers request.

    ", - "location":"querystring", - "locationName":"nextToken" - }, "maxResults":{ "shape":"ListScrapersRequestMaxResultsInteger", - "documentation":"

    Maximum results to return in response (default=100, maximum=1000).

    ", + "documentation":"

    Optional) The maximum number of scrapers to return in one ListScrapers operation. The range is 1-1000.

    If you omit this parameter, the default of 100 is used.

    ", "location":"querystring", "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    (Optional) The token for the next set of items to return. (You received this token from a previous call.)

    ", + "location":"querystring", + "locationName":"nextToken" } }, - "documentation":"

    Represents the input of a ListScrapers operation.

    " + "documentation":"

    Represents the input of a ListScrapers operation.

    " }, "ListScrapersRequestMaxResultsInteger":{ "type":"integer", @@ -1326,16 +1326,16 @@ "type":"structure", "required":["scrapers"], "members":{ - "scrapers":{ - "shape":"ScraperSummaryList", - "documentation":"

    The list of scrapers, filtered down if a set of filters was provided in the request.

    " - }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

    Pagination token to use when requesting the next page in this list.

    " + "documentation":"

    A token indicating that there are more results to retrieve. You can use this token as part of your next ListScrapers operation to retrieve those results.

    " + }, + "scrapers":{ + "shape":"ScraperSummaryList", + "documentation":"

    A list of ScraperSummary structures giving information about scrapers in the account that match the filters provided.

    " } }, - "documentation":"

    Represents the output of a ListScrapers operation.

    " + "documentation":"

    Represents the output of a ListScrapers operation.

    " }, "ListTagsForResourceRequest":{ "type":"structure", @@ -1343,7 +1343,7 @@ "members":{ "resourceArn":{ "shape":"String", - "documentation":"

    The ARN of the resource.

    ", + "documentation":"

    The ARN of the resource to list tages for. Must be a workspace or rule groups namespace resource.

    ", "location":"uri", "locationName":"resourceArn" } @@ -1352,32 +1352,35 @@ "ListTagsForResourceResponse":{ "type":"structure", "members":{ - "tags":{"shape":"TagMap"} + "tags":{ + "shape":"TagMap", + "documentation":"

    The list of tag keys and values associated with the resource.

    " + } } }, "ListWorkspacesRequest":{ "type":"structure", "members":{ - "nextToken":{ - "shape":"PaginationToken", - "documentation":"

    Pagination token to request the next page in a paginated list. This token is obtained from the output of the previous ListWorkspaces request.

    ", - "location":"querystring", - "locationName":"nextToken" - }, "alias":{ "shape":"WorkspaceAlias", - "documentation":"

    Optional filter for workspace alias. Only the workspaces with aliases that begin with this value will be returned.

    ", + "documentation":"

    If this is included, it filters the results to only the workspaces with names that start with the value that you specify here.

    Amazon Managed Service for Prometheus will automatically strip any blank spaces from the beginning and end of the alias that you specify.

    ", "location":"querystring", "locationName":"alias" }, "maxResults":{ "shape":"ListWorkspacesRequestMaxResultsInteger", - "documentation":"

    Maximum results to return in response (default=100, maximum=1000).

    ", + "documentation":"

    The maximum number of workspaces to return per request. The default is 100.

    ", "location":"querystring", "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next set of items to return. You receive this token from a previous call, and use it to get the next page of results. The other parameters must be the same as the initial call.

    For example, if your initial request has maxResults of 10, and there are 12 workspaces to return, then your initial request will return 10 and a nextToken. Using the next token in a subsequent call will return the remaining 2 workspaces.

    ", + "location":"querystring", + "locationName":"nextToken" } }, - "documentation":"

    Represents the input of a ListWorkspaces operation.

    " + "documentation":"

    Represents the input of a ListWorkspaces operation.

    " }, "ListWorkspacesRequestMaxResultsInteger":{ "type":"integer", @@ -1389,53 +1392,53 @@ "type":"structure", "required":["workspaces"], "members":{ - "workspaces":{ - "shape":"WorkspaceSummaryList", - "documentation":"

    The list of existing workspaces, including those undergoing creation or deletion.

    " - }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

    Pagination token to use when requesting the next page in this list.

    " + "documentation":"

    A token indicating that there are more results to retrieve. You can use this token as part of your next ListWorkspaces request to retrieve those results.

    " + }, + "workspaces":{ + "shape":"WorkspaceSummaryList", + "documentation":"

    An array of WorkspaceSummary structures containing information about the workspaces requested.

    " } }, - "documentation":"

    Represents the output of a ListWorkspaces operation.

    " + "documentation":"

    Represents the output of a ListWorkspaces operation.

    " }, "LogGroupArn":{ "type":"string", - "pattern":"arn:aws[a-z0-9-]*:logs:[a-z0-9-]+:\\d{12}:log-group:[A-Za-z0-9\\.\\-\\_\\#/]{1,512}\\:\\*" + "pattern":"^arn:aws[a-z0-9-]*:logs:[a-z0-9-]+:\\d{12}:log-group:[A-Za-z0-9\\.\\-\\_\\#/]{1,512}\\:\\*$" }, "LoggingConfigurationMetadata":{ "type":"structure", "required":[ - "status", - "workspace", - "logGroupArn", "createdAt", - "modifiedAt" + "logGroupArn", + "modifiedAt", + "status", + "workspace" ], "members":{ - "status":{ - "shape":"LoggingConfigurationStatus", - "documentation":"

    The status of the logging configuration.

    " - }, - "workspace":{ - "shape":"WorkspaceId", - "documentation":"

    The workspace where the logging configuration exists.

    " - }, - "logGroupArn":{ - "shape":"LogGroupArn", - "documentation":"

    The ARN of the CW log group to which the vended log data will be published.

    " - }, "createdAt":{ "shape":"Timestamp", - "documentation":"

    The time when the logging configuration was created.

    " + "documentation":"

    The date and time that the logging configuration was created.

    " + }, + "logGroupArn":{ + "shape":"LogGroupArn", + "documentation":"

    The ARN of the CloudWatch log group to which the vended log data will be published.

    " }, "modifiedAt":{ "shape":"Timestamp", - "documentation":"

    The time when the logging configuration was modified.

    " + "documentation":"

    The date and time that the logging configuration was most recently changed.

    " + }, + "status":{ + "shape":"LoggingConfigurationStatus", + "documentation":"

    The current status of the logging configuration.

    " + }, + "workspace":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace the logging configuration is for.

    " } }, - "documentation":"

    Represents the properties of a logging configuration metadata.

    " + "documentation":"

    Contains information about the logging configuration.

    " }, "LoggingConfigurationStatus":{ "type":"structure", @@ -1443,14 +1446,14 @@ "members":{ "statusCode":{ "shape":"LoggingConfigurationStatusCode", - "documentation":"

    Status code of the logging configuration.

    " + "documentation":"

    The current status of the logging configuration.

    " }, "statusReason":{ "shape":"String", - "documentation":"

    The reason for failure if any.

    " + "documentation":"

    If failed, the reason for the failure.

    " } }, - "documentation":"

    Represents the status of a logging configuration.

    " + "documentation":"

    The status of the logging configuration.

    " }, "LoggingConfigurationStatusCode":{ "type":"string", @@ -1473,27 +1476,27 @@ "PutAlertManagerDefinitionRequest":{ "type":"structure", "required":[ - "workspaceId", - "data" + "data", + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace in which to update the alert manager definition.

    ", - "location":"uri", - "locationName":"workspaceId" + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", + "idempotencyToken":true }, "data":{ "shape":"AlertManagerDefinitionData", - "documentation":"

    The alert manager definition data.

    " + "documentation":"

    The alert manager definition to use. A base64-encoded version of the YAML alert manager definition file.

    For details about the alert manager definition, see AlertManagedDefinitionData.

    " }, - "clientToken":{ - "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", - "idempotencyToken":true + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace to update the alert manager definition in.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a PutAlertManagerDefinition operation.

    " + "documentation":"

    Represents the input of a PutAlertManagerDefinition operation.

    " }, "PutAlertManagerDefinitionResponse":{ "type":"structure", @@ -1501,69 +1504,69 @@ "members":{ "status":{ "shape":"AlertManagerDefinitionStatus", - "documentation":"

    The status of alert manager definition.

    " + "documentation":"

    A structure that returns the current status of the alert manager definition.

    " } }, - "documentation":"

    Represents the output of a PutAlertManagerDefinition operation.

    " + "documentation":"

    Represents the output of a PutAlertManagerDefinition operation.

    " }, "PutRuleGroupsNamespaceRequest":{ "type":"structure", "required":[ - "workspaceId", + "data", "name", - "data" + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace in which to update the rule group namespace.

    ", - "location":"uri", - "locationName":"workspaceId" + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", + "idempotencyToken":true + }, + "data":{ + "shape":"RuleGroupsNamespaceData", + "documentation":"

    The new rules file to use in the namespace. A base64-encoded version of the YAML rule groups file.

    For details about the rule groups namespace structure, see RuleGroupsNamespaceData.

    " }, "name":{ "shape":"RuleGroupsNamespaceName", - "documentation":"

    The rule groups namespace name.

    ", + "documentation":"

    The name of the rule groups namespace that you are updating.

    ", "location":"uri", "locationName":"name" }, - "data":{ - "shape":"RuleGroupsNamespaceData", - "documentation":"

    The namespace data that define the rule groups.

    " - }, - "clientToken":{ - "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", - "idempotencyToken":true + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace where you are updating the rule groups namespace.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of a PutRuleGroupsNamespace operation.

    " + "documentation":"

    Represents the input of a PutRuleGroupsNamespace operation.

    " }, "PutRuleGroupsNamespaceResponse":{ "type":"structure", "required":[ - "name", "arn", + "name", "status" ], "members":{ - "name":{ - "shape":"RuleGroupsNamespaceName", - "documentation":"

    The rule groups namespace name.

    " - }, "arn":{ "shape":"RuleGroupsNamespaceArn", - "documentation":"

    The Amazon Resource Name (ARN) of this rule groups namespace.

    " + "documentation":"

    The ARN of the rule groups namespace.

    " + }, + "name":{ + "shape":"RuleGroupsNamespaceName", + "documentation":"

    The name of the rule groups namespace that was updated.

    " }, "status":{ "shape":"RuleGroupsNamespaceStatus", - "documentation":"

    The status of rule groups namespace.

    " + "documentation":"

    A structure that includes the current status of the rule groups namespace.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    The tags of this rule groups namespace.

    " + "documentation":"

    The list of tag keys and values that are associated with the namespace.

    " } }, - "documentation":"

    Represents the output of a PutRuleGroupsNamespace operation.

    " + "documentation":"

    Represents the output of a PutRuleGroupsNamespace operation.

    " }, "ResourceNotFoundException":{ "type":"structure", @@ -1586,7 +1589,7 @@ "documentation":"

    Type of the resource affected.

    " } }, - "documentation":"

    Request references a resource which does not exist.

    ", + "documentation":"

    The request references a resources that doesn't exist.

    ", "error":{ "httpStatusCode":404, "senderFault":true @@ -1605,50 +1608,50 @@ "type":"structure", "required":[ "arn", - "name", - "status", - "data", "createdAt", - "modifiedAt" + "data", + "modifiedAt", + "name", + "status" ], "members":{ "arn":{ "shape":"RuleGroupsNamespaceArn", - "documentation":"

    The Amazon Resource Name (ARN) of this rule groups namespace.

    " - }, - "name":{ - "shape":"RuleGroupsNamespaceName", - "documentation":"

    The rule groups namespace name.

    " + "documentation":"

    The ARN of the rule groups namespace.

    " }, - "status":{ - "shape":"RuleGroupsNamespaceStatus", - "documentation":"

    The status of rule groups namespace.

    " + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the rule groups namespace was created.

    " }, "data":{ "shape":"RuleGroupsNamespaceData", - "documentation":"

    The rule groups namespace data.

    " - }, - "createdAt":{ - "shape":"Timestamp", - "documentation":"

    The time when the rule groups namespace was created.

    " + "documentation":"

    The rule groups file used in the namespace.

    For details about the rule groups namespace structure, see RuleGroupsNamespaceData.

    " }, "modifiedAt":{ "shape":"Timestamp", - "documentation":"

    The time when the rule groups namespace was modified.

    " + "documentation":"

    The date and time that the rule groups namespace was most recently changed.

    " + }, + "name":{ + "shape":"RuleGroupsNamespaceName", + "documentation":"

    The name of the rule groups namespace.

    " + }, + "status":{ + "shape":"RuleGroupsNamespaceStatus", + "documentation":"

    The current status of the rule groups namespace.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    The tags of this rule groups namespace.

    " + "documentation":"

    The list of tag keys and values that are associated with the rule groups namespace.

    " } }, - "documentation":"

    Represents a description of the rule groups namespace.

    " + "documentation":"

    The details about one rule groups namespace.

    " }, "RuleGroupsNamespaceName":{ "type":"string", - "documentation":"

    The namespace name that the rule group belong to.

    ", + "documentation":"

    The name of the namespace that the rule group belong to.

    ", "max":64, "min":1, - "pattern":".*[0-9A-Za-z][-.0-9A-Z_a-z]*.*" + "pattern":"[0-9A-Za-z][-.0-9A-Z_a-z]*" }, "RuleGroupsNamespaceStatus":{ "type":"structure", @@ -1656,14 +1659,14 @@ "members":{ "statusCode":{ "shape":"RuleGroupsNamespaceStatusCode", - "documentation":"

    Status code of this namespace.

    " + "documentation":"

    The current status of the namespace.

    " }, "statusReason":{ "shape":"String", - "documentation":"

    The reason for failure if any.

    " + "documentation":"

    The reason for the failure, if any.

    " } }, - "documentation":"

    Represents the status of a namespace.

    " + "documentation":"

    The status information about a rule groups namespace.

    " }, "RuleGroupsNamespaceStatusCode":{ "type":"string", @@ -1681,38 +1684,38 @@ "type":"structure", "required":[ "arn", - "name", - "status", "createdAt", - "modifiedAt" + "modifiedAt", + "name", + "status" ], "members":{ "arn":{ "shape":"RuleGroupsNamespaceArn", - "documentation":"

    The Amazon Resource Name (ARN) of this rule groups namespace.

    " - }, - "name":{ - "shape":"RuleGroupsNamespaceName", - "documentation":"

    The rule groups namespace name.

    " - }, - "status":{ - "shape":"RuleGroupsNamespaceStatus", - "documentation":"

    The status of rule groups namespace.

    " + "documentation":"

    The ARN of the rule groups namespace.

    " }, "createdAt":{ "shape":"Timestamp", - "documentation":"

    The time when the rule groups namespace was created.

    " + "documentation":"

    The date and time that the rule groups namespace was created.

    " }, "modifiedAt":{ "shape":"Timestamp", - "documentation":"

    The time when the rule groups namespace was modified.

    " + "documentation":"

    The date and time that the rule groups namespace was most recently changed.

    " + }, + "name":{ + "shape":"RuleGroupsNamespaceName", + "documentation":"

    The name of the rule groups namespace.

    " + }, + "status":{ + "shape":"RuleGroupsNamespaceStatus", + "documentation":"

    A structure that displays the current status of the rule groups namespace.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    The tags of this rule groups namespace.

    " + "documentation":"

    The list of tag keys and values that are associated with the rule groups namespace.

    " } }, - "documentation":"

    Represents a summary of the rule groups namespace.

    " + "documentation":"

    The high-level information about a rule groups namespace. To retrieve more information, use DescribeRuleGroupsNamespace.

    " }, "RuleGroupsNamespaceSummaryList":{ "type":"list", @@ -1724,10 +1727,10 @@ "members":{ "configurationBlob":{ "shape":"Blob", - "documentation":"

    Binary data representing a Prometheus configuration file.

    " + "documentation":"

    The base 64 encoded scrape configuration file.

    " } }, - "documentation":"

    A representation of a Prometheus configuration file.

    ", + "documentation":"

    A scrape configuration for a scraper, base 64 encoded. For more information, see Scraper configuration in the Amazon Managed Service for Prometheus User Guide.

    ", "union":true }, "ScraperAlias":{ @@ -1735,7 +1738,7 @@ "documentation":"

    A user-assigned scraper alias.

    ", "max":100, "min":1, - "pattern":"[0-9A-Za-z][-.0-9A-Z_a-z]*" + "pattern":"^[0-9A-Za-z][-.0-9A-Z_a-z]*$" }, "ScraperArn":{ "type":"string", @@ -1744,77 +1747,77 @@ "ScraperDescription":{ "type":"structure", "required":[ - "scraperId", "arn", - "roleArn", - "status", "createdAt", + "destination", "lastModifiedAt", + "roleArn", "scrapeConfiguration", + "scraperId", "source", - "destination" + "status" ], "members":{ "alias":{ "shape":"ScraperAlias", - "documentation":"

    Alias of this scraper.

    " - }, - "scraperId":{ - "shape":"ScraperId", - "documentation":"

    Unique string identifying this scraper.

    " + "documentation":"

    (Optional) A name associated with the scraper.

    " }, "arn":{ "shape":"ScraperArn", - "documentation":"

    The Amazon Resource Name (ARN) of this scraper.

    " - }, - "roleArn":{ - "shape":"IamRoleArn", - "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that provides permissions for the scraper to dsicover, collect, and produce metrics on your behalf.

    " - }, - "status":{ - "shape":"ScraperStatus", - "documentation":"

    The status of this scraper.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the scraper.

    " }, "createdAt":{ "shape":"Timestamp", - "documentation":"

    The time when the scraper was created.

    " + "documentation":"

    The date and time that the scraper was created.

    " + }, + "destination":{ + "shape":"Destination", + "documentation":"

    The Amazon Managed Service for Prometheus workspace the scraper sends metrics to.

    " }, "lastModifiedAt":{ "shape":"Timestamp", - "documentation":"

    The time when the scraper was last modified.

    " - }, - "tags":{ - "shape":"TagMap", - "documentation":"

    The tags of this scraper.

    " + "documentation":"

    The date and time that the scraper was last modified.

    " }, - "statusReason":{ - "shape":"StatusReason", - "documentation":"

    The reason for failure if any.

    " + "roleArn":{ + "shape":"IamRoleArn", + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that provides permissions for the scraper to discover and collect metrics on your behalf.

    " }, "scrapeConfiguration":{ "shape":"ScrapeConfiguration", - "documentation":"

    The configuration used to create the scraper.

    " + "documentation":"

    The configuration file in use by the scraper.

    " + }, + "scraperId":{ + "shape":"ScraperId", + "documentation":"

    The ID of the scraper.

    " }, "source":{ "shape":"Source", - "documentation":"

    The source that the scraper is discovering and collecting metrics from.

    " + "documentation":"

    The Amazon EKS cluster from which the scraper collects metrics.

    " }, - "destination":{ - "shape":"Destination", - "documentation":"

    The destination that the scraper is producing metrics to.

    " + "status":{ + "shape":"ScraperStatus", + "documentation":"

    A structure that contains the current status of the scraper.

    " + }, + "statusReason":{ + "shape":"StatusReason", + "documentation":"

    If there is a failure, the reason for the failure.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    (Optional) The list of tag keys and values associated with the scraper.

    " } }, - "documentation":"

    Represents the properties of a scraper.

    " + "documentation":"

    The ScraperDescription structure contains the full details about one scraper in your account.

    " }, "ScraperFilters":{ "type":"map", "key":{ "shape":"FilterKey", - "documentation":"

    The name of the key to filter by. Currently supported filter keys are 'status', 'sourceArn', 'destinationArn', and 'alias'.

    " + "documentation":"

    The name of the key to filter by. Currently supported filter keys are status, sourceArn, destinationArn, and alias.

    " }, "value":{ "shape":"FilterValues", - "documentation":"

    The values of the given key to filter by.

    " + "documentation":"

    The values of the given key by which to filter.

    " }, "documentation":"

    A list of scraper filters.

    ", "max":4, @@ -1825,7 +1828,7 @@ "documentation":"

    A scraper ID.

    ", "max":64, "min":1, - "pattern":"[0-9A-Za-z][-.0-9A-Z_a-z]*" + "pattern":"^[0-9A-Za-z][-.0-9A-Z_a-z]*$" }, "ScraperStatus":{ "type":"structure", @@ -1833,10 +1836,10 @@ "members":{ "statusCode":{ "shape":"ScraperStatusCode", - "documentation":"

    Status code of this scraper.

    " + "documentation":"

    The current status of the scraper.

    " } }, - "documentation":"

    Represents the status of a scraper.

    " + "documentation":"

    The ScraperStatus structure contains status information about the scraper.

    " }, "ScraperStatusCode":{ "type":"string", @@ -1852,62 +1855,62 @@ "ScraperSummary":{ "type":"structure", "required":[ - "scraperId", "arn", - "roleArn", - "status", "createdAt", + "destination", "lastModifiedAt", + "roleArn", + "scraperId", "source", - "destination" + "status" ], "members":{ "alias":{ "shape":"ScraperAlias", - "documentation":"

    Alias of this scraper.

    " - }, - "scraperId":{ - "shape":"ScraperId", - "documentation":"

    Unique string identifying this scraper.

    " + "documentation":"

    (Optional) A name associated with the scraper.

    " }, "arn":{ "shape":"ScraperArn", - "documentation":"

    The Amazon Resource Name (ARN) of this scraper.

    " - }, - "roleArn":{ - "shape":"IamRoleArn", - "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that provides permissions for the scraper to dsicover, collect, and produce metrics on your behalf.

    " - }, - "status":{ - "shape":"ScraperStatus", - "documentation":"

    The status of this scraper.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the scraper.

    " }, "createdAt":{ "shape":"Timestamp", - "documentation":"

    The time when the scraper was created.

    " + "documentation":"

    The date and time that the scraper was created.

    " + }, + "destination":{ + "shape":"Destination", + "documentation":"

    The Amazon Managed Service for Prometheus workspace the scraper sends metrics to.

    " }, "lastModifiedAt":{ "shape":"Timestamp", - "documentation":"

    The time when the scraper was last modified.

    " + "documentation":"

    The date and time that the scraper was last modified.

    " }, - "tags":{ - "shape":"TagMap", - "documentation":"

    The tags of this scraper.

    " + "roleArn":{ + "shape":"IamRoleArn", + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that provides permissions for the scraper to discover and collect metrics on your behalf.

    " }, - "statusReason":{ - "shape":"StatusReason", - "documentation":"

    The reason for failure if any.

    " + "scraperId":{ + "shape":"ScraperId", + "documentation":"

    The ID of the scraper.

    " }, "source":{ "shape":"Source", - "documentation":"

    The source that the scraper is discovering and collecting metrics from.

    " + "documentation":"

    The Amazon EKS cluster from which the scraper collects metrics.

    " }, - "destination":{ - "shape":"Destination", - "documentation":"

    The destination that the scraper is producing metrics to.

    " + "status":{ + "shape":"ScraperStatus", + "documentation":"

    A structure that contains the current status of the scraper.

    " + }, + "statusReason":{ + "shape":"StatusReason", + "documentation":"

    If there is a failure, the reason for the failure.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    (Optional) The list of tag keys and values associated with the scraper.

    " } }, - "documentation":"

    Represents a summary of the properties of a scraper.

    " + "documentation":"

    The ScraperSummary structure contains a summary of the details about one scraper in your account.

    " }, "ScraperSummaryList":{ "type":"list", @@ -1919,7 +1922,7 @@ "documentation":"

    ID of a VPC security group.

    ", "max":255, "min":0, - "pattern":"sg-[0-9a-z]+" + "pattern":"^sg-[0-9a-z]+$" }, "SecurityGroupIds":{ "type":"list", @@ -1932,16 +1935,20 @@ "type":"structure", "required":[ "message", + "quotaCode", "resourceId", "resourceType", - "serviceCode", - "quotaCode" + "serviceCode" ], "members":{ "message":{ "shape":"String", "documentation":"

    Description of the error.

    " }, + "quotaCode":{ + "shape":"String", + "documentation":"

    Service quotas code of the originating quota.

    " + }, "resourceId":{ "shape":"String", "documentation":"

    Identifier of the resource affected.

    " @@ -1952,14 +1959,10 @@ }, "serviceCode":{ "shape":"String", - "documentation":"

    Service Quotas requirement to identify originating service.

    " - }, - "quotaCode":{ - "shape":"String", - "documentation":"

    Service Quotas requirement to identify originating quota.

    " + "documentation":"

    Service quotas code for the originating service.

    " } }, - "documentation":"

    Request would cause a service quota to be exceeded.

    ", + "documentation":"

    Completing the request would cause a service quota to be exceeded.

    ", "error":{ "httpStatusCode":402, "senderFault":true @@ -1971,15 +1974,15 @@ "members":{ "eksConfiguration":{ "shape":"EksConfiguration", - "documentation":"

    A representation of an EKS source.

    " + "documentation":"

    The Amazon EKS cluster from which a scraper collects metrics.

    " } }, - "documentation":"

    A representation of a source that a scraper can discover and collect metrics from.

    ", + "documentation":"

    The source of collected metrics for a scraper.

    ", "union":true }, "StatusReason":{ "type":"string", - "documentation":"

    The reason for failure if any.

    ", + "documentation":"

    The reason for the failure, if any.

    ", "max":256, "min":1 }, @@ -1989,7 +1992,7 @@ "documentation":"

    ID of a VPC subnet.

    ", "max":255, "min":0, - "pattern":"subnet-[0-9a-z]+" + "pattern":"^subnet-[0-9a-z]+$" }, "SubnetIds":{ "type":"list", @@ -2002,7 +2005,7 @@ "type":"string", "max":128, "min":1, - "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)" + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" }, "TagKeys":{ "type":"list", @@ -2012,11 +2015,11 @@ "type":"map", "key":{ "shape":"TagKey", - "documentation":"

    The key of the tag.

    Constraints: Tag keys are case-sensitive and accept a maximum of 128 Unicode characters. Valid characters are Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @ May not begin with aws:.

    " + "documentation":"

    The key of the tag. May not begin with aws:.

    " }, "value":{ "shape":"TagValue", - "documentation":"

    The value of the tag.

    Constraints: Tag values are case-sensitive and accept a maximum of 256 Unicode characters. Valid characters are Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @

    " + "documentation":"

    The value of the tag.

    " }, "documentation":"

    The list of tags assigned to the resource.

    ", "max":50, @@ -2031,11 +2034,14 @@ "members":{ "resourceArn":{ "shape":"String", - "documentation":"

    The ARN of the resource.

    ", + "documentation":"

    The ARN of the workspace or rule groups namespace to apply tags to.

    ", "location":"uri", "locationName":"resourceArn" }, - "tags":{"shape":"TagMap"} + "tags":{ + "shape":"TagMap", + "documentation":"

    The list of tag keys and values to associate with the resource.

    Keys may not begin with aws:.

    " + } } }, "TagResourceResponse":{ @@ -2047,7 +2053,7 @@ "type":"string", "max":256, "min":0, - "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)" + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" }, "ThrottlingException":{ "type":"structure", @@ -2057,22 +2063,22 @@ "shape":"String", "documentation":"

    Description of the error.

    " }, - "serviceCode":{ - "shape":"String", - "documentation":"

    Service Quotas requirement to identify originating service.

    " - }, "quotaCode":{ "shape":"String", - "documentation":"

    Service Quotas requirement to identify originating quota.

    " + "documentation":"

    Service quotas code for the originating quota.

    " }, "retryAfterSeconds":{ "shape":"Integer", "documentation":"

    Advice to clients on when the call can be safely retried.

    ", "location":"header", "locationName":"Retry-After" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

    Service quotas code for the originating service.

    " } }, - "documentation":"

    Request was denied due to request throttling.

    ", + "documentation":"

    The request was denied due to request throttling.

    ", "error":{ "httpStatusCode":429, "senderFault":true @@ -2090,13 +2096,13 @@ "members":{ "resourceArn":{ "shape":"String", - "documentation":"

    The ARN of the resource.

    ", + "documentation":"

    The ARN of the workspace or rule groups namespace.

    ", "location":"uri", "locationName":"resourceArn" }, "tagKeys":{ "shape":"TagKeys", - "documentation":"

    One or more tag keys

    ", + "documentation":"

    The keys of the tags to remove.

    ", "location":"querystring", "locationName":"tagKeys" } @@ -2110,27 +2116,27 @@ "UpdateLoggingConfigurationRequest":{ "type":"structure", "required":[ - "workspaceId", - "logGroupArn" + "logGroupArn", + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace to vend logs to.

    ", - "location":"uri", - "locationName":"workspaceId" + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", + "idempotencyToken":true }, "logGroupArn":{ "shape":"LogGroupArn", - "documentation":"

    The ARN of the CW log group to which the vended log data will be published.

    " + "documentation":"

    The ARN of the CloudWatch log group to which the vended log data will be published.

    " }, - "clientToken":{ - "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", - "idempotencyToken":true + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace to update the logging configuration for.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of an UpdateLoggingConfiguration operation.

    " + "documentation":"

    Represents the input of an UpdateLoggingConfiguration operation.

    " }, "UpdateLoggingConfigurationResponse":{ "type":"structure", @@ -2138,32 +2144,32 @@ "members":{ "status":{ "shape":"LoggingConfigurationStatus", - "documentation":"

    The status of the logging configuration.

    " + "documentation":"

    A structure that contains the current status of the logging configuration.

    " } }, - "documentation":"

    Represents the output of an UpdateLoggingConfiguration operation.

    " + "documentation":"

    Represents the output of an UpdateLoggingConfiguration operation.

    " }, "UpdateWorkspaceAliasRequest":{ "type":"structure", "required":["workspaceId"], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    The ID of the workspace being updated.

    ", - "location":"uri", - "locationName":"workspaceId" - }, "alias":{ "shape":"WorkspaceAlias", - "documentation":"

    The new alias of the workspace.

    " + "documentation":"

    The new alias for the workspace. It does not need to be unique.

    Amazon Managed Service for Prometheus will automatically strip any blank spaces from the beginning and end of the alias that you specify.

    " }, "clientToken":{ "shape":"IdempotencyToken", - "documentation":"

    Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

    ", + "documentation":"

    A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.

    ", "idempotencyToken":true + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The ID of the workspace to update.

    ", + "location":"uri", + "locationName":"workspaceId" } }, - "documentation":"

    Represents the input of an UpdateWorkspaceAlias operation.

    " + "documentation":"

    Represents the input of an UpdateWorkspaceAlias operation.

    " }, "Uri":{ "type":"string", @@ -2177,6 +2183,10 @@ "reason" ], "members":{ + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

    The field that caused the error, if applicable.

    " + }, "message":{ "shape":"String", "documentation":"

    Description of the error.

    " @@ -2184,13 +2194,9 @@ "reason":{ "shape":"ValidationExceptionReason", "documentation":"

    Reason the request failed validation.

    " - }, - "fieldList":{ - "shape":"ValidationExceptionFieldList", - "documentation":"

    The field that caused the error, if applicable. If more than one field caused the error, pick one and elaborate in the message.

    " } }, - "documentation":"

    The input fails to satisfy the constraints specified by an AWS service.

    ", + "documentation":"

    The input fails to satisfy the constraints specified by an Amazon Web Services service.

    ", "error":{ "httpStatusCode":400, "senderFault":true @@ -2200,20 +2206,20 @@ "ValidationExceptionField":{ "type":"structure", "required":[ - "name", - "message" + "message", + "name" ], "members":{ - "name":{ + "message":{ "shape":"String", - "documentation":"

    The field name.

    " + "documentation":"

    A message describing why the field caused an exception.

    " }, - "message":{ + "name":{ "shape":"String", - "documentation":"

    Message describing why the field failed validation.

    " + "documentation":"

    The name of the field that caused an exception.

    " } }, - "documentation":"

    Stores information about a field passed inside a request that resulted in an exception.

    " + "documentation":"

    Information about a field passed into a request that resulted in an exception.

    " }, "ValidationExceptionFieldList":{ "type":"list", @@ -2239,58 +2245,58 @@ "WorkspaceArn":{ "type":"string", "documentation":"

    An ARN identifying a Workspace.

    ", - "pattern":"arn:aws[-a-z]*:aps:[-a-z0-9]+:[0-9]{12}:workspace/.+" + "pattern":"^arn:aws[-a-z]*:aps:[-a-z0-9]+:[0-9]{12}:workspace/.+$" }, "WorkspaceDescription":{ "type":"structure", "required":[ - "workspaceId", "arn", + "createdAt", "status", - "createdAt" + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    Unique string identifying this workspace.

    " - }, "alias":{ "shape":"WorkspaceAlias", - "documentation":"

    Alias of this workspace.

    " + "documentation":"

    The alias that is assigned to this workspace to help identify it. It may not be unique.

    " }, "arn":{ "shape":"WorkspaceArn", - "documentation":"

    The Amazon Resource Name (ARN) of this workspace.

    " + "documentation":"

    The ARN of the workspace.

    " }, - "status":{ - "shape":"WorkspaceStatus", - "documentation":"

    The status of this workspace.

    " + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the workspace was created.

    " + }, + "kmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

    (optional) If the workspace was created with a customer managed KMS key, the ARN for the key used.

    " }, "prometheusEndpoint":{ "shape":"Uri", - "documentation":"

    Prometheus endpoint URI.

    " + "documentation":"

    The Prometheus endpoint available for this workspace.

    " }, - "createdAt":{ - "shape":"Timestamp", - "documentation":"

    The time when the workspace was created.

    " + "status":{ + "shape":"WorkspaceStatus", + "documentation":"

    The current status of the workspace.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    The tags of this workspace.

    " + "documentation":"

    The list of tag keys and values that are associated with the workspace.

    " }, - "kmsKeyArn":{ - "shape":"KmsKeyArn", - "documentation":"

    The customer managed KMS key of this workspace.

    " + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The unique ID for the workspace.

    " } }, - "documentation":"

    Represents the properties of a workspace.

    " + "documentation":"

    The full details about one Amazon Managed Service for Prometheus workspace in your account.

    " }, "WorkspaceId":{ "type":"string", "documentation":"

    A workspace ID.

    ", "max":64, "min":1, - "pattern":".*[0-9A-Za-z][-.0-9A-Z_a-z]*.*" + "pattern":"[0-9A-Za-z][-.0-9A-Z_a-z]*" }, "WorkspaceStatus":{ "type":"structure", @@ -2298,10 +2304,10 @@ "members":{ "statusCode":{ "shape":"WorkspaceStatusCode", - "documentation":"

    Status code of this workspace.

    " + "documentation":"

    The current status of the workspace.

    " } }, - "documentation":"

    Represents the status of a workspace.

    " + "documentation":"

    The status of the workspace.

    " }, "WorkspaceStatusCode":{ "type":"string", @@ -2317,42 +2323,42 @@ "WorkspaceSummary":{ "type":"structure", "required":[ - "workspaceId", "arn", + "createdAt", "status", - "createdAt" + "workspaceId" ], "members":{ - "workspaceId":{ - "shape":"WorkspaceId", - "documentation":"

    Unique string identifying this workspace.

    " - }, "alias":{ "shape":"WorkspaceAlias", - "documentation":"

    Alias of this workspace.

    " + "documentation":"

    The alias that is assigned to this workspace to help identify it. It may not be unique.

    " }, "arn":{ "shape":"WorkspaceArn", - "documentation":"

    The AmazonResourceName of this workspace.

    " - }, - "status":{ - "shape":"WorkspaceStatus", - "documentation":"

    The status of this workspace.

    " + "documentation":"

    The ARN of the workspace.

    " }, "createdAt":{ "shape":"Timestamp", - "documentation":"

    The time when the workspace was created.

    " + "documentation":"

    The date and time that the workspace was created.

    " + }, + "kmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

    (optional) If the workspace was created with a customer managed KMS key, the ARN for the key used.

    " + }, + "status":{ + "shape":"WorkspaceStatus", + "documentation":"

    The current status of the workspace.

    " }, "tags":{ "shape":"TagMap", - "documentation":"

    The tags of this workspace.

    " + "documentation":"

    The list of tag keys and values that are associated with the workspace.

    " }, - "kmsKeyArn":{ - "shape":"KmsKeyArn", - "documentation":"

    Customer managed KMS key ARN for this workspace

    " + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

    The unique ID for the workspace.

    " } }, - "documentation":"

    Represents a summary of the properties of a workspace.

    " + "documentation":"

    The information about one Amazon Managed Service for Prometheus workspace in your account.

    " }, "WorkspaceSummaryList":{ "type":"list", @@ -2360,5 +2366,5 @@ "documentation":"

    A list of workspace summaries.

    " } }, - "documentation":"

    Amazon Managed Service for Prometheus

    " + "documentation":"

    Amazon Managed Service for Prometheus is a serverless, Prometheus-compatible monitoring service for container metrics that makes it easier to securely monitor container environments at scale. With Amazon Managed Service for Prometheus, you can use the same open-source Prometheus data model and query language that you use today to monitor the performance of your containerized workloads, and also enjoy improved scalability, availability, and security without having to manage the underlying infrastructure.

    For more information about Amazon Managed Service for Prometheus, see the Amazon Managed Service for Prometheus User Guide.

    Amazon Managed Service for Prometheus includes two APIs.

    • Use the Amazon Web Services API described in this guide to manage Amazon Managed Service for Prometheus resources, such as workspaces, rule groups, and alert managers.

    • Use the Prometheus-compatible API to work within your Prometheus workspace.

    " } diff --git a/services/amplify/pom.xml b/services/amplify/pom.xml index 0de42194b4f5..c83c5bf7f8f5 100644 --- a/services/amplify/pom.xml +++ b/services/amplify/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT amplify AWS Java SDK :: Services :: Amplify diff --git a/services/amplify/src/main/resources/codegen-resources/customization.config b/services/amplify/src/main/resources/codegen-resources/customization.config index 6464ead6e8c6..bc376ac406f4 100644 --- a/services/amplify/src/main/resources/codegen-resources/customization.config +++ b/services/amplify/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listApps" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true } diff --git a/services/amplify/src/main/resources/codegen-resources/service-2.json b/services/amplify/src/main/resources/codegen-resources/service-2.json index 60c5a3ad949a..a1cbbbb3b86d 100644 --- a/services/amplify/src/main/resources/codegen-resources/service-2.json +++ b/services/amplify/src/main/resources/codegen-resources/service-2.json @@ -97,7 +97,7 @@ {"shape":"LimitExceededException"}, {"shape":"DependentServiceFailureException"} ], - "documentation":"

    Creates a new domain association for an Amplify app. This action associates a custom domain with the Amplify app

    " + "documentation":"

    Creates a new domain association for an Amplify app. This action associates a custom domain with the Amplify app

    " }, "CreateWebhook":{ "name":"CreateWebhook", @@ -183,7 +183,7 @@ {"shape":"InternalFailureException"}, {"shape":"DependentServiceFailureException"} ], - "documentation":"

    Deletes a domain association for an Amplify app.

    " + "documentation":"

    Deletes a domain association for an Amplify app.

    " }, "DeleteJob":{ "name":"DeleteJob", @@ -314,7 +314,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalFailureException"} ], - "documentation":"

    Returns the domain information for an Amplify app.

    " + "documentation":"

    Returns the domain information for an Amplify app.

    " }, "GetJob":{ "name":"GetJob", @@ -424,7 +424,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalFailureException"} ], - "documentation":"

    Returns the domain associations for an Amplify app.

    " + "documentation":"

    Returns the domain associations for an Amplify app.

    " }, "ListJobs":{ "name":"ListJobs", @@ -602,7 +602,7 @@ {"shape":"InternalFailureException"}, {"shape":"DependentServiceFailureException"} ], - "documentation":"

    Creates a new domain association for an Amplify app.

    " + "documentation":"

    Creates a new domain association for an Amplify app.

    " }, "UpdateWebhook":{ "name":"UpdateWebhook", @@ -1112,6 +1112,53 @@ "pattern":"(?s).+", "sensitive":true }, + "Certificate":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{ + "shape":"CertificateType", + "documentation":"

    The type of SSL/TLS certificate that you want to use.

    Specify AMPLIFY_MANAGED to use the default certificate that Amplify provisions for you.

    Specify CUSTOM to use your own certificate that you have already added to Certificate Manager in your Amazon Web Services account. Make sure you request (or import) the certificate in the US East (N. Virginia) Region (us-east-1). For more information about using ACM, see Importing certificates into Certificate Manager in the ACM User guide .

    " + }, + "customCertificateArn":{ + "shape":"CertificateArn", + "documentation":"

    The Amazon resource name (ARN) for a custom certificate that you have already added to Certificate Manager in your Amazon Web Services account.

    This field is required only when the certificate type is CUSTOM.

    " + }, + "certificateVerificationDNSRecord":{ + "shape":"CertificateVerificationDNSRecord", + "documentation":"

    The DNS record for certificate verification.

    " + } + }, + "documentation":"

    Describes the current SSL/TLS certificate that is in use for the domain. If you are using CreateDomainAssociation to create a new domain association, Certificate describes the new certificate that you are creating.

    " + }, + "CertificateArn":{ + "type":"string", + "max":1000, + "min":0, + "pattern":"^arn:aws:acm:[a-z0-9-]+:\\d{12}:certificate\\/.+$" + }, + "CertificateSettings":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{ + "shape":"CertificateType", + "documentation":"

    The certificate type.

    Specify AMPLIFY_MANAGED to use the default certificate that Amplify provisions for you.

    Specify CUSTOM to use your own certificate that you have already added to Certificate Manager in your Amazon Web Services account. Make sure you request (or import) the certificate in the US East (N. Virginia) Region (us-east-1). For more information about using ACM, see Importing certificates into Certificate Manager in the ACM User guide.

    " + }, + "customCertificateArn":{ + "shape":"CertificateArn", + "documentation":"

    The Amazon resource name (ARN) for the custom certificate that you have already added to Certificate Manager in your Amazon Web Services account.

    This field is required only when the certificate type is CUSTOM.

    " + } + }, + "documentation":"

    The type of SSL/TLS certificate to use for your custom domain. If a certificate type isn't specified, Amplify uses the default AMPLIFY_MANAGED certificate.

    " + }, + "CertificateType":{ + "type":"string", + "enum":[ + "AMPLIFY_MANAGED", + "CUSTOM" + ] + }, "CertificateVerificationDNSRecord":{ "type":"string", "max":1000 @@ -1444,6 +1491,10 @@ "autoSubDomainIAMRole":{ "shape":"AutoSubDomainIAMRole", "documentation":"

    The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains.

    " + }, + "certificateSettings":{ + "shape":"CertificateSettings", + "documentation":"

    The type of SSL/TLS certificate to use for your custom domain. If you don't specify a certificate type, Amplify uses the default certificate that it provisions and manages for you.

    " } }, "documentation":"

    The request structure for the create domain association request.

    " @@ -1527,7 +1578,7 @@ }, "status":{ "shape":"Status", - "documentation":"

    The status code for a URL rewrite or redirect rule.

    200

    Represents a 200 rewrite rule.

    301

    Represents a 301 (moved pemanently) redirect rule. This and all future requests should be directed to the target URL.

    302

    Represents a 302 temporary redirect rule.

    404

    Represents a 404 redirect rule.

    404-200

    Represents a 404 rewrite rule.

    " + "documentation":"

    The status code for a URL rewrite or redirect rule.

    200

    Represents a 200 rewrite rule.

    301

    Represents a 301 (moved permanently) redirect rule. This and all future requests should be directed to the target URL.

    302

    Represents a 302 temporary redirect rule.

    404

    Represents a 404 redirect rule.

    404-200

    Represents a 404 rewrite rule.

    " }, "condition":{ "shape":"Condition", @@ -1786,9 +1837,13 @@ "shape":"DomainStatus", "documentation":"

    The current status of the domain association.

    " }, + "updateStatus":{ + "shape":"UpdateStatus", + "documentation":"

    The status of the domain update operation that is currently in progress. The following list describes the valid update states.

    REQUESTING_CERTIFICATE

    The certificate is in the process of being updated.

    PENDING_VERIFICATION

    Indicates that an Amplify managed certificate is in the process of being verified. This occurs during the creation of a custom domain or when a custom domain is updated to use a managed certificate.

    IMPORTING_CUSTOM_CERTIFICATE

    Indicates that an Amplify custom certificate is in the process of being imported. This occurs during the creation of a custom domain or when a custom domain is updated to use a custom certificate.

    PENDING_DEPLOYMENT

    Indicates that the subdomain or certificate changes are being propagated.

    AWAITING_APP_CNAME

    Amplify is waiting for CNAME records corresponding to subdomains to be propagated. If your custom domain is on Route 53, Amplify handles this for you automatically. For more information about custom domains, see Setting up custom domains in the Amplify Hosting User Guide.

    UPDATE_COMPLETE

    The certificate has been associated with a domain.

    UPDATE_FAILED

    The certificate has failed to be provisioned or associated, and there is no existing active certificate to roll back to.

    " + }, "statusReason":{ "shape":"StatusReason", - "documentation":"

    The reason for the current status of the domain association.

    " + "documentation":"

    Additional information that describes why the domain association is in the current state.

    " }, "certificateVerificationDNSRecord":{ "shape":"CertificateVerificationDNSRecord", @@ -1797,9 +1852,13 @@ "subDomains":{ "shape":"SubDomains", "documentation":"

    The subdomains for the domain association.

    " + }, + "certificate":{ + "shape":"Certificate", + "documentation":"

    Describes the SSL/TLS certificate for the domain association. This can be your own custom certificate or the default certificate that Amplify provisions for you.

    If you are updating your domain to use a different certificate, certificate points to the new certificate that is being created instead of the current active certificate. Otherwise, certificate points to the current active certificate.

    " } }, - "documentation":"

    Describes a domain association that associates a custom domain with an Amplify app.

    " + "documentation":"

    Describes the association between a custom domain and an Amplify app.

    " }, "DomainAssociationArn":{ "type":"string", @@ -1826,7 +1885,9 @@ "PENDING_VERIFICATION", "IN_PROGRESS", "AVAILABLE", + "IMPORTING_CUSTOM_CERTIFICATE", "PENDING_DEPLOYMENT", + "AWAITING_APP_CNAME", "FAILED", "CREATING", "REQUESTING_CERTIFICATE", @@ -3354,6 +3415,10 @@ "autoSubDomainIAMRole":{ "shape":"AutoSubDomainIAMRole", "documentation":"

    The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains.

    " + }, + "certificateSettings":{ + "shape":"CertificateSettings", + "documentation":"

    The type of SSL/TLS certificate to use for your custom domain.

    " } }, "documentation":"

    The request structure for the update domain association request.

    " @@ -3369,6 +3434,18 @@ }, "documentation":"

    The result structure for the update domain association request.

    " }, + "UpdateStatus":{ + "type":"string", + "enum":[ + "REQUESTING_CERTIFICATE", + "PENDING_VERIFICATION", + "IMPORTING_CUSTOM_CERTIFICATE", + "PENDING_DEPLOYMENT", + "AWAITING_APP_CNAME", + "UPDATE_COMPLETE", + "UPDATE_FAILED" + ] + }, "UpdateTime":{"type":"timestamp"}, "UpdateWebhookRequest":{ "type":"structure", diff --git a/services/amplifybackend/pom.xml b/services/amplifybackend/pom.xml index 5f2bbb7556d4..2a945f7c1ead 100644 --- a/services/amplifybackend/pom.xml +++ b/services/amplifybackend/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT amplifybackend AWS Java SDK :: Services :: Amplify Backend diff --git a/services/amplifybackend/src/main/resources/codegen-resources/customization.config b/services/amplifybackend/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/amplifybackend/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/amplifyuibuilder/pom.xml b/services/amplifyuibuilder/pom.xml index 53b2b201258c..2590de4f16b9 100644 --- a/services/amplifyuibuilder/pom.xml +++ b/services/amplifyuibuilder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT amplifyuibuilder AWS Java SDK :: Services :: Amplify UI Builder diff --git a/services/amplifyuibuilder/src/main/resources/codegen-resources/customization.config b/services/amplifyuibuilder/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/amplifyuibuilder/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-rule-set.json index 24b1f786c62f..311de363a487 100644 --- a/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/amplifyuibuilder/src/main/resources/codegen-resources/service-2.json b/services/amplifyuibuilder/src/main/resources/codegen-resources/service-2.json index 2036bd84d663..6ce57bf33d1a 100644 --- a/services/amplifyuibuilder/src/main/resources/codegen-resources/service-2.json +++ b/services/amplifyuibuilder/src/main/resources/codegen-resources/service-2.json @@ -299,6 +299,24 @@ ], "documentation":"

    Retrieves a list of forms for a specified Amplify app and backend environment.

    " }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Returns a list of tags for a specified Amazon Resource Name (ARN).

    " + }, "ListThemes":{ "name":"ListThemes", "http":{ @@ -326,7 +344,8 @@ {"shape":"UnauthorizedException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

    Stores the metadata information about a feature on a form.

    " + "documentation":"

    Stores the metadata information about a feature on a form.

    ", + "idempotent":true }, "RefreshToken":{ "name":"RefreshToken", @@ -358,6 +377,44 @@ ], "documentation":"

    Starts a code generation job for a specified Amplify app and backend environment.

    " }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Tags the resource with a tag key and value.

    ", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Untags a resource with a specified Amazon Resource Name (ARN).

    ", + "idempotent":true + }, "UpdateComponent":{ "name":"UpdateComponent", "http":{ @@ -2710,11 +2767,6 @@ } } }, - "ListComponentsLimit":{ - "type":"integer", - "max":100, - "min":1 - }, "ListComponentsRequest":{ "type":"structure", "required":[ @@ -2741,7 +2793,7 @@ "locationName":"nextToken" }, "maxResults":{ - "shape":"ListComponentsLimit", + "shape":"ListEntityLimit", "documentation":"

    The maximum number of components to retrieve.

    ", "location":"querystring", "locationName":"maxResults" @@ -2762,8 +2814,9 @@ } } }, - "ListFormsLimit":{ + "ListEntityLimit":{ "type":"integer", + "box":true, "max":100, "min":1 }, @@ -2793,7 +2846,7 @@ "locationName":"nextToken" }, "maxResults":{ - "shape":"ListFormsLimit", + "shape":"ListEntityLimit", "documentation":"

    The maximum number of forms to retrieve.

    ", "location":"querystring", "locationName":"maxResults" @@ -2814,10 +2867,27 @@ } } }, - "ListThemesLimit":{ - "type":"integer", - "max":100, - "min":1 + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"String", + "documentation":"

    The Amazon Resource Name (ARN) to use to list tags.

    ", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "required":["tags"], + "members":{ + "tags":{ + "shape":"Tags", + "documentation":"

    A list of tag key value pairs for a specified Amazon Resource Name (ARN).

    " + } + } }, "ListThemesRequest":{ "type":"structure", @@ -2845,7 +2915,7 @@ "locationName":"nextToken" }, "maxResults":{ - "shape":"ListThemesLimit", + "shape":"ListEntityLimit", "documentation":"

    The maximum number of theme results to return in the response.

    ", "location":"querystring", "locationName":"maxResults" @@ -3277,6 +3347,36 @@ "min":1, "pattern":"(?!aws:)[a-zA-Z+-=._:/]+" }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "documentation":"

    The Amazon Resource Name (ARN) to use to tag a resource.

    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"Tags", + "documentation":"

    A list of tag key value pairs for a specified Amazon Resource Name (ARN).

    " + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "TagValue":{ "type":"string", "max":256, @@ -3438,6 +3538,32 @@ }, "exception":true }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "documentation":"

    The Amazon Resource Name (ARN) to use to untag a resource.

    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

    The tag keys to use to untag a resource.

    ", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateComponentData":{ "type":"structure", "members":{ diff --git a/services/apigateway/pom.xml b/services/apigateway/pom.xml index 11c1687c9d55..6985b94819b9 100644 --- a/services/apigateway/pom.xml +++ b/services/apigateway/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT apigateway AWS Java SDK :: Services :: Amazon API Gateway diff --git a/services/apigateway/src/main/resources/codegen-resources/customization.config b/services/apigateway/src/main/resources/codegen-resources/customization.config index 9662110a579f..98cb57cc5adf 100644 --- a/services/apigateway/src/main/resources/codegen-resources/customization.config +++ b/services/apigateway/src/main/resources/codegen-resources/customization.config @@ -1,27 +1,28 @@ { - "shapeSubstitutions": { - "CacheClusterSize": { - "emitAsShape": "String" - } - }, - "excludedSimpleMethods" : [ - "updateAccount", - "createApiKey", - "generateClientCertificate" - ], - "verifiedSimpleMethods" : [ - "getAccount", - "getApiKeys", - "getClientCertificates", - "getDomainNames", - "getRestApis", - "getSdkTypes", - "getUsagePlans", - "getVpcLinks", - "createApiKey", - "generateClientCertificate" - ], - "interceptors": [ - "software.amazon.awssdk.services.apigateway.internal.AcceptJsonInterceptor" - ] + "shapeSubstitutions": { + "CacheClusterSize": { + "emitAsShape": "String" + } + }, + "excludedSimpleMethods": [ + "updateAccount", + "createApiKey", + "generateClientCertificate" + ], + "verifiedSimpleMethods": [ + "getAccount", + "getApiKeys", + "getClientCertificates", + "getDomainNames", + "getRestApis", + "getSdkTypes", + "getUsagePlans", + "getVpcLinks", + "createApiKey", + "generateClientCertificate" + ], + "interceptors": [ + "software.amazon.awssdk.services.apigateway.internal.AcceptJsonInterceptor" + ], + "useSraAuth": true } diff --git a/services/apigateway/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/apigateway/src/main/resources/codegen-resources/endpoint-rule-set.json index 618041523568..c8acc7bd13a7 100644 --- a/services/apigateway/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/apigateway/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/apigateway/src/main/resources/codegen-resources/service-2.json b/services/apigateway/src/main/resources/codegen-resources/service-2.json index eb167860d6ab..1c64811aba69 100644 --- a/services/apigateway/src/main/resources/codegen-resources/service-2.json +++ b/services/apigateway/src/main/resources/codegen-resources/service-2.json @@ -1956,7 +1956,7 @@ {"shape":"UnauthorizedException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

    Changes information about a model.

    " + "documentation":"

    Changes information about a model. The maximum size of the model is 400 KB.

    " }, "UpdateRequestValidator":{ "name":"UpdateRequestValidator", @@ -2743,7 +2743,7 @@ }, "schema":{ "shape":"String", - "documentation":"

    The schema for the model. For application/json models, this should be JSON schema draft 4 model.

    " + "documentation":"

    The schema for the model. For application/json models, this should be JSON schema draft 4 model. The maximum size of the model is 400 KB.

    " }, "contentType":{ "shape":"String", @@ -6234,7 +6234,7 @@ }, "cacheClusterEnabled":{ "shape":"Boolean", - "documentation":"

    Specifies whether a cache cluster is enabled for the stage.

    " + "documentation":"

    Specifies whether a cache cluster is enabled for the stage. To activate a method-level cache, set CachingEnabled to true for a method.

    " }, "cacheClusterSize":{ "shape":"CacheClusterSize", diff --git a/services/apigatewaymanagementapi/pom.xml b/services/apigatewaymanagementapi/pom.xml index 0d12df82bb96..7afca7dc8947 100644 --- a/services/apigatewaymanagementapi/pom.xml +++ b/services/apigatewaymanagementapi/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT apigatewaymanagementapi AWS Java SDK :: Services :: ApiGatewayManagementApi diff --git a/services/apigatewaymanagementapi/src/main/resources/codegen-resources/customization.config b/services/apigatewaymanagementapi/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/apigatewaymanagementapi/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/apigatewayv2/pom.xml b/services/apigatewayv2/pom.xml index 1788d2a92555..436751bc5ad1 100644 --- a/services/apigatewayv2/pom.xml +++ b/services/apigatewayv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT apigatewayv2 AWS Java SDK :: Services :: ApiGatewayV2 diff --git a/services/apigatewayv2/src/main/resources/codegen-resources/customization.config b/services/apigatewayv2/src/main/resources/codegen-resources/customization.config index d258d1d33724..c425ba7c68eb 100644 --- a/services/apigatewayv2/src/main/resources/codegen-resources/customization.config +++ b/services/apigatewayv2/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "getApis", "getDomainNames" - ] + ], + "useSraAuth": true } diff --git a/services/appconfig/pom.xml b/services/appconfig/pom.xml index 1b9403114f56..dba2da1a3194 100644 --- a/services/appconfig/pom.xml +++ b/services/appconfig/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT appconfig AWS Java SDK :: Services :: AppConfig diff --git a/services/appconfig/src/main/resources/codegen-resources/customization.config b/services/appconfig/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/appconfig/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/appconfigdata/pom.xml b/services/appconfigdata/pom.xml index 348dc5d812f0..1e95f27426ee 100644 --- a/services/appconfigdata/pom.xml +++ b/services/appconfigdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT appconfigdata AWS Java SDK :: Services :: App Config Data diff --git a/services/appconfigdata/src/main/resources/codegen-resources/customization.config b/services/appconfigdata/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/appconfigdata/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/appconfigdata/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/appconfigdata/src/main/resources/codegen-resources/endpoint-rule-set.json index 8272726ee700..08e0e7903f25 100644 --- a/services/appconfigdata/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/appconfigdata/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,12 +212,37 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "endpoint": { + "url": "https://appconfigdata.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { @@ -231,14 +252,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +275,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +294,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +304,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +324,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/appconfigdata/src/main/resources/codegen-resources/endpoint-tests.json b/services/appconfigdata/src/main/resources/codegen-resources/endpoint-tests.json index e7e234516994..0adbb214cfce 100644 --- a/services/appconfigdata/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/appconfigdata/src/main/resources/codegen-resources/endpoint-tests.json @@ -420,7 +420,7 @@ "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.us-gov-east-1.amazonaws.com" + "url": "https://appconfigdata.us-gov-east-1.amazonaws.com" } }, "params": { diff --git a/services/appfabric/pom.xml b/services/appfabric/pom.xml index f196af869a56..e8b2999be2ba 100644 --- a/services/appfabric/pom.xml +++ b/services/appfabric/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT appfabric AWS Java SDK :: Services :: App Fabric diff --git a/services/appfabric/src/main/resources/codegen-resources/customization.config b/services/appfabric/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/appfabric/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/appflow/pom.xml b/services/appflow/pom.xml index 91289d86556c..afd6eebd67b5 100644 --- a/services/appflow/pom.xml +++ b/services/appflow/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT appflow AWS Java SDK :: Services :: Appflow diff --git a/services/appflow/src/main/resources/codegen-resources/customization.config b/services/appflow/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/appflow/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/appintegrations/pom.xml b/services/appintegrations/pom.xml index d27f0cd19aa9..30405d5e2263 100644 --- a/services/appintegrations/pom.xml +++ b/services/appintegrations/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT appintegrations AWS Java SDK :: Services :: App Integrations diff --git a/services/appintegrations/src/main/resources/codegen-resources/customization.config b/services/appintegrations/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/appintegrations/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/applicationautoscaling/pom.xml b/services/applicationautoscaling/pom.xml index e23d3b8207fb..9c63187d8eb2 100644 --- a/services/applicationautoscaling/pom.xml +++ b/services/applicationautoscaling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT applicationautoscaling AWS Java SDK :: Services :: AWS Application Auto Scaling diff --git a/services/applicationautoscaling/src/main/resources/codegen-resources/customization.config b/services/applicationautoscaling/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/applicationautoscaling/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/applicationcostprofiler/pom.xml b/services/applicationcostprofiler/pom.xml index 2f5d1f7c7e95..709be689a654 100644 --- a/services/applicationcostprofiler/pom.xml +++ b/services/applicationcostprofiler/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT applicationcostprofiler AWS Java SDK :: Services :: Application Cost Profiler diff --git a/services/applicationcostprofiler/src/main/resources/codegen-resources/customization.config b/services/applicationcostprofiler/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/applicationcostprofiler/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/applicationdiscovery/pom.xml b/services/applicationdiscovery/pom.xml index 1044f0817b40..d6b1ebfd125e 100644 --- a/services/applicationdiscovery/pom.xml +++ b/services/applicationdiscovery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT applicationdiscovery AWS Java SDK :: Services :: AWS Application Discovery Service diff --git a/services/applicationdiscovery/src/main/resources/codegen-resources/customization.config b/services/applicationdiscovery/src/main/resources/codegen-resources/customization.config index d46992d3cb02..739c1aacf1e3 100644 --- a/services/applicationdiscovery/src/main/resources/codegen-resources/customization.config +++ b/services/applicationdiscovery/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,5 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "exportConfigurations", "startExportTask", "describeAgents", @@ -9,12 +9,14 @@ "describeExportConfigurations", "getDiscoverySummary" ], - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "startContinuousExport", "describeContinuousExports" ], "deprecatedOperations": [ "DescribeExportConfigurations", "ExportConfigurations" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true } diff --git a/services/applicationinsights/pom.xml b/services/applicationinsights/pom.xml index e04c5960bad2..ad85c9d14e7b 100644 --- a/services/applicationinsights/pom.xml +++ b/services/applicationinsights/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT applicationinsights AWS Java SDK :: Services :: Application Insights diff --git a/services/applicationinsights/src/main/resources/codegen-resources/customization.config b/services/applicationinsights/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/applicationinsights/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/appmesh/pom.xml b/services/appmesh/pom.xml index 4465ef7a1c96..379b2aff32dd 100644 --- a/services/appmesh/pom.xml +++ b/services/appmesh/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT appmesh AWS Java SDK :: Services :: App Mesh diff --git a/services/appmesh/src/main/resources/codegen-resources/customization.config b/services/appmesh/src/main/resources/codegen-resources/customization.config index 1179f2d36f82..8a683b7ee84f 100644 --- a/services/appmesh/src/main/resources/codegen-resources/customization.config +++ b/services/appmesh/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listMeshes" - ] + ], + "useSraAuth": true } diff --git a/services/apprunner/pom.xml b/services/apprunner/pom.xml index c4e78a1eba39..ad12871cb4d7 100644 --- a/services/apprunner/pom.xml +++ b/services/apprunner/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT apprunner AWS Java SDK :: Services :: App Runner diff --git a/services/apprunner/src/main/resources/codegen-resources/customization.config b/services/apprunner/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/apprunner/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/appstream/pom.xml b/services/appstream/pom.xml index 4bb316ccd358..264f574a8d3d 100644 --- a/services/appstream/pom.xml +++ b/services/appstream/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT appstream AWS Java SDK :: Services :: Amazon AppStream diff --git a/services/appstream/src/main/resources/codegen-resources/customization.config b/services/appstream/src/main/resources/codegen-resources/customization.config index b605d120b9ab..bfdc4d2925dd 100644 --- a/services/appstream/src/main/resources/codegen-resources/customization.config +++ b/services/appstream/src/main/resources/codegen-resources/customization.config @@ -1,13 +1,14 @@ { - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "updateFleet", - "describeUserStackAssociations" - ], - "verifiedSimpleMethods" : [ + "describeUserStackAssociations" + ], + "verifiedSimpleMethods": [ "describeDirectoryConfigs", "describeFleets", "describeImageBuilders", "describeImages", "describeStacks" - ] + ], + "useSraAuth": true } diff --git a/services/appsync/pom.xml b/services/appsync/pom.xml index 4e8bc95e0683..210cbb7f9554 100644 --- a/services/appsync/pom.xml +++ b/services/appsync/pom.xml @@ -21,7 +21,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT appsync diff --git a/services/appsync/src/main/resources/codegen-resources/customization.config b/services/appsync/src/main/resources/codegen-resources/customization.config index 84a39bb94666..f1e489482773 100644 --- a/services/appsync/src/main/resources/codegen-resources/customization.config +++ b/services/appsync/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods": [ - "listGraphqlApis" - ] + "verifiedSimpleMethods": [ + "listGraphqlApis" + ], + "useSraAuth": true } diff --git a/services/appsync/src/main/resources/codegen-resources/service-2.json b/services/appsync/src/main/resources/codegen-resources/service-2.json index b74b717c2a86..4a99948faa4e 100644 --- a/services/appsync/src/main/resources/codegen-resources/service-2.json +++ b/services/appsync/src/main/resources/codegen-resources/service-2.json @@ -146,7 +146,8 @@ {"shape":"ConcurrentModificationException"}, {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"BadRequestException"} ], "documentation":"

    Creates a Function object.

    A function is a reusable entity. You can use multiple functions to compose the resolver logic.

    " }, @@ -281,7 +282,8 @@ {"shape":"ConcurrentModificationException"}, {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"BadRequestException"} ], "documentation":"

    Deletes a Function.

    " }, @@ -548,6 +550,23 @@ ], "documentation":"

    Retrieves a GraphqlApi object.

    " }, + "GetGraphqlApiEnvironmentVariables":{ + "name":"GetGraphqlApiEnvironmentVariables", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/environmentVariables" + }, + "input":{"shape":"GetGraphqlApiEnvironmentVariablesRequest"}, + "output":{"shape":"GetGraphqlApiEnvironmentVariablesResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Retrieves the list of environmental variable key-value pairs associated with an API by its ID value.

    " + }, "GetIntrospectionSchema":{ "name":"GetIntrospectionSchema", "http":{ @@ -806,6 +825,24 @@ ], "documentation":"

    Lists Type objects by the source API association ID.

    " }, + "PutGraphqlApiEnvironmentVariables":{ + "name":"PutGraphqlApiEnvironmentVariables", + "http":{ + "method":"PUT", + "requestUri":"/v1/apis/{apiId}/environmentVariables" + }, + "input":{"shape":"PutGraphqlApiEnvironmentVariablesRequest"}, + "output":{"shape":"PutGraphqlApiEnvironmentVariablesResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Creates a list of environmental variables in an API by its ID value.

    When creating an environmental variable, it must follow the constraints below:

    • Both JavaScript and VTL templates support environmental variables.

    • Environmental variables are not evaluated before function invocation.

    • Environmental variables only support string values.

    • Any defined value in an environmental variable is considered a string literal and not expanded.

    • Variable evaluations should ideally be performed in the function code.

    When creating an environmental variable key-value pair, it must follow the additional constraints below:

    • Keys must begin with a letter.

    • Keys must be at least two characters long.

    • Keys can only contain letters, numbers, and the underscore character (_).

    • Values can be up to 512 characters long.

    • You can configure up to 50 key-value pairs in a GraphQL API.

    You can create a list of environmental variables by adding it to the environmentVariables payload as a list in the format {\"key1\":\"value1\",\"key2\":\"value2\", …}. Note that each call of the PutGraphqlApiEnvironmentVariables action will result in the overwriting of the existing environmental variable list of that API. This means the existing environmental variables will be lost. To avoid this, you must include all existing and new environmental variables in the list each time you call this action.

    " + }, "StartDataSourceIntrospection":{ "name":"StartDataSourceIntrospection", "http":{ @@ -973,7 +1010,8 @@ {"shape":"ConcurrentModificationException"}, {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"BadRequestException"} ], "documentation":"

    Updates a Function object.

    " }, @@ -1131,6 +1169,10 @@ "status":{ "shape":"ApiCacheStatus", "documentation":"

    The cache instance status.

    • AVAILABLE: The instance is available for use.

    • CREATING: The instance is currently creating.

    • DELETING: The instance is currently deleting.

    • MODIFYING: The instance is currently modifying.

    • FAILED: The instance has failed creation.

    " + }, + "healthMetricsConfig":{ + "shape":"CacheHealthMetricsConfig", + "documentation":"

    Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:

    • NetworkBandwidthOutAllowanceExceeded: The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration.

    • EngineCPUUtilization: The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration.

    Metrics will be recorded by API ID. You can set the value to ENABLED or DISABLED.

    " } }, "documentation":"

    The ApiCache object.

    " @@ -1423,6 +1465,13 @@ "Blob":{"type":"blob"}, "Boolean":{"type":"boolean"}, "BooleanValue":{"type":"boolean"}, + "CacheHealthMetricsConfig":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "CachingConfig":{ "type":"structure", "required":["ttl"], @@ -1583,6 +1632,10 @@ "type":{ "shape":"ApiCacheType", "documentation":"

    The cache instance type. Valid values are

    • SMALL

    • MEDIUM

    • LARGE

    • XLARGE

    • LARGE_2X

    • LARGE_4X

    • LARGE_8X (not available in all regions)

    • LARGE_12X

    Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used.

    The following legacy instance types are available, but their use is discouraged:

    • T2_SMALL: A t2.small instance type.

    • T2_MEDIUM: A t2.medium instance type.

    • R4_LARGE: A r4.large instance type.

    • R4_XLARGE: A r4.xlarge instance type.

    • R4_2XLARGE: A r4.2xlarge instance type.

    • R4_4XLARGE: A r4.4xlarge instance type.

    • R4_8XLARGE: A r4.8xlarge instance type.

    " + }, + "healthMetricsConfig":{ + "shape":"CacheHealthMetricsConfig", + "documentation":"

    Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:

    • NetworkBandwidthOutAllowanceExceeded: The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration.

    • EngineCPUUtilization: The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration.

    Metrics will be recorded by API ID. You can set the value to ENABLED or DISABLED.

    " } }, "documentation":"

    Represents the input of a CreateApiCache operation.

    " @@ -1683,6 +1736,10 @@ "eventBridgeConfig":{ "shape":"EventBridgeDataSourceConfig", "documentation":"

    Amazon EventBridge settings.

    " + }, + "metricsConfig":{ + "shape":"DataSourceLevelMetricsConfig", + "documentation":"

    Enables or disables enhanced data source metrics for specified data sources. Note that metricsConfig won't be used unless the dataSourceLevelMetricsBehavior value is set to PER_DATA_SOURCE_METRICS. If the dataSourceLevelMetricsBehavior is set to FULL_REQUEST_DATA_SOURCE_METRICS instead, metricsConfig will be ignored. However, you can still set its value.

    metricsConfig can be ENABLED or DISABLED.

    " } } }, @@ -1854,6 +1911,10 @@ "resolverCountLimit":{ "shape":"ResolverCountLimit", "documentation":"

    The maximum number of resolvers that can be invoked in a single request. The default value is 0 (or unspecified), which will set the limit to 10000. When specified, the limit value can be between 1 and 10000. This field will produce a limit error if the operation falls out of bounds.

    " + }, + "enhancedMetricsConfig":{ + "shape":"EnhancedMetricsConfig", + "documentation":"

    The enhancedMetricsConfig object.

    " } } }, @@ -1926,6 +1987,10 @@ "code":{ "shape":"Code", "documentation":"

    The resolver code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

    " + }, + "metricsConfig":{ + "shape":"ResolverLevelMetricsConfig", + "documentation":"

    Enables or disables enhanced resolver metrics for specified resolvers. Note that metricsConfig won't be used unless the resolverLevelMetricsBehavior value is set to PER_RESOLVER_METRICS. If the resolverLevelMetricsBehavior is set to FULL_REQUEST_RESOLVER_METRICS instead, metricsConfig will be ignored. However, you can still set its value.

    metricsConfig can be ENABLED or DISABLED.

    " } } }, @@ -2021,6 +2086,10 @@ "eventBridgeConfig":{ "shape":"EventBridgeDataSourceConfig", "documentation":"

    Amazon EventBridge settings.

    " + }, + "metricsConfig":{ + "shape":"DataSourceLevelMetricsConfig", + "documentation":"

    Enables or disables enhanced data source metrics for specified data sources. Note that metricsConfig won't be used unless the dataSourceLevelMetricsBehavior value is set to PER_DATA_SOURCE_METRICS. If the dataSourceLevelMetricsBehavior is set to FULL_REQUEST_DATA_SOURCE_METRICS instead, metricsConfig will be ignored. However, you can still set its value.

    metricsConfig can be ENABLED or DISABLED.

    " } }, "documentation":"

    Describes a data source.

    " @@ -2147,6 +2216,20 @@ "SUCCESS" ] }, + "DataSourceLevelMetricsBehavior":{ + "type":"string", + "enum":[ + "FULL_REQUEST_DATA_SOURCE_METRICS", + "PER_DATA_SOURCE_METRICS" + ] + }, + "DataSourceLevelMetricsConfig":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "DataSourceType":{ "type":"string", "enum":[ @@ -2547,6 +2630,47 @@ }, "documentation":"

    Describes an OpenSearch data source configuration.

    As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is deprecated. For new data sources, use OpenSearchServiceDataSourceConfig to specify an OpenSearch data source.

    " }, + "EnhancedMetricsConfig":{ + "type":"structure", + "required":[ + "resolverLevelMetricsBehavior", + "dataSourceLevelMetricsBehavior", + "operationLevelMetricsConfig" + ], + "members":{ + "resolverLevelMetricsBehavior":{ + "shape":"ResolverLevelMetricsBehavior", + "documentation":"

    Controls how resolver metrics will be emitted to CloudWatch. Resolver metrics include:

    • GraphQL errors: The number of GraphQL errors that occurred.

    • Requests: The number of invocations that occurred during a request.

    • Latency: The time to complete a resolver invocation.

    • Cache hits: The number of cache hits during a request.

    • Cache misses: The number of cache misses during a request.

    These metrics can be emitted to CloudWatch per resolver or for all resolvers in the request. Metrics will be recorded by API ID and resolver name. resolverLevelMetricsBehavior accepts one of these values at a time:

    • FULL_REQUEST_RESOLVER_METRICS: Records and emits metric data for all resolvers in the request.

    • PER_RESOLVER_METRICS: Records and emits metric data for resolvers that have the metricsConfig value set to ENABLED.

    " + }, + "dataSourceLevelMetricsBehavior":{ + "shape":"DataSourceLevelMetricsBehavior", + "documentation":"

    Controls how data source metrics will be emitted to CloudWatch. Data source metrics include:

    • Requests: The number of invocations that occured during a request.

    • Latency: The time to complete a data source invocation.

    • Errors: The number of errors that occurred during a data source invocation.

    These metrics can be emitted to CloudWatch per data source or for all data sources in the request. Metrics will be recorded by API ID and data source name. dataSourceLevelMetricsBehavior accepts one of these values at a time:

    • FULL_REQUEST_DATA_SOURCE_METRICS: Records and emits metric data for all data sources in the request.

    • PER_DATA_SOURCE_METRICS: Records and emits metric data for data sources that have the metricsConfig value set to ENABLED.

    " + }, + "operationLevelMetricsConfig":{ + "shape":"OperationLevelMetricsConfig", + "documentation":"

    Controls how operation metrics will be emitted to CloudWatch. Operation metrics include:

    • Requests: The number of times a specified GraphQL operation was called.

    • GraphQL errors: The number of GraphQL errors that occurred during a specified GraphQL operation.

    Metrics will be recorded by API ID and operation name. You can set the value to ENABLED or DISABLED.

    " + } + }, + "documentation":"

    Enables and controls the enhanced metrics feature. Enhanced metrics emit granular data on API usage and performance such as AppSync request and error counts, latency, and cache hits/misses. All enhanced metric data is sent to your CloudWatch account, and you can configure the types of data that will be sent.

    Enhanced metrics can be configured at the resolver, data source, and operation levels. EnhancedMetricsConfig contains three required parameters, each controlling one of these categories:

    1. resolverLevelMetricsBehavior: Controls how resolver metrics will be emitted to CloudWatch. Resolver metrics include:

      • GraphQL errors: The number of GraphQL errors that occurred.

      • Requests: The number of invocations that occurred during a request.

      • Latency: The time to complete a resolver invocation.

      • Cache hits: The number of cache hits during a request.

      • Cache misses: The number of cache misses during a request.

      These metrics can be emitted to CloudWatch per resolver or for all resolvers in the request. Metrics will be recorded by API ID and resolver name. resolverLevelMetricsBehavior accepts one of these values at a time:

      • FULL_REQUEST_RESOLVER_METRICS: Records and emits metric data for all resolvers in the request.

      • PER_RESOLVER_METRICS: Records and emits metric data for resolvers that have the metricsConfig value set to ENABLED.

    2. dataSourceLevelMetricsBehavior: Controls how data source metrics will be emitted to CloudWatch. Data source metrics include:

      • Requests: The number of invocations that occured during a request.

      • Latency: The time to complete a data source invocation.

      • Errors: The number of errors that occurred during a data source invocation.

      These metrics can be emitted to CloudWatch per data source or for all data sources in the request. Metrics will be recorded by API ID and data source name. dataSourceLevelMetricsBehavior accepts one of these values at a time:

      • FULL_REQUEST_DATA_SOURCE_METRICS: Records and emits metric data for all data sources in the request.

      • PER_DATA_SOURCE_METRICS: Records and emits metric data for data sources that have the metricsConfig value set to ENABLED.

    3. operationLevelMetricsConfig: Controls how operation metrics will be emitted to CloudWatch. Operation metrics include:

      • Requests: The number of times a specified GraphQL operation was called.

      • GraphQL errors: The number of GraphQL errors that occurred during a specified GraphQL operation.

      Metrics will be recorded by API ID and operation name. You can set the value to ENABLED or DISABLED.

    " + }, + "EnvironmentVariableKey":{ + "type":"string", + "max":64, + "min":2, + "pattern":"^[A-Za-z]+\\w*$" + }, + "EnvironmentVariableMap":{ + "type":"map", + "key":{"shape":"EnvironmentVariableKey"}, + "value":{"shape":"EnvironmentVariableValue"}, + "max":50, + "min":0 + }, + "EnvironmentVariableValue":{ + "type":"string", + "max":512, + "min":0 + }, "ErrorDetail":{ "type":"structure", "members":{ @@ -2925,6 +3049,27 @@ } } }, + "GetGraphqlApiEnvironmentVariablesRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "documentation":"

    The ID of the API from which the environmental variable list will be retrieved.

    ", + "location":"uri", + "locationName":"apiId" + } + } + }, + "GetGraphqlApiEnvironmentVariablesResponse":{ + "type":"structure", + "members":{ + "environmentVariables":{ + "shape":"EnvironmentVariableMap", + "documentation":"

    The payload containing each environmental variable in the \"key\" : \"value\" format.

    " + } + } + }, "GetGraphqlApiRequest":{ "type":"structure", "required":["apiId"], @@ -3232,6 +3377,10 @@ "resolverCountLimit":{ "shape":"ResolverCountLimit", "documentation":"

    The maximum number of resolvers that can be invoked in a single request. The default value is 0 (or unspecified), which will set the limit to 10000. When specified, the limit value can be between 1 and 10000. This field will produce a limit error if the operation falls out of bounds.

    " + }, + "enhancedMetricsConfig":{ + "shape":"EnhancedMetricsConfig", + "documentation":"

    The enhancedMetricsConfig object.

    " } }, "documentation":"

    Describes a GraphQL API.

    " @@ -3850,6 +3999,13 @@ }, "documentation":"

    Describes an OpenSearch data source configuration.

    " }, + "OperationLevelMetricsConfig":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "OutputType":{ "type":"string", "enum":[ @@ -3880,6 +4036,34 @@ }, "documentation":"

    The pipeline configuration for a resolver of kind PIPELINE.

    " }, + "PutGraphqlApiEnvironmentVariablesRequest":{ + "type":"structure", + "required":[ + "apiId", + "environmentVariables" + ], + "members":{ + "apiId":{ + "shape":"String", + "documentation":"

    The ID of the API to which the environmental variable list will be written.

    ", + "location":"uri", + "locationName":"apiId" + }, + "environmentVariables":{ + "shape":"EnvironmentVariableMap", + "documentation":"

    The list of environmental variables to add to the API.

    When creating an environmental variable key-value pair, it must follow the additional constraints below:

    • Keys must begin with a letter.

    • Keys must be at least two characters long.

    • Keys can only contain letters, numbers, and the underscore character (_).

    • Values can be up to 512 characters long.

    • You can configure up to 50 key-value pairs in a GraphQL API.

    You can create a list of environmental variables by adding it to the environmentVariables payload as a list in the format {\"key1\":\"value1\",\"key2\":\"value2\", …}. Note that each call of the PutGraphqlApiEnvironmentVariables action will result in the overwriting of the existing environmental variable list of that API. This means the existing environmental variables will be lost. To avoid this, you must include all existing and new environmental variables in the list each time you call this action.

    " + } + } + }, + "PutGraphqlApiEnvironmentVariablesResponse":{ + "type":"structure", + "members":{ + "environmentVariables":{ + "shape":"EnvironmentVariableMap", + "documentation":"

    The payload containing each environmental variable in the \"key\" : \"value\" format.

    " + } + } + }, "QueryDepthLimit":{ "type":"integer", "max":75, @@ -4020,6 +4204,10 @@ "code":{ "shape":"Code", "documentation":"

    The resolver code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

    " + }, + "metricsConfig":{ + "shape":"ResolverLevelMetricsConfig", + "documentation":"

    Enables or disables enhanced resolver metrics for specified resolvers. Note that metricsConfig won't be used unless the resolverLevelMetricsBehavior value is set to PER_RESOLVER_METRICS. If the resolverLevelMetricsBehavior is set to FULL_REQUEST_RESOLVER_METRICS instead, metricsConfig will be ignored. However, you can still set its value.

    metricsConfig can be ENABLED or DISABLED.

    " } }, "documentation":"

    Describes a resolver.

    " @@ -4036,6 +4224,20 @@ "PIPELINE" ] }, + "ResolverLevelMetricsBehavior":{ + "type":"string", + "enum":[ + "FULL_REQUEST_RESOLVER_METRICS", + "PER_RESOLVER_METRICS" + ] + }, + "ResolverLevelMetricsConfig":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "Resolvers":{ "type":"list", "member":{"shape":"Resolver"} @@ -4441,6 +4643,10 @@ "type":{ "shape":"ApiCacheType", "documentation":"

    The cache instance type. Valid values are

    • SMALL

    • MEDIUM

    • LARGE

    • XLARGE

    • LARGE_2X

    • LARGE_4X

    • LARGE_8X (not available in all regions)

    • LARGE_12X

    Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used.

    The following legacy instance types are available, but their use is discouraged:

    • T2_SMALL: A t2.small instance type.

    • T2_MEDIUM: A t2.medium instance type.

    • R4_LARGE: A r4.large instance type.

    • R4_XLARGE: A r4.xlarge instance type.

    • R4_2XLARGE: A r4.2xlarge instance type.

    • R4_4XLARGE: A r4.4xlarge instance type.

    • R4_8XLARGE: A r4.8xlarge instance type.

    " + }, + "healthMetricsConfig":{ + "shape":"CacheHealthMetricsConfig", + "documentation":"

    Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:

    • NetworkBandwidthOutAllowanceExceeded: The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration.

    • EngineCPUUtilization: The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration.

    Metrics will be recorded by API ID. You can set the value to ENABLED or DISABLED.

    " } }, "documentation":"

    Represents the input of a UpdateApiCache operation.

    " @@ -4552,6 +4758,10 @@ "eventBridgeConfig":{ "shape":"EventBridgeDataSourceConfig", "documentation":"

    The new Amazon EventBridge settings.

    " + }, + "metricsConfig":{ + "shape":"DataSourceLevelMetricsConfig", + "documentation":"

    Enables or disables enhanced data source metrics for specified data sources. Note that metricsConfig won't be used unless the dataSourceLevelMetricsBehavior value is set to PER_DATA_SOURCE_METRICS. If the dataSourceLevelMetricsBehavior is set to FULL_REQUEST_DATA_SOURCE_METRICS instead, metricsConfig will be ignored. However, you can still set its value.

    metricsConfig can be ENABLED or DISABLED.

    " } } }, @@ -4719,6 +4929,10 @@ "resolverCountLimit":{ "shape":"ResolverCountLimit", "documentation":"

    The maximum number of resolvers that can be invoked in a single request. The default value is 0 (or unspecified), which will set the limit to 10000. When specified, the limit value can be between 1 and 10000. This field will produce a limit error if the operation falls out of bounds.

    " + }, + "enhancedMetricsConfig":{ + "shape":"EnhancedMetricsConfig", + "documentation":"

    The enhancedMetricsConfig object.

    " } } }, @@ -4793,6 +5007,10 @@ "code":{ "shape":"Code", "documentation":"

    The resolver code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

    " + }, + "metricsConfig":{ + "shape":"ResolverLevelMetricsConfig", + "documentation":"

    Enables or disables enhanced resolver metrics for specified resolvers. Note that metricsConfig won't be used unless the resolverLevelMetricsBehavior value is set to PER_RESOLVER_METRICS. If the resolverLevelMetricsBehavior is set to FULL_REQUEST_RESOLVER_METRICS instead, metricsConfig will be ignored. However, you can still set its value.

    metricsConfig can be ENABLED or DISABLED.

    " } } }, diff --git a/services/arczonalshift/pom.xml b/services/arczonalshift/pom.xml index 72779c86235d..f07c89eb3eff 100644 --- a/services/arczonalshift/pom.xml +++ b/services/arczonalshift/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT arczonalshift AWS Java SDK :: Services :: ARC Zonal Shift diff --git a/services/arczonalshift/src/main/resources/codegen-resources/customization.config b/services/arczonalshift/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/arczonalshift/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/artifact/pom.xml b/services/artifact/pom.xml new file mode 100644 index 000000000000..b61e3d32aa01 --- /dev/null +++ b/services/artifact/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + + software.amazon.awssdk + services + 2.24.13-SNAPSHOT + + artifact + AWS Java SDK :: Services :: Artifact + The AWS Java SDK for Artifact module holds the client classes that are used for + communicating with Artifact. + + https://aws.amazon.com/sdkforjava + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.services.artifact + + + + + + + + + software.amazon.awssdk + protocol-core + ${awsjavasdk.version} + + + software.amazon.awssdk + aws-json-protocol + ${awsjavasdk.version} + + + software.amazon.awssdk + http-auth-aws + ${awsjavasdk.version} + + + diff --git a/services/artifact/src/main/resources/codegen-resources/customization.config b/services/artifact/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/artifact/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/artifact/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/artifact/src/main/resources/codegen-resources/endpoint-rule-set.json new file mode 100644 index 000000000000..49efffd75776 --- /dev/null +++ b/services/artifact/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://artifact-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://artifact-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://artifact.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://artifact.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/services/artifact/src/main/resources/codegen-resources/endpoint-tests.json b/services/artifact/src/main/resources/codegen-resources/endpoint-tests.json new file mode 100644 index 000000000000..d78df5725d42 --- /dev/null +++ b/services/artifact/src/main/resources/codegen-resources/endpoint-tests.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://artifact-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://artifact.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://artifact-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://artifact.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://artifact-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://artifact.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://artifact.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/services/artifact/src/main/resources/codegen-resources/paginators-1.json b/services/artifact/src/main/resources/codegen-resources/paginators-1.json new file mode 100644 index 000000000000..f8c851442588 --- /dev/null +++ b/services/artifact/src/main/resources/codegen-resources/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListReports": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "reports" + } + } +} diff --git a/services/artifact/src/main/resources/codegen-resources/service-2.json b/services/artifact/src/main/resources/codegen-resources/service-2.json new file mode 100644 index 000000000000..690eb4ed9eb7 --- /dev/null +++ b/services/artifact/src/main/resources/codegen-resources/service-2.json @@ -0,0 +1,737 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-05-10", + "endpointPrefix":"artifact", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Artifact", + "serviceId":"Artifact", + "signatureVersion":"v4", + "signingName":"artifact", + "uid":"artifact-2018-05-10" + }, + "operations":{ + "GetAccountSettings":{ + "name":"GetAccountSettings", + "http":{ + "method":"GET", + "requestUri":"/v1/account-settings/get", + "responseCode":200 + }, + "input":{"shape":"GetAccountSettingsRequest"}, + "output":{"shape":"GetAccountSettingsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

    Get the account settings for Artifact.

    " + }, + "GetReport":{ + "name":"GetReport", + "http":{ + "method":"GET", + "requestUri":"/v1/report/get", + "responseCode":200 + }, + "input":{"shape":"GetReportRequest"}, + "output":{"shape":"GetReportResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

    Get the content for a single report.

    " + }, + "GetReportMetadata":{ + "name":"GetReportMetadata", + "http":{ + "method":"GET", + "requestUri":"/v1/report/getMetadata", + "responseCode":200 + }, + "input":{"shape":"GetReportMetadataRequest"}, + "output":{"shape":"GetReportMetadataResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

    Get the metadata for a single report.

    " + }, + "GetTermForReport":{ + "name":"GetTermForReport", + "http":{ + "method":"GET", + "requestUri":"/v1/report/getTermForReport", + "responseCode":200 + }, + "input":{"shape":"GetTermForReportRequest"}, + "output":{"shape":"GetTermForReportResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

    Get the Term content associated with a single report.

    " + }, + "ListReports":{ + "name":"ListReports", + "http":{ + "method":"GET", + "requestUri":"/v1/report/list", + "responseCode":200 + }, + "input":{"shape":"ListReportsRequest"}, + "output":{"shape":"ListReportsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

    List available reports.

    " + }, + "PutAccountSettings":{ + "name":"PutAccountSettings", + "http":{ + "method":"PUT", + "requestUri":"/v1/account-settings/put", + "responseCode":200 + }, + "input":{"shape":"PutAccountSettingsRequest"}, + "output":{"shape":"PutAccountSettingsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

    Put the account settings for Artifact.

    ", + "idempotent":true + } + }, + "shapes":{ + "AcceptanceType":{ + "type":"string", + "enum":[ + "PASSTHROUGH", + "EXPLICIT" + ] + }, + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

    User does not have sufficient access to perform this action.

    ", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AccountSettings":{ + "type":"structure", + "members":{ + "notificationSubscriptionStatus":{ + "shape":"NotificationSubscriptionStatus", + "documentation":"

    Notification subscription status of the customer.

    " + } + }, + "documentation":"

    Account settings for the customer.

    " + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

    Identifier of the affected resource.

    " + }, + "resourceType":{ + "shape":"String", + "documentation":"

    Type of the affected resource.

    " + } + }, + "documentation":"

    Request to create/modify content would result in a conflict.

    ", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "GetAccountSettingsRequest":{ + "type":"structure", + "members":{ + } + }, + "GetAccountSettingsResponse":{ + "type":"structure", + "members":{ + "accountSettings":{"shape":"AccountSettings"} + } + }, + "GetReportMetadataRequest":{ + "type":"structure", + "required":["reportId"], + "members":{ + "reportId":{ + "shape":"ReportId", + "documentation":"

    Unique resource ID for the report resource.

    ", + "location":"querystring", + "locationName":"reportId" + }, + "reportVersion":{ + "shape":"VersionAttribute", + "documentation":"

    Version for the report resource.

    ", + "location":"querystring", + "locationName":"reportVersion" + } + } + }, + "GetReportMetadataResponse":{ + "type":"structure", + "members":{ + "reportDetails":{ + "shape":"ReportDetail", + "documentation":"

    Report resource detail.

    " + } + } + }, + "GetReportRequest":{ + "type":"structure", + "required":[ + "reportId", + "termToken" + ], + "members":{ + "reportId":{ + "shape":"ReportId", + "documentation":"

    Unique resource ID for the report resource.

    ", + "location":"querystring", + "locationName":"reportId" + }, + "reportVersion":{ + "shape":"VersionAttribute", + "documentation":"

    Version for the report resource.

    ", + "location":"querystring", + "locationName":"reportVersion" + }, + "termToken":{ + "shape":"ShortStringAttribute", + "documentation":"

    Unique download token provided by GetTermForReport API.

    ", + "location":"querystring", + "locationName":"termToken" + } + } + }, + "GetReportResponse":{ + "type":"structure", + "members":{ + "documentPresignedUrl":{ + "shape":"GetReportResponseDocumentPresignedUrlString", + "documentation":"

    Presigned S3 url to access the report content.

    " + } + } + }, + "GetReportResponseDocumentPresignedUrlString":{ + "type":"string", + "max":10240, + "min":1 + }, + "GetTermForReportRequest":{ + "type":"structure", + "required":["reportId"], + "members":{ + "reportId":{ + "shape":"ReportId", + "documentation":"

    Unique resource ID for the report resource.

    ", + "location":"querystring", + "locationName":"reportId" + }, + "reportVersion":{ + "shape":"VersionAttribute", + "documentation":"

    Version for the report resource.

    ", + "location":"querystring", + "locationName":"reportVersion" + } + } + }, + "GetTermForReportResponse":{ + "type":"structure", + "members":{ + "documentPresignedUrl":{ + "shape":"GetTermForReportResponseDocumentPresignedUrlString", + "documentation":"

    Presigned S3 url to access the term content.

    " + }, + "termToken":{ + "shape":"String", + "documentation":"

    Unique token representing this request event.

    " + } + } + }, + "GetTermForReportResponseDocumentPresignedUrlString":{ + "type":"string", + "max":10240, + "min":1 + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

    Number of seconds in which the caller can retry the request.

    ", + "location":"header", + "locationName":"Retry-After" + } + }, + "documentation":"

    An unknown server exception has occurred.

    ", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "ListReportsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResultsAttribute", + "documentation":"

    Maximum number of resources to return in the paginated response.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextTokenAttribute", + "documentation":"

    Pagination token to request the next page of resources.

    ", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListReportsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextTokenAttribute", + "documentation":"

    Pagination token to request the next page of resources.

    " + }, + "reports":{ + "shape":"ReportsList", + "documentation":"

    List of report resources.

    " + } + } + }, + "LongStringAttribute":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^[^<>]*$" + }, + "MaxResultsAttribute":{ + "type":"integer", + "box":true, + "max":300, + "min":1 + }, + "NextTokenAttribute":{ + "type":"string", + "max":2048, + "min":1 + }, + "NotificationSubscriptionStatus":{ + "type":"string", + "enum":[ + "SUBSCRIBED", + "NOT_SUBSCRIBED" + ] + }, + "PublishedState":{ + "type":"string", + "enum":[ + "PUBLISHED", + "UNPUBLISHED" + ] + }, + "PutAccountSettingsRequest":{ + "type":"structure", + "members":{ + "notificationSubscriptionStatus":{ + "shape":"NotificationSubscriptionStatus", + "documentation":"

    Desired notification subscription status.

    " + } + } + }, + "PutAccountSettingsResponse":{ + "type":"structure", + "members":{ + "accountSettings":{"shape":"AccountSettings"} + } + }, + "ReportDetail":{ + "type":"structure", + "members":{ + "acceptanceType":{ + "shape":"AcceptanceType", + "documentation":"

    Acceptance type for report.

    " + }, + "arn":{ + "shape":"LongStringAttribute", + "documentation":"

    ARN for the report resource.

    " + }, + "category":{ + "shape":"ShortStringAttribute", + "documentation":"

    Category for the report resource.

    " + }, + "companyName":{ + "shape":"ShortStringAttribute", + "documentation":"

    Associated company name for the report resource.

    " + }, + "createdAt":{ + "shape":"TimestampAttribute", + "documentation":"

    Timestamp indicating when the report resource was created.

    " + }, + "deletedAt":{ + "shape":"TimestampAttribute", + "documentation":"

    Timestamp indicating when the report resource was deleted.

    " + }, + "description":{ + "shape":"LongStringAttribute", + "documentation":"

    Description for the report resource.

    " + }, + "id":{ + "shape":"ReportId", + "documentation":"

    Unique resource ID for the report resource.

    " + }, + "lastModifiedAt":{ + "shape":"TimestampAttribute", + "documentation":"

    Timestamp indicating when the report resource was last modified.

    " + }, + "name":{ + "shape":"ShortStringAttribute", + "documentation":"

    Name for the report resource.

    " + }, + "periodEnd":{ + "shape":"TimestampAttribute", + "documentation":"

    Timestamp indicating the report resource effective end.

    " + }, + "periodStart":{ + "shape":"TimestampAttribute", + "documentation":"

    Timestamp indicating the report resource effective start.

    " + }, + "productName":{ + "shape":"ShortStringAttribute", + "documentation":"

    Associated product name for the report resource.

    " + }, + "sequenceNumber":{ + "shape":"SequenceNumberAttribute", + "documentation":"

    Sequence number to enforce optimistic locking.

    " + }, + "series":{ + "shape":"ShortStringAttribute", + "documentation":"

    Series for the report resource.

    " + }, + "state":{ + "shape":"PublishedState", + "documentation":"

    Current state of the report resource

    " + }, + "statusMessage":{ + "shape":"StatusMessage", + "documentation":"

    The message associated with the current upload state.

    " + }, + "termArn":{ + "shape":"LongStringAttribute", + "documentation":"

    Unique resource ARN for term resource.

    " + }, + "uploadState":{ + "shape":"UploadState", + "documentation":"

    The current state of the document upload.

    " + }, + "version":{ + "shape":"VersionAttribute", + "documentation":"

    Version for the report resource.

    " + } + }, + "documentation":"

    Full detail for report resource metadata.

    " + }, + "ReportId":{ + "type":"string", + "pattern":"^report-[a-zA-Z0-9]{16}$" + }, + "ReportSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"LongStringAttribute", + "documentation":"

    ARN for the report resource.

    " + }, + "category":{ + "shape":"ShortStringAttribute", + "documentation":"

    Category for the report resource.

    " + }, + "companyName":{ + "shape":"ShortStringAttribute", + "documentation":"

    Associated company name for the report resource.

    " + }, + "description":{ + "shape":"LongStringAttribute", + "documentation":"

    Description for the report resource.

    " + }, + "id":{ + "shape":"ReportId", + "documentation":"

    Unique resource ID for the report resource.

    " + }, + "name":{ + "shape":"ShortStringAttribute", + "documentation":"

    Name for the report resource.

    " + }, + "periodEnd":{ + "shape":"TimestampAttribute", + "documentation":"

    Timestamp indicating the report resource effective end.

    " + }, + "periodStart":{ + "shape":"TimestampAttribute", + "documentation":"

    Timestamp indicating the report resource effective start.

    " + }, + "productName":{ + "shape":"ShortStringAttribute", + "documentation":"

    Associated product name for the report resource.

    " + }, + "series":{ + "shape":"ShortStringAttribute", + "documentation":"

    Series for the report resource.

    " + }, + "state":{ + "shape":"PublishedState", + "documentation":"

    Current state of the report resource.

    " + }, + "statusMessage":{ + "shape":"StatusMessage", + "documentation":"

    The message associated with the current upload state.

    " + }, + "uploadState":{ + "shape":"UploadState", + "documentation":"

    The current state of the document upload.

    " + }, + "version":{ + "shape":"VersionAttribute", + "documentation":"

    Version for the report resource.

    " + } + }, + "documentation":"

    Summary for report resource.

    " + }, + "ReportsList":{ + "type":"list", + "member":{"shape":"ReportSummary"} + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

    Identifier of the affected resource.

    " + }, + "resourceType":{ + "shape":"String", + "documentation":"

    Type of the affected resource.

    " + } + }, + "documentation":"

    Request references a resource which does not exist.

    ", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SequenceNumberAttribute":{ + "type":"long", + "box":true, + "min":1 + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "message", + "quotaCode", + "resourceId", + "resourceType", + "serviceCode" + ], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

    Code for the affected quota.

    " + }, + "resourceId":{ + "shape":"String", + "documentation":"

    Identifier of the affected resource.

    " + }, + "resourceType":{ + "shape":"String", + "documentation":"

    Type of the affected resource.

    " + }, + "serviceCode":{ + "shape":"String", + "documentation":"

    Code for the affected service.

    " + } + }, + "documentation":"

    Request would cause a service quota to be exceeded.

    ", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "ShortStringAttribute":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[a-zA-Z0-9_\\-\\s]*$" + }, + "StatusMessage":{"type":"string"}, + "String":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

    Code for the affected quota.

    " + }, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

    Number of seconds in which the caller can retry the request.

    ", + "location":"header", + "locationName":"Retry-After" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

    Code for the affected service.

    " + } + }, + "documentation":"

    Request was denied due to request throttling.

    ", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "TimestampAttribute":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "UploadState":{ + "type":"string", + "enum":[ + "PROCESSING", + "COMPLETE", + "FAILED", + "FAULT" + ] + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

    The field that caused the error, if applicable.

    " + }, + "message":{"shape":"String"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

    Reason the request failed validation.

    " + } + }, + "documentation":"

    Request fails to satisfy the constraints specified by an AWS service.

    ", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{ + "shape":"String", + "documentation":"

    Message describing why the field failed validation.

    " + }, + "name":{ + "shape":"String", + "documentation":"

    Name of validation exception.

    " + } + }, + "documentation":"

    Validation exception message and name.

    " + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "invalidToken", + "other" + ] + }, + "VersionAttribute":{ + "type":"long", + "box":true, + "min":1 + } + }, + "documentation":"

    This reference provides descriptions of the low-level AWS Artifact Service API.

    " +} diff --git a/services/athena/pom.xml b/services/athena/pom.xml index 05f37ec16669..577b34d406fc 100644 --- a/services/athena/pom.xml +++ b/services/athena/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT athena AWS Java SDK :: Services :: Amazon Athena diff --git a/services/athena/src/main/resources/codegen-resources/customization.config b/services/athena/src/main/resources/codegen-resources/customization.config index d3d4ab9763aa..09d0454c5f3e 100644 --- a/services/athena/src/main/resources/codegen-resources/customization.config +++ b/services/athena/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listNamedQueries", "listQueryExecutions" - ] + ], + "useSraAuth": true } diff --git a/services/auditmanager/pom.xml b/services/auditmanager/pom.xml index 907e94bbb3f5..d7842cf9a8a2 100644 --- a/services/auditmanager/pom.xml +++ b/services/auditmanager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT auditmanager AWS Java SDK :: Services :: Audit Manager diff --git a/services/auditmanager/src/main/resources/codegen-resources/customization.config b/services/auditmanager/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/auditmanager/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/autoscaling/pom.xml b/services/autoscaling/pom.xml index 00139149d4d3..56510f90e301 100644 --- a/services/autoscaling/pom.xml +++ b/services/autoscaling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT autoscaling AWS Java SDK :: Services :: Auto Scaling diff --git a/services/autoscaling/src/main/resources/codegen-resources/customization.config b/services/autoscaling/src/main/resources/codegen-resources/customization.config index c35bb93df938..cc4feb56227a 100644 --- a/services/autoscaling/src/main/resources/codegen-resources/customization.config +++ b/services/autoscaling/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,5 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeAccountLimits", "describeAdjustmentTypes", "describeAutoScalingGroups", @@ -15,5 +15,6 @@ "describeScheduledActions", "describeTags", "describeTerminationPolicyTypes" - ] + ], + "useSraAuth": true } diff --git a/services/autoscaling/src/main/resources/codegen-resources/service-2.json b/services/autoscaling/src/main/resources/codegen-resources/service-2.json index 118cdd86ea75..1054277e44e3 100644 --- a/services/autoscaling/src/main/resources/codegen-resources/service-2.json +++ b/services/autoscaling/src/main/resources/codegen-resources/service-2.json @@ -393,7 +393,7 @@ {"shape":"InvalidNextToken"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

    Gets information about the instance refreshes for the specified Auto Scaling group.

    This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes.

    To help you determine the status of an instance refresh, Amazon EC2 Auto Scaling returns information about the instance refreshes you previously initiated, including their status, start time, end time, the percentage of the instance refresh that is complete, and the number of instances remaining to update before the instance refresh is complete. If a rollback is initiated while an instance refresh is in progress, Amazon EC2 Auto Scaling also returns information about the rollback of the instance refresh.

    " + "documentation":"

    Gets information about the instance refreshes for the specified Auto Scaling group from the previous six weeks.

    This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes.

    To help you determine the status of an instance refresh, Amazon EC2 Auto Scaling returns information about the instance refreshes you previously initiated, including their status, start time, end time, the percentage of the instance refresh that is complete, and the number of instances remaining to update before the instance refresh is complete. If a rollback is initiated while an instance refresh is in progress, Amazon EC2 Auto Scaling also returns information about the rollback of the instance refresh.

    " }, "DescribeLaunchConfigurations":{ "name":"DescribeLaunchConfigurations", @@ -3102,11 +3102,11 @@ "members":{ "MinHealthyPercentage":{ "shape":"IntPercentResettable", - "documentation":"

    Specifies the lower threshold as a percentage of the desired capacity of the Auto Scaling group. It represents the minimum percentage of the group to keep in service, healthy, and ready to use to support your workload when replacing instances. Value range is 0 to 100. After it's set, a value of -1 will clear the previously set value.

    " + "documentation":"

    Specifies the lower threshold as a percentage of the desired capacity of the Auto Scaling group. It represents the minimum percentage of the group to keep in service, healthy, and ready to use to support your workload when replacing instances. Value range is 0 to 100. To clear a previously set value, specify a value of -1.

    " }, "MaxHealthyPercentage":{ "shape":"IntPercent100To200Resettable", - "documentation":"

    Specifies the upper threshold as a percentage of the desired capacity of the Auto Scaling group. It represents the maximum percentage of the group that can be in service and healthy, or pending, to support your workload when replacing instances. Value range is 100 to 200. After it's set, a value of -1 will clear the previously set value.

    Both MinHealthyPercentage and MaxHealthyPercentage must be specified, and the difference between them cannot be greater than 100. A large range increases the number of instances that can be replaced at the same time.

    " + "documentation":"

    Specifies the upper threshold as a percentage of the desired capacity of the Auto Scaling group. It represents the maximum percentage of the group that can be in service and healthy, or pending, to support your workload when replacing instances. Value range is 100 to 200. To clear a previously set value, specify a value of -1.

    Both MinHealthyPercentage and MaxHealthyPercentage must be specified, and the difference between them cannot be greater than 100. A large range increases the number of instances that can be replaced at the same time.

    " } }, "documentation":"

    Describes an instance maintenance policy.

    For more information, see Set instance maintenance policy in the Amazon EC2 Auto Scaling User Guide.

    " @@ -3323,11 +3323,15 @@ }, "SpotMaxPricePercentageOverLowestPrice":{ "shape":"NullablePositiveInteger", - "documentation":"

    The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    Default: 100

    " + "documentation":"

    [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.

    The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

    To turn off price protection, specify a high value, such as 999999.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is based on the per-vCPU or per-memory price instead of the per instance price.

    Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified.

    Default: 100

    " + }, + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice":{ + "shape":"NullablePositiveInteger", + "documentation":"

    [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.

    The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

    To indicate no price protection threshold, specify a high value, such as 999999.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is based on the per-vCPU or per-memory price instead of the per instance price.

    Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, then SpotMaxPricePercentageOverLowestPrice is used and the value for that parameter defaults to 100.

    " }, "OnDemandMaxPricePercentageOverLowestPrice":{ "shape":"NullablePositiveInteger", - "documentation":"

    The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    Default: 20

    " + "documentation":"

    [Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.

    The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

    To turn off price protection, specify a high value, such as 999999.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per instance price.

    Default: 20

    " }, "BareMetal":{ "shape":"BareMetal", @@ -4085,7 +4089,7 @@ "documentation":"

    The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.

    " } }, - "documentation":"

    This structure defines the CloudWatch metric to return, along with the statistic, period, and unit.

    For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts in the Amazon CloudWatch User Guide.

    " + "documentation":"

    This structure defines the CloudWatch metric to return, along with the statistic and unit.

    For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts in the Amazon CloudWatch User Guide.

    " }, "MetricStatistic":{ "type":"string", diff --git a/services/autoscalingplans/pom.xml b/services/autoscalingplans/pom.xml index d1219b5bc83b..61ea4f3f80e6 100644 --- a/services/autoscalingplans/pom.xml +++ b/services/autoscalingplans/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT autoscalingplans AWS Java SDK :: Services :: Auto Scaling Plans diff --git a/services/autoscalingplans/src/main/resources/codegen-resources/customization.config b/services/autoscalingplans/src/main/resources/codegen-resources/customization.config index 64fa48dcd327..8f46010bafc4 100644 --- a/services/autoscalingplans/src/main/resources/codegen-resources/customization.config +++ b/services/autoscalingplans/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeScalingPlans" - ] + ], + "useSraAuth": true } diff --git a/services/b2bi/pom.xml b/services/b2bi/pom.xml index fd9a3f51e221..80132d7e8e32 100644 --- a/services/b2bi/pom.xml +++ b/services/b2bi/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT b2bi AWS Java SDK :: Services :: B2 Bi diff --git a/services/b2bi/src/main/resources/codegen-resources/customization.config b/services/b2bi/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/b2bi/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/backup/pom.xml b/services/backup/pom.xml index 70059635588a..fedb3eaec00a 100644 --- a/services/backup/pom.xml +++ b/services/backup/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT backup AWS Java SDK :: Services :: Backup diff --git a/services/backup/src/main/resources/codegen-resources/customization.config b/services/backup/src/main/resources/codegen-resources/customization.config index 1cb199bb4714..621bd4fc0318 100644 --- a/services/backup/src/main/resources/codegen-resources/customization.config +++ b/services/backup/src/main/resources/codegen-resources/customization.config @@ -1,13 +1,14 @@ { - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "getSupportedResourceTypes" ], - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listBackupJobs", "listBackupPlanTemplates", "listBackupPlans", "listBackupVaults", "listProtectedResources", "listRestoreJobs" - ] + ], + "useSraAuth": true } diff --git a/services/backupgateway/pom.xml b/services/backupgateway/pom.xml index df35e0b3fac1..4c559b4ba697 100644 --- a/services/backupgateway/pom.xml +++ b/services/backupgateway/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT backupgateway AWS Java SDK :: Services :: Backup Gateway diff --git a/services/backupgateway/src/main/resources/codegen-resources/customization.config b/services/backupgateway/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/backupgateway/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/backupstorage/pom.xml b/services/backupstorage/pom.xml index 004d93699906..1a6655bcf4a5 100644 --- a/services/backupstorage/pom.xml +++ b/services/backupstorage/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT backupstorage AWS Java SDK :: Services :: Backup Storage diff --git a/services/backupstorage/src/main/resources/codegen-resources/customization.config b/services/backupstorage/src/main/resources/codegen-resources/customization.config index fb50d0a7a6eb..cef6f581fd89 100644 --- a/services/backupstorage/src/main/resources/codegen-resources/customization.config +++ b/services/backupstorage/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,4 @@ { + "enableGenerateCompiledEndpointRules": true, "useSraAuth": true } diff --git a/services/batch/pom.xml b/services/batch/pom.xml index 9d2ab616b635..bd671f34601f 100644 --- a/services/batch/pom.xml +++ b/services/batch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT batch AWS Java SDK :: Services :: AWS Batch diff --git a/services/batch/src/main/resources/codegen-resources/customization.config b/services/batch/src/main/resources/codegen-resources/customization.config index ef427d6052cf..0138054a05b8 100644 --- a/services/batch/src/main/resources/codegen-resources/customization.config +++ b/services/batch/src/main/resources/codegen-resources/customization.config @@ -1,10 +1,11 @@ { - "verifiedSimpleMethods": [ - "describeComputeEnvironments", - "describeJobDefinitions", - "describeJobQueues" - ], - "excludedSimpleMethods": [ - "listJobs" - ] + "verifiedSimpleMethods": [ + "describeComputeEnvironments", + "describeJobDefinitions", + "describeJobQueues" + ], + "excludedSimpleMethods": [ + "listJobs" + ], + "useSraAuth": true } diff --git a/services/batch/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/batch/src/main/resources/codegen-resources/endpoint-rule-set.json index d04df9721c1d..54954abbb7a9 100644 --- a/services/batch/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/batch/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,18 +212,17 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ - "aws", { "fn": "getAttr", "argv": [ @@ -236,7 +231,8 @@ }, "name" ] - } + }, + "aws" ] } ], @@ -252,7 +248,6 @@ { "fn": "stringEquals", "argv": [ - "aws-us-gov", { "fn": "getAttr", "argv": [ @@ -261,7 +256,8 @@ }, "name" ] - } + }, + "aws-us-gov" ] } ], @@ -281,14 +277,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -302,7 +300,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -322,7 +319,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -333,14 +329,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -351,9 +349,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/batch/src/main/resources/codegen-resources/service-2.json b/services/batch/src/main/resources/codegen-resources/service-2.json index af52be4a1d74..37005ba16bf6 100644 --- a/services/batch/src/main/resources/codegen-resources/service-2.json +++ b/services/batch/src/main/resources/codegen-resources/service-2.json @@ -661,7 +661,7 @@ }, "allocationStrategy":{ "shape":"CRAllocationStrategy", - "documentation":"

    The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

    This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

    BEST_FIT (default)

    Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost instance type. If additional instances of the selected instance type aren't available, Batch waits for the additional instances to be available. If there aren't enough instances available or the user is reaching Amazon EC2 service limits, additional jobs aren't run until the currently running jobs are completed. This allocation strategy keeps costs lower but can limit scaling. If you're using Spot Fleets with BEST_FIT, the Spot Fleet IAM Role must be specified. Compute resources that use a BEST_FIT allocation strategy don't support infrastructure updates and can't update some parameters. For more information, see Updating compute environments in the Batch User Guide.

    BEST_FIT_PROGRESSIVE

    Batch selects additional instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If additional instances of the previously selected instance types aren't available, Batch selects new instance types.

    SPOT_CAPACITY_OPTIMIZED

    Batch selects one or more instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

    SPOT_PRICE_CAPACITY_OPTIMIZED

    The price and capacity optimized allocation strategy looks at both price and capacity to select the Spot Instance pools that are the least likely to be interrupted and have the lowest possible price. This allocation strategy is only available for Spot Instance compute resources.

    With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and SPOT_PRICE_CAPACITY_OPTIMIZED strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

    " + "documentation":"

    The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

    This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

    BEST_FIT (default)

    Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost instance type. If additional instances of the selected instance type aren't available, Batch waits for the additional instances to be available. If there aren't enough instances available or the user is reaching Amazon EC2 service limits, additional jobs aren't run until the currently running jobs are completed. This allocation strategy keeps costs lower but can limit scaling. If you're using Spot Fleets with BEST_FIT, the Spot Fleet IAM Role must be specified. Compute resources that use a BEST_FIT allocation strategy don't support infrastructure updates and can't update some parameters. For more information, see Updating compute environments in the Batch User Guide.

    BEST_FIT_PROGRESSIVE

    Batch selects additional instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If additional instances of the previously selected instance types aren't available, Batch selects new instance types.

    SPOT_CAPACITY_OPTIMIZED

    Batch selects one or more instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

    SPOT_PRICE_CAPACITY_OPTIMIZED

    The price and capacity optimized allocation strategy looks at both price and capacity to select the Spot Instance pools that are the least likely to be interrupted and have the lowest possible price. This allocation strategy is only available for Spot Instance compute resources.

    With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and SPOT_PRICE_CAPACITY_OPTIMIZED (recommended) strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

    " }, "minvCpus":{ "shape":"Integer", @@ -669,7 +669,7 @@ }, "maxvCpus":{ "shape":"Integer", - "documentation":"

    The maximum number of vCPUs that a compute environment can support.

    With BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED and SPOT_PRICE_CAPACITY_OPTIMIZED allocation strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance. For example, no more than a single instance from among those specified in your compute environment is allocated.

    " + "documentation":"

    The maximum number of vCPUs that a compute environment can support.

    With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and SPOT_PRICE_CAPACITY_OPTIMIZED (recommended) strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

    " }, "desiredvCpus":{ "shape":"Integer", @@ -699,7 +699,7 @@ }, "instanceRole":{ "shape":"String", - "documentation":"

    The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

    This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

    " + "documentation":"

    The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. This parameter is required for Amazon EC2 instances types. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

    This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

    " }, "tags":{ "shape":"TagsMap", @@ -737,7 +737,7 @@ }, "maxvCpus":{ "shape":"Integer", - "documentation":"

    The maximum number of Amazon EC2 vCPUs that an environment can reach.

    With BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED, and SPOT_PRICE_CAPACITY_OPTIMIZED allocation strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance. That is, no more than a single instance from among those specified in your compute environment.

    " + "documentation":"

    The maximum number of Amazon EC2 vCPUs that an environment can reach.

    With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and SPOT_PRICE_CAPACITY_OPTIMIZED (recommended) strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

    " }, "desiredvCpus":{ "shape":"Integer", @@ -753,7 +753,7 @@ }, "allocationStrategy":{ "shape":"CRUpdateAllocationStrategy", - "documentation":"

    The allocation strategy to use for the compute resource if there's not enough instances of the best fitting instance type that can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

    When updating a compute environment, changing the allocation strategy requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide. BEST_FIT isn't supported when updating a compute environment.

    This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

    BEST_FIT_PROGRESSIVE

    Batch selects additional instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If additional instances of the previously selected instance types aren't available, Batch selects new instance types.

    SPOT_CAPACITY_OPTIMIZED

    Batch selects one or more instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

    SPOT_PRICE_CAPACITY_OPTIMIZED

    The price and capacity optimized allocation strategy looks at both price and capacity to select the Spot Instance pools that are the least likely to be interrupted and have the lowest possible price. This allocation strategy is only available for Spot Instance compute resources.

    With both BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED, and SPOT_PRICE_CAPACITY_OPTIMIZED strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

    " + "documentation":"

    The allocation strategy to use for the compute resource if there's not enough instances of the best fitting instance type that can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

    When updating a compute environment, changing the allocation strategy requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide. BEST_FIT isn't supported when updating a compute environment.

    This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

    BEST_FIT_PROGRESSIVE

    Batch selects additional instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If additional instances of the previously selected instance types aren't available, Batch selects new instance types.

    SPOT_CAPACITY_OPTIMIZED

    Batch selects one or more instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

    SPOT_PRICE_CAPACITY_OPTIMIZED

    The price and capacity optimized allocation strategy looks at both price and capacity to select the Spot Instance pools that are the least likely to be interrupted and have the lowest possible price. This allocation strategy is only available for Spot Instance compute resources.

    With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and SPOT_PRICE_CAPACITY_OPTIMIZED (recommended) strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

    " }, "instanceTypes":{ "shape":"StringList", @@ -765,7 +765,7 @@ }, "instanceRole":{ "shape":"String", - "documentation":"

    The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

    When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

    This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

    " + "documentation":"

    The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. Required for Amazon EC2 instances. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

    When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

    This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

    " }, "tags":{ "shape":"TagsMap", @@ -913,7 +913,14 @@ "shape":"EphemeralStorage", "documentation":"

    The amount of ephemeral storage allocated for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.

    " }, - "runtimePlatform":{"shape":"RuntimePlatform"} + "runtimePlatform":{ + "shape":"RuntimePlatform", + "documentation":"

    An object that represents the compute environment architecture for Batch jobs on Fargate.

    " + }, + "repositoryCredentials":{ + "shape":"RepositoryCredentials", + "documentation":"

    The private repository authentication credentials to use.

    " + } }, "documentation":"

    An object that represents the details of a container that's part of a job.

    " }, @@ -956,7 +963,7 @@ "members":{ "image":{ "shape":"String", - "documentation":"

    The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . It can be 255 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), underscores (_), colons (:), periods (.), forward slashes (/), and number signs (#). This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

    Docker image architecture must match the processor architecture of the compute resources that they're scheduled on. For example, ARM-based Docker images can only run on ARM-based compute resources.

    • Images in Amazon ECR Public repositories use the full registry/repository[:tag] or registry/repository[@digest] naming conventions. For example, public.ecr.aws/registry_alias/my-web-app:latest .

    • Images in Amazon ECR repositories use the full registry and repository URI (for example, 123456789012.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    • Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo).

    • Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent).

    • Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu).

    " + "documentation":"

    Required. The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . It can be 255 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), underscores (_), colons (:), periods (.), forward slashes (/), and number signs (#). This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

    Docker image architecture must match the processor architecture of the compute resources that they're scheduled on. For example, ARM-based Docker images can only run on ARM-based compute resources.

    • Images in Amazon ECR Public repositories use the full registry/repository[:tag] or registry/repository[@digest] naming conventions. For example, public.ecr.aws/registry_alias/my-web-app:latest .

    • Images in Amazon ECR repositories use the full registry and repository URI (for example, 123456789012.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    • Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo).

    • Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent).

    • Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu).

    " }, "vcpus":{ "shape":"Integer", @@ -1042,7 +1049,14 @@ "shape":"EphemeralStorage", "documentation":"

    The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.

    " }, - "runtimePlatform":{"shape":"RuntimePlatform"} + "runtimePlatform":{ + "shape":"RuntimePlatform", + "documentation":"

    An object that represents the compute environment architecture for Batch jobs on Fargate.

    " + }, + "repositoryCredentials":{ + "shape":"RepositoryCredentials", + "documentation":"

    The private repository authentication credentials to use.

    " + } }, "documentation":"

    Container properties are used for Amazon ECS based job definitions. These properties to describe the container that's launched as part of a job.

    " }, @@ -1302,7 +1316,7 @@ "members":{ "jobDefinitions":{ "shape":"StringList", - "documentation":"

    A list of up to 100 job definitions. Each entry in the list can either be an ARN in the format arn:aws:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision} or a short version using the form ${JobDefinitionName}:${Revision}.

    " + "documentation":"

    A list of up to 100 job definitions. Each entry in the list can either be an ARN in the format arn:aws:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision} or a short version using the form ${JobDefinitionName}:${Revision}. This parameter can't be used with other parameters.

    " }, "maxResults":{ "shape":"Integer", @@ -1503,7 +1517,7 @@ "members":{ "imageType":{ "shape":"ImageType", - "documentation":"

    The image type to match with the instance type to select an AMI. The supported values are different for ECS and EKS resources.

    ECS

    If the imageIdOverride parameter isn't specified, then a recent Amazon ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new image type is specified in an update, but neither an imageId nor a imageIdOverride parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by Batch is used.

    ECS_AL2

    Amazon Linux 2: Default for all non-GPU instance families.

    ECS_AL2_NVIDIA

    Amazon Linux 2 (GPU): Default for all GPU instance families (for example P4 and G4) and can be used for all non Amazon Web Services Graviton-based instance types.

    ECS_AL1

    Amazon Linux. Amazon Linux has reached the end-of-life of standard support. For more information, see Amazon Linux AMI.

    EKS

    If the imageIdOverride parameter isn't specified, then a recent Amazon EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new image type is specified in an update, but neither an imageId nor a imageIdOverride parameter is specified, then the latest Amazon EKS optimized AMI for that image type that Batch supports is used.

    EKS_AL2

    Amazon Linux 2: Default for all non-GPU instance families.

    EKS_AL2_NVIDIA

    Amazon Linux 2 (accelerated): Default for all GPU instance families (for example, P4 and G4) and can be used for all non Amazon Web Services Graviton-based instance types.

    " + "documentation":"

    The image type to match with the instance type to select an AMI. The supported values are different for ECS and EKS resources.

    ECS

    If the imageIdOverride parameter isn't specified, then a recent Amazon ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new image type is specified in an update, but neither an imageId nor a imageIdOverride parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by Batch is used.

    ECS_AL2

    Amazon Linux 2: Default for all non-GPU instance families.

    ECS_AL2_NVIDIA

    Amazon Linux 2 (GPU): Default for all GPU instance families (for example P4 and G4) and can be used for all non Amazon Web Services Graviton-based instance types.

    ECS_AL2023

    Amazon Linux 2023: Batch supports Amazon Linux 2023.

    Amazon Linux 2023 does not support A1 instances.

    ECS_AL1

    Amazon Linux. Amazon Linux has reached the end-of-life of standard support. For more information, see Amazon Linux AMI.

    EKS

    If the imageIdOverride parameter isn't specified, then a recent Amazon EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new image type is specified in an update, but neither an imageId nor a imageIdOverride parameter is specified, then the latest Amazon EKS optimized AMI for that image type that Batch supports is used.

    EKS_AL2

    Amazon Linux 2: Default for all non-GPU instance families.

    EKS_AL2_NVIDIA

    Amazon Linux 2 (accelerated): Default for all GPU instance families (for example, P4 and G4) and can be used for all non Amazon Web Services Graviton-based instance types.

    " }, "imageIdOverride":{ "shape":"ImageIdOverride", @@ -1907,7 +1921,10 @@ "shape":"String", "documentation":"

    The name of the node for this job.

    " }, - "metadata":{"shape":"EksMetadata"} + "metadata":{ + "shape":"EksMetadata", + "documentation":"

    Describes and uniquely identifies Kubernetes resources. For example, the compute environment that a pod runs in or the jobID for a job running in the pod. For more information, see Understanding Kubernetes Objects in the Kubernetes documentation.

    " + } }, "documentation":"

    The details for the pod.

    " }, @@ -2053,7 +2070,7 @@ }, "computeReservation":{ "shape":"Integer", - "documentation":"

    A value used to reserve some of the available maximum vCPU for fair share identifiers that aren't already used.

    The reserved ratio is (computeReservation/100)^ActiveFairShares where ActiveFairShares is the number of active fair share identifiers.

    For example, a computeReservation value of 50 indicates that Batchreserves 50% of the maximum available vCPU if there's only one fair share identifier. It reserves 25% if there are two fair share identifiers. It reserves 12.5% if there are three fair share identifiers. A computeReservation value of 25 indicates that Batch should reserve 25% of the maximum available vCPU if there's only one fair share identifier, 6.25% if there are two fair share identifiers, and 1.56% if there are three fair share identifiers.

    The minimum value is 0 and the maximum value is 99.

    " + "documentation":"

    A value used to reserve some of the available maximum vCPU for fair share identifiers that aren't already used.

    The reserved ratio is (computeReservation/100)^ActiveFairShares where ActiveFairShares is the number of active fair share identifiers.

    For example, a computeReservation value of 50 indicates that Batch reserves 50% of the maximum available vCPU if there's only one fair share identifier. It reserves 25% if there are two fair share identifiers. It reserves 12.5% if there are three fair share identifiers. A computeReservation value of 25 indicates that Batch should reserve 25% of the maximum available vCPU if there's only one fair share identifier, 6.25% if there are two fair share identifiers, and 1.56% if there are three fair share identifiers.

    The minimum value is 0 and the maximum value is 99.

    " }, "shareDistribution":{ "shape":"ShareAttributesList", @@ -2274,7 +2291,7 @@ }, "startedAt":{ "shape":"Long", - "documentation":"

    The Unix timestamp (in milliseconds) for when the job was started. More specifically, it's when the job transitioned from the STARTING state to the RUNNING state. This parameter isn't provided for child jobs of array jobs or multi-node parallel jobs.

    " + "documentation":"

    The Unix timestamp (in milliseconds) for when the job was started. More specifically, it's when the job transitioned from the STARTING state to the RUNNING state.

    " }, "stoppedAt":{ "shape":"Long", @@ -2724,7 +2741,7 @@ "documentation":"

    The name of the volume to mount.

    " } }, - "documentation":"

    Details for a Docker volume mount point that's used in a job's container properties. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

    " + "documentation":"

    Details for a Docker volume mount point that's used in a job's container properties. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

    " }, "MountPoints":{ "type":"list", @@ -2977,6 +2994,17 @@ } } }, + "RepositoryCredentials":{ + "type":"structure", + "required":["credentialsParameter"], + "members":{ + "credentialsParameter":{ + "shape":"String", + "documentation":"

    The Amazon Resource Name (ARN) of the secret containing the private repository credentials.

    " + } + }, + "documentation":"

    The repository credentials for private registry authentication.

    " + }, "ResourceRequirement":{ "type":"structure", "required":[ @@ -3033,14 +3061,14 @@ "members":{ "operatingSystemFamily":{ "shape":"String", - "documentation":"

    The operating system for the compute environment. Valid values are: LINUX (default), WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, and WINDOWS_SERVER_2022_FULL.

    The following parameters can’t be set for Windows containers: linuxParameters, privileged, user, ulimits, readonlyRootFilesystem, and efsVolumeConfiguration.

    The Batch Scheduler checks before registering a task definition with Fargate. If the job requires a Windows container and the first compute environment is LINUX, the compute environment is skipped and the next is checked until a Windows-based compute environment is found.

    Fargate Spot is not supported for Windows-based containers on Fargate. A job queue will be blocked if a Fargate Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both FARGATE and FARGATE_SPOT compute environments to the same job queue.

    " + "documentation":"

    The operating system for the compute environment. Valid values are: LINUX (default), WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, and WINDOWS_SERVER_2022_FULL.

    The following parameters can’t be set for Windows containers: linuxParameters, privileged, user, ulimits, readonlyRootFilesystem, and efsVolumeConfiguration.

    The Batch Scheduler checks the compute environments that are attached to the job queue before registering a task definition with Fargate. In this scenario, the job queue is where the job is submitted. If the job requires a Windows container and the first compute environment is LINUX, the compute environment is skipped and the next compute environment is checked until a Windows-based compute environment is found.

    Fargate Spot is not supported for ARM64 and Windows-based containers on Fargate. A job queue will be blocked if a Fargate ARM64 or Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both FARGATE and FARGATE_SPOT compute environments to the same job queue.

    " }, "cpuArchitecture":{ "shape":"String", - "documentation":"

    The vCPU architecture. The default value is X86_64. Valid values are X86_64 and ARM64.

    This parameter must be set to X86_64 for Windows containers.

    " + "documentation":"

    The vCPU architecture. The default value is X86_64. Valid values are X86_64 and ARM64.

    This parameter must be set to X86_64 for Windows containers.

    Fargate Spot is not supported for ARM64 and Windows-based containers on Fargate. A job queue will be blocked if a Fargate ARM64 or Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both FARGATE and FARGATE_SPOT compute environments to the same job queue.

    " } }, - "documentation":"

    An object that represents the compute environment architecture for Batch jobs on Fargate.

    " + "documentation":"

    An object that represents the compute environment architecture for Batch jobs on Fargate.

    " }, "SchedulingPolicyDetail":{ "type":"structure", @@ -3165,7 +3193,7 @@ }, "schedulingPriorityOverride":{ "shape":"Integer", - "documentation":"

    The scheduling priority for the job. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority. This overrides any scheduling priority in the job definition.

    The minimum supported value is 0 and the maximum supported value is 9999.

    " + "documentation":"

    The scheduling priority for the job. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority. This overrides any scheduling priority in the job definition and works only within a single share identifier.

    The minimum supported value is 0 and the maximum supported value is 9999.

    " }, "arrayProperties":{ "shape":"ArrayProperties", @@ -3346,18 +3374,18 @@ "members":{ "hardLimit":{ "shape":"Integer", - "documentation":"

    The hard limit for the ulimit type.

    " + "documentation":"

    The hard limit for the ulimit type.

    " }, "name":{ "shape":"String", - "documentation":"

    The type of the ulimit.

    " + "documentation":"

    The type of the ulimit. Valid values are: core | cpu | data | fsize | locks | memlock | msgqueue | nice | nofile | nproc | rss | rtprio | rttime | sigpending | stack.

    " }, "softLimit":{ "shape":"Integer", "documentation":"

    The soft limit for the ulimit type.

    " } }, - "documentation":"

    The ulimit settings to pass to the container.

    This object isn't applicable to jobs that are running on Fargate resources.

    " + "documentation":"

    The ulimit settings to pass to the container. For more information, see Ulimit.

    This object isn't applicable to jobs that are running on Fargate resources.

    " }, "Ulimits":{ "type":"list", diff --git a/services/bcmdataexports/pom.xml b/services/bcmdataexports/pom.xml index 5fb0d5b688ea..e364d908a4e6 100644 --- a/services/bcmdataexports/pom.xml +++ b/services/bcmdataexports/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT bcmdataexports AWS Java SDK :: Services :: BCM Data Exports diff --git a/services/bcmdataexports/src/main/resources/codegen-resources/customization.config b/services/bcmdataexports/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/bcmdataexports/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/bedrock/pom.xml b/services/bedrock/pom.xml index cb85792d5efe..37859785352f 100644 --- a/services/bedrock/pom.xml +++ b/services/bedrock/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT bedrock AWS Java SDK :: Services :: Bedrock diff --git a/services/bedrock/src/main/resources/codegen-resources/customization.config b/services/bedrock/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/bedrock/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/bedrockagent/pom.xml b/services/bedrockagent/pom.xml index 61d98c1f1404..409d9b9f88e3 100644 --- a/services/bedrockagent/pom.xml +++ b/services/bedrockagent/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT bedrockagent AWS Java SDK :: Services :: Bedrock Agent diff --git a/services/bedrockagent/src/main/resources/codegen-resources/customization.config b/services/bedrockagent/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/bedrockagent/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/bedrockagentruntime/pom.xml b/services/bedrockagentruntime/pom.xml index e71f1004a728..bc45120f7de6 100644 --- a/services/bedrockagentruntime/pom.xml +++ b/services/bedrockagentruntime/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT bedrockagentruntime AWS Java SDK :: Services :: Bedrock Agent Runtime diff --git a/services/bedrockagentruntime/src/main/resources/codegen-resources/customization.config b/services/bedrockagentruntime/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/bedrockagentruntime/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/bedrockruntime/pom.xml b/services/bedrockruntime/pom.xml index 1f1f0fbd80cd..53c00d271ed7 100644 --- a/services/bedrockruntime/pom.xml +++ b/services/bedrockruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT bedrockruntime AWS Java SDK :: Services :: Bedrock Runtime diff --git a/services/bedrockruntime/src/main/resources/codegen-resources/customization.config b/services/bedrockruntime/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/bedrockruntime/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/billingconductor/pom.xml b/services/billingconductor/pom.xml index 488283478c28..7cddbf25dba4 100644 --- a/services/billingconductor/pom.xml +++ b/services/billingconductor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT billingconductor AWS Java SDK :: Services :: Billingconductor diff --git a/services/billingconductor/src/main/resources/codegen-resources/customization.config b/services/billingconductor/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/billingconductor/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/braket/pom.xml b/services/braket/pom.xml index 76e74a973cfc..d3f5fddf12c6 100644 --- a/services/braket/pom.xml +++ b/services/braket/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT braket AWS Java SDK :: Services :: Braket diff --git a/services/braket/src/main/resources/codegen-resources/customization.config b/services/braket/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/braket/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/braket/src/main/resources/codegen-resources/service-2.json b/services/braket/src/main/resources/codegen-resources/service-2.json index 442c5d9d6d9f..c630d9f618a0 100644 --- a/services/braket/src/main/resources/codegen-resources/service-2.json +++ b/services/braket/src/main/resources/codegen-resources/service-2.json @@ -65,6 +65,7 @@ {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, + {"shape":"DeviceOfflineException"}, {"shape":"DeviceRetiredException"}, {"shape":"InternalServiceException"}, {"shape":"ServiceQuotaExceededException"}, @@ -1157,7 +1158,7 @@ }, "JobArn":{ "type":"string", - "pattern":"^arn:aws[a-z\\-]*:braket:[a-z0-9\\-]*:[0-9]{12}:job/.*$" + "pattern":"^arn:aws[a-z\\-]*:braket:[a-z0-9\\-]+:[0-9]{12}:job/.*$" }, "JobCheckpointConfig":{ "type":"structure", diff --git a/services/budgets/pom.xml b/services/budgets/pom.xml index e01abbc38c0d..78840ba1a11b 100644 --- a/services/budgets/pom.xml +++ b/services/budgets/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT budgets AWS Java SDK :: Services :: AWS Budgets diff --git a/services/budgets/src/main/resources/codegen-resources/customization.config b/services/budgets/src/main/resources/codegen-resources/customization.config index ece5eb66e743..1a80383cf371 100644 --- a/services/budgets/src/main/resources/codegen-resources/customization.config +++ b/services/budgets/src/main/resources/codegen-resources/customization.config @@ -1,13 +1,14 @@ { "shapeModifiers": { "Spend": { - "modify":[ - { - "Amount": { - "emitAsType": "bigdecimal" - } + "modify": [ + { + "Amount": { + "emitAsType": "bigdecimal" + } } ] } - } + }, + "useSraAuth": true } diff --git a/services/chatbot/pom.xml b/services/chatbot/pom.xml new file mode 100644 index 000000000000..5e83ed871b87 --- /dev/null +++ b/services/chatbot/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + + software.amazon.awssdk + services + 2.24.13-SNAPSHOT + + chatbot + AWS Java SDK :: Services :: Chatbot + The AWS Java SDK for Chatbot module holds the client classes that are used for + communicating with Chatbot. + + https://aws.amazon.com/sdkforjava + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.services.chatbot + + + + + + + + + software.amazon.awssdk + protocol-core + ${awsjavasdk.version} + + + software.amazon.awssdk + aws-json-protocol + ${awsjavasdk.version} + + + software.amazon.awssdk + http-auth-aws + ${awsjavasdk.version} + + + diff --git a/services/chatbot/src/main/resources/codegen-resources/customization.config b/services/chatbot/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/chatbot/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/chatbot/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/chatbot/src/main/resources/codegen-resources/endpoint-rule-set.json new file mode 100644 index 000000000000..f07ab7b86d66 --- /dev/null +++ b/services/chatbot/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chatbot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chatbot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chatbot.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chatbot.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/services/chatbot/src/main/resources/codegen-resources/endpoint-tests.json b/services/chatbot/src/main/resources/codegen-resources/endpoint-tests.json new file mode 100644 index 000000000000..3a4c6b7af045 --- /dev/null +++ b/services/chatbot/src/main/resources/codegen-resources/endpoint-tests.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://chatbot-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://chatbot.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://chatbot-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://chatbot.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://chatbot-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://chatbot.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://chatbot.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/services/chatbot/src/main/resources/codegen-resources/paginators-1.json b/services/chatbot/src/main/resources/codegen-resources/paginators-1.json new file mode 100644 index 000000000000..6615c513c112 --- /dev/null +++ b/services/chatbot/src/main/resources/codegen-resources/paginators-1.json @@ -0,0 +1,39 @@ +{ + "pagination": { + "DescribeChimeWebhookConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "DescribeSlackChannelConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "DescribeSlackUserIdentities": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "DescribeSlackWorkspaces": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListMicrosoftTeamsChannelConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListMicrosoftTeamsConfiguredTeams": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListMicrosoftTeamsUserIdentities": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/services/chatbot/src/main/resources/codegen-resources/service-2.json b/services/chatbot/src/main/resources/codegen-resources/service-2.json new file mode 100644 index 000000000000..f40c7271e8f6 --- /dev/null +++ b/services/chatbot/src/main/resources/codegen-resources/service-2.json @@ -0,0 +1,1770 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-10-11", + "endpointPrefix":"chatbot", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"chatbot", + "serviceId":"chatbot", + "signatureVersion":"v4", + "uid":"chatbot-2017-10-11" + }, + "operations":{ + "CreateChimeWebhookConfiguration":{ + "name":"CreateChimeWebhookConfiguration", + "http":{ + "method":"POST", + "requestUri":"/create-chime-webhook-configuration", + "responseCode":201 + }, + "input":{"shape":"CreateChimeWebhookConfigurationRequest"}, + "output":{"shape":"CreateChimeWebhookConfigurationResult"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidRequestException"}, + {"shape":"CreateChimeWebhookConfigurationException"}, + {"shape":"ConflictException"} + ], + "documentation":"Creates Chime Webhook Configuration" + }, + "CreateMicrosoftTeamsChannelConfiguration":{ + "name":"CreateMicrosoftTeamsChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/create-ms-teams-channel-configuration", + "responseCode":201 + }, + "input":{"shape":"CreateTeamsChannelConfigurationRequest"}, + "output":{"shape":"CreateTeamsChannelConfigurationResult"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidRequestException"}, + {"shape":"CreateTeamsChannelConfigurationException"}, + {"shape":"ConflictException"} + ], + "documentation":"Creates MS Teams Channel Configuration" + }, + "CreateSlackChannelConfiguration":{ + "name":"CreateSlackChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/create-slack-channel-configuration", + "responseCode":201 + }, + "input":{"shape":"CreateSlackChannelConfigurationRequest"}, + "output":{"shape":"CreateSlackChannelConfigurationResult"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidRequestException"}, + {"shape":"CreateSlackChannelConfigurationException"}, + {"shape":"ConflictException"} + ], + "documentation":"Creates Slack Channel Configuration" + }, + "DeleteChimeWebhookConfiguration":{ + "name":"DeleteChimeWebhookConfiguration", + "http":{ + "method":"POST", + "requestUri":"/delete-chime-webhook-configuration", + "responseCode":204 + }, + "input":{"shape":"DeleteChimeWebhookConfigurationRequest"}, + "output":{"shape":"DeleteChimeWebhookConfigurationResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"}, + {"shape":"DeleteChimeWebhookConfigurationException"} + ], + "documentation":"Deletes a Chime Webhook Configuration" + }, + "DeleteMicrosoftTeamsChannelConfiguration":{ + "name":"DeleteMicrosoftTeamsChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/delete-ms-teams-channel-configuration", + "responseCode":204 + }, + "input":{"shape":"DeleteTeamsChannelConfigurationRequest"}, + "output":{"shape":"DeleteTeamsChannelConfigurationResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"}, + {"shape":"DeleteTeamsChannelConfigurationException"} + ], + "documentation":"Deletes MS Teams Channel Configuration" + }, + "DeleteMicrosoftTeamsConfiguredTeam":{ + "name":"DeleteMicrosoftTeamsConfiguredTeam", + "http":{ + "method":"POST", + "requestUri":"/delete-ms-teams-configured-teams", + "responseCode":204 + }, + "input":{"shape":"DeleteTeamsConfiguredTeamRequest"}, + "output":{"shape":"DeleteTeamsConfiguredTeamResult"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"DeleteTeamsConfiguredTeamException"} + ], + "documentation":"Deletes the Microsoft Teams team authorization allowing for channels to be configured in that Microsoft Teams team. Note that the Microsoft Teams team must have no channels configured to remove it." + }, + "DeleteMicrosoftTeamsUserIdentity":{ + "name":"DeleteMicrosoftTeamsUserIdentity", + "http":{ + "method":"POST", + "requestUri":"/delete-ms-teams-user-identity", + "responseCode":204 + }, + "input":{"shape":"DeleteMicrosoftTeamsUserIdentityRequest"}, + "output":{"shape":"DeleteMicrosoftTeamsUserIdentityResult"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"DeleteMicrosoftTeamsUserIdentityException"} + ], + "documentation":"Deletes a Teams user identity" + }, + "DeleteSlackChannelConfiguration":{ + "name":"DeleteSlackChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/delete-slack-channel-configuration", + "responseCode":204 + }, + "input":{"shape":"DeleteSlackChannelConfigurationRequest"}, + "output":{"shape":"DeleteSlackChannelConfigurationResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"}, + {"shape":"DeleteSlackChannelConfigurationException"} + ], + "documentation":"Deletes Slack Channel Configuration" + }, + "DeleteSlackUserIdentity":{ + "name":"DeleteSlackUserIdentity", + "http":{ + "method":"POST", + "requestUri":"/delete-slack-user-identity", + "responseCode":204 + }, + "input":{"shape":"DeleteSlackUserIdentityRequest"}, + "output":{"shape":"DeleteSlackUserIdentityResult"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"DeleteSlackUserIdentityException"} + ], + "documentation":"Deletes a Slack user identity" + }, + "DeleteSlackWorkspaceAuthorization":{ + "name":"DeleteSlackWorkspaceAuthorization", + "http":{ + "method":"POST", + "requestUri":"/delete-slack-workspace-authorization", + "responseCode":204 + }, + "input":{"shape":"DeleteSlackWorkspaceAuthorizationRequest"}, + "output":{"shape":"DeleteSlackWorkspaceAuthorizationResult"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"DeleteSlackWorkspaceAuthorizationFault"} + ], + "documentation":"Deletes the Slack workspace authorization that allows channels to be configured in that workspace. This requires all configured channels in the workspace to be deleted." + }, + "DescribeChimeWebhookConfigurations":{ + "name":"DescribeChimeWebhookConfigurations", + "http":{ + "method":"POST", + "requestUri":"/describe-chime-webhook-configurations", + "responseCode":200 + }, + "input":{"shape":"DescribeChimeWebhookConfigurationsRequest"}, + "output":{"shape":"DescribeChimeWebhookConfigurationsResult"}, + "errors":[ + {"shape":"DescribeChimeWebhookConfigurationsException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"Lists Chime Webhook Configurations optionally filtered by ChatConfigurationArn" + }, + "DescribeSlackChannelConfigurations":{ + "name":"DescribeSlackChannelConfigurations", + "http":{ + "method":"POST", + "requestUri":"/describe-slack-channel-configurations", + "responseCode":200 + }, + "input":{"shape":"DescribeSlackChannelConfigurationsRequest"}, + "output":{"shape":"DescribeSlackChannelConfigurationsResult"}, + "errors":[ + {"shape":"DescribeSlackChannelConfigurationsException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"Lists Slack Channel Configurations optionally filtered by ChatConfigurationArn" + }, + "DescribeSlackUserIdentities":{ + "name":"DescribeSlackUserIdentities", + "http":{ + "method":"POST", + "requestUri":"/describe-slack-user-identities", + "responseCode":200 + }, + "input":{"shape":"DescribeSlackUserIdentitiesRequest"}, + "output":{"shape":"DescribeSlackUserIdentitiesResult"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"}, + {"shape":"DescribeSlackUserIdentitiesException"} + ], + "documentation":"Lists all Slack user identities with a mapped role." + }, + "DescribeSlackWorkspaces":{ + "name":"DescribeSlackWorkspaces", + "http":{ + "method":"POST", + "requestUri":"/describe-slack-workspaces", + "responseCode":200 + }, + "input":{"shape":"DescribeSlackWorkspacesRequest"}, + "output":{"shape":"DescribeSlackWorkspacesResult"}, + "errors":[ + {"shape":"DescribeSlackWorkspacesException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"Lists all authorized Slack Workspaces for AWS Account" + }, + "GetAccountPreferences":{ + "name":"GetAccountPreferences", + "http":{ + "method":"POST", + "requestUri":"/get-account-preferences", + "responseCode":200 + }, + "input":{"shape":"GetAccountPreferencesRequest"}, + "output":{"shape":"GetAccountPreferencesResult"}, + "errors":[ + {"shape":"GetAccountPreferencesException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"Get Chatbot account level preferences" + }, + "GetMicrosoftTeamsChannelConfiguration":{ + "name":"GetMicrosoftTeamsChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/get-ms-teams-channel-configuration", + "responseCode":200 + }, + "input":{"shape":"GetTeamsChannelConfigurationRequest"}, + "output":{"shape":"GetTeamsChannelConfigurationResult"}, + "errors":[ + {"shape":"GetTeamsChannelConfigurationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"Get a single MS Teams Channel Configurations" + }, + "ListMicrosoftTeamsChannelConfigurations":{ + "name":"ListMicrosoftTeamsChannelConfigurations", + "http":{ + "method":"POST", + "requestUri":"/list-ms-teams-channel-configurations", + "responseCode":200 + }, + "input":{"shape":"ListTeamsChannelConfigurationsRequest"}, + "output":{"shape":"ListTeamsChannelConfigurationsResult"}, + "errors":[ + {"shape":"ListTeamsChannelConfigurationsException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"Lists MS Teams Channel Configurations optionally filtered by TeamId" + }, + "ListMicrosoftTeamsConfiguredTeams":{ + "name":"ListMicrosoftTeamsConfiguredTeams", + "http":{ + "method":"POST", + "requestUri":"/list-ms-teams-configured-teams", + "responseCode":200 + }, + "input":{"shape":"ListMicrosoftTeamsConfiguredTeamsRequest"}, + "output":{"shape":"ListMicrosoftTeamsConfiguredTeamsResult"}, + "errors":[ + {"shape":"ListMicrosoftTeamsConfiguredTeamsException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"Lists all authorized MS teams for AWS Account" + }, + "ListMicrosoftTeamsUserIdentities":{ + "name":"ListMicrosoftTeamsUserIdentities", + "http":{ + "method":"POST", + "requestUri":"/list-ms-teams-user-identities", + "responseCode":200 + }, + "input":{"shape":"ListMicrosoftTeamsUserIdentitiesRequest"}, + "output":{"shape":"ListMicrosoftTeamsUserIdentitiesResult"}, + "errors":[ + {"shape":"ListMicrosoftTeamsUserIdentitiesException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"Lists all Microsoft Teams user identities with a mapped role." + }, + "UpdateAccountPreferences":{ + "name":"UpdateAccountPreferences", + "http":{ + "method":"POST", + "requestUri":"/update-account-preferences", + "responseCode":200 + }, + "input":{"shape":"UpdateAccountPreferencesRequest"}, + "output":{"shape":"UpdateAccountPreferencesResult"}, + "errors":[ + {"shape":"UpdateAccountPreferencesException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"Update Chatbot account level preferences" + }, + "UpdateChimeWebhookConfiguration":{ + "name":"UpdateChimeWebhookConfiguration", + "http":{ + "method":"POST", + "requestUri":"/update-chime-webhook-configuration", + "responseCode":200 + }, + "input":{"shape":"UpdateChimeWebhookConfigurationRequest"}, + "output":{"shape":"UpdateChimeWebhookConfigurationResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"}, + {"shape":"UpdateChimeWebhookConfigurationException"} + ], + "documentation":"Updates a Chime Webhook Configuration" + }, + "UpdateMicrosoftTeamsChannelConfiguration":{ + "name":"UpdateMicrosoftTeamsChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/update-ms-teams-channel-configuration", + "responseCode":200 + }, + "input":{"shape":"UpdateTeamsChannelConfigurationRequest"}, + "output":{"shape":"UpdateTeamsChannelConfigurationResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"}, + {"shape":"UpdateTeamsChannelConfigurationException"} + ], + "documentation":"Updates MS Teams Channel Configuration" + }, + "UpdateSlackChannelConfiguration":{ + "name":"UpdateSlackChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/update-slack-channel-configuration", + "responseCode":200 + }, + "input":{"shape":"UpdateSlackChannelConfigurationRequest"}, + "output":{"shape":"UpdateSlackChannelConfigurationResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"}, + {"shape":"UpdateSlackChannelConfigurationException"} + ], + "documentation":"Updates Slack Channel Configuration" + } + }, + "shapes":{ + "AccountPreferences":{ + "type":"structure", + "members":{ + "UserAuthorizationRequired":{ + "shape":"BooleanAccountPreference", + "documentation":"Enables use of a user role requirement in your chat configuration." + }, + "TrainingDataCollectionEnabled":{ + "shape":"BooleanAccountPreference", + "documentation":"Turns on training data collection. This helps improve the AWS Chatbot experience by allowing AWS Chatbot to store and use your customer information, such as AWS Chatbot configurations, notifications, user inputs, AWS Chatbot generated responses, and interaction data. This data helps us to continuously improve and develop Artificial Intelligence (AI) technologies. Your data is not shared with any third parties and is protected using sophisticated controls to prevent unauthorized access and misuse. AWS Chatbot does not store or use interactions in chat channels with Amazon Q for training AWS Chatbot’s AI technologies." + } + }, + "documentation":"Preferences which apply for AWS Chatbot usage in the calling AWS account." + }, + "Arn":{ + "type":"string", + "max":1224, + "min":12, + "pattern":"^arn:aws:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$" + }, + "AwsUserIdentity":{ + "type":"string", + "max":1101, + "min":15, + "pattern":"^arn:aws:(iam|sts)::[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$" + }, + "BooleanAccountPreference":{"type":"boolean"}, + "ChatConfigurationArn":{ + "type":"string", + "max":1169, + "min":19, + "pattern":"^arn:aws:(wheatley|chatbot):[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$" + }, + "ChimeWebhookConfiguration":{ + "type":"structure", + "required":[ + "WebhookDescription", + "ChatConfigurationArn", + "IamRoleArn", + "SnsTopicArns" + ], + "members":{ + "WebhookDescription":{ + "shape":"ChimeWebhookDescription", + "documentation":"Description of the webhook. Recommend using the convention `RoomName/WebhookName`. See Chime setup tutorial for more details: https://docs.aws.amazon.com/chatbot/latest/adminguide/chime-setup.html." + }, + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the ChimeWebhookConfiguration." + }, + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "SnsTopicArns":{ + "shape":"SnsTopicArnList", + "documentation":"The ARNs of the SNS topics that deliver notifications to AWS Chatbot." + }, + "ConfigurationName":{ + "shape":"ConfigurationName", + "documentation":"The name of the configuration." + }, + "LoggingLevel":{ + "shape":"CustomerCwLogLevel", + "documentation":"Specifies the logging level for this configuration. This property affects the log entries pushed to Amazon CloudWatch Logs.Logging levels include ERROR, INFO, or NONE." + } + }, + "documentation":"An AWS Chatbot configuration for Amazon Chime." + }, + "ChimeWebhookConfigurationList":{ + "type":"list", + "member":{"shape":"ChimeWebhookConfiguration"} + }, + "ChimeWebhookDescription":{ + "type":"string", + "max":255, + "min":1 + }, + "ChimeWebhookUrl":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^https://hooks\\.chime\\.aws/incomingwebhooks/[A-Za-z0-9\\-]+?\\?token=[A-Za-z0-9\\-]+$" + }, + "ConfigurationName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[A-Za-z0-9-_]+$" + }, + "ConfiguredTeam":{ + "type":"structure", + "required":[ + "TenantId", + "TeamId" + ], + "members":{ + "TenantId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Teams tenant." + }, + "TeamId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Team authorized with AWS Chatbot. To get the team ID, you must perform the initial authorization flow with Microsoft Teams in the AWS Chatbot console. Then you can copy and paste the team ID from the console. For more details, see steps 1-4 in Get started with Microsoft Teams in the AWS Chatbot Administrator Guide." + }, + "TeamName":{ + "shape":"UUID", + "documentation":"The name of the Microsoft Teams Team.", + "box":true + } + }, + "documentation":"A Microsoft Teams team that has been authorized with AWS Chatbot." + }, + "ConfiguredTeamsList":{ + "type":"list", + "member":{"shape":"ConfiguredTeam"} + }, + "ConflictException":{ + "type":"structure", + "members":{ + }, + "documentation":"There was an issue processing your request.", + "error":{"httpStatusCode":409}, + "exception":true + }, + "CreateChimeWebhookConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "CreateChimeWebhookConfigurationRequest":{ + "type":"structure", + "required":[ + "WebhookDescription", + "WebhookUrl", + "SnsTopicArns", + "IamRoleArn", + "ConfigurationName" + ], + "members":{ + "WebhookDescription":{ + "shape":"ChimeWebhookDescription", + "documentation":"Description of the webhook. Recommend using the convention `RoomName/WebhookName`. See Chime setup tutorial for more details: https://docs.aws.amazon.com/chatbot/latest/adminguide/chime-setup.html." + }, + "WebhookUrl":{ + "shape":"ChimeWebhookUrl", + "documentation":"URL for the Chime webhook." + }, + "SnsTopicArns":{ + "shape":"SnsTopicArnList", + "documentation":"The ARNs of the SNS topics that deliver notifications to AWS Chatbot." + }, + "IamRoleArn":{ + "shape":"Arn", + "documentation":"This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "ConfigurationName":{ + "shape":"ConfigurationName", + "documentation":"The name of the configuration." + }, + "LoggingLevel":{ + "shape":"CustomerCwLogLevel", + "documentation":"Logging levels include ERROR, INFO, or NONE." + } + } + }, + "CreateChimeWebhookConfigurationResult":{ + "type":"structure", + "members":{ + "WebhookConfiguration":{ + "shape":"ChimeWebhookConfiguration", + "documentation":"Chime webhook configuration." + } + } + }, + "CreateSlackChannelConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "CreateSlackChannelConfigurationRequest":{ + "type":"structure", + "required":[ + "SlackTeamId", + "SlackChannelId", + "IamRoleArn", + "ConfigurationName" + ], + "members":{ + "SlackTeamId":{ + "shape":"SlackTeamId", + "documentation":"The ID of the Slack workspace authorized with AWS Chatbot." + }, + "SlackChannelId":{ + "shape":"SlackChannelId", + "documentation":"The ID of the Slack channel. To get the ID, open Slack, right click on the channel name in the left pane, then choose Copy Link. The channel ID is the 9-character string at the end of the URL. For example, ABCBBLZZZ." + }, + "SlackChannelName":{ + "shape":"SlackChannelDisplayName", + "documentation":"The name of the Slack Channel." + }, + "SnsTopicArns":{ + "shape":"SnsTopicArnList", + "documentation":"The ARNs of the SNS topics that deliver notifications to AWS Chatbot." + }, + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "ConfigurationName":{ + "shape":"ConfigurationName", + "documentation":"The name of the configuration." + }, + "LoggingLevel":{ + "shape":"CustomerCwLogLevel", + "documentation":"Logging levels include ERROR, INFO, or NONE." + }, + "GuardrailPolicyArns":{ + "shape":"GuardrailPolicyArnList", + "documentation":"The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied by default if this is not set." + }, + "UserAuthorizationRequired":{ + "shape":"BooleanAccountPreference", + "documentation":"Enables use of a user role requirement in your chat configuration." + } + } + }, + "CreateSlackChannelConfigurationResult":{ + "type":"structure", + "members":{ + "ChannelConfiguration":{ + "shape":"SlackChannelConfiguration", + "documentation":"The configuration for a Slack channel configured with AWS Chatbot." + } + } + }, + "CreateTeamsChannelConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "CreateTeamsChannelConfigurationRequest":{ + "type":"structure", + "required":[ + "ChannelId", + "TeamId", + "TenantId", + "IamRoleArn", + "ConfigurationName" + ], + "members":{ + "ChannelId":{ + "shape":"TeamsChannelId", + "documentation":"The ID of the Microsoft Teams channel." + }, + "ChannelName":{ + "shape":"TeamsChannelName", + "documentation":"The name of the Microsoft Teams channel." + }, + "TeamId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Team authorized with AWS Chatbot. To get the team ID, you must perform the initial authorization flow with Microsoft Teams in the AWS Chatbot console. Then you can copy and paste the team ID from the console. For more details, see steps 1-4 in Get started with Microsoft Teams in the AWS Chatbot Administrator Guide." + }, + "TeamName":{ + "shape":"TeamName", + "documentation":"The name of the Microsoft Teams Team." + }, + "TenantId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Teams tenant." + }, + "SnsTopicArns":{ + "shape":"SnsTopicArnList", + "documentation":"The ARNs of the SNS topics that deliver notifications to AWS Chatbot." + }, + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "ConfigurationName":{ + "shape":"ConfigurationName", + "documentation":"The name of the configuration." + }, + "LoggingLevel":{ + "shape":"CustomerCwLogLevel", + "documentation":"Logging levels include ERROR, INFO, or NONE." + }, + "GuardrailPolicyArns":{ + "shape":"GuardrailPolicyArnList", + "documentation":"The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied by default if this is not set." + }, + "UserAuthorizationRequired":{ + "shape":"BooleanAccountPreference", + "documentation":"Enables use of a user role requirement in your chat configuration." + } + } + }, + "CreateTeamsChannelConfigurationResult":{ + "type":"structure", + "members":{ + "ChannelConfiguration":{ + "shape":"TeamsChannelConfiguration", + "documentation":"The configuration for a Microsoft Teams channel configured with AWS Chatbot." + } + } + }, + "CustomerCwLogLevel":{ + "type":"string", + "max":5, + "min":4, + "pattern":"^(ERROR|INFO|NONE)$" + }, + "DeleteChimeWebhookConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DeleteChimeWebhookConfigurationRequest":{ + "type":"structure", + "required":["ChatConfigurationArn"], + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the ChimeWebhookConfiguration to delete." + } + } + }, + "DeleteChimeWebhookConfigurationResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteMicrosoftTeamsUserIdentityException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DeleteMicrosoftTeamsUserIdentityRequest":{ + "type":"structure", + "required":[ + "ChatConfigurationArn", + "UserId" + ], + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the MicrosoftTeamsChannelConfiguration associated with the user identity to delete." + }, + "UserId":{ + "shape":"UUID", + "documentation":"Id from Microsoft Teams for user." + } + } + }, + "DeleteMicrosoftTeamsUserIdentityResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteSlackChannelConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DeleteSlackChannelConfigurationRequest":{ + "type":"structure", + "required":["ChatConfigurationArn"], + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the SlackChannelConfiguration to delete." + } + } + }, + "DeleteSlackChannelConfigurationResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteSlackUserIdentityException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DeleteSlackUserIdentityRequest":{ + "type":"structure", + "required":[ + "ChatConfigurationArn", + "SlackTeamId", + "SlackUserId" + ], + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the SlackChannelConfiguration associated with the user identity to delete." + }, + "SlackTeamId":{ + "shape":"SlackTeamId", + "documentation":"The ID of the Slack workspace authorized with AWS Chatbot." + }, + "SlackUserId":{ + "shape":"SlackUserId", + "documentation":"The ID of the user in Slack." + } + } + }, + "DeleteSlackUserIdentityResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteSlackWorkspaceAuthorizationFault":{ + "type":"structure", + "members":{ + }, + "documentation":"There was an issue deleting your Slack workspace.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DeleteSlackWorkspaceAuthorizationRequest":{ + "type":"structure", + "required":["SlackTeamId"], + "members":{ + "SlackTeamId":{ + "shape":"SlackTeamId", + "documentation":"The ID of the Slack workspace authorized with AWS Chatbot." + } + } + }, + "DeleteSlackWorkspaceAuthorizationResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteTeamsChannelConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DeleteTeamsChannelConfigurationRequest":{ + "type":"structure", + "required":["ChatConfigurationArn"], + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the MicrosoftTeamsChannelConfiguration to delete." + } + } + }, + "DeleteTeamsChannelConfigurationResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteTeamsConfiguredTeamException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DeleteTeamsConfiguredTeamRequest":{ + "type":"structure", + "required":["TeamId"], + "members":{ + "TeamId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Team authorized with AWS Chatbot. To get the team ID, you must perform the initial authorization flow with Microsoft Teams in the AWS Chatbot console. Then you can copy and paste the team ID from the console. For more details, see steps 1-4 in Get started with Microsoft Teams in the AWS Chatbot Administrator Guide." + } + } + }, + "DeleteTeamsConfiguredTeamResult":{ + "type":"structure", + "members":{ + } + }, + "DescribeChimeWebhookConfigurationsException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DescribeChimeWebhookConfigurationsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.", + "box":true + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.", + "box":true + }, + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"An optional ARN of a ChimeWebhookConfiguration to describe.", + "box":true + } + } + }, + "DescribeChimeWebhookConfigurationsResult":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + }, + "WebhookConfigurations":{ + "shape":"ChimeWebhookConfigurationList", + "documentation":"A list of Chime webhooks associated with the account." + } + } + }, + "DescribeSlackChannelConfigurationsException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DescribeSlackChannelConfigurationsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.", + "box":true + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.", + "box":true + }, + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"An optional ARN of a SlackChannelConfiguration to describe.", + "box":true + } + } + }, + "DescribeSlackChannelConfigurationsResult":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + }, + "SlackChannelConfigurations":{ + "shape":"SlackChannelConfigurationList", + "documentation":"A list of Slack channel configurations." + } + } + }, + "DescribeSlackUserIdentitiesException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DescribeSlackUserIdentitiesRequest":{ + "type":"structure", + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the SlackChannelConfiguration associated with the user identities to describe." + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved." + } + } + }, + "DescribeSlackUserIdentitiesResult":{ + "type":"structure", + "members":{ + "SlackUserIdentities":{ + "shape":"SlackUserIdentitiesList", + "documentation":"A list of Slack User Identities." + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + } + } + }, + "DescribeSlackWorkspacesException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "DescribeSlackWorkspacesRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved." + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + } + } + }, + "DescribeSlackWorkspacesResult":{ + "type":"structure", + "members":{ + "SlackWorkspaces":{ + "shape":"SlackWorkspacesList", + "documentation":"A list of Slack Workspaces registered with AWS Chatbot." + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + } + } + }, + "GetAccountPreferencesException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "GetAccountPreferencesRequest":{ + "type":"structure", + "members":{ + } + }, + "GetAccountPreferencesResult":{ + "type":"structure", + "members":{ + "AccountPreferences":{ + "shape":"AccountPreferences", + "documentation":"Preferences which apply for AWS Chatbot usage in the calling AWS account." + } + } + }, + "GetTeamsChannelConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "GetTeamsChannelConfigurationRequest":{ + "type":"structure", + "required":["ChatConfigurationArn"], + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the MicrosoftTeamsChannelConfiguration to retrieve." + } + } + }, + "GetTeamsChannelConfigurationResult":{ + "type":"structure", + "members":{ + "ChannelConfiguration":{ + "shape":"TeamsChannelConfiguration", + "documentation":"The configuration for a Microsoft Teams channel configured with AWS Chatbot." + } + } + }, + "GuardrailPolicyArn":{ + "type":"string", + "max":1163, + "min":11, + "pattern":"^(^$|(?!.*\\/aws-service-role\\/.*)arn:aws:iam:[A-Za-z0-9_\\/.-]{0,63}:[A-Za-z0-9_\\/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_\\/+=,@.-]{0,1023})$" + }, + "GuardrailPolicyArnList":{ + "type":"list", + "member":{"shape":"GuardrailPolicyArn"} + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + }, + "documentation":"Your request input doesn't meet the constraints that AWS Chatbot requires.", + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + }, + "documentation":"Your request input doesn't meet the constraints that AWS Chatbot requires.", + "error":{"httpStatusCode":400}, + "exception":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + }, + "documentation":"You have exceeded a service limit for AWS Chatbot.", + "error":{"httpStatusCode":403}, + "exception":true + }, + "ListMicrosoftTeamsConfiguredTeamsException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListMicrosoftTeamsConfiguredTeamsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved." + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + } + } + }, + "ListMicrosoftTeamsConfiguredTeamsResult":{ + "type":"structure", + "members":{ + "ConfiguredTeams":{ + "shape":"ConfiguredTeamsList", + "documentation":"A list of teams in Microsoft Teams that have been configured with AWS Chatbot." + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + } + } + }, + "ListMicrosoftTeamsUserIdentitiesException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListMicrosoftTeamsUserIdentitiesRequest":{ + "type":"structure", + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the MicrosoftTeamsChannelConfiguration associated with the user identities to list." + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved." + } + } + }, + "ListMicrosoftTeamsUserIdentitiesResult":{ + "type":"structure", + "members":{ + "TeamsUserIdentities":{ + "shape":"TeamsUserIdentitiesList", + "documentation":"User level permissions associated to a channel configuration." + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + } + } + }, + "ListTeamsChannelConfigurationsException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListTeamsChannelConfigurationsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.", + "box":true + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.", + "box":true + }, + "TeamId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Team authorized with AWS Chatbot. To get the team ID, you must perform the initial authorization flow with Microsoft Teams in the AWS Chatbot console. Then you can copy and paste the team ID from the console. For more details, see steps 1-4 in Get started with Microsoft Teams in the AWS Chatbot Administrator Guide.", + "box":true + } + } + }, + "ListTeamsChannelConfigurationsResult":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults." + }, + "TeamChannelConfigurations":{ + "shape":"TeamChannelConfigurationsList", + "documentation":"A list of AWS Chatbot channel configurations for Microsoft Teams." + } + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "PaginationToken":{ + "type":"string", + "max":1276, + "min":1, + "pattern":"^[a-zA-Z0-9=\\/+_.\\-,#:\\\\\"{}]{4,1276}$" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + }, + "documentation":"We were not able to find the resource for your request.", + "error":{"httpStatusCode":404}, + "exception":true + }, + "SlackChannelConfiguration":{ + "type":"structure", + "required":[ + "SlackTeamName", + "SlackTeamId", + "SlackChannelId", + "SlackChannelName", + "ChatConfigurationArn", + "IamRoleArn", + "SnsTopicArns" + ], + "members":{ + "SlackTeamName":{ + "shape":"SlackTeamName", + "documentation":"Name of the Slack Workspace." + }, + "SlackTeamId":{ + "shape":"SlackTeamId", + "documentation":"The ID of the Slack workspace authorized with AWS Chatbot." + }, + "SlackChannelId":{ + "shape":"SlackChannelId", + "documentation":"The ID of the Slack channel. To get the ID, open Slack, right click on the channel name in the left pane, then choose Copy Link. The channel ID is the 9-character string at the end of the URL. For example, ABCBBLZZZ." + }, + "SlackChannelName":{ + "shape":"SlackChannelDisplayName", + "documentation":"The name of the Slack Channel." + }, + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the SlackChannelConfiguration." + }, + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "SnsTopicArns":{ + "shape":"SnsTopicArnList", + "documentation":"The ARNs of the SNS topics that deliver notifications to AWS Chatbot.", + "box":true + }, + "ConfigurationName":{ + "shape":"ConfigurationName", + "documentation":"The name of the configuration." + }, + "LoggingLevel":{ + "shape":"CustomerCwLogLevel", + "documentation":"Logging levels include ERROR, INFO, or NONE." + }, + "GuardrailPolicyArns":{ + "shape":"GuardrailPolicyArnList", + "documentation":"The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied by default if this is not set." + }, + "UserAuthorizationRequired":{ + "shape":"BooleanAccountPreference", + "documentation":"Enables use of a user role requirement in your chat configuration." + } + }, + "documentation":"An AWS Chatbot configuration for Slack." + }, + "SlackChannelConfigurationList":{ + "type":"list", + "member":{"shape":"SlackChannelConfiguration"} + }, + "SlackChannelDisplayName":{ + "type":"string", + "max":255, + "min":1 + }, + "SlackChannelId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[A-Za-z0-9]+$" + }, + "SlackTeamId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[0-9A-Z]{1,255}$" + }, + "SlackTeamName":{ + "type":"string", + "max":255, + "min":1 + }, + "SlackUserId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^(.*)$" + }, + "SlackUserIdentitiesList":{ + "type":"list", + "member":{"shape":"SlackUserIdentity"} + }, + "SlackUserIdentity":{ + "type":"structure", + "required":[ + "IamRoleArn", + "ChatConfigurationArn", + "SlackTeamId", + "SlackUserId" + ], + "members":{ + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the SlackChannelConfiguration associated with the user identity." + }, + "SlackTeamId":{ + "shape":"SlackTeamId", + "documentation":"The ID of the Slack workspace authorized with AWS Chatbot." + }, + "SlackUserId":{ + "shape":"SlackUserId", + "documentation":"The ID of the user in Slack." + }, + "AwsUserIdentity":{ + "shape":"AwsUserIdentity", + "documentation":"The AWS user identity ARN used to associate a Slack User Identity with an IAM Role." + } + }, + "documentation":"Identifes a User level permission for a channel configuration." + }, + "SlackWorkspace":{ + "type":"structure", + "required":[ + "SlackTeamId", + "SlackTeamName" + ], + "members":{ + "SlackTeamId":{ + "shape":"SlackTeamId", + "documentation":"The ID of the Slack workspace authorized with AWS Chatbot." + }, + "SlackTeamName":{ + "shape":"SlackTeamName", + "documentation":"Name of the Slack Workspace." + } + }, + "documentation":"A Slack Workspace." + }, + "SlackWorkspacesList":{ + "type":"list", + "member":{"shape":"SlackWorkspace"} + }, + "SnsTopicArnList":{ + "type":"list", + "member":{"shape":"Arn"} + }, + "String":{"type":"string"}, + "TeamChannelConfigurationsList":{ + "type":"list", + "member":{"shape":"TeamsChannelConfiguration"} + }, + "TeamName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^(.*)$" + }, + "TeamsChannelConfiguration":{ + "type":"structure", + "required":[ + "ChannelId", + "TeamId", + "TenantId", + "ChatConfigurationArn", + "IamRoleArn", + "SnsTopicArns" + ], + "members":{ + "ChannelId":{ + "shape":"TeamsChannelId", + "documentation":"The ID of the Microsoft Teams channel." + }, + "ChannelName":{ + "shape":"TeamsChannelName", + "documentation":"The name of the Microsoft Teams channel." + }, + "TeamId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Team authorized with AWS Chatbot. To get the team ID, you must perform the initial authorization flow with Microsoft Teams in the AWS Chatbot console. Then you can copy and paste the team ID from the console. For more details, see steps 1-4 in Get started with Microsoft Teams in the AWS Chatbot Administrator Guide." + }, + "TeamName":{ + "shape":"String", + "documentation":"The name of the Microsoft Teams Team." + }, + "TenantId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Teams tenant." + }, + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the MicrosoftTeamsChannelConfiguration." + }, + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "SnsTopicArns":{ + "shape":"SnsTopicArnList", + "documentation":"The ARNs of the SNS topics that deliver notifications to AWS Chatbot.", + "box":true + }, + "ConfigurationName":{ + "shape":"ConfigurationName", + "documentation":"The name of the configuration." + }, + "LoggingLevel":{ + "shape":"CustomerCwLogLevel", + "documentation":"Logging levels include ERROR, INFO, or NONE." + }, + "GuardrailPolicyArns":{ + "shape":"GuardrailPolicyArnList", + "documentation":"The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied by default if this is not set." + }, + "UserAuthorizationRequired":{ + "shape":"BooleanAccountPreference", + "documentation":"Enables use of a user role requirement in your chat configuration." + } + }, + "documentation":"An AWS Chatbot configuration for Microsoft Teams." + }, + "TeamsChannelId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^([a-zA-Z0-9-_=+\\/.,])*%3[aA]([a-zA-Z0-9-_=+\\/.,])*%40([a-zA-Z0-9-_=+\\/.,])*$" + }, + "TeamsChannelName":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"^(.*)$" + }, + "TeamsUserIdentitiesList":{ + "type":"list", + "member":{"shape":"TeamsUserIdentity"} + }, + "TeamsUserIdentity":{ + "type":"structure", + "required":[ + "IamRoleArn", + "ChatConfigurationArn", + "TeamId" + ], + "members":{ + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the MicrosoftTeamsChannelConfiguration associated with the user identity." + }, + "TeamId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Team authorized with AWS Chatbot. To get the team ID, you must perform the initial authorization flow with Microsoft Teams in the AWS Chatbot console. Then you can copy and paste the team ID from the console. For more details, see steps 1-4 in Get started with Microsoft Teams in the AWS Chatbot Administrator Guide." + }, + "UserId":{ + "shape":"UUID", + "documentation":"Id from Microsoft Teams for user." + }, + "AwsUserIdentity":{ + "shape":"AwsUserIdentity", + "documentation":"The AWS user identity ARN used to associate a Microsoft Teams User Identity with an IAM Role." + }, + "TeamsChannelId":{ + "shape":"TeamsChannelId", + "documentation":"The ID of the Microsoft Teams channel." + }, + "TeamsTenantId":{ + "shape":"UUID", + "documentation":"The ID of the Microsoft Teams tenant." + } + }, + "documentation":"Identifes a user level permission for a channel configuration." + }, + "UUID":{ + "type":"string", + "max":36, + "min":36, + "pattern":"^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + }, + "UpdateAccountPreferencesException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "UpdateAccountPreferencesRequest":{ + "type":"structure", + "members":{ + "UserAuthorizationRequired":{ + "shape":"BooleanAccountPreference", + "documentation":"Enables use of a user role requirement in your chat configuration." + }, + "TrainingDataCollectionEnabled":{ + "shape":"BooleanAccountPreference", + "documentation":"Turns on training data collection. This helps improve the AWS Chatbot experience by allowing AWS Chatbot to store and use your customer information, such as AWS Chatbot configurations, notifications, user inputs, AWS Chatbot generated responses, and interaction data. This data helps us to continuously improve and develop Artificial Intelligence (AI) technologies. Your data is not shared with any third parties and is protected using sophisticated controls to prevent unauthorized access and misuse. AWS Chatbot does not store or use interactions in chat channels with Amazon Q for training AWS Chatbot’s AI technologies." + } + } + }, + "UpdateAccountPreferencesResult":{ + "type":"structure", + "members":{ + "AccountPreferences":{ + "shape":"AccountPreferences", + "documentation":"Preferences which apply for AWS Chatbot usage in the calling AWS account." + } + } + }, + "UpdateChimeWebhookConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "UpdateChimeWebhookConfigurationRequest":{ + "type":"structure", + "required":["ChatConfigurationArn"], + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the ChimeWebhookConfiguration to update." + }, + "WebhookDescription":{ + "shape":"ChimeWebhookDescription", + "documentation":"Description of the webhook. Recommend using the convention `RoomName/WebhookName`. See Chime setup tutorial for more details: https://docs.aws.amazon.com/chatbot/latest/adminguide/chime-setup.html." + }, + "WebhookUrl":{ + "shape":"ChimeWebhookUrl", + "documentation":"URL for the Chime webhook." + }, + "SnsTopicArns":{ + "shape":"SnsTopicArnList", + "documentation":"The ARNs of the SNS topics that deliver notifications to AWS Chatbot." + }, + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "LoggingLevel":{ + "shape":"CustomerCwLogLevel", + "documentation":"Logging levels include ERROR, INFO, or NONE." + } + } + }, + "UpdateChimeWebhookConfigurationResult":{ + "type":"structure", + "members":{ + "WebhookConfiguration":{ + "shape":"ChimeWebhookConfiguration", + "documentation":"Chime webhook configuration." + } + } + }, + "UpdateSlackChannelConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "UpdateSlackChannelConfigurationRequest":{ + "type":"structure", + "required":[ + "ChatConfigurationArn", + "SlackChannelId" + ], + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the SlackChannelConfiguration to update." + }, + "SlackChannelId":{ + "shape":"SlackChannelId", + "documentation":"The ID of the Slack channel. To get the ID, open Slack, right click on the channel name in the left pane, then choose Copy Link. The channel ID is the 9-character string at the end of the URL. For example, ABCBBLZZZ." + }, + "SlackChannelName":{ + "shape":"SlackChannelDisplayName", + "documentation":"The name of the Slack Channel." + }, + "SnsTopicArns":{ + "shape":"SnsTopicArnList", + "documentation":"The ARNs of the SNS topics that deliver notifications to AWS Chatbot." + }, + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "LoggingLevel":{ + "shape":"CustomerCwLogLevel", + "documentation":"Logging levels include ERROR, INFO, or NONE." + }, + "GuardrailPolicyArns":{ + "shape":"GuardrailPolicyArnList", + "documentation":"The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied by default if this is not set." + }, + "UserAuthorizationRequired":{ + "shape":"BooleanAccountPreference", + "documentation":"Enables use of a user role requirement in your chat configuration." + } + } + }, + "UpdateSlackChannelConfigurationResult":{ + "type":"structure", + "members":{ + "ChannelConfiguration":{ + "shape":"SlackChannelConfiguration", + "documentation":"The configuration for a Slack channel configured with AWS Chatbot." + } + } + }, + "UpdateTeamsChannelConfigurationException":{ + "type":"structure", + "members":{ + }, + "documentation":"We can’t process your request right now because of a server issue. Try again later.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "UpdateTeamsChannelConfigurationRequest":{ + "type":"structure", + "required":[ + "ChatConfigurationArn", + "ChannelId" + ], + "members":{ + "ChatConfigurationArn":{ + "shape":"ChatConfigurationArn", + "documentation":"The ARN of the MicrosoftTeamsChannelConfiguration to update." + }, + "ChannelId":{ + "shape":"TeamsChannelId", + "documentation":"The ID of the Microsoft Teams channel." + }, + "ChannelName":{ + "shape":"TeamsChannelName", + "documentation":"The name of the Microsoft Teams channel." + }, + "SnsTopicArns":{ + "shape":"SnsTopicArnList", + "documentation":"The ARNs of the SNS topics that deliver notifications to AWS Chatbot." + }, + "IamRoleArn":{ + "shape":"Arn", + "documentation":"The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot." + }, + "LoggingLevel":{ + "shape":"CustomerCwLogLevel", + "documentation":"Logging levels include ERROR, INFO, or NONE." + }, + "GuardrailPolicyArns":{ + "shape":"GuardrailPolicyArnList", + "documentation":"The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied by default if this is not set." + }, + "UserAuthorizationRequired":{ + "shape":"BooleanAccountPreference", + "documentation":"Enables use of a user role requirement in your chat configuration." + } + } + }, + "UpdateTeamsChannelConfigurationResult":{ + "type":"structure", + "members":{ + "ChannelConfiguration":{ + "shape":"TeamsChannelConfiguration", + "documentation":"The configuration for a Microsoft Teams channel configured with AWS Chatbot." + } + } + } + }, + "documentation":"AWS Chatbot API" +} diff --git a/services/chime/pom.xml b/services/chime/pom.xml index e47282dbfd9c..a5a1965edd10 100644 --- a/services/chime/pom.xml +++ b/services/chime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT chime AWS Java SDK :: Services :: Chime diff --git a/services/chime/src/main/resources/codegen-resources/customization.config b/services/chime/src/main/resources/codegen-resources/customization.config index 254455474301..47c3e33320da 100644 --- a/services/chime/src/main/resources/codegen-resources/customization.config +++ b/services/chime/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,9 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listAccounts" ], - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/chimesdkidentity/pom.xml b/services/chimesdkidentity/pom.xml index 2407271efd9f..90dd58e7e51f 100644 --- a/services/chimesdkidentity/pom.xml +++ b/services/chimesdkidentity/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT chimesdkidentity AWS Java SDK :: Services :: Chime SDK Identity diff --git a/services/chimesdkidentity/src/main/resources/codegen-resources/customization.config b/services/chimesdkidentity/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/chimesdkidentity/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/chimesdkmediapipelines/pom.xml b/services/chimesdkmediapipelines/pom.xml index 0a514c57514e..f69db7333259 100644 --- a/services/chimesdkmediapipelines/pom.xml +++ b/services/chimesdkmediapipelines/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT chimesdkmediapipelines AWS Java SDK :: Services :: Chime SDK Media Pipelines diff --git a/services/chimesdkmediapipelines/src/main/resources/codegen-resources/customization.config b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/chimesdkmeetings/pom.xml b/services/chimesdkmeetings/pom.xml index c0219f5e1de8..50d0e8c01597 100644 --- a/services/chimesdkmeetings/pom.xml +++ b/services/chimesdkmeetings/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT chimesdkmeetings AWS Java SDK :: Services :: Chime SDK Meetings diff --git a/services/chimesdkmeetings/src/main/resources/codegen-resources/customization.config b/services/chimesdkmeetings/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/chimesdkmeetings/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/chimesdkmessaging/pom.xml b/services/chimesdkmessaging/pom.xml index bfddfac434b3..2590932194be 100644 --- a/services/chimesdkmessaging/pom.xml +++ b/services/chimesdkmessaging/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT chimesdkmessaging AWS Java SDK :: Services :: Chime SDK Messaging diff --git a/services/chimesdkmessaging/src/main/resources/codegen-resources/customization.config b/services/chimesdkmessaging/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/chimesdkmessaging/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/chimesdkvoice/pom.xml b/services/chimesdkvoice/pom.xml index 16ce90195eef..ffa9e1083425 100644 --- a/services/chimesdkvoice/pom.xml +++ b/services/chimesdkvoice/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT chimesdkvoice AWS Java SDK :: Services :: Chime SDK Voice diff --git a/services/chimesdkvoice/src/main/resources/codegen-resources/customization.config b/services/chimesdkvoice/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/chimesdkvoice/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/cleanrooms/pom.xml b/services/cleanrooms/pom.xml index c4c0229fb418..382aa31f5c86 100644 --- a/services/cleanrooms/pom.xml +++ b/services/cleanrooms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cleanrooms AWS Java SDK :: Services :: Clean Rooms diff --git a/services/cleanrooms/src/main/resources/codegen-resources/customization.config b/services/cleanrooms/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/cleanrooms/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/cleanroomsml/pom.xml b/services/cleanroomsml/pom.xml index 4bd2dfbf045b..13eaeffe1c40 100644 --- a/services/cleanroomsml/pom.xml +++ b/services/cleanroomsml/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cleanroomsml AWS Java SDK :: Services :: Clean Rooms ML diff --git a/services/cleanroomsml/src/main/resources/codegen-resources/customization.config b/services/cleanroomsml/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/cleanroomsml/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/cloud9/pom.xml b/services/cloud9/pom.xml index eb0876b13409..ed8e23bdba22 100644 --- a/services/cloud9/pom.xml +++ b/services/cloud9/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 cloud9 diff --git a/services/cloud9/src/main/resources/codegen-resources/customization.config b/services/cloud9/src/main/resources/codegen-resources/customization.config index ed915c919c94..bd14b4695b67 100644 --- a/services/cloud9/src/main/resources/codegen-resources/customization.config +++ b/services/cloud9/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeEnvironmentMemberships", "listEnvironments" - ] + ], + "useSraAuth": true } diff --git a/services/cloud9/src/main/resources/codegen-resources/service-2.json b/services/cloud9/src/main/resources/codegen-resources/service-2.json index 94ff20f115ba..52aec83d9fb1 100644 --- a/services/cloud9/src/main/resources/codegen-resources/service-2.json +++ b/services/cloud9/src/main/resources/codegen-resources/service-2.json @@ -331,7 +331,7 @@ }, "imageId":{ "shape":"ImageId", - "documentation":"

    The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid Amazon EC2 Systems Manager (SSM) path.

    From December 04, 2023, you will be required to include the imageId parameter for the CreateEnvironmentEC2 action. This change will be reflected across all direct methods of communicating with the API, such as Amazon Web Services SDK, Amazon Web Services CLI and Amazon Web Services CloudFormation. This change will only affect direct API consumers, and not Cloud9 console users.

    From January 22, 2024, Amazon Linux (AL1) will be removed from the list of available image IDs for Cloud9. This is necessary as AL1 will reach the end of maintenance support in December 2023, and as a result will no longer receive security updates. We recommend using Amazon Linux 2023 as the AMI to create your environment as it is fully supported. This change will only affect direct API consumers, and not Cloud9 console users.

    Since Ubuntu 18.04 has ended standard support as of May 31, 2023, we recommend you choose Ubuntu 22.04.

    AMI aliases

    • Amazon Linux: amazonlinux-1-x86_64

    • Amazon Linux 2: amazonlinux-2-x86_64

    • Amazon Linux 2023 (recommended): amazonlinux-2023-x86_64

    • Ubuntu 18.04: ubuntu-18.04-x86_64

    • Ubuntu 22.04: ubuntu-22.04-x86_64

    SSM paths

    • Amazon Linux: resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64

    • Amazon Linux 2: resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64

    • Amazon Linux 2023 (recommended): resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2023-x86_64

    • Ubuntu 18.04: resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64

    • Ubuntu 22.04: resolve:ssm:/aws/service/cloud9/amis/ubuntu-22.04-x86_64

    " + "documentation":"

    The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid Amazon EC2 Systems Manager (SSM) path.

    From December 04, 2023, you will be required to include the imageId parameter for the CreateEnvironmentEC2 action. This change will be reflected across all direct methods of communicating with the API, such as Amazon Web Services SDK, Amazon Web Services CLI and Amazon Web Services CloudFormation. This change will only affect direct API consumers, and not Cloud9 console users.

    We recommend using Amazon Linux 2023 as the AMI to create your environment as it is fully supported.

    Since Ubuntu 18.04 has ended standard support as of May 31, 2023, we recommend you choose Ubuntu 22.04.

    AMI aliases

    • Amazon Linux 2: amazonlinux-2-x86_64

    • Amazon Linux 2023 (recommended): amazonlinux-2023-x86_64

    • Ubuntu 18.04: ubuntu-18.04-x86_64

    • Ubuntu 22.04: ubuntu-22.04-x86_64

    SSM paths

    • Amazon Linux 2: resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64

    • Amazon Linux 2023 (recommended): resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2023-x86_64

    • Ubuntu 18.04: resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64

    • Ubuntu 22.04: resolve:ssm:/aws/service/cloud9/amis/ubuntu-22.04-x86_64

    " }, "automaticStopTimeMinutes":{ "shape":"AutomaticStopTimeMinutes", diff --git a/services/cloudcontrol/pom.xml b/services/cloudcontrol/pom.xml index ebdd771aac2d..1b7185d12c9c 100644 --- a/services/cloudcontrol/pom.xml +++ b/services/cloudcontrol/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudcontrol AWS Java SDK :: Services :: Cloud Control diff --git a/services/cloudcontrol/src/main/resources/codegen-resources/customization.config b/services/cloudcontrol/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/cloudcontrol/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/clouddirectory/pom.xml b/services/clouddirectory/pom.xml index c9cc302eb736..4828b1d7c278 100644 --- a/services/clouddirectory/pom.xml +++ b/services/clouddirectory/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT clouddirectory AWS Java SDK :: Services :: Amazon CloudDirectory diff --git a/services/clouddirectory/src/main/resources/codegen-resources/customization.config b/services/clouddirectory/src/main/resources/codegen-resources/customization.config index 38cda36ee83a..1c4fa503f5c4 100644 --- a/services/clouddirectory/src/main/resources/codegen-resources/customization.config +++ b/services/clouddirectory/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,5 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listDevelopmentSchemaArns", "listDirectories", "listManagedSchemaArns", @@ -9,5 +9,6 @@ "TypedAttributeValue": { "union": true } - } + }, + "useSraAuth": true } diff --git a/services/cloudformation/pom.xml b/services/cloudformation/pom.xml index ccb1dd2cc3db..1aa984a7bfce 100644 --- a/services/cloudformation/pom.xml +++ b/services/cloudformation/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudformation AWS Java SDK :: Services :: AWS CloudFormation diff --git a/services/cloudformation/src/main/resources/codegen-resources/customization.config b/services/cloudformation/src/main/resources/codegen-resources/customization.config index e7b4b0ab5bf6..8b352e426701 100644 --- a/services/cloudformation/src/main/resources/codegen-resources/customization.config +++ b/services/cloudformation/src/main/resources/codegen-resources/customization.config @@ -1,28 +1,29 @@ { - "verifiedSimpleMethods": [ - "describeAccountLimits", - "describeStacks", - "listExports", - "listStackSets", - "listStacks" - ], - "shapeModifiers": { - "ListStacksInput": { - "modify": [ - { - "StackStatusFilter": { - "emitPropertyName": "stackStatusFilters" - } + "verifiedSimpleMethods": [ + "describeAccountLimits", + "describeStacks", + "listExports", + "listStackSets", + "listStacks" + ], + "shapeModifiers": { + "ListStacksInput": { + "modify": [ + { + "StackStatusFilter": { + "emitPropertyName": "stackStatusFilters" + } + } + ] } - ] - } - }, - "excludedSimpleMethods": [ - "estimateTemplateCost", - "validateTemplate", - "getTemplate", - "describeStackResources", - "describeStackEvents", - "getTemplateSummary" - ] + }, + "excludedSimpleMethods": [ + "estimateTemplateCost", + "validateTemplate", + "getTemplate", + "describeStackResources", + "describeStackEvents", + "getTemplateSummary" + ], + "useSraAuth": true } diff --git a/services/cloudformation/src/main/resources/codegen-resources/paginators-1.json b/services/cloudformation/src/main/resources/codegen-resources/paginators-1.json index ef2c18843d40..5fe3ac783f3b 100644 --- a/services/cloudformation/src/main/resources/codegen-resources/paginators-1.json +++ b/services/cloudformation/src/main/resources/codegen-resources/paginators-1.json @@ -33,11 +33,35 @@ "output_token": "NextToken", "result_key": "Exports" }, + "ListGeneratedTemplates": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Summaries" + }, "ListImports": { "input_token": "NextToken", "output_token": "NextToken", "result_key": "Imports" }, + "ListResourceScanRelatedResources": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "RelatedResources" + }, + "ListResourceScanResources": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Resources" + }, + "ListResourceScans": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ResourceScanSummaries" + }, "ListStackInstances": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/services/cloudformation/src/main/resources/codegen-resources/service-2.json b/services/cloudformation/src/main/resources/codegen-resources/service-2.json index 495b89aeda5b..e022b3538b04 100644 --- a/services/cloudformation/src/main/resources/codegen-resources/service-2.json +++ b/services/cloudformation/src/main/resources/codegen-resources/service-2.json @@ -109,6 +109,24 @@ ], "documentation":"

    Creates a list of changes that will be applied to a stack so that you can review the changes before executing them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for a stack that doesn't exist, the change set shows all of the resources that CloudFormation will create. If you create a change set for an existing stack, CloudFormation compares the stack's information with the information that you submit in the change set and lists the differences. Use change sets to understand which resources CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update a stack.

    To create a change set for a stack that doesn't exist, for the ChangeSetType parameter, specify CREATE. To create a change set for an existing stack, specify UPDATE for the ChangeSetType parameter. To create a change set for an import operation, specify IMPORT for the ChangeSetType parameter. After the CreateChangeSet call successfully completes, CloudFormation starts creating the change set. To check the status of the change set or to review it, use the DescribeChangeSet action.

    When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. CloudFormation doesn't make changes until you execute the change set.

    To create a change set for the entire stack hierarchy, set IncludeNestedStacks to True.

    " }, + "CreateGeneratedTemplate":{ + "name":"CreateGeneratedTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGeneratedTemplateInput"}, + "output":{ + "shape":"CreateGeneratedTemplateOutput", + "resultWrapper":"CreateGeneratedTemplateResult" + }, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"LimitExceededException"}, + {"shape":"ConcurrentResourcesLimitExceededException"} + ], + "documentation":"

    Creates a template from existing resources that are not already managed with CloudFormation. You can check the status of the template generation using the DescribeGeneratedTemplate API action.

    " + }, "CreateStack":{ "name":"CreateStack", "http":{ @@ -218,6 +236,19 @@ ], "documentation":"

    Deletes the specified change set. Deleting change sets ensures that no one executes the wrong change set.

    If the call successfully completes, CloudFormation successfully deleted the change set.

    If IncludeNestedStacks specifies True during the creation of the nested change set, then DeleteChangeSet will delete all change sets that belong to the stacks hierarchy and will also delete all change sets for nested stacks with the status of REVIEW_IN_PROGRESS.

    " }, + "DeleteGeneratedTemplate":{ + "name":"DeleteGeneratedTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGeneratedTemplateInput"}, + "errors":[ + {"shape":"GeneratedTemplateNotFoundException"}, + {"shape":"ConcurrentResourcesLimitExceededException"} + ], + "documentation":"

    Deleted a generated template.

    " + }, "DeleteStack":{ "name":"DeleteStack", "http":{ @@ -330,6 +361,22 @@ ], "documentation":"

    Returns hook-related information for the change set and a list of changes that CloudFormation makes when you run the change set.

    " }, + "DescribeGeneratedTemplate":{ + "name":"DescribeGeneratedTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeGeneratedTemplateInput"}, + "output":{ + "shape":"DescribeGeneratedTemplateOutput", + "resultWrapper":"DescribeGeneratedTemplateResult" + }, + "errors":[ + {"shape":"GeneratedTemplateNotFoundException"} + ], + "documentation":"

    Describes a generated template. The output includes details about the progress of the creation of a generated template started by a CreateGeneratedTemplate API action or the update of a generated template started with an UpdateGeneratedTemplate API action.

    " + }, "DescribeOrganizationsAccess":{ "name":"DescribeOrganizationsAccess", "http":{ @@ -364,6 +411,22 @@ "documentation":"

    Returns information about a CloudFormation extension publisher.

    If you don't supply a PublisherId, and you have registered as an extension publisher, DescribePublisher returns information about your own publisher account.

    For more information about registering as a publisher, see:

    ", "idempotent":true }, + "DescribeResourceScan":{ + "name":"DescribeResourceScan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeResourceScanInput"}, + "output":{ + "shape":"DescribeResourceScanOutput", + "resultWrapper":"DescribeResourceScanResult" + }, + "errors":[ + {"shape":"ResourceScanNotFoundException"} + ], + "documentation":"

    Describes details of a resource scan.

    " + }, "DescribeStackDriftDetectionStatus":{ "name":"DescribeStackDriftDetectionStatus", "http":{ @@ -603,6 +666,22 @@ ], "documentation":"

    Updates a stack using the input information that was provided when the specified change set was created. After the call successfully completes, CloudFormation starts updating the stack. Use the DescribeStacks action to view the status of the update.

    When you execute a change set, CloudFormation deletes all other change sets associated with the stack because they aren't valid for the updated stack.

    If a stack policy is associated with the stack, CloudFormation enforces the policy during the update. You can't specify a temporary stack policy that overrides the current policy.

    To create a change set for the entire stack hierarchy, IncludeNestedStacks must have been set to True.

    " }, + "GetGeneratedTemplate":{ + "name":"GetGeneratedTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetGeneratedTemplateInput"}, + "output":{ + "shape":"GetGeneratedTemplateOutput", + "resultWrapper":"GetGeneratedTemplateResult" + }, + "errors":[ + {"shape":"GeneratedTemplateNotFoundException"} + ], + "documentation":"

    Retrieves a generated template. If the template is in an InProgress or Pending status then the template returned will be the template when the template was last in a Complete status. If the template has not yet been in a Complete status then an empty template will be returned.

    " + }, "GetStackPolicy":{ "name":"GetStackPolicy", "http":{ @@ -696,6 +775,19 @@ }, "documentation":"

    Lists all exported output values in the account and Region in which you call this action. Use this action to see the exported output values that you can import into other stacks. To import values, use the Fn::ImportValue function.

    For more information, see CloudFormation export stack output values.

    " }, + "ListGeneratedTemplates":{ + "name":"ListGeneratedTemplates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGeneratedTemplatesInput"}, + "output":{ + "shape":"ListGeneratedTemplatesOutput", + "resultWrapper":"ListGeneratedTemplatesResult" + }, + "documentation":"

    Lists your generated templates in this Region.

    " + }, "ListImports":{ "name":"ListImports", "http":{ @@ -709,6 +801,53 @@ }, "documentation":"

    Lists all stacks that are importing an exported output value. To modify or remove an exported output value, first use this action to see which stacks are using it. To see the exported output values in your account, see ListExports.

    For more information about importing an exported output value, see the Fn::ImportValue function.

    " }, + "ListResourceScanRelatedResources":{ + "name":"ListResourceScanRelatedResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceScanRelatedResourcesInput"}, + "output":{ + "shape":"ListResourceScanRelatedResourcesOutput", + "resultWrapper":"ListResourceScanRelatedResourcesResult" + }, + "errors":[ + {"shape":"ResourceScanNotFoundException"}, + {"shape":"ResourceScanInProgressException"} + ], + "documentation":"

    Lists the related resources for a list of resources from a resource scan. The response indicates whether each returned resource is already managed by CloudFormation.

    " + }, + "ListResourceScanResources":{ + "name":"ListResourceScanResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceScanResourcesInput"}, + "output":{ + "shape":"ListResourceScanResourcesOutput", + "resultWrapper":"ListResourceScanResourcesResult" + }, + "errors":[ + {"shape":"ResourceScanNotFoundException"}, + {"shape":"ResourceScanInProgressException"} + ], + "documentation":"

    Lists the resources from a resource scan. The results can be filtered by resource identifier, resource type prefix, tag key, and tag value. Only resources that match all specified filters are returned. The response indicates whether each returned resource is already managed by CloudFormation.

    " + }, + "ListResourceScans":{ + "name":"ListResourceScans", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceScansInput"}, + "output":{ + "shape":"ListResourceScansOutput", + "resultWrapper":"ListResourceScansResult" + }, + "documentation":"

    List the resource scans from newest to oldest. By default it will return up to 10 resource scans.

    " + }, "ListStackInstanceResourceDrifts":{ "name":"ListStackInstanceResourceDrifts", "http":{ @@ -1005,6 +1144,23 @@ "input":{"shape":"SignalResourceInput"}, "documentation":"

    Sends a signal to the specified resource with a success or failure status. You can use the SignalResource operation in conjunction with a creation policy or update policy. CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The SignalResource operation is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance.

    " }, + "StartResourceScan":{ + "name":"StartResourceScan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartResourceScanInput"}, + "output":{ + "shape":"StartResourceScanOutput", + "resultWrapper":"StartResourceScanResult" + }, + "errors":[ + {"shape":"ResourceScanInProgressException"}, + {"shape":"ResourceScanLimitExceededException"} + ], + "documentation":"

    Starts a scan of the resources in this account in this Region. You can the status of a scan using the ListResourceScans API action.

    " + }, "StopStackSetOperation":{ "name":"StopStackSetOperation", "http":{ @@ -1041,6 +1197,24 @@ "documentation":"

    Tests a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry.

    • For resource types, this includes passing all contracts tests defined for the type.

    • For modules, this includes determining if the module's model meets all necessary requirements.

    For more information, see Testing your public extension prior to publishing in the CloudFormation CLI User Guide.

    If you don't specify a version, CloudFormation uses the default version of the extension in your account and Region for testing.

    To perform testing, CloudFormation assumes the execution role specified when the type was registered. For more information, see RegisterType.

    Once you've initiated testing on an extension using TestType, you can pass the returned TypeVersionArn into DescribeType to monitor the current test status and test status description for the extension.

    An extension must have a test status of PASSED before it can be published. For more information, see Publishing extensions to make them available for public use in the CloudFormation CLI User Guide.

    ", "idempotent":true }, + "UpdateGeneratedTemplate":{ + "name":"UpdateGeneratedTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGeneratedTemplateInput"}, + "output":{ + "shape":"UpdateGeneratedTemplateOutput", + "resultWrapper":"UpdateGeneratedTemplateResult" + }, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"GeneratedTemplateNotFoundException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

    Updates a generated template. This can be used to change the name, add and remove resources, refresh resources, and change the DeletionPolicy and UpdateReplacePolicy settings. You can check the status of the update to the generated template using the DescribeGeneratedTemplate API action.

    " + }, "UpdateStack":{ "name":"UpdateStack", "http":{ @@ -1662,6 +1836,18 @@ "SOFT_FAILURE_TOLERANCE" ] }, + "ConcurrentResourcesLimitExceededException":{ + "type":"structure", + "members":{ + }, + "documentation":"

    No more than 5 generated templates can be in an InProgress or Pending status at one time. This error is also returned if a generated template that is in an InProgress or Pending status is attempted to be updated or deleted.

    ", + "error":{ + "code":"ConcurrentResourcesLimitExceeded", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, "ConfigurationSchema":{ "type":"string", "max":60000, @@ -1803,6 +1989,37 @@ }, "documentation":"

    The output for the CreateChangeSet action.

    " }, + "CreateGeneratedTemplateInput":{ + "type":"structure", + "required":["GeneratedTemplateName"], + "members":{ + "Resources":{ + "shape":"ResourceDefinitions", + "documentation":"

    An optional list of resources to be included in the generated template.

    If no resources are specified,the template will be created without any resources. Resources can be added to the template using the UpdateGeneratedTemplate API action.

    " + }, + "GeneratedTemplateName":{ + "shape":"GeneratedTemplateName", + "documentation":"

    The name assigned to the generated template.

    " + }, + "StackName":{ + "shape":"StackName", + "documentation":"

    An optional name or ARN of a stack to use as the base stack for the generated template.

    " + }, + "TemplateConfiguration":{ + "shape":"TemplateConfiguration", + "documentation":"

    The configuration details of the generated template, including the DeletionPolicy and UpdateReplacePolicy.

    " + } + } + }, + "CreateGeneratedTemplateOutput":{ + "type":"structure", + "members":{ + "GeneratedTemplateId":{ + "shape":"GeneratedTemplateId", + "documentation":"

    The ID of the generated template.

    " + } + } + }, "CreateStackInput":{ "type":"structure", "required":["StackName"], @@ -1833,7 +2050,7 @@ }, "TimeoutInMinutes":{ "shape":"TimeoutMinutes", - "documentation":"

    The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back.

    " + "documentation":"

    The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back.

    " }, "NotificationARNs":{ "shape":"NotificationARNs", @@ -2085,6 +2302,16 @@ }, "documentation":"

    The output for the DeleteChangeSet action.

    " }, + "DeleteGeneratedTemplateInput":{ + "type":"structure", + "required":["GeneratedTemplateName"], + "members":{ + "GeneratedTemplateName":{ + "shape":"GeneratedTemplateName", + "documentation":"

    The name or Amazon Resource Name (ARN) of a generated template.

    " + } + } + }, "DeleteStackInput":{ "type":"structure", "required":["StackName"], @@ -2423,6 +2650,65 @@ }, "documentation":"

    The output for the DescribeChangeSet action.

    " }, + "DescribeGeneratedTemplateInput":{ + "type":"structure", + "required":["GeneratedTemplateName"], + "members":{ + "GeneratedTemplateName":{ + "shape":"GeneratedTemplateName", + "documentation":"

    The name or Amazon Resource Name (ARN) of a generated template.

    " + } + } + }, + "DescribeGeneratedTemplateOutput":{ + "type":"structure", + "members":{ + "GeneratedTemplateId":{ + "shape":"GeneratedTemplateId", + "documentation":"

    The Amazon Resource Name (ARN) of the generated template. The format is arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}. For example, arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc .

    " + }, + "GeneratedTemplateName":{ + "shape":"GeneratedTemplateName", + "documentation":"

    The name of the generated template.

    " + }, + "Resources":{ + "shape":"ResourceDetails", + "documentation":"

    A list of objects describing the details of the resources in the template generation.

    " + }, + "Status":{ + "shape":"GeneratedTemplateStatus", + "documentation":"

    The status of the template generation. Supported values are:

    • CreatePending - the creation of the template is pending.

    • CreateInProgress - the creation of the template is in progress.

    • DeletePending - the deletion of the template is pending.

    • DeleteInProgress - the deletion of the template is in progress.

    • UpdatePending - the update of the template is pending.

    • UpdateInProgress - the update of the template is in progress.

    • Failed - the template operation failed.

    • Complete - the template operation is complete.

    " + }, + "StatusReason":{ + "shape":"TemplateStatusReason", + "documentation":"

    The reason for the current template generation status. This will provide more details if a failure happened.

    " + }, + "CreationTime":{ + "shape":"CreationTime", + "documentation":"

    The time the generated template was created.

    " + }, + "LastUpdatedTime":{ + "shape":"LastUpdatedTime", + "documentation":"

    The time the generated template was last updated.

    " + }, + "Progress":{ + "shape":"TemplateProgress", + "documentation":"

    An object describing the progress of the template generation.

    " + }, + "StackId":{ + "shape":"StackId", + "documentation":"

    The stack ARN of the base stack if a base stack was provided when generating the template.

    " + }, + "TemplateConfiguration":{ + "shape":"TemplateConfiguration", + "documentation":"

    The configuration details of the generated template, including the DeletionPolicy and UpdateReplacePolicy.

    " + }, + "TotalWarnings":{ + "shape":"TotalWarnings", + "documentation":"

    The number of warnings generated for this template. The warnings are found in the details of each of the resources in the template.

    " + } + } + }, "DescribeOrganizationsAccessInput":{ "type":"structure", "members":{ @@ -2471,6 +2757,57 @@ } } }, + "DescribeResourceScanInput":{ + "type":"structure", + "required":["ResourceScanId"], + "members":{ + "ResourceScanId":{ + "shape":"ResourceScanId", + "documentation":"

    The Amazon Resource Name (ARN) of the resource scan.

    " + } + } + }, + "DescribeResourceScanOutput":{ + "type":"structure", + "members":{ + "ResourceScanId":{ + "shape":"ResourceScanId", + "documentation":"

    The Amazon Resource Name (ARN) of the resource scan. The format is arn:${Partition}:cloudformation:${Region}:${Account}:resourceScan/${Id}. An example is arn:aws:cloudformation:us-east-1:123456789012:resourceScan/f5b490f7-7ed4-428a-aa06-31ff25db0772 .

    " + }, + "Status":{ + "shape":"ResourceScanStatus", + "documentation":"

    Status of the resource scan.

    INPROGRESS

    The resource scan is still in progress.

    COMPLETE

    The resource scan is complete.

    EXPIRED

    The resource scan has expired.

    FAILED

    The resource scan has failed.

    " + }, + "StatusReason":{ + "shape":"ResourceScanStatusReason", + "documentation":"

    The reason for the resource scan status, providing more information if a failure happened.

    " + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

    The time that the resource scan was started.

    " + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

    The time that the resource scan was finished.

    " + }, + "PercentageCompleted":{ + "shape":"PercentageCompleted", + "documentation":"

    The percentage of the resource scan that has been completed.

    " + }, + "ResourceTypes":{ + "shape":"ResourceTypes", + "documentation":"

    The list of resource types for the specified scan. Resource types are only available for scans with a Status set to COMPLETE or FAILED .

    " + }, + "ResourcesScanned":{ + "shape":"ResourcesScanned", + "documentation":"

    The number of resources that were listed. This is only available for scans with a Status set to COMPLETE, EXPIRED, or FAILED .

    " + }, + "ResourcesRead":{ + "shape":"ResourcesRead", + "documentation":"

    The number of resources that were read. This is only available for scans with a Status set to COMPLETE, EXPIRED, or FAILED .

    This field may be 0 if the resource scan failed with a ResourceScanLimitExceededException.

    " + } + } + }, "DescribeStackDriftDetectionStatusInput":{ "type":"structure", "required":["StackDriftDetectionId"], @@ -3164,6 +3501,91 @@ "max":100, "min":0 }, + "GeneratedTemplateDeletionPolicy":{ + "type":"string", + "enum":[ + "DELETE", + "RETAIN" + ] + }, + "GeneratedTemplateId":{ + "type":"string", + "max":256, + "min":1 + }, + "GeneratedTemplateName":{ + "type":"string", + "max":128, + "min":1 + }, + "GeneratedTemplateNotFoundException":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The generated template was not found.

    ", + "error":{ + "code":"GeneratedTemplateNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "GeneratedTemplateResourceStatus":{ + "type":"string", + "enum":[ + "PENDING", + "IN_PROGRESS", + "FAILED", + "COMPLETE" + ] + }, + "GeneratedTemplateStatus":{ + "type":"string", + "enum":[ + "CREATE_PENDING", + "UPDATE_PENDING", + "DELETE_PENDING", + "CREATE_IN_PROGRESS", + "UPDATE_IN_PROGRESS", + "DELETE_IN_PROGRESS", + "FAILED", + "COMPLETE" + ] + }, + "GeneratedTemplateUpdateReplacePolicy":{ + "type":"string", + "enum":[ + "DELETE", + "RETAIN" + ] + }, + "GetGeneratedTemplateInput":{ + "type":"structure", + "required":["GeneratedTemplateName"], + "members":{ + "Format":{ + "shape":"TemplateFormat", + "documentation":"

    The language to use to retrieve for the generated template. Supported values are:

    • JSON

    • YAML

    " + }, + "GeneratedTemplateName":{ + "shape":"GeneratedTemplateName", + "documentation":"

    The name or Amazon Resource Name (ARN) of the generated template. The format is arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}. For example, arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc .

    " + } + } + }, + "GetGeneratedTemplateOutput":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"GeneratedTemplateStatus", + "documentation":"

    The status of the template generation. Supported values are:

    • CreatePending - the creation of the template is pending.

    • CreateInProgress - the creation of the template is in progress.

    • DeletePending - the deletion of the template is pending.

    • DeleteInProgress - the deletion of the template is in progress.

    • UpdatePending - the update of the template is pending.

    • UpdateInProgress - the update of the template is in progress.

    • Failed - the template operation failed.

    • Complete - the template operation is complete.

    " + }, + "TemplateBody":{ + "shape":"TemplateBody", + "documentation":"

    The template body of the generated template, in the language specified by the Language parameter.

    " + } + } + }, "GetStackPolicyInput":{ "type":"structure", "required":["StackName"], @@ -3496,6 +3918,19 @@ "IsActivated":{"type":"boolean"}, "IsDefaultConfiguration":{"type":"boolean"}, "IsDefaultVersion":{"type":"boolean"}, + "JazzLogicalResourceIds":{ + "type":"list", + "member":{"shape":"LogicalResourceId"}, + "max":500, + "min":1 + }, + "JazzResourceIdentifierProperties":{ + "type":"map", + "key":{"shape":"JazzResourceIdentifierPropertyKey"}, + "value":{"shape":"JazzResourceIdentifierPropertyValue"} + }, + "JazzResourceIdentifierPropertyKey":{"type":"string"}, + "JazzResourceIdentifierPropertyValue":{"type":"string"}, "Key":{"type":"string"}, "LastUpdatedTime":{"type":"timestamp"}, "LimitExceededException":{ @@ -3550,43 +3985,180 @@ } } }, - "ListExportsOutput":{ + "ListExportsOutput":{ + "type":"structure", + "members":{ + "Exports":{ + "shape":"Exports", + "documentation":"

    The output for the ListExports action.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    If the output exceeds 100 exported output values, a string that identifies the next page of exports. If there is no additional page, this value is null.

    " + } + } + }, + "ListGeneratedTemplatesInput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

    A string that identifies the next page of resource scan results.

    " + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    If the number of available results exceeds this maximum, the response includes a NextToken value that you can use for the NextToken parameter to get the next set of results. By default the ListGeneratedTemplates API action will return at most 50 results in each response. The maximum value is 100.

    " + } + } + }, + "ListGeneratedTemplatesOutput":{ + "type":"structure", + "members":{ + "Summaries":{ + "shape":"TemplateSummaries", + "documentation":"

    A list of summaries of the generated templates.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListGeneratedTemplates again and use that value for the NextToken parameter. If the request returns all results, NextToken is set to an empty string.

    " + } + } + }, + "ListImportsInput":{ + "type":"structure", + "required":["ExportName"], + "members":{ + "ExportName":{ + "shape":"ExportName", + "documentation":"

    The name of the exported output value. CloudFormation returns the stack names that are importing this value.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    A string (provided by the ListImports response output) that identifies the next page of stacks that are importing the specified exported output value.

    " + } + } + }, + "ListImportsOutput":{ + "type":"structure", + "members":{ + "Imports":{ + "shape":"Imports", + "documentation":"

    A list of stack names that are importing the specified exported output value.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    A string that identifies the next page of exports. If there is no additional page, this value is null.

    " + } + } + }, + "ListResourceScanRelatedResourcesInput":{ + "type":"structure", + "required":[ + "ResourceScanId", + "Resources" + ], + "members":{ + "ResourceScanId":{ + "shape":"ResourceScanId", + "documentation":"

    The Amazon Resource Name (ARN) of the resource scan.

    " + }, + "Resources":{ + "shape":"ScannedResourceIdentifiers", + "documentation":"

    The list of resources for which you want to get the related resources. Up to 100 resources can be provided.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    A string that identifies the next page of resource scan results.

    " + }, + "MaxResults":{ + "shape":"BoxedMaxResults", + "documentation":"

    If the number of available results exceeds this maximum, the response includes a NextToken value that you can use for the NextToken parameter to get the next set of results. By default the ListResourceScanRelatedResources API action will return up to 100 results in each response. The maximum value is 100.

    " + } + } + }, + "ListResourceScanRelatedResourcesOutput":{ + "type":"structure", + "members":{ + "RelatedResources":{ + "shape":"RelatedResources", + "documentation":"

    List of up to MaxResults resources in the specified resource scan related to the specified resources.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListResourceScanRelatedResources again and use that value for the NextToken parameter. If the request returns all results, NextToken is set to an empty string.

    " + } + } + }, + "ListResourceScanResourcesInput":{ + "type":"structure", + "required":["ResourceScanId"], + "members":{ + "ResourceScanId":{ + "shape":"ResourceScanId", + "documentation":"

    The Amazon Resource Name (ARN) of the resource scan.

    " + }, + "ResourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

    If specified, the returned resources will have the specified resource identifier (or one of them in the case where the resource has multiple identifiers).

    " + }, + "ResourceTypePrefix":{ + "shape":"ResourceTypePrefix", + "documentation":"

    If specified, the returned resources will be of any of the resource types with the specified prefix.

    " + }, + "TagKey":{ + "shape":"TagKey", + "documentation":"

    If specified, the returned resources will have a matching tag key.

    " + }, + "TagValue":{ + "shape":"TagValue", + "documentation":"

    If specified, the returned resources will have a matching tag value.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    A string that identifies the next page of resource scan results.

    " + }, + "MaxResults":{ + "shape":"ResourceScannerMaxResults", + "documentation":"

    If the number of available results exceeds this maximum, the response includes a NextToken value that you can use for the NextToken parameter to get the next set of results. By default the ListResourceScanResources API action will return at most 100 results in each response. The maximum value is 100.

    " + } + } + }, + "ListResourceScanResourcesOutput":{ "type":"structure", "members":{ - "Exports":{ - "shape":"Exports", - "documentation":"

    The output for the ListExports action.

    " + "Resources":{ + "shape":"ScannedResources", + "documentation":"

    List of up to MaxResults resources in the specified resource scan that match all of the specified filters.

    " }, "NextToken":{ "shape":"NextToken", - "documentation":"

    If the output exceeds 100 exported output values, a string that identifies the next page of exports. If there is no additional page, this value is null.

    " + "documentation":"

    If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListResourceScanResources again and use that value for the NextToken parameter. If the request returns all results, NextToken is set to an empty string.

    " } } }, - "ListImportsInput":{ + "ListResourceScansInput":{ "type":"structure", - "required":["ExportName"], "members":{ - "ExportName":{ - "shape":"ExportName", - "documentation":"

    The name of the exported output value. CloudFormation returns the stack names that are importing this value.

    " - }, "NextToken":{ "shape":"NextToken", - "documentation":"

    A string (provided by the ListImports response output) that identifies the next page of stacks that are importing the specified exported output value.

    " + "documentation":"

    A string that identifies the next page of resource scan results.

    " + }, + "MaxResults":{ + "shape":"ResourceScannerMaxResults", + "documentation":"

    If the number of available results exceeds this maximum, the response includes a NextToken value that you can use for the NextToken parameter to get the next set of results. The default value is 10. The maximum value is 100.

    " } } }, - "ListImportsOutput":{ + "ListResourceScansOutput":{ "type":"structure", "members":{ - "Imports":{ - "shape":"Imports", - "documentation":"

    A list of stack names that are importing the specified exported output value.

    " + "ResourceScanSummaries":{ + "shape":"ResourceScanSummaries", + "documentation":"

    The list of scans returned.

    " }, "NextToken":{ "shape":"NextToken", - "documentation":"

    A string that identifies the next page of exports. If there is no additional page, this value is null.

    " + "documentation":"

    If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListResourceScans again and use that value for the NextToken parameter. If the request returns all results, NextToken is set to an empty string.

    " } } }, @@ -4036,6 +4608,7 @@ "max":100000, "min":1 }, + "ManagedByStack":{"type":"boolean"}, "ManagedExecution":{ "type":"structure", "members":{ @@ -4105,6 +4678,10 @@ "member":{"shape":"NotificationARN"}, "max":5 }, + "NumberOfResources":{ + "type":"integer", + "min":0 + }, "OnFailure":{ "type":"string", "enum":[ @@ -4328,6 +4905,7 @@ "type":"list", "member":{"shape":"Parameter"} }, + "PercentageCompleted":{"type":"double"}, "PermissionModels":{ "type":"string", "enum":[ @@ -4365,6 +4943,7 @@ "pattern":"arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:[0-9]{12}:type/.+" }, "Properties":{"type":"string"}, + "PropertyDescription":{"type":"string"}, "PropertyDifference":{ "type":"structure", "required":[ @@ -4510,6 +5089,7 @@ "members":{ } }, + "RefreshAllResources":{"type":"boolean"}, "Region":{ "type":"string", "pattern":"^[a-zA-Z0-9-]{1,128}$" @@ -4615,6 +5195,10 @@ "HOOK" ] }, + "RelatedResources":{ + "type":"list", + "member":{"shape":"ScannedResource"} + }, "Replacement":{ "type":"string", "enum":[ @@ -4655,6 +5239,7 @@ "type":"list", "member":{"shape":"RequiredActivatedType"} }, + "RequiredProperty":{"type":"boolean"}, "RequiresRecreation":{ "type":"string", "enum":[ @@ -4743,6 +5328,71 @@ "type":"list", "member":{"shape":"ResourceChangeDetail"} }, + "ResourceDefinition":{ + "type":"structure", + "required":[ + "ResourceType", + "ResourceIdentifier" + ], + "members":{ + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

    The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see IaC generator supported resource types in the CloudFormation User Guide

    " + }, + "LogicalResourceId":{ + "shape":"LogicalResourceId", + "documentation":"

    The logical resource id for this resource in the generated template.

    " + }, + "ResourceIdentifier":{ + "shape":"ResourceIdentifierProperties", + "documentation":"

    A list of up to 256 key-value pairs that identifies the scanned resource. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be \"TableName\": \"MyDDBTable\". For more information, see primaryIdentifier in the CloudFormation Command Line Interface User guide for extension development.

    " + } + }, + "documentation":"

    A resource included in a generated template. This data type is used with the CreateGeneratedTemplate and UpdateGeneratedTemplate API actions.

    " + }, + "ResourceDefinitions":{ + "type":"list", + "member":{"shape":"ResourceDefinition"}, + "max":500, + "min":1 + }, + "ResourceDetail":{ + "type":"structure", + "members":{ + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

    The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see IaC generator supported resource types In the CloudFormation User Guide

    " + }, + "LogicalResourceId":{ + "shape":"LogicalResourceId", + "documentation":"

    The logical id for this resource in the final generated template.

    " + }, + "ResourceIdentifier":{ + "shape":"ResourceIdentifierProperties", + "documentation":"

    A list of up to 256 key-value pairs that identifies the resource in the generated template. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be \"TableName\": \"MyDDBTable\". For more information, see primaryIdentifier in the CloudFormation Command Line Interface User guide for extension development.

    " + }, + "ResourceStatus":{ + "shape":"GeneratedTemplateResourceStatus", + "documentation":"

    Status of the processing of a resource in a generated template.

    InProgress

    The resource processing is still in progress.

    Complete

    The resource processing is complete.

    Pending

    The resource processing is pending.

    Failed

    The resource processing has failed.

    " + }, + "ResourceStatusReason":{ + "shape":"ResourceStatusReason", + "documentation":"

    The reason for the resource detail, providing more information if a failure happened.

    " + }, + "Warnings":{ + "shape":"WarningDetails", + "documentation":"

    The warnings generated for this resource.

    " + } + }, + "documentation":"

    Details about a resource in a generated template

    " + }, + "ResourceDetails":{ + "type":"list", + "member":{"shape":"ResourceDetail"}, + "max":500, + "min":1 + }, + "ResourceIdentifier":{"type":"string"}, "ResourceIdentifierProperties":{ "type":"map", "key":{"shape":"ResourceIdentifierPropertyKey"}, @@ -4792,6 +5442,91 @@ "min":1 }, "ResourceProperties":{"type":"string"}, + "ResourceScanId":{"type":"string"}, + "ResourceScanInProgressException":{ + "type":"structure", + "members":{ + }, + "documentation":"

    A resource scan is currently in progress. Only one can be run at a time for an account in a Region.

    ", + "error":{ + "code":"ResourceScanInProgress", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ResourceScanLimitExceededException":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The limit on resource scans has been exceeded. Reasons include:

    • Exceeded the daily quota for resource scans.

    • A resource scan recently failed. You must wait 10 minutes before starting a new resource scan.

    • The last resource scan failed after exceeding 100,000 resources. When this happens, you must wait 24 hours before starting a new resource scan.

    ", + "error":{ + "code":"ResourceScanLimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ResourceScanNotFoundException":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The resource scan was not found.

    ", + "error":{ + "code":"ResourceScanNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ResourceScanStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "FAILED", + "COMPLETE", + "EXPIRED" + ] + }, + "ResourceScanStatusReason":{"type":"string"}, + "ResourceScanSummaries":{ + "type":"list", + "member":{"shape":"ResourceScanSummary"} + }, + "ResourceScanSummary":{ + "type":"structure", + "members":{ + "ResourceScanId":{ + "shape":"ResourceScanId", + "documentation":"

    The Amazon Resource Name (ARN) of the resource scan.

    " + }, + "Status":{ + "shape":"ResourceScanStatus", + "documentation":"

    Status of the resource scan.

    INPROGRESS

    The resource scan is still in progress.

    COMPLETE

    The resource scan is complete.

    EXPIRED

    The resource scan has expired.

    FAILED

    The resource scan has failed.

    " + }, + "StatusReason":{ + "shape":"ResourceScanStatusReason", + "documentation":"

    The reason for the resource scan status, providing more information if a failure happened.

    " + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

    The time that the resource scan was started.

    " + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

    The time that the resource scan was finished.

    " + }, + "PercentageCompleted":{ + "shape":"PercentageCompleted", + "documentation":"

    The percentage of the resource scan that has been completed.

    " + } + }, + "documentation":"

    A summary of the resource scan. This is returned by the ListResourceScan API action.

    " + }, + "ResourceScannerMaxResults":{ + "type":"integer", + "box":true + }, "ResourceSignalStatus":{ "type":"string", "enum":[ @@ -4882,10 +5617,29 @@ "max":256, "min":1 }, + "ResourceTypePrefix":{"type":"string"}, "ResourceTypes":{ "type":"list", "member":{"shape":"ResourceType"} }, + "ResourcesFailed":{ + "type":"integer", + "min":0 + }, + "ResourcesPending":{ + "type":"integer", + "min":0 + }, + "ResourcesProcessing":{ + "type":"integer", + "min":0 + }, + "ResourcesRead":{"type":"integer"}, + "ResourcesScanned":{"type":"integer"}, + "ResourcesSucceeded":{ + "type":"integer", + "min":0 + }, "ResourcesToImport":{ "type":"list", "member":{"shape":"ResourceToImport"}, @@ -4993,6 +5747,50 @@ "max":4096, "min":1 }, + "ScannedResource":{ + "type":"structure", + "members":{ + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

    The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see IaC generator supported resource types In the CloudFormation User Guide

    " + }, + "ResourceIdentifier":{ + "shape":"JazzResourceIdentifierProperties", + "documentation":"

    A list of up to 256 key-value pairs that identifies for the scanned resource. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be \"TableName\": \"MyDDBTable\". For more information, see primaryIdentifier in the CloudFormation Command Line Interface User guide for extension development.

    " + }, + "ManagedByStack":{ + "shape":"ManagedByStack", + "documentation":"

    If true, the resource is managed by a CloudFormation stack.

    " + } + }, + "documentation":"

    A scanned resource returned by ListResourceScanResources or ListResourceScanRelatedResources.

    " + }, + "ScannedResourceIdentifier":{ + "type":"structure", + "required":[ + "ResourceType", + "ResourceIdentifier" + ], + "members":{ + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

    The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see IaC generator supported resource types In the CloudFormation User Guide

    " + }, + "ResourceIdentifier":{ + "shape":"JazzResourceIdentifierProperties", + "documentation":"

    A list of up to 256 key-value pairs that identifies the scanned resource. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be \"TableName\": \"MyDDBTable\". For more information, see primaryIdentifier in the CloudFormation Command Line Interface User guide for extension development.

    " + } + }, + "documentation":"

    Identifies a scanned resource. This is used with the ListResourceScanRelatedResources API action.

    " + }, + "ScannedResourceIdentifiers":{ + "type":"list", + "member":{"shape":"ScannedResourceIdentifier"} + }, + "ScannedResources":{ + "type":"list", + "member":{"shape":"ScannedResource"} + }, "Scope":{ "type":"list", "member":{"shape":"ResourceAttribute"} @@ -6137,7 +6935,7 @@ }, "RegionOrder":{ "shape":"RegionList", - "documentation":"

    The order of the Regions where you want to perform the stack operation.

    " + "documentation":"

    The order of the Regions where you want to perform the stack operation.

    RegionOrder isn't followed if AutoDeployment is enabled.

    " }, "FailureToleranceCount":{ "shape":"FailureToleranceCount", @@ -6435,6 +7233,24 @@ }, "exception":true }, + "StartResourceScanInput":{ + "type":"structure", + "members":{ + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

    A unique identifier for this StartResourceScan request. Specify this token if you plan to retry requests so that CloudFormation knows that you're not attempting to start a new resource scan.

    " + } + } + }, + "StartResourceScanOutput":{ + "type":"structure", + "members":{ + "ResourceScanId":{ + "shape":"ResourceScanId", + "documentation":"

    The Amazon Resource Name (ARN) of the resource scan. The format is arn:${Partition}:cloudformation:${Region}:${Account}:resourceScan/${Id}. An example is arn:aws:cloudformation:us-east-1:123456789012:resourceScan/f5b490f7-7ed4-428a-aa06-31ff25db0772 .

    " + } + } + }, "StatusMessage":{ "type":"string", "max":1024 @@ -6511,7 +7327,28 @@ "type":"string", "min":1 }, + "TemplateConfiguration":{ + "type":"structure", + "members":{ + "DeletionPolicy":{ + "shape":"GeneratedTemplateDeletionPolicy", + "documentation":"

    The DeletionPolicy assigned to resources in the generated template. Supported values are:

    • DELETE - delete all resources when the stack is deleted.

    • RETAIN - retain all resources when the stack is deleted.

    For more information, see DeletionPolicy attribute in the CloudFormation User Guide.

    " + }, + "UpdateReplacePolicy":{ + "shape":"GeneratedTemplateUpdateReplacePolicy", + "documentation":"

    The UpdateReplacePolicy assigned to resources in the generated template. Supported values are:

    • DELETE - delete all resources when the resource is replaced during an update operation.

    • RETAIN - retain all resources when the resource is replaced during an update operation.

    For more information, see UpdateReplacePolicy attribute in the CloudFormation User Guide.

    " + } + }, + "documentation":"

    The configuration details of a generated template.

    " + }, "TemplateDescription":{"type":"string"}, + "TemplateFormat":{ + "type":"string", + "enum":[ + "JSON", + "YAML" + ] + }, "TemplateParameter":{ "type":"structure", "members":{ @@ -6538,6 +7375,28 @@ "type":"list", "member":{"shape":"TemplateParameter"} }, + "TemplateProgress":{ + "type":"structure", + "members":{ + "ResourcesSucceeded":{ + "shape":"ResourcesSucceeded", + "documentation":"

    The number of resources that succeeded the template generation.

    " + }, + "ResourcesFailed":{ + "shape":"ResourcesFailed", + "documentation":"

    The number of resources that failed the template generation.

    " + }, + "ResourcesProcessing":{ + "shape":"ResourcesProcessing", + "documentation":"

    The number of resources that are in-process for the template generation.

    " + }, + "ResourcesPending":{ + "shape":"ResourcesPending", + "documentation":"

    The number of resources that are still pending the template generation.

    " + } + }, + "documentation":"

    A summary of the progress of the template generation.

    " + }, "TemplateStage":{ "type":"string", "enum":[ @@ -6545,6 +7404,49 @@ "Processed" ] }, + "TemplateStatusReason":{ + "type":"string", + "max":256, + "min":1 + }, + "TemplateSummaries":{ + "type":"list", + "member":{"shape":"TemplateSummary"} + }, + "TemplateSummary":{ + "type":"structure", + "members":{ + "GeneratedTemplateId":{ + "shape":"GeneratedTemplateId", + "documentation":"

    The Amazon Resource Name (ARN) of the generated template. The format is arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}. For example, arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc .

    " + }, + "GeneratedTemplateName":{ + "shape":"GeneratedTemplateName", + "documentation":"

    The name of the generated template.

    " + }, + "Status":{ + "shape":"GeneratedTemplateStatus", + "documentation":"

    The status of the template generation. Supported values are:

    • CreatePending - the creation of the template is pending.

    • CreateInProgress - the creation of the template is in progress.

    • DeletePending - the deletion of the template is pending.

    • DeleteInProgress - the deletion of the template is in progress.

    • UpdatePending - the update of the template is pending.

    • UpdateInProgress - the update of the template is in progress.

    • Failed - the template operation failed.

    • Complete - the template operation is complete.

    " + }, + "StatusReason":{ + "shape":"TemplateStatusReason", + "documentation":"

    The reason for the current template generation status. This will provide more details if a failure happened.

    " + }, + "CreationTime":{ + "shape":"CreationTime", + "documentation":"

    The time the generated template was created.

    " + }, + "LastUpdatedTime":{ + "shape":"LastUpdatedTime", + "documentation":"

    The time the generated template was last updated.

    " + }, + "NumberOfResources":{ + "shape":"NumberOfResources", + "documentation":"

    The number of resources in the generated template. This is a total of resources in pending, in-progress, completed, and failed states.

    " + } + }, + "documentation":"

    The summary of a generated template.

    " + }, "TemplateSummaryConfig":{ "type":"structure", "members":{ @@ -6628,6 +7530,10 @@ "type":"integer", "min":0 }, + "TotalWarnings":{ + "type":"integer", + "min":0 + }, "TransformName":{"type":"string"}, "TransformsList":{ "type":"list", @@ -6915,6 +7821,45 @@ "type":"list", "member":{"shape":"TypeConfigurationIdentifier"} }, + "UpdateGeneratedTemplateInput":{ + "type":"structure", + "required":["GeneratedTemplateName"], + "members":{ + "GeneratedTemplateName":{ + "shape":"GeneratedTemplateName", + "documentation":"

    The name or Amazon Resource Name (ARN) of a generated template.

    " + }, + "NewGeneratedTemplateName":{ + "shape":"GeneratedTemplateName", + "documentation":"

    An optional new name to assign to the generated template.

    " + }, + "AddResources":{ + "shape":"ResourceDefinitions", + "documentation":"

    An optional list of resources to be added to the generated template.

    " + }, + "RemoveResources":{ + "shape":"JazzLogicalResourceIds", + "documentation":"

    A list of logical ids for resources to remove from the generated template.

    " + }, + "RefreshAllResources":{ + "shape":"RefreshAllResources", + "documentation":"

    If true, update the resource properties in the generated template with their current live state. This feature is useful when the resource properties in your generated a template does not reflect the live state of the resource properties. This happens when a user update the resource properties after generating a template.

    " + }, + "TemplateConfiguration":{ + "shape":"TemplateConfiguration", + "documentation":"

    The configuration details of the generated template, including the DeletionPolicy and UpdateReplacePolicy.

    " + } + } + }, + "UpdateGeneratedTemplateOutput":{ + "type":"structure", + "members":{ + "GeneratedTemplateId":{ + "shape":"GeneratedTemplateId", + "documentation":"

    The Amazon Resource Name (ARN) of the generated template. The format is arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}. For example, arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc .

    " + } + } + }, "UpdateStackInput":{ "type":"structure", "required":["StackName"], @@ -7232,6 +8177,54 @@ "PRIVATE" ] }, + "WarningDetail":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"WarningType", + "documentation":"

    The type of this warning. For more information, see IaC generator and write-only properties in the CloudFormation User Guide.

    • MUTUALLY_EXCLUSIVE_PROPERTIES - The resource requires mutually-exclusive write-only properties. The IaC generator selects one set of mutually exclusive properties and converts the included properties into parameters. The parameter names have a suffix OneOf and the parameter descriptions indicate that the corresponding property can be replaced with other exclusive properties.

    • UNSUPPORTED_PROPERTIES - Unsupported properties are present in the resource. One example of unsupported properties would be a required write-only property that is an array, because a parameter cannot be an array. Another example is an optional write-only property.

    • MUTUALLY_EXCLUSIVE_TYPES - One or more required write-only properties are found in the resource, and the type of that property can be any of several types.

    Currently the resource and property reference documentation does not indicate if a property uses a type of oneOf or anyOf. You need to look at the resource provider schema.

    " + }, + "Properties":{ + "shape":"WarningProperties", + "documentation":"

    The properties of the resource that are impacted by this warning.

    " + } + }, + "documentation":"

    The warnings generated for a specific resource for this generated template.

    " + }, + "WarningDetails":{ + "type":"list", + "member":{"shape":"WarningDetail"} + }, + "WarningProperties":{ + "type":"list", + "member":{"shape":"WarningProperty"} + }, + "WarningProperty":{ + "type":"structure", + "members":{ + "PropertyPath":{ + "shape":"PropertyPath", + "documentation":"

    The path of the property. For example, if this is for the S3Bucket member of the Code property, the property path would be Code/S3Bucket.

    " + }, + "Required":{ + "shape":"RequiredProperty", + "documentation":"

    If true, the specified property is required.

    " + }, + "Description":{ + "shape":"PropertyDescription", + "documentation":"

    The description of the property from the resource provider schema.

    " + } + }, + "documentation":"

    A specific property that is impacted by a warning.

    " + }, + "WarningType":{ + "type":"string", + "enum":[ + "MUTUALLY_EXCLUSIVE_PROPERTIES", + "UNSUPPORTED_PROPERTIES", + "MUTUALLY_EXCLUSIVE_TYPES" + ] + }, "Warnings":{ "type":"structure", "members":{ diff --git a/services/cloudfront/pom.xml b/services/cloudfront/pom.xml index 6f0045b8d96e..d38b3188ed63 100644 --- a/services/cloudfront/pom.xml +++ b/services/cloudfront/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudfront AWS Java SDK :: Services :: Amazon CloudFront diff --git a/services/cloudfront/src/main/resources/codegen-resources/customization.config b/services/cloudfront/src/main/resources/codegen-resources/customization.config index 7c53627831d8..79779a0ac280 100644 --- a/services/cloudfront/src/main/resources/codegen-resources/customization.config +++ b/services/cloudfront/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,5 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listCloudFrontOriginAccessIdentities", "listDistributions", "listFieldLevelEncryptionConfigs", @@ -9,7 +9,9 @@ ], "utilitiesMethod": { "returnType": "software.amazon.awssdk.services.cloudfront.CloudFrontUtilities", - "createMethodParams": [ - ] - } + "createMethodParams": [] + }, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesIntegrationTest.java b/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesIntegrationTest.java index d2d538fe14f7..97570628251e 100644 --- a/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesIntegrationTest.java +++ b/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesIntegrationTest.java @@ -74,7 +74,7 @@ public class CloudFrontUtilitiesIntegrationTest extends IntegrationTestBase { private static final Base64.Encoder ENCODER = Base64.getEncoder(); - private static final String RESOURCE_PREFIX = "cf-test-"; + private static final String RESOURCE_PREFIX = "do-not-delete-cf-test-"; private static final String CALLER_REFERENCE = UUID.randomUUID().toString(); private static final String S3_OBJECT_KEY = "s3ObjectKey"; diff --git a/services/cloudfrontkeyvaluestore/pom.xml b/services/cloudfrontkeyvaluestore/pom.xml index 782a793bad60..86b526bdc921 100644 --- a/services/cloudfrontkeyvaluestore/pom.xml +++ b/services/cloudfrontkeyvaluestore/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudfrontkeyvaluestore AWS Java SDK :: Services :: Cloud Front Key Value Store diff --git a/services/cloudfrontkeyvaluestore/src/main/resources/codegen-resources/customization.config b/services/cloudfrontkeyvaluestore/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..70f0de837ceb --- /dev/null +++ b/services/cloudfrontkeyvaluestore/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true, + "enableEndpointAuthSchemeParams": true +} diff --git a/services/cloudfrontkeyvaluestore/src/main/resources/codegen-resources/service-2.json b/services/cloudfrontkeyvaluestore/src/main/resources/codegen-resources/service-2.json index 14a63fed669b..e718f5384a33 100644 --- a/services/cloudfrontkeyvaluestore/src/main/resources/codegen-resources/service-2.json +++ b/services/cloudfrontkeyvaluestore/src/main/resources/codegen-resources/service-2.json @@ -267,6 +267,14 @@ "LastModified":{ "shape":"Timestamp", "documentation":"

    Date and time when the key value pairs in the Key Value Store was last modified.

    " + }, + "Status":{ + "shape":"String", + "documentation":"

    The current status of the Key Value Store.

    " + }, + "FailureReason":{ + "shape":"String", + "documentation":"

    The reason for Key Value Store creation failure.

    " } }, "documentation":"

    Metadata information about a Key Value Store.

    " diff --git a/services/cloudhsm/pom.xml b/services/cloudhsm/pom.xml index f0c90397b154..24b549342b2b 100644 --- a/services/cloudhsm/pom.xml +++ b/services/cloudhsm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudhsm AWS Java SDK :: Services :: AWS CloudHSM diff --git a/services/cloudhsm/src/main/resources/codegen-resources/customization.config b/services/cloudhsm/src/main/resources/codegen-resources/customization.config index 7477c0a69fc1..374c7a85d0f2 100644 --- a/services/cloudhsm/src/main/resources/codegen-resources/customization.config +++ b/services/cloudhsm/src/main/resources/codegen-resources/customization.config @@ -1,22 +1,36 @@ { - "shapeModifiers": { - "ClientVersion": { - "modify": [ - { - "5.1": { "emitEnumName": "FIVE_ONE" } + "shapeModifiers": { + "ClientVersion": { + "modify": [ + { + "5.1": { + "emitEnumName": "FIVE_ONE" + } + }, + { + "5.3": { + "emitEnumName": "FIVE_THREE" + } + } + ] }, - { - "5.3": { "emitEnumName": "FIVE_THREE" } + "CloudHsmServiceException": { + "exclude": [ + "retryable" + ] } - ] }, - "CloudHsmServiceException": { - "exclude": [ "retryable" ] - } - }, - "excludedSimpleMethods" : [ - "describeHsm", - "describeLunaClient" - ], - "verifiedSimpleMethods" : ["listAvailableZones", "listHapgs", "listHsms", "listLunaClients"] -} \ No newline at end of file + "excludedSimpleMethods": [ + "describeHsm", + "describeLunaClient" + ], + "verifiedSimpleMethods": [ + "listAvailableZones", + "listHapgs", + "listHsms", + "listLunaClients" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/cloudhsmv2/pom.xml b/services/cloudhsmv2/pom.xml index 37ed07a4d61a..8ebd9966488c 100644 --- a/services/cloudhsmv2/pom.xml +++ b/services/cloudhsmv2/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 cloudhsmv2 diff --git a/services/cloudhsmv2/src/main/resources/codegen-resources/customization.config b/services/cloudhsmv2/src/main/resources/codegen-resources/customization.config index 86f57fe55885..60138f335640 100644 --- a/services/cloudhsmv2/src/main/resources/codegen-resources/customization.config +++ b/services/cloudhsmv2/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeBackups", "describeClusters" - ] + ], + "useSraAuth": true } diff --git a/services/cloudsearch/pom.xml b/services/cloudsearch/pom.xml index dd1f8353cee5..b20a158cbc77 100644 --- a/services/cloudsearch/pom.xml +++ b/services/cloudsearch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudsearch AWS Java SDK :: Services :: Amazon CloudSearch diff --git a/services/cloudsearch/src/it/java/software/amazon/awssdk/services/cloudsearch/CloudSearchv2IntegrationTest.java b/services/cloudsearch/src/it/java/software/amazon/awssdk/services/cloudsearch/CloudSearchv2IntegrationTest.java deleted file mode 100644 index 7dc7a05719dc..000000000000 --- a/services/cloudsearch/src/it/java/software/amazon/awssdk/services/cloudsearch/CloudSearchv2IntegrationTest.java +++ /dev/null @@ -1,445 +0,0 @@ -/* - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * 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 "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package software.amazon.awssdk.services.cloudsearch; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.time.Duration; -import java.time.Instant; -import java.util.List; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; -import software.amazon.awssdk.services.cloudsearch.model.AccessPoliciesStatus; -import software.amazon.awssdk.services.cloudsearch.model.AnalysisScheme; -import software.amazon.awssdk.services.cloudsearch.model.AnalysisSchemeLanguage; -import software.amazon.awssdk.services.cloudsearch.model.AnalysisSchemeStatus; -import software.amazon.awssdk.services.cloudsearch.model.BuildSuggestersRequest; -import software.amazon.awssdk.services.cloudsearch.model.CreateDomainRequest; -import software.amazon.awssdk.services.cloudsearch.model.CreateDomainResponse; -import software.amazon.awssdk.services.cloudsearch.model.DefineAnalysisSchemeRequest; -import software.amazon.awssdk.services.cloudsearch.model.DefineExpressionRequest; -import software.amazon.awssdk.services.cloudsearch.model.DefineIndexFieldRequest; -import software.amazon.awssdk.services.cloudsearch.model.DefineSuggesterRequest; -import software.amazon.awssdk.services.cloudsearch.model.DefineSuggesterResponse; -import software.amazon.awssdk.services.cloudsearch.model.DeleteDomainRequest; -import software.amazon.awssdk.services.cloudsearch.model.DescribeAnalysisSchemesRequest; -import software.amazon.awssdk.services.cloudsearch.model.DescribeAnalysisSchemesResponse; -import software.amazon.awssdk.services.cloudsearch.model.DescribeDomainsRequest; -import software.amazon.awssdk.services.cloudsearch.model.DescribeDomainsResponse; -import software.amazon.awssdk.services.cloudsearch.model.DescribeExpressionsRequest; -import software.amazon.awssdk.services.cloudsearch.model.DescribeExpressionsResponse; -import software.amazon.awssdk.services.cloudsearch.model.DescribeIndexFieldsRequest; -import software.amazon.awssdk.services.cloudsearch.model.DescribeIndexFieldsResponse; -import software.amazon.awssdk.services.cloudsearch.model.DescribeScalingParametersRequest; -import software.amazon.awssdk.services.cloudsearch.model.DescribeScalingParametersResponse; -import software.amazon.awssdk.services.cloudsearch.model.DescribeServiceAccessPoliciesRequest; -import software.amazon.awssdk.services.cloudsearch.model.DescribeServiceAccessPoliciesResponse; -import software.amazon.awssdk.services.cloudsearch.model.DescribeSuggestersRequest; -import software.amazon.awssdk.services.cloudsearch.model.DescribeSuggestersResponse; -import software.amazon.awssdk.services.cloudsearch.model.DocumentSuggesterOptions; -import software.amazon.awssdk.services.cloudsearch.model.DomainStatus; -import software.amazon.awssdk.services.cloudsearch.model.Expression; -import software.amazon.awssdk.services.cloudsearch.model.ExpressionStatus; -import software.amazon.awssdk.services.cloudsearch.model.IndexDocumentsRequest; -import software.amazon.awssdk.services.cloudsearch.model.IndexField; -import software.amazon.awssdk.services.cloudsearch.model.IndexFieldStatus; -import software.amazon.awssdk.services.cloudsearch.model.IndexFieldType; -import software.amazon.awssdk.services.cloudsearch.model.ListDomainNamesRequest; -import software.amazon.awssdk.services.cloudsearch.model.ListDomainNamesResponse; -import software.amazon.awssdk.services.cloudsearch.model.PartitionInstanceType; -import software.amazon.awssdk.services.cloudsearch.model.ScalingParameters; -import software.amazon.awssdk.services.cloudsearch.model.Suggester; -import software.amazon.awssdk.services.cloudsearch.model.SuggesterStatus; -import software.amazon.awssdk.services.cloudsearch.model.TextOptions; -import software.amazon.awssdk.services.cloudsearch.model.UpdateScalingParametersRequest; -import software.amazon.awssdk.services.cloudsearch.model.UpdateServiceAccessPoliciesRequest; -import software.amazon.awssdk.testutils.service.AwsIntegrationTestBase; - -public class CloudSearchv2IntegrationTest extends AwsIntegrationTestBase { - - /** Name Prefix of the domains being created for test cases. */ - private static final String testDomainNamePrefix = "sdk-domain-"; - /** Name of the expression being created in the domain. */ - private static final String testExpressionName = "sdkexp" - + System.currentTimeMillis(); - /** Name of the test index being created in the domain. */ - private static final String testIndexName = "sdkindex" - + System.currentTimeMillis(); - /** Name of the test suggester being created in the domain. */ - private static final String testSuggesterName = "sdksug" - + System.currentTimeMillis(); - /** Name of the test analysis scheme being created in the domain. */ - private static final String testAnalysisSchemeName = "analysis" - + System.currentTimeMillis(); - - public static String POLICY = "{\n" - + " \"Statement\":[\n" - + " {\n" - + " \"Effect\":\"Allow\",\n" - + " \"Principal\":\"*\",\n" - + " \"Action\":[\"cloudsearch:search\"],\n" - + " \"Condition\":{\"IpAddress\":{\"aws:SourceIp\":\"203.0.113.1/32\"}}\n" - + " }\n" - + " ]\n" - + "}"; - - /** Reference to the cloud search client during the testing process. */ - private static CloudSearchClient cloudSearch = null; - /** - * Holds the name of the domain name at any point of time during test case - * execution. - */ - private static String testDomainName = null; - - /** - * Sets up the credenitals and creates an instance of the Amazon Cloud - * Search client used for different test case executions. - */ - @BeforeClass - public static void setUp() throws Exception { - cloudSearch = CloudSearchClient.builder().credentialsProvider(StaticCredentialsProvider.create(getCredentials())).build(); - } - - /** - * Creates a new Amazon Cloud Search domain before every test case - * execution. This is done to ensure that the state of domain is in - * consistent state before and after the test case execution. - */ - @Before - public void createDomain() { - - testDomainName = testDomainNamePrefix + System.currentTimeMillis(); - - cloudSearch.createDomain(CreateDomainRequest.builder() - .domainName(testDomainName).build()); - } - - /** - * Deletes the Amazon Cloud Search domain after every test case execution. - */ - @After - public void deleteDomain() { - cloudSearch.deleteDomain(DeleteDomainRequest.builder() - .domainName(testDomainName).build()); - } - - /** - * Tests the create domain functionality. Checks if there are any existing - * domains by querying using describe domains or list domain names API. - * Creates a new domain using create domain API. Checks if the domain id, - * name is set in the result and the domain name matches the name used - * during creation. Also checks if the state of the domain in Created State. - * Since this domain is created locally for this test case, it is deleted in - * the finally block. - */ - @Test - public void testCreateDomains() { - - CreateDomainResponse createDomainResult = null; - String domainName = "test-" + System.currentTimeMillis(); - try { - DescribeDomainsResponse describeDomainResult = cloudSearch - .describeDomains(DescribeDomainsRequest.builder().build()); - ListDomainNamesResponse listDomainNamesResult = cloudSearch - .listDomainNames(ListDomainNamesRequest.builder().build()); - - assertTrue(describeDomainResult.domainStatusList().size() >= 0); - assertTrue(listDomainNamesResult.domainNames().size() >= 0); - - createDomainResult = cloudSearch - .createDomain(CreateDomainRequest.builder() - .domainName(domainName).build()); - - describeDomainResult = cloudSearch - .describeDomains(DescribeDomainsRequest.builder() - .domainNames(domainName).build()); - DomainStatus domainStatus = describeDomainResult - .domainStatusList().get(0); - - assertTrue(domainStatus.created()); - assertFalse(domainStatus.deleted()); - assertNotNull(domainStatus.arn()); - assertEquals(domainStatus.domainName(), domainName); - assertNotNull(domainStatus.domainId()); - assertTrue(domainStatus.processing()); - } finally { - if (createDomainResult != null) { - cloudSearch.deleteDomain(DeleteDomainRequest.builder() - .domainName(domainName).build()); - } - } - - } - - /** - * Tests the Index Documents API. Asserts that the status of the domain is - * initially in the "RequiresIndexDocuments" state. After an index document - * request is initiated, the status must be updated to "Processing" state. - * Status is retrieved using the Describe Domains API - */ - @Test - public void testIndexDocuments() { - - IndexField indexField = IndexField.builder().indexFieldName( - testIndexName).indexFieldType(IndexFieldType.LITERAL).build(); - - cloudSearch.defineIndexField(DefineIndexFieldRequest.builder() - .domainName(testDomainName).indexField(indexField).build()); - DescribeDomainsResponse describeDomainResult = cloudSearch - .describeDomains(DescribeDomainsRequest.builder() - .domainNames(testDomainName).build()); - DomainStatus status = describeDomainResult.domainStatusList().get(0); - assertTrue(status.requiresIndexDocuments()); - - cloudSearch.indexDocuments(IndexDocumentsRequest.builder() - .domainName(testDomainName).build()); - status = describeDomainResult.domainStatusList().get(0); - assertTrue(status.processing()); - - } - - /** - * Tests the Access Policies API. Updates an Access Policy for the domain. - * Retrieves the access policy and checks if the access policy retrieved is - * same as the one updated. - */ - @Test - public void testAccessPolicies() { - - AccessPoliciesStatus accessPoliciesStatus = null; - Instant yesterday = Instant.now().minus(Duration.ofDays(1)); - - DescribeDomainsResponse describeDomainResult = cloudSearch - .describeDomains(DescribeDomainsRequest.builder() - .domainNames(testDomainName).build()); - - POLICY = POLICY.replaceAll("ARN", describeDomainResult - .domainStatusList().get(0).arn()); - cloudSearch - .updateServiceAccessPolicies(UpdateServiceAccessPoliciesRequest.builder() - .domainName(testDomainName).accessPolicies( - POLICY).build()); - DescribeServiceAccessPoliciesResponse accessPolicyResult = cloudSearch - .describeServiceAccessPolicies(DescribeServiceAccessPoliciesRequest.builder() - .domainName(testDomainName).build()); - accessPoliciesStatus = accessPolicyResult.accessPolicies(); - - assertNotNull(accessPoliciesStatus); - assertTrue(yesterday.isBefore( - accessPoliciesStatus.status().creationDate())); - assertTrue(yesterday.isBefore( - accessPoliciesStatus.status().updateDate())); - assertTrue(accessPoliciesStatus.options().length() > 0); - assertNotNull(accessPoliciesStatus.status().state()); - - } - - /** - * Test the Define Index Fields API. Asserts that the list of index fields - * initially in the domain is ZERO. Creates a new index field for every - * index field type mentioned in the enum - * com.amazonaws.services.cloudsearch.model.IndexFieldType. - * - * Asserts that the number of index fields created is same as the number of the enum type mentioned. - */ - @Test - public void testIndexFields() { - - String indexFieldName = null; - DescribeIndexFieldsRequest describeIndexFieldRequest = DescribeIndexFieldsRequest.builder() - .domainName(testDomainName).build(); - - DescribeIndexFieldsResponse result = cloudSearch.describeIndexFields(describeIndexFieldRequest); - - assertTrue(result.indexFields().size() == 0); - - IndexField field = null; - DefineIndexFieldRequest.Builder defineIndexFieldRequest = DefineIndexFieldRequest.builder() - .domainName(testDomainName); - for (IndexFieldType type : IndexFieldType.knownValues()) { - indexFieldName = type.toString(); - indexFieldName = indexFieldName.replaceAll("-", ""); - field = IndexField.builder().indexFieldType(type) - .indexFieldName(indexFieldName + "indexfield").build(); - defineIndexFieldRequest.indexField(field); - cloudSearch.defineIndexField(defineIndexFieldRequest.build()); - } - - result = cloudSearch.describeIndexFields(describeIndexFieldRequest.toBuilder().deployed(false).build()); - List indexFieldStatusList = result.indexFields(); - assertTrue(indexFieldStatusList.size() == IndexFieldType.knownValues().size()); - } - - /** - * Tests the Define Expressions API. Asserts that the list of expressions in - * the domain is ZERO. Creates a new Expression. Asserts that the Describe - * Expression API returns the Expression created. - */ - @Test - public void testExpressions() { - DescribeExpressionsRequest describeExpressionRequest = DescribeExpressionsRequest.builder() - .domainName(testDomainName).build(); - - DescribeExpressionsResponse describeExpressionResult = cloudSearch - .describeExpressions(describeExpressionRequest); - - assertTrue(describeExpressionResult.expressions().size() == 0); - - Expression expression = Expression.builder().expressionName( - testExpressionName).expressionValue("1").build(); - cloudSearch.defineExpression(DefineExpressionRequest.builder() - .domainName(testDomainName).expression(expression).build()); - - describeExpressionResult = cloudSearch - .describeExpressions(describeExpressionRequest); - List expressionStatus = describeExpressionResult - .expressions(); - assertTrue(expressionStatus.size() == 1); - - Expression expressionRetrieved = expressionStatus.get(0).options(); - assertEquals(expression.expressionName(), - expressionRetrieved.expressionName()); - assertEquals(expression.expressionValue(), - expressionRetrieved.expressionValue()); - } - - /** - * Tests the Define Suggesters API. Asserts that the number of suggesters is - * ZERO initially in the domain. Creates a suggester for an text field and - * asserts if the number of suggesters is 1 after creation. Builds the - * suggesters into the domain and asserts that the domain status is in - * "Processing" state. - */ - @Test - public void testSuggestors() { - DescribeSuggestersRequest describeSuggesterRequest = DescribeSuggestersRequest.builder() - .domainName(testDomainName).build(); - DescribeSuggestersResponse describeSuggesterResult = cloudSearch - .describeSuggesters(describeSuggesterRequest); - - assertTrue(describeSuggesterResult.suggesters().size() == 0); - - DefineIndexFieldRequest defineIndexFieldRequest = DefineIndexFieldRequest.builder() - .domainName(testDomainName) - .indexField( - IndexField.builder() - .indexFieldName(testIndexName) - .indexFieldType( - IndexFieldType.TEXT) - .textOptions( - TextOptions.builder() - .analysisScheme( - "_en_default_") - .build()) - .build()).build(); - cloudSearch.defineIndexField(defineIndexFieldRequest); - - DocumentSuggesterOptions suggesterOptions = DocumentSuggesterOptions.builder() - .sourceField(testIndexName).sortExpression("1") - .build(); - Suggester suggester = Suggester.builder().suggesterName( - testSuggesterName).documentSuggesterOptions( - suggesterOptions).build(); - DefineSuggesterRequest defineSuggesterRequest = DefineSuggesterRequest.builder() - .domainName(testDomainName).suggester(suggester) - .build(); - DefineSuggesterResponse defineSuggesterResult = cloudSearch - .defineSuggester(defineSuggesterRequest); - SuggesterStatus status = defineSuggesterResult.suggester(); - assertNotNull(status); - assertNotNull(status.options()); - assertEquals(status.options().suggesterName(), testSuggesterName); - - describeSuggesterResult = cloudSearch - .describeSuggesters(describeSuggesterRequest); - assertTrue(describeSuggesterResult.suggesters().size() == 1); - - cloudSearch.buildSuggesters(BuildSuggestersRequest.builder() - .domainName(testDomainName).build()); - DescribeDomainsResponse describeDomainsResult = cloudSearch - .describeDomains(DescribeDomainsRequest.builder() - .domainNames(testDomainName).build()); - DomainStatus domainStatus = describeDomainsResult.domainStatusList() - .get(0); - assertTrue(domainStatus.processing()); - } - - /** - * Tests the Define Analysis Scheme API. Asserts that the number of analysis - * scheme in a newly created domain is ZERO. Creates an new analysis scheme - * for the domain. Creates a new index field and associates the analysis - * scheme with the field. Asserts that the number of analysis scheme is ONE - * and the matches the analysis scheme retrieved with the one created. Also - * asserts if the describe index field API returns the index field that has - * the analysis scheme linked. - */ - @Test - public void testAnalysisSchemes() { - DescribeAnalysisSchemesRequest describeAnalysisSchemesRequest = DescribeAnalysisSchemesRequest.builder() - .domainName(testDomainName) - .build(); - DescribeAnalysisSchemesResponse describeAnalysisSchemesResult = cloudSearch - .describeAnalysisSchemes(describeAnalysisSchemesRequest); - assertTrue(describeAnalysisSchemesResult.analysisSchemes().size() == 0); - - AnalysisScheme analysisScheme = AnalysisScheme.builder() - .analysisSchemeName(testAnalysisSchemeName) - .analysisSchemeLanguage(AnalysisSchemeLanguage.AR).build(); - cloudSearch.defineAnalysisScheme(DefineAnalysisSchemeRequest.builder() - .domainName(testDomainName).analysisScheme( - analysisScheme).build()); - - ; - - DefineIndexFieldRequest defineIndexFieldRequest = - DefineIndexFieldRequest.builder() - .domainName(testDomainName) - .indexField(IndexField.builder() - .indexFieldName(testIndexName) - .indexFieldType(IndexFieldType.TEXT) - .textOptions(TextOptions.builder() - .analysisScheme(testAnalysisSchemeName) - .build()).build()).build(); - cloudSearch.defineIndexField(defineIndexFieldRequest); - - describeAnalysisSchemesResult = cloudSearch.describeAnalysisSchemes(describeAnalysisSchemesRequest); - assertTrue(describeAnalysisSchemesResult.analysisSchemes().size() == 1); - - AnalysisSchemeStatus schemeStatus = describeAnalysisSchemesResult - .analysisSchemes().get(0); - assertEquals(schemeStatus.options().analysisSchemeName(), - testAnalysisSchemeName); - assertEquals(schemeStatus.options().analysisSchemeLanguage(), - AnalysisSchemeLanguage.AR); - - DescribeIndexFieldsResponse describeIndexFieldsResult = cloudSearch - .describeIndexFields(DescribeIndexFieldsRequest.builder() - .domainName(testDomainName).fieldNames( - testIndexName).build()); - IndexFieldStatus status = describeIndexFieldsResult.indexFields() - .get(0); - TextOptions textOptions = status.options().textOptions(); - assertEquals(textOptions.analysisScheme(), testAnalysisSchemeName); - - } - -} diff --git a/services/cloudsearch/src/main/resources/codegen-resources/customization.config b/services/cloudsearch/src/main/resources/codegen-resources/customization.config index 900a3f8c3872..7e6a4e825dda 100644 --- a/services/cloudsearch/src/main/resources/codegen-resources/customization.config +++ b/services/cloudsearch/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,9 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeDomains", "listDomainNames" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/cloudsearchdomain/pom.xml b/services/cloudsearchdomain/pom.xml index 104ddd8bf635..fe09f8a6e6c6 100644 --- a/services/cloudsearchdomain/pom.xml +++ b/services/cloudsearchdomain/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudsearchdomain AWS Java SDK :: Services :: Amazon CloudSearch Domain diff --git a/services/cloudsearchdomain/src/main/resources/codegen-resources/customization.config b/services/cloudsearchdomain/src/main/resources/codegen-resources/customization.config index bb663cbc1f71..9418157bfc3e 100644 --- a/services/cloudsearchdomain/src/main/resources/codegen-resources/customization.config +++ b/services/cloudsearchdomain/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,5 @@ { - "shapeModifiers" : { + "shapeModifiers": { "UploadDocumentsRequest": { "inject": [ { @@ -11,7 +11,6 @@ } ] }, - "SearchRequest": { "modify": [ { @@ -24,5 +23,8 @@ }, "interceptors": [ "software.amazon.awssdk.services.cloudsearchdomain.internal.SwitchToPostInterceptor" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/cloudtrail/pom.xml b/services/cloudtrail/pom.xml index b30b07d1472e..5773f01b48ab 100644 --- a/services/cloudtrail/pom.xml +++ b/services/cloudtrail/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudtrail AWS Java SDK :: Services :: AWS CloudTrail diff --git a/services/cloudtrail/src/main/resources/codegen-resources/customization.config b/services/cloudtrail/src/main/resources/codegen-resources/customization.config index c0aefcaaee5b..791cacf7177a 100644 --- a/services/cloudtrail/src/main/resources/codegen-resources/customization.config +++ b/services/cloudtrail/src/main/resources/codegen-resources/customization.config @@ -2,9 +2,10 @@ "deprecatedShapes": [ "KmsKeyDisabledException" ], - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeTrails", "listPublicKeys", "lookupEvents" - ] -} \ No newline at end of file + ], + "useSraAuth": true +} diff --git a/services/cloudtraildata/pom.xml b/services/cloudtraildata/pom.xml index c3630b0adc97..daa68fbf0fd9 100644 --- a/services/cloudtraildata/pom.xml +++ b/services/cloudtraildata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudtraildata AWS Java SDK :: Services :: Cloud Trail Data diff --git a/services/cloudtraildata/src/main/resources/codegen-resources/customization.config b/services/cloudtraildata/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/cloudtraildata/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/cloudwatch/pom.xml b/services/cloudwatch/pom.xml index bd46f273eead..5943bcd0a380 100644 --- a/services/cloudwatch/pom.xml +++ b/services/cloudwatch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudwatch AWS Java SDK :: Services :: Amazon CloudWatch diff --git a/services/cloudwatch/src/main/resources/codegen-resources/customization.config b/services/cloudwatch/src/main/resources/codegen-resources/customization.config index d819241c3710..34cccc4c6288 100644 --- a/services/cloudwatch/src/main/resources/codegen-resources/customization.config +++ b/services/cloudwatch/src/main/resources/codegen-resources/customization.config @@ -1,13 +1,16 @@ { - "verifiedSimpleMethods": [ - "describeAlarmHistory", - "describeAlarms", - "listDashboards", - "listMetrics" - ], - "excludedSimpleMethods": [ - "deleteDashboards", - "putDashboard", - "getDashboard" - ] + "verifiedSimpleMethods": [ + "describeAlarmHistory", + "describeAlarms", + "listDashboards", + "listMetrics" + ], + "excludedSimpleMethods": [ + "deleteDashboards", + "putDashboard", + "getDashboard" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/cloudwatch/src/main/resources/codegen-resources/service-2.json b/services/cloudwatch/src/main/resources/codegen-resources/service-2.json index d4c1b0bebb87..a33bb94f9b9b 100644 --- a/services/cloudwatch/src/main/resources/codegen-resources/service-2.json +++ b/services/cloudwatch/src/main/resources/codegen-resources/service-2.json @@ -532,7 +532,8 @@ {"shape":"InvalidParameterCombinationException"}, {"shape":"InternalServiceFault"} ], - "documentation":"

    Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics.

    You can publish either individual data points in the Value field, or arrays of values and the number of times each value occurred during the period by using the Values and Counts fields in the MetricDatum structure. Using the Values and Counts method enables you to publish up to 150 values per metric with one PutMetricData request, and supports retrieving percentile statistics on this data.

    Each PutMetricData request is limited to 1 MB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 1000 different metrics.

    Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

    You can use up to 30 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

    You specify the time stamp to be associated with each data point. You can specify time stamps that are as much as two weeks before the current date, and as much as 2 hours after the current day and time.

    Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricData or GetMetricStatistics from the time they are submitted. Data points with time stamps between 3 and 24 hours ago can take as much as 2 hours to become available for for GetMetricData or GetMetricStatistics.

    CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true:

    • The SampleCount value of the statistic set is 1 and Min, Max, and Sum are all equal.

    • The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount.

    " + "documentation":"

    Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics.

    You can publish either individual data points in the Value field, or arrays of values and the number of times each value occurred during the period by using the Values and Counts fields in the MetricDatum structure. Using the Values and Counts method enables you to publish up to 150 values per metric with one PutMetricData request, and supports retrieving percentile statistics on this data.

    Each PutMetricData request is limited to 1 MB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 1000 different metrics.

    Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

    You can use up to 30 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

    You specify the time stamp to be associated with each data point. You can specify time stamps that are as much as two weeks before the current date, and as much as 2 hours after the current day and time.

    Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricData or GetMetricStatistics from the time they are submitted. Data points with time stamps between 3 and 24 hours ago can take as much as 2 hours to become available for for GetMetricData or GetMetricStatistics.

    CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true:

    • The SampleCount value of the statistic set is 1 and Min, Max, and Sum are all equal.

    • The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount.

    ", + "requestcompression":{"encodings":["gzip"]} }, "PutMetricStream":{ "name":"PutMetricStream", diff --git a/services/cloudwatchevents/pom.xml b/services/cloudwatchevents/pom.xml index f740991e45b1..8d1fd866ab94 100644 --- a/services/cloudwatchevents/pom.xml +++ b/services/cloudwatchevents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudwatchevents AWS Java SDK :: Services :: Amazon CloudWatch Events diff --git a/services/cloudwatchevents/src/main/resources/codegen-resources/customization.config b/services/cloudwatchevents/src/main/resources/codegen-resources/customization.config index cbc2e8dca605..505cc68714c2 100644 --- a/services/cloudwatchevents/src/main/resources/codegen-resources/customization.config +++ b/services/cloudwatchevents/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeEventBus", "listRules" - ] + ], + "useSraAuth": true } diff --git a/services/cloudwatchlogs/pom.xml b/services/cloudwatchlogs/pom.xml index 945eedd30316..69d7517d22b5 100644 --- a/services/cloudwatchlogs/pom.xml +++ b/services/cloudwatchlogs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cloudwatchlogs AWS Java SDK :: Services :: Amazon CloudWatch Logs diff --git a/services/cloudwatchlogs/src/main/resources/codegen-resources/customization.config b/services/cloudwatchlogs/src/main/resources/codegen-resources/customization.config index f61c7f5add4a..e50742a21a23 100644 --- a/services/cloudwatchlogs/src/main/resources/codegen-resources/customization.config +++ b/services/cloudwatchlogs/src/main/resources/codegen-resources/customization.config @@ -1,17 +1,20 @@ { - "excludedSimpleMethods" : [ - "deleteResourcePolicy", - "putResourcePolicy" - ], - "verifiedSimpleMethods" : [ - "describeDestinations", - "describeExportTasks", - "describeLogGroups", - "describeMetricFilters", - "describeQueries", - "describeResourcePolicies" - ], - "paginationCustomization": { - "GetLogEvents" : "LastPageHasPreviousToken" - } -} \ No newline at end of file + "excludedSimpleMethods": [ + "deleteResourcePolicy", + "putResourcePolicy" + ], + "verifiedSimpleMethods": [ + "describeDestinations", + "describeExportTasks", + "describeLogGroups", + "describeMetricFilters", + "describeQueries", + "describeResourcePolicies" + ], + "paginationCustomization": { + "GetLogEvents": "LastPageHasPreviousToken" + }, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/cloudwatchlogs/src/main/resources/codegen-resources/service-2.json b/services/cloudwatchlogs/src/main/resources/codegen-resources/service-2.json index c711cc78933e..16568238f5bf 100644 --- a/services/cloudwatchlogs/src/main/resources/codegen-resources/service-2.json +++ b/services/cloudwatchlogs/src/main/resources/codegen-resources/service-2.json @@ -110,7 +110,7 @@ {"shape":"OperationAbortedException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

    Creates a log group with the specified name. You can create up to 1,000,000 log groups per Region per account.

    You must use the following guidelines when naming a log group:

    • Log group names must be unique within a Region for an Amazon Web Services account.

    • Log group names can be between 1 and 512 characters long.

    • Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and '#' (number sign)

    When you create a log group, by default the log events in the log group do not expire. To set a retention policy so that events expire and are deleted after a specified time, use PutRetentionPolicy.

    If you associate an KMS key with the log group, ingested data is encrypted using the KMS key. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

    If you attempt to associate a KMS key with the log group but the KMS key does not exist or the KMS key is disabled, you receive an InvalidParameterException error.

    CloudWatch Logs supports only symmetric KMS keys. Do not associate an asymmetric KMS key with your log group. For more information, see Using Symmetric and Asymmetric Keys.

    " + "documentation":"

    Creates a log group with the specified name. You can create up to 1,000,000 log groups per Region per account.

    You must use the following guidelines when naming a log group:

    • Log group names must be unique within a Region for an Amazon Web Services account.

    • Log group names can be between 1 and 512 characters long.

    • Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and '#' (number sign)

    • Log group names can't start with the string aws/

    When you create a log group, by default the log events in the log group do not expire. To set a retention policy so that events expire and are deleted after a specified time, use PutRetentionPolicy.

    If you associate an KMS key with the log group, ingested data is encrypted using the KMS key. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

    If you attempt to associate a KMS key with the log group but the KMS key does not exist or the KMS key is disabled, you receive an InvalidParameterException error.

    CloudWatch Logs supports only symmetric KMS keys. Do not associate an asymmetric KMS key with your log group. For more information, see Using Symmetric and Asymmetric Keys.

    " }, "CreateLogStream":{ "name":"CreateLogStream", @@ -387,7 +387,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Retrieves a list of the deliveries that have been created in the account.

    " + "documentation":"

    Retrieves a list of the deliveries that have been created in the account.

    A delivery is a connection between a delivery source and a delivery destination .

    A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose. Only some Amazon Web Services services support being configured as a delivery source. These services are listed in Enable logging from Amazon Web Services services.

    " }, "DescribeDeliveryDestinations":{ "name":"DescribeDeliveryDestinations", @@ -612,7 +612,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Returns complete information about one delivery. A delivery is a connection between a logical delivery source and a logical delivery destination

    You need to specify the delivery id in this operation. You can find the IDs of the deliveries in your account with the DescribeDeliveries operation.

    " + "documentation":"

    Returns complete information about one logical delivery. A delivery is a connection between a delivery source and a delivery destination .

    A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose. Only some Amazon Web Services services support being configured as a delivery source. These services are listed in Enable logging from Amazon Web Services services.

    You need to specify the delivery id in this operation. You can find the IDs of the deliveries in your account with the DescribeDeliveries operation.

    " }, "GetDeliveryDestination":{ "name":"GetDeliveryDestination", @@ -3277,7 +3277,7 @@ }, "arn":{ "shape":"Arn", - "documentation":"

    The Amazon Resource Name (ARN) of the log group.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the log group. This version of the ARN includes a trailing :* after the log group name.

    Use this version to refer to the ARN in IAM policies when specifying permissions for most API actions. The exception is when specifying permissions for TagResource, UntagResource, and ListTagsForResource. The permissions for those three actions require the ARN version that doesn't include a trailing :*.

    " }, "storedBytes":{ "shape":"StoredBytes", @@ -3298,6 +3298,10 @@ "logGroupClass":{ "shape":"LogGroupClass", "documentation":"

    This specifies the log group class for this log group. There are two classes:

    • The Standard log class supports all CloudWatch Logs features.

    • The Infrequent Access log class supports a subset of CloudWatch Logs features and incurs lower costs.

    For details about the features supported by each class, see Log classes

    " + }, + "logGroupArn":{ + "shape":"Arn", + "documentation":"

    The Amazon Resource Name (ARN) of the log group. This version of the ARN doesn't include a trailing :* after the log group name.

    Use this version to refer to the ARN in the following situations:

    " } }, "documentation":"

    Represents a log group.

    " @@ -3822,7 +3826,7 @@ }, "logType":{ "shape":"LogType", - "documentation":"

    Defines the type of log that the source is sending. For valid values for this parameter, see the documentation for the source service.

    " + "documentation":"

    Defines the type of log that the source is sending. For Amazon CodeWhisperer, the valid value is EVENT_LOGS.

    " }, "tags":{ "shape":"Tags", diff --git a/services/codeartifact/pom.xml b/services/codeartifact/pom.xml index b9d4981243db..60a5e135acbc 100644 --- a/services/codeartifact/pom.xml +++ b/services/codeartifact/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codeartifact AWS Java SDK :: Services :: Codeartifact diff --git a/services/codeartifact/src/main/resources/codegen-resources/customization.config b/services/codeartifact/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/codeartifact/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/codebuild/pom.xml b/services/codebuild/pom.xml index 5ddbbdcf351b..4def268a1f44 100644 --- a/services/codebuild/pom.xml +++ b/services/codebuild/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codebuild AWS Java SDK :: Services :: AWS Code Build diff --git a/services/codebuild/src/main/resources/codegen-resources/customization.config b/services/codebuild/src/main/resources/codegen-resources/customization.config index fb06b01acd05..2a0dd0a3dacf 100644 --- a/services/codebuild/src/main/resources/codegen-resources/customization.config +++ b/services/codebuild/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,11 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listBuilds", "listCuratedEnvironmentImages", "listProjects", "listSourceCredentials" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/codecatalyst/pom.xml b/services/codecatalyst/pom.xml index dc0917bee026..0616b448a898 100644 --- a/services/codecatalyst/pom.xml +++ b/services/codecatalyst/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codecatalyst AWS Java SDK :: Services :: Code Catalyst diff --git a/services/codecatalyst/src/main/resources/codegen-resources/customization.config b/services/codecatalyst/src/main/resources/codegen-resources/customization.config index fb50d0a7a6eb..cef6f581fd89 100644 --- a/services/codecatalyst/src/main/resources/codegen-resources/customization.config +++ b/services/codecatalyst/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,4 @@ { + "enableGenerateCompiledEndpointRules": true, "useSraAuth": true } diff --git a/services/codecommit/pom.xml b/services/codecommit/pom.xml index 27282a12be17..0ac770bf7273 100644 --- a/services/codecommit/pom.xml +++ b/services/codecommit/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codecommit AWS Java SDK :: Services :: AWS CodeCommit diff --git a/services/codecommit/src/main/resources/codegen-resources/customization.config b/services/codecommit/src/main/resources/codegen-resources/customization.config index 18a06a2c508b..67ca77602942 100644 --- a/services/codecommit/src/main/resources/codegen-resources/customization.config +++ b/services/codecommit/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "verifiedSimpleMethods": [ - "listRepositories" - ], - "excludedSimpleMethods": [ - "getBranch" - ] + "verifiedSimpleMethods": [ + "listRepositories" + ], + "excludedSimpleMethods": [ + "getBranch" + ], + "useSraAuth": true } diff --git a/services/codedeploy/pom.xml b/services/codedeploy/pom.xml index 18d1ee4b7c0b..0c57d8a2f8f2 100644 --- a/services/codedeploy/pom.xml +++ b/services/codedeploy/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codedeploy AWS Java SDK :: Services :: AWS CodeDeploy diff --git a/services/codedeploy/src/main/resources/codegen-resources/customization.config b/services/codedeploy/src/main/resources/codegen-resources/customization.config index 3fa976b82eec..120d9af1bbe1 100644 --- a/services/codedeploy/src/main/resources/codegen-resources/customization.config +++ b/services/codedeploy/src/main/resources/codegen-resources/customization.config @@ -1,34 +1,35 @@ { - "verifiedSimpleMethods": [ - "listApplications", - "listDeploymentConfigs", - "listDeployments", - "listGitHubAccountTokenNames", - "listOnPremisesInstances" - ], - "excludedSimpleMethods": [ - "continueDeployment", - "skipWaitTimeForInstanceTermination", - "updateApplication", - "batchGetApplications", - "batchGetDeployments", - "batchGetOnPremisesInstances", - "deleteGitHubAccountToken", - "putLifecycleEventHookExecutionStatus", - "batchGetDeploymentTargets", - "getDeploymentTarget", - "listDeploymentTargets" - ], - "deprecatedOperations": [ - "BatchGetDeploymentInstances", - "GetDeploymentInstance", - "ListDeploymentInstances", - "SkipWaitTimeForInstanceTermination" - ], - "deprecatedShapes": [ - "InstanceDoesNotExistException", - "InstanceIdRequiredException", - "InstanceStatus", - "InstanceSummary" - ] + "verifiedSimpleMethods": [ + "listApplications", + "listDeploymentConfigs", + "listDeployments", + "listGitHubAccountTokenNames", + "listOnPremisesInstances" + ], + "excludedSimpleMethods": [ + "continueDeployment", + "skipWaitTimeForInstanceTermination", + "updateApplication", + "batchGetApplications", + "batchGetDeployments", + "batchGetOnPremisesInstances", + "deleteGitHubAccountToken", + "putLifecycleEventHookExecutionStatus", + "batchGetDeploymentTargets", + "getDeploymentTarget", + "listDeploymentTargets" + ], + "deprecatedOperations": [ + "BatchGetDeploymentInstances", + "GetDeploymentInstance", + "ListDeploymentInstances", + "SkipWaitTimeForInstanceTermination" + ], + "deprecatedShapes": [ + "InstanceDoesNotExistException", + "InstanceIdRequiredException", + "InstanceStatus", + "InstanceSummary" + ], + "useSraAuth": true } diff --git a/services/codeguruprofiler/pom.xml b/services/codeguruprofiler/pom.xml index ffbb90c6ba29..2210eb0dcf1a 100644 --- a/services/codeguruprofiler/pom.xml +++ b/services/codeguruprofiler/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codeguruprofiler AWS Java SDK :: Services :: CodeGuruProfiler diff --git a/services/codeguruprofiler/src/main/resources/codegen-resources/customization.config b/services/codeguruprofiler/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/codeguruprofiler/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/codegurureviewer/pom.xml b/services/codegurureviewer/pom.xml index 858acbdf2e43..6b2ba0426d5a 100644 --- a/services/codegurureviewer/pom.xml +++ b/services/codegurureviewer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codegurureviewer AWS Java SDK :: Services :: CodeGuru Reviewer diff --git a/services/codegurureviewer/src/main/resources/codegen-resources/customization.config b/services/codegurureviewer/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/codegurureviewer/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/codegurusecurity/pom.xml b/services/codegurusecurity/pom.xml index 2c7e490f8762..1e86b245d261 100644 --- a/services/codegurusecurity/pom.xml +++ b/services/codegurusecurity/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codegurusecurity AWS Java SDK :: Services :: Code Guru Security diff --git a/services/codegurusecurity/src/main/resources/codegen-resources/customization.config b/services/codegurusecurity/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/codegurusecurity/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/codepipeline/pom.xml b/services/codepipeline/pom.xml index 82bc2b21a269..0b3552b66473 100644 --- a/services/codepipeline/pom.xml +++ b/services/codepipeline/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codepipeline AWS Java SDK :: Services :: AWS CodePipeline diff --git a/services/codepipeline/src/main/resources/codegen-resources/customization.config b/services/codepipeline/src/main/resources/codegen-resources/customization.config index 2239d96d2582..5c46750b2d99 100644 --- a/services/codepipeline/src/main/resources/codegen-resources/customization.config +++ b/services/codepipeline/src/main/resources/codegen-resources/customization.config @@ -1,11 +1,12 @@ { - "verifiedSimpleMethods": [ - "listActionTypes", - "listPipelines", - "listWebhooks" - ], - "excludedSimpleMethods": [ - "deregisterWebhookWithThirdParty", - "registerWebhookWithThirdParty" - ] + "verifiedSimpleMethods": [ + "listActionTypes", + "listPipelines", + "listWebhooks" + ], + "excludedSimpleMethods": [ + "deregisterWebhookWithThirdParty", + "registerWebhookWithThirdParty" + ], + "useSraAuth": true } diff --git a/services/codepipeline/src/main/resources/codegen-resources/service-2.json b/services/codepipeline/src/main/resources/codegen-resources/service-2.json index 8f1c52d91b5e..135805ebe55a 100644 --- a/services/codepipeline/src/main/resources/codegen-resources/service-2.json +++ b/services/codepipeline/src/main/resources/codegen-resources/service-2.json @@ -526,7 +526,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"ConflictException"}, - {"shape":"PipelineNotFoundException"} + {"shape":"PipelineNotFoundException"}, + {"shape":"ConcurrentPipelineExecutionsLimitExceededException"} ], "documentation":"

    Starts the specified pipeline. Specifically, it begins processing the latest commit to the source location specified as part of the pipeline.

    " }, @@ -865,6 +866,10 @@ "namespace":{ "shape":"ActionNamespace", "documentation":"

    The variable namespace associated with the action. All variables produced as output by this action fall under this namespace.

    " + }, + "timeoutInMinutes":{ + "shape":"ActionTimeout", + "documentation":"

    A timeout duration in minutes that can be applied against the ActionType’s default timeout value specified in Quotas for CodePipeline . This attribute is available only to the manual approval ActionType.

    " } }, "documentation":"

    Represents information about an action declaration.

    " @@ -946,6 +951,10 @@ "shape":"Timestamp", "documentation":"

    The last update time of the action execution.

    " }, + "updatedBy":{ + "shape":"LastUpdatedBy", + "documentation":"

    The ARN of the user who changed the pipeline execution details.

    " + }, "status":{ "shape":"ActionExecutionStatus", "documentation":"

    The status of the action execution. Status categories are InProgress, Succeeded, and Failed.

    " @@ -971,6 +980,10 @@ "pipelineExecutionId":{ "shape":"PipelineExecutionId", "documentation":"

    The pipeline execution ID used to filter action execution history.

    " + }, + "latestInPipelineExecution":{ + "shape":"LatestInPipelineExecutionFilter", + "documentation":"

    The latest execution in the pipeline.

    Filtering on the latest execution is available for executions run on or after February 08, 2024.

    " } }, "documentation":"

    Filter values for the action execution.

    " @@ -1039,7 +1052,8 @@ "externalExecutionUrl":{ "shape":"Url", "documentation":"

    The deepest external link to the external resource (for example, a repository URL or deployment endpoint) that is used when running the action.

    " - } + }, + "errorDetails":{"shape":"ErrorDetails"} }, "documentation":"

    Execution result information, such as the external execution ID.

    " }, @@ -1144,6 +1158,12 @@ "type":"list", "member":{"shape":"ActionState"} }, + "ActionTimeout":{ + "type":"integer", + "box":true, + "max":86400, + "min":5 + }, "ActionType":{ "type":"structure", "required":[ @@ -1698,6 +1718,14 @@ "documentation":"

    Unable to modify the tag due to a simultaneous update request.

    ", "exception":true }, + "ConcurrentPipelineExecutionsLimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"Message"} + }, + "documentation":"

    The pipeline has reached the limit for concurrent pipeline executions.

    ", + "exception":true + }, "ConflictException":{ "type":"structure", "members":{ @@ -2024,6 +2052,14 @@ "max":1500, "min":1 }, + "ExecutionMode":{ + "type":"string", + "enum":[ + "QUEUED", + "SUPERSEDED", + "PARALLEL" + ] + }, "ExecutionSummary":{ "type":"string", "max":2048, @@ -2278,6 +2314,32 @@ }, "documentation":"

    Represents the output of a GetThirdPartyJobDetails action.

    " }, + "GitBranchFilterCriteria":{ + "type":"structure", + "members":{ + "includes":{ + "shape":"GitBranchPatternList", + "documentation":"

    The list of patterns of Git branches that, when a commit is pushed, are to be included as criteria that starts the pipeline.

    " + }, + "excludes":{ + "shape":"GitBranchPatternList", + "documentation":"

    The list of patterns of Git branches that, when a commit is pushed, are to be excluded from starting the pipeline.

    " + } + }, + "documentation":"

    The Git repository branches specified as filter criteria to start the pipeline.

    " + }, + "GitBranchNamePattern":{ + "type":"string", + "max":255, + "min":1, + "pattern":".*" + }, + "GitBranchPatternList":{ + "type":"list", + "member":{"shape":"GitBranchNamePattern"}, + "max":8, + "min":1 + }, "GitConfiguration":{ "type":"structure", "required":["sourceActionName"], @@ -2288,10 +2350,78 @@ }, "push":{ "shape":"GitPushFilterList", - "documentation":"

    The field where the repository event that will start the pipeline, such as pushing Git tags, is specified with details.

    Git tags is the only supported event type.

    " + "documentation":"

    The field where the repository event that will start the pipeline, such as pushing Git tags, is specified with details.

    " + }, + "pullRequest":{ + "shape":"GitPullRequestFilterList", + "documentation":"

    The field where the repository event that will start the pipeline is specified as pull requests.

    " } }, - "documentation":"

    A type of trigger configuration for Git-based source actions.

    You can specify the Git configuration trigger type for all third-party Git-based source actions that are supported by the CodeStarSourceConnection action type.

    V2 type pipelines, along with triggers on Git tags and pipeline-level variables, are not currently supported for CloudFormation and CDK resources in CodePipeline. For more information about V2 type pipelines, see Pipeline types in the CodePipeline User Guide.

    " + "documentation":"

    A type of trigger configuration for Git-based source actions.

    You can specify the Git configuration trigger type for all third-party Git-based source actions that are supported by the CodeStarSourceConnection action type.

    " + }, + "GitFilePathFilterCriteria":{ + "type":"structure", + "members":{ + "includes":{ + "shape":"GitFilePathPatternList", + "documentation":"

    The list of patterns of Git repository file paths that, when a commit is pushed, are to be included as criteria that starts the pipeline.

    " + }, + "excludes":{ + "shape":"GitFilePathPatternList", + "documentation":"

    The list of patterns of Git repository file paths that, when a commit is pushed, are to be excluded from starting the pipeline.

    " + } + }, + "documentation":"

    The Git repository file paths specified as filter criteria to start the pipeline.

    " + }, + "GitFilePathPattern":{ + "type":"string", + "max":255, + "min":1, + "pattern":".*" + }, + "GitFilePathPatternList":{ + "type":"list", + "member":{"shape":"GitFilePathPattern"}, + "max":8, + "min":1 + }, + "GitPullRequestEventType":{ + "type":"string", + "enum":[ + "OPEN", + "UPDATED", + "CLOSED" + ] + }, + "GitPullRequestEventTypeList":{ + "type":"list", + "member":{"shape":"GitPullRequestEventType"}, + "max":3, + "min":1 + }, + "GitPullRequestFilter":{ + "type":"structure", + "members":{ + "events":{ + "shape":"GitPullRequestEventTypeList", + "documentation":"

    The field that specifies which pull request events to filter on (opened, updated, closed) for the trigger configuration.

    " + }, + "branches":{ + "shape":"GitBranchFilterCriteria", + "documentation":"

    The field that specifies to filter on branches for the pull request trigger configuration.

    " + }, + "filePaths":{ + "shape":"GitFilePathFilterCriteria", + "documentation":"

    The field that specifies to filter on file paths for the pull request trigger configuration.

    " + } + }, + "documentation":"

    The event criteria for the pull request trigger configuration, such as the lists of branches or file paths to include and exclude.

    " + }, + "GitPullRequestFilterList":{ + "type":"list", + "member":{"shape":"GitPullRequestFilter"}, + "max":3, + "min":1 }, "GitPushFilter":{ "type":"structure", @@ -2299,6 +2429,14 @@ "tags":{ "shape":"GitTagFilterCriteria", "documentation":"

    The field that contains the details for the Git tags trigger configuration.

    " + }, + "branches":{ + "shape":"GitBranchFilterCriteria", + "documentation":"

    The field that specifies to filter on branches for the push trigger configuration.

    " + }, + "filePaths":{ + "shape":"GitFilePathFilterCriteria", + "documentation":"

    The field that specifies to filter on file paths for the push trigger configuration.

    " } }, "documentation":"

    The event criteria that specify when a specified repository event will start the pipeline for the specified trigger configuration, such as the lists of Git tags to include and exclude.

    " @@ -2306,7 +2444,7 @@ "GitPushFilterList":{ "type":"list", "member":{"shape":"GitPushFilter"}, - "max":1, + "max":3, "min":1 }, "GitTagFilterCriteria":{ @@ -2598,6 +2736,24 @@ "LastChangedAt":{"type":"timestamp"}, "LastChangedBy":{"type":"string"}, "LastUpdatedBy":{"type":"string"}, + "LatestInPipelineExecutionFilter":{ + "type":"structure", + "required":[ + "pipelineExecutionId", + "startTimeRange" + ], + "members":{ + "pipelineExecutionId":{ + "shape":"PipelineExecutionId", + "documentation":"

    The execution ID for the latest execution in the pipeline.

    " + }, + "startTimeRange":{ + "shape":"StartTimeRange", + "documentation":"

    The start time to filter on for the latest execution in the pipeline. Valid options:

    • All

    • Latest

    " + } + }, + "documentation":"

    The field that specifies to filter on the latest execution in the pipeline.

    Filtering on the latest execution is available for executions run on or after February 08, 2024.

    " + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -2990,17 +3146,21 @@ "shape":"PipelineVersion", "documentation":"

    The version number of the pipeline. A new pipeline always has a version number of 1. This number is incremented when a pipeline is updated.

    " }, + "executionMode":{ + "shape":"ExecutionMode", + "documentation":"

    The method that the pipeline will use to handle multiple executions. The default mode is SUPERSEDED.

    " + }, "pipelineType":{ "shape":"PipelineType", - "documentation":"

    CodePipeline provides the following pipeline types, which differ in characteristics and price, so that you can tailor your pipeline features and cost to the needs of your applications.

    • V1 type pipelines have a JSON structure that contains standard pipeline, stage, and action-level parameters.

    • V2 type pipelines have the same structure as a V1 type, along with additional parameters for release safety and trigger configuration.

    Including V2 parameters, such as triggers on Git tags, in the pipeline JSON when creating or updating a pipeline will result in the pipeline having the V2 type of pipeline and the associated costs.

    For information about pricing for CodePipeline, see Pricing.

    For information about which type of pipeline to choose, see What type of pipeline is right for me?.

    V2 type pipelines, along with triggers on Git tags and pipeline-level variables, are not currently supported for CloudFormation and CDK resources in CodePipeline. For more information about V2 type pipelines, see Pipeline types in the CodePipeline User Guide.

    " - }, - "triggers":{ - "shape":"PipelineTriggerDeclarationList", - "documentation":"

    The trigger configuration specifying a type of event, such as Git tags, that starts the pipeline.

    When a trigger configuration is specified, default change detection for repository and branch commits is disabled.

    " + "documentation":"

    CodePipeline provides the following pipeline types, which differ in characteristics and price, so that you can tailor your pipeline features and cost to the needs of your applications.

    • V1 type pipelines have a JSON structure that contains standard pipeline, stage, and action-level parameters.

    • V2 type pipelines have the same structure as a V1 type, along with additional parameters for release safety and trigger configuration.

    Including V2 parameters, such as triggers on Git tags, in the pipeline JSON when creating or updating a pipeline will result in the pipeline having the V2 type of pipeline and the associated costs.

    For information about pricing for CodePipeline, see Pricing.

    For information about which type of pipeline to choose, see What type of pipeline is right for me?.

    " }, "variables":{ "shape":"PipelineVariableDeclarationList", "documentation":"

    A list that defines the pipeline variables for a pipeline resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9@\\-_]+.

    " + }, + "triggers":{ + "shape":"PipelineTriggerDeclarationList", + "documentation":"

    The trigger configuration specifying a type of event, such as Git tags, that starts the pipeline.

    When a trigger configuration is specified, default change detection for repository and branch commits is disabled.

    " } }, "documentation":"

    Represents the structure of actions and stages to be performed in the pipeline.

    " @@ -3032,10 +3192,14 @@ "shape":"ArtifactRevisionList", "documentation":"

    A list of ArtifactRevision objects included in a pipeline execution.

    " }, - "trigger":{"shape":"ExecutionTrigger"}, "variables":{ "shape":"ResolvedPipelineVariableList", "documentation":"

    A list of pipeline variables used for the pipeline execution.

    " + }, + "trigger":{"shape":"ExecutionTrigger"}, + "executionMode":{ + "shape":"ExecutionMode", + "documentation":"

    The method that the pipeline will use to handle multiple executions. The default mode is SUPERSEDED.

    " } }, "documentation":"

    Represents information about an execution of a pipeline.

    " @@ -3102,6 +3266,10 @@ "stopTrigger":{ "shape":"StopExecutionTrigger", "documentation":"

    The interaction that stopped a pipeline execution.

    " + }, + "executionMode":{ + "shape":"ExecutionMode", + "documentation":"

    The method that the pipeline will use to handle multiple executions. The default mode is SUPERSEDED.

    " } }, "documentation":"

    Summary information about a pipeline execution.

    " @@ -3173,7 +3341,11 @@ }, "pipelineType":{ "shape":"PipelineType", - "documentation":"

    CodePipeline provides the following pipeline types, which differ in characteristics and price, so that you can tailor your pipeline features and cost to the needs of your applications.

    • V1 type pipelines have a JSON structure that contains standard pipeline, stage, and action-level parameters.

    • V2 type pipelines have the same structure as a V1 type, along with additional parameters for release safety and trigger configuration.

    Including V2 parameters, such as triggers on Git tags, in the pipeline JSON when creating or updating a pipeline will result in the pipeline having the V2 type of pipeline and the associated costs.

    For information about pricing for CodePipeline, see Pricing.

    For information about which type of pipeline to choose, see What type of pipeline is right for me?.

    V2 type pipelines, along with triggers on Git tags and pipeline-level variables, are not currently supported for CloudFormation and CDK resources in CodePipeline. For more information about V2 type pipelines, see Pipeline types in the CodePipeline User Guide.

    " + "documentation":"

    CodePipeline provides the following pipeline types, which differ in characteristics and price, so that you can tailor your pipeline features and cost to the needs of your applications.

    • V1 type pipelines have a JSON structure that contains standard pipeline, stage, and action-level parameters.

    • V2 type pipelines have the same structure as a V1 type, along with additional parameters for release safety and trigger configuration.

    Including V2 parameters, such as triggers on Git tags, in the pipeline JSON when creating or updating a pipeline will result in the pipeline having the V2 type of pipeline and the associated costs.

    For information about pricing for CodePipeline, see Pricing.

    For information about which type of pipeline to choose, see What type of pipeline is right for me?.

    " + }, + "executionMode":{ + "shape":"ExecutionMode", + "documentation":"

    The method that the pipeline will use to handle multiple executions. The default mode is SUPERSEDED.

    " }, "created":{ "shape":"Timestamp", @@ -3202,12 +3374,12 @@ "documentation":"

    Provides the filter criteria and the source stage for the repository event that starts the pipeline, such as Git tags.

    " } }, - "documentation":"

    Represents information about the specified trigger configuration, such as the filter criteria and the source stage for the action that contains the trigger.

    This is only supported for the CodeStarSourceConnection action type.

    When a trigger configuration is specified, default change detection for repository and branch commits is disabled.

    V2 type pipelines, along with triggers on Git tags and pipeline-level variables, are not currently supported for CloudFormation and CDK resources in CodePipeline. For more information about V2 type pipelines, see Pipeline types in the CodePipeline User Guide.

    " + "documentation":"

    Represents information about the specified trigger configuration, such as the filter criteria and the source stage for the action that contains the trigger.

    This is only supported for the CodeStarSourceConnection action type.

    When a trigger configuration is specified, default change detection for repository and branch commits is disabled.

    " }, "PipelineTriggerDeclarationList":{ "type":"list", "member":{"shape":"PipelineTriggerDeclaration"}, - "max":20 + "max":50 }, "PipelineTriggerProviderType":{ "type":"string", @@ -3236,7 +3408,7 @@ "documentation":"

    The value of a pipeline-level variable.

    " } }, - "documentation":"

    A pipeline-level variable used for a pipeline execution.

    V2 type pipelines, along with triggers on Git tags and pipeline-level variables, are not currently supported for CloudFormation and CDK resources in CodePipeline. For more information about V2 type pipelines, see Pipeline types in the CodePipeline User Guide.

    " + "documentation":"

    A pipeline-level variable used for a pipeline execution.

    " }, "PipelineVariableDeclaration":{ "type":"structure", @@ -3255,7 +3427,7 @@ "documentation":"

    The description of a pipeline-level variable. It's used to add additional context about the variable, and not being used at time when pipeline executes.

    " } }, - "documentation":"

    A variable declared at the pipeline level.

    V2 type pipelines, along with triggers on Git tags and pipeline-level variables, are not currently supported for CloudFormation and CDK resources in CodePipeline. For more information about V2 type pipelines, see Pipeline types in the CodePipeline User Guide.

    " + "documentation":"

    A variable declared at the pipeline level.

    " }, "PipelineVariableDeclarationList":{ "type":"list", @@ -3879,6 +4051,10 @@ }, "documentation":"

    Represents information about the run of a stage.

    " }, + "StageExecutionList":{ + "type":"list", + "member":{"shape":"StageExecution"} + }, "StageExecutionStatus":{ "type":"string", "enum":[ @@ -3925,6 +4101,10 @@ "documentation":"

    The name of the stage.

    " }, "inboundExecution":{"shape":"StageExecution"}, + "inboundExecutions":{ + "shape":"StageExecutionList", + "documentation":"

    The inbound executions for a stage.

    " + }, "inboundTransitionState":{ "shape":"TransitionState", "documentation":"

    The state of the inbound transition, which is either enabled or disabled.

    " @@ -3985,6 +4165,13 @@ }, "documentation":"

    Represents the output of a StartPipelineExecution action.

    " }, + "StartTimeRange":{ + "type":"string", + "enum":[ + "Latest", + "All" + ] + }, "StopExecutionTrigger":{ "type":"structure", "members":{ diff --git a/services/codestar/pom.xml b/services/codestar/pom.xml index cd1ee0f73ff6..25ed458d2814 100644 --- a/services/codestar/pom.xml +++ b/services/codestar/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codestar AWS Java SDK :: Services :: AWS CodeStar diff --git a/services/codestar/src/main/resources/codegen-resources/customization.config b/services/codestar/src/main/resources/codegen-resources/customization.config index b17291bd3253..51171ea920a0 100644 --- a/services/codestar/src/main/resources/codegen-resources/customization.config +++ b/services/codestar/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listProjects", "listUserProfiles" - ] + ], + "useSraAuth": true } diff --git a/services/codestarconnections/pom.xml b/services/codestarconnections/pom.xml index d8928677085e..f42cd25ab17f 100644 --- a/services/codestarconnections/pom.xml +++ b/services/codestarconnections/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codestarconnections AWS Java SDK :: Services :: CodeStar connections diff --git a/services/codestarconnections/src/main/resources/codegen-resources/customization.config b/services/codestarconnections/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/codestarconnections/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/codestarnotifications/pom.xml b/services/codestarnotifications/pom.xml index 28b773baf286..b3eba877112b 100644 --- a/services/codestarnotifications/pom.xml +++ b/services/codestarnotifications/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT codestarnotifications AWS Java SDK :: Services :: Codestar Notifications diff --git a/services/codestarnotifications/src/main/resources/codegen-resources/customization.config b/services/codestarnotifications/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/codestarnotifications/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/cognitoidentity/pom.xml b/services/cognitoidentity/pom.xml index 094a0a6d107c..34fc3c6df310 100644 --- a/services/cognitoidentity/pom.xml +++ b/services/cognitoidentity/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cognitoidentity AWS Java SDK :: Services :: Amazon Cognito Identity diff --git a/services/cognitoidentity/src/main/resources/codegen-resources/customization.config b/services/cognitoidentity/src/main/resources/codegen-resources/customization.config index fb50d0a7a6eb..cef6f581fd89 100644 --- a/services/cognitoidentity/src/main/resources/codegen-resources/customization.config +++ b/services/cognitoidentity/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,4 @@ { + "enableGenerateCompiledEndpointRules": true, "useSraAuth": true } diff --git a/services/cognitoidentityprovider/pom.xml b/services/cognitoidentityprovider/pom.xml index 219c2fa9cc49..12d65d16719b 100644 --- a/services/cognitoidentityprovider/pom.xml +++ b/services/cognitoidentityprovider/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cognitoidentityprovider AWS Java SDK :: Services :: Amazon Cognito Identity Provider Service diff --git a/services/cognitoidentityprovider/src/main/resources/codegen-resources/customization.config b/services/cognitoidentityprovider/src/main/resources/codegen-resources/customization.config index 977593026018..3f8aaed78a98 100644 --- a/services/cognitoidentityprovider/src/main/resources/codegen-resources/customization.config +++ b/services/cognitoidentityprovider/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true, "excludedSimpleMethods" : [ "associateSoftwareToken" ], diff --git a/services/cognitoidentityprovider/src/main/resources/codegen-resources/service-2.json b/services/cognitoidentityprovider/src/main/resources/codegen-resources/service-2.json index e51eafdfd9c2..6812d20ff790 100644 --- a/services/cognitoidentityprovider/src/main/resources/codegen-resources/service-2.json +++ b/services/cognitoidentityprovider/src/main/resources/codegen-resources/service-2.json @@ -571,7 +571,7 @@ {"shape":"SoftwareTokenMFANotFoundException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Begins setup of time-based one-time password (TOTP) multi-factor authentication (MFA) for a user, with a unique private key that Amazon Cognito generates and returns in the API response. You can authorize an AssociateSoftwareToken request with either the user's access token, or a session string from a challenge response that you received from Amazon Cognito.

    Amazon Cognito disassociates an existing software token when you verify the new token in a VerifySoftwareToken API request. If you don't verify the software token and your user pool doesn't require MFA, the user can then authenticate with user name and password credentials alone. If your user pool requires TOTP MFA, Amazon Cognito generates an MFA_SETUP or SOFTWARE_TOKEN_SETUP challenge each time your user signs. Complete setup with AssociateSoftwareToken and VerifySoftwareToken.

    After you set up software token MFA for your user, Amazon Cognito generates a SOFTWARE_TOKEN_MFA challenge when they authenticate. Respond to this challenge with your user's TOTP.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Begins setup of time-based one-time password (TOTP) multi-factor authentication (MFA) for a user, with a unique private key that Amazon Cognito generates and returns in the API response. You can authorize an AssociateSoftwareToken request with either the user's access token, or a session string from a challenge response that you received from Amazon Cognito.

    Amazon Cognito disassociates an existing software token when you verify the new token in a VerifySoftwareToken API request. If you don't verify the software token and your user pool doesn't require MFA, the user can then authenticate with user name and password credentials alone. If your user pool requires TOTP MFA, Amazon Cognito generates an MFA_SETUP or SOFTWARE_TOKEN_SETUP challenge each time your user signs. Complete setup with AssociateSoftwareToken and VerifySoftwareToken.

    After you set up software token MFA for your user, Amazon Cognito generates a SOFTWARE_TOKEN_MFA challenge when they authenticate. Respond to this challenge with your user's TOTP.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "ChangePassword":{ @@ -595,7 +595,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Changes the password for a specified user in a user pool.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Changes the password for a specified user in a user pool.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "ConfirmDevice":{ @@ -621,7 +621,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Confirms tracking of the device. This API call is the call that begins device tracking.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Confirms tracking of the device. This API call is the call that begins device tracking. For more information about device authentication, see Working with user devices in your user pool.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "ConfirmForgotPassword":{ @@ -650,7 +650,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Allows a user to enter a confirmation code to reset a forgotten password.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Allows a user to enter a confirmation code to reset a forgotten password.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "ConfirmSignUp":{ @@ -678,7 +678,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    This public API operation provides a code that Amazon Cognito sent to your user when they signed up in your user pool via the SignUp API operation. After your user enters their code, they confirm ownership of the email address or phone number that they provided, and their user account becomes active. Depending on your user pool configuration, your users will receive their confirmation code in an email or SMS message.

    Local users who signed up in your user pool are the only type of user who can confirm sign-up with a code. Users who federate through an external identity provider (IdP) have already been confirmed by their IdP. Administrator-created users, users created with the AdminCreateUser API operation, confirm their accounts when they respond to their invitation email message and choose a password. They do not receive a confirmation code. Instead, they receive a temporary password.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    This public API operation provides a code that Amazon Cognito sent to your user when they signed up in your user pool via the SignUp API operation. After your user enters their code, they confirm ownership of the email address or phone number that they provided, and their user account becomes active. Depending on your user pool configuration, your users will receive their confirmation code in an email or SMS message.

    Local users who signed up in your user pool are the only type of user who can confirm sign-up with a code. Users who federate through an external identity provider (IdP) have already been confirmed by their IdP. Administrator-created users, users created with the AdminCreateUser API operation, confirm their accounts when they respond to their invitation email message and choose a password. They do not receive a confirmation code. Instead, they receive a temporary password.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "CreateGroup":{ @@ -717,7 +717,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalErrorException"} ], - "documentation":"

    Creates an IdP for a user pool.

    Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

    Learn more

    " + "documentation":"

    Adds a configuration and trust relationship between a third-party identity provider (IdP) and a user pool.

    Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

    Learn more

    " }, "CreateResourceServer":{ "name":"CreateResourceServer", @@ -882,7 +882,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Allows a user to delete their own user profile.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Allows a user to delete their own user profile.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "DeleteUserAttributes":{ @@ -904,7 +904,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Deletes the attributes for a user.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Deletes the attributes for a user.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "DeleteUserPool":{ @@ -1096,7 +1096,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Forgets the specified device.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Forgets the specified device. For more information about device authentication, see Working with user devices in your user pool.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "ForgotPassword":{ @@ -1124,7 +1124,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. The method used to send the confirmation code is sent according to the specified AccountRecoverySetting. For more information, see Recovering User Accounts in the Amazon Cognito Developer Guide. To use the confirmation code for resetting the password, call ConfirmForgotPassword.

    If neither a verified phone number nor a verified email exists, this API returns InvalidParameterException. If your app client has a client secret and you don't provide a SECRET_HASH parameter, this API returns NotAuthorizedException.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", + "documentation":"

    Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. The method used to send the confirmation code is sent according to the specified AccountRecoverySetting. For more information, see Recovering User Accounts in the Amazon Cognito Developer Guide. To use the confirmation code for resetting the password, call ConfirmForgotPassword.

    If neither a verified phone number nor a verified email exists, this API returns InvalidParameterException. If your app client has a client secret and you don't provide a SECRET_HASH parameter, this API returns NotAuthorizedException.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", "authtype":"none" }, "GetCSVHeader":{ @@ -1164,7 +1164,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Gets the device.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Gets the device. For more information about device authentication, see Working with user devices in your user pool.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "GetGroup":{ @@ -1269,7 +1269,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Gets the user attributes and metadata for a user.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Gets the user attributes and metadata for a user.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "GetUserAttributeVerificationCode":{ @@ -1299,7 +1299,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Generates a user attribute verification code for the specified attribute name. Sends a message to a user with a code that they must return in a VerifyUserAttribute request.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", + "documentation":"

    Generates a user attribute verification code for the specified attribute name. Sends a message to a user with a code that they must return in a VerifyUserAttribute request.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", "authtype":"none" }, "GetUserPoolMfaConfig":{ @@ -1337,7 +1337,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Invalidates the identity, access, and refresh tokens that Amazon Cognito issued to a user. Call this operation when your user signs out of your app. This results in the following behavior.

    • Amazon Cognito no longer accepts token-authorized user operations that you authorize with a signed-out user's access tokens. For more information, see Using the Amazon Cognito user pools API and user pool endpoints.

      Amazon Cognito returns an Access Token has been revoked error when your app attempts to authorize a user pools API request with a revoked access token that contains the scope aws.cognito.signin.user.admin.

    • Amazon Cognito no longer accepts a signed-out user's ID token in a GetId request to an identity pool with ServerSideTokenCheck enabled for its user pool IdP configuration in CognitoIdentityProvider.

    • Amazon Cognito no longer accepts a signed-out user's refresh tokens in refresh requests.

    Other requests might be valid until your user's token expires.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Invalidates the identity, access, and refresh tokens that Amazon Cognito issued to a user. Call this operation when your user signs out of your app. This results in the following behavior.

    • Amazon Cognito no longer accepts token-authorized user operations that you authorize with a signed-out user's access tokens. For more information, see Using the Amazon Cognito user pools API and user pool endpoints.

      Amazon Cognito returns an Access Token has been revoked error when your app attempts to authorize a user pools API request with a revoked access token that contains the scope aws.cognito.signin.user.admin.

    • Amazon Cognito no longer accepts a signed-out user's ID token in a GetId request to an identity pool with ServerSideTokenCheck enabled for its user pool IdP configuration in CognitoIdentityProvider.

    • Amazon Cognito no longer accepts a signed-out user's refresh tokens in refresh requests.

    Other requests might be valid until your user's token expires.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "InitiateAuth":{ @@ -1365,7 +1365,7 @@ {"shape":"InvalidSmsRoleTrustRelationshipException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Initiates sign-in for a user in the Amazon Cognito user directory. You can't sign in a user with a federated IdP with InitiateAuth. For more information, see Adding user pool sign-in through a third party.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", + "documentation":"

    Initiates sign-in for a user in the Amazon Cognito user directory. You can't sign in a user with a federated IdP with InitiateAuth. For more information, see Adding user pool sign-in through a third party.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", "authtype":"none" }, "ListDevices":{ @@ -1388,7 +1388,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Lists the sign-in devices that Amazon Cognito has registered to the current user.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Lists the sign-in devices that Amazon Cognito has registered to the current user. For more information about device authentication, see Working with user devices in your user pool.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "ListGroups":{ @@ -1568,7 +1568,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Resends the confirmation (for confirmation of registration) to a specific user in the user pool.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", + "documentation":"

    Resends the confirmation (for confirmation of registration) to a specific user in the user pool.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", "authtype":"none" }, "RespondToAuthChallenge":{ @@ -1602,7 +1602,7 @@ {"shape":"SoftwareTokenMFANotFoundException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Some API operations in a user pool generate a challenge, like a prompt for an MFA code, for device authentication that bypasses MFA, or for a custom authentication challenge. A RespondToAuthChallenge API request provides the answer to that challenge, like a code or a secure remote password (SRP). The parameters of a response to an authentication challenge vary with the type of challenge.

    For more information about custom authentication challenges, see Custom authentication challenge Lambda triggers.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", + "documentation":"

    Some API operations in a user pool generate a challenge, like a prompt for an MFA code, for device authentication that bypasses MFA, or for a custom authentication challenge. A RespondToAuthChallenge API request provides the answer to that challenge, like a code or a secure remote password (SRP). The parameters of a response to an authentication challenge vary with the type of challenge.

    For more information about custom authentication challenges, see Custom authentication challenge Lambda triggers.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", "authtype":"none" }, "RevokeToken":{ @@ -1622,7 +1622,7 @@ {"shape":"UnsupportedTokenTypeException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Revokes all of the access tokens generated by, and at the same time as, the specified refresh token. After a token is revoked, you can't use the revoked token to access Amazon Cognito user APIs, or to authorize access to your resource server.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Revokes all of the access tokens generated by, and at the same time as, the specified refresh token. After a token is revoked, you can't use the revoked token to access Amazon Cognito user APIs, or to authorize access to your resource server.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "SetLogDeliveryConfiguration":{ @@ -1697,7 +1697,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Set the user's multi-factor authentication (MFA) method preference, including which MFA factors are activated and if any are preferred. Only one factor can be set as preferred. The preferred MFA factor will be used to authenticate a user if multiple factors are activated. If multiple options are activated and no preference is set, a challenge to choose an MFA option will be returned during sign-in. If an MFA type is activated for a user, the user will be prompted for MFA during all sign-in attempts unless device tracking is turned on and the device has been trusted. If you want MFA to be applied selectively based on the assessed risk level of sign-in attempts, deactivate MFA for users and turn on Adaptive Authentication for the user pool.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Set the user's multi-factor authentication (MFA) method preference, including which MFA factors are activated and if any are preferred. Only one factor can be set as preferred. The preferred MFA factor will be used to authenticate a user if multiple factors are activated. If multiple options are activated and no preference is set, a challenge to choose an MFA option will be returned during sign-in. If an MFA type is activated for a user, the user will be prompted for MFA during all sign-in attempts unless device tracking is turned on and the device has been trusted. If you want MFA to be applied selectively based on the assessed risk level of sign-in attempts, deactivate MFA for users and turn on Adaptive Authentication for the user pool.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "SetUserPoolMfaConfig":{ @@ -1737,7 +1737,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    This action is no longer supported. You can use it to configure only SMS MFA. You can't use it to configure time-based one-time password (TOTP) software token MFA. To configure either type of MFA, use SetUserMFAPreference instead.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    This action is no longer supported. You can use it to configure only SMS MFA. You can't use it to configure time-based one-time password (TOTP) software token MFA. To configure either type of MFA, use SetUserMFAPreference instead.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "SignUp":{ @@ -1765,7 +1765,7 @@ {"shape":"CodeDeliveryFailureException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Registers the user in the specified user pool and creates a user name, password, and user attributes.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", + "documentation":"

    Registers the user in the specified user pool and creates a user name, password, and user attributes.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", "authtype":"none" }, "StartUserImportJob":{ @@ -1855,7 +1855,7 @@ {"shape":"UserPoolAddOnNotEnabledException"}, {"shape":"InternalErrorException"} ], - "documentation":"

    Provides the feedback for an authentication event, whether it was from a valid user or not. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Provides the feedback for an authentication event, whether it was from a valid user or not. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "UpdateDeviceStatus":{ @@ -1878,7 +1878,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Updates the device status.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Updates the device status. For more information about device authentication, see Working with user devices in your user pool.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "UpdateGroup":{ @@ -1963,7 +1963,7 @@ {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    With this operation, your users can update one or more of their attributes with their own credentials. You authorize this API request with the user's access token. To delete an attribute from your user, submit the attribute in your API request with a blank value. Custom attribute values in this request must include the custom: prefix.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", + "documentation":"

    With this operation, your users can update one or more of their attributes with their own credentials. You authorize this API request with the user's access token. To delete an attribute from your user, submit the attribute in your API request with a blank value. Custom attribute values in this request must include the custom: prefix.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

    If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

    ", "authtype":"none" }, "UpdateUserPool":{ @@ -2050,7 +2050,7 @@ {"shape":"CodeMismatchException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Use this API to register a user's entered time-based one-time password (TOTP) code and mark the user's software token MFA status as \"verified\" if successful. The request takes an access token or a session string, but not both.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Use this API to register a user's entered time-based one-time password (TOTP) code and mark the user's software token MFA status as \"verified\" if successful. The request takes an access token or a session string, but not both.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" }, "VerifyUserAttribute":{ @@ -2076,7 +2076,7 @@ {"shape":"AliasExistsException"}, {"shape":"ForbiddenException"} ], - "documentation":"

    Verifies the specified user attributes in the user pool.

    If your user pool requires verification before Amazon Cognito updates the attribute value, VerifyUserAttribute updates the affected attribute to its pending value. For more information, see UserAttributeUpdateSettingsType.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

    ", + "documentation":"

    Verifies the specified user attributes in the user pool.

    If your user pool requires verification before Amazon Cognito updates the attribute value, VerifyUserAttribute updates the affected attribute to its pending value. For more information, see UserAttributeUpdateSettingsType.

    Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin.

    Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito user pools API and user pool endpoints.

    ", "authtype":"none" } }, @@ -3809,7 +3809,7 @@ }, "ProviderDetails":{ "shape":"ProviderDetailsType", - "documentation":"

    The IdP details. The following list describes the provider detail keys for each IdP type.

    • For Google and Login with Amazon:

      • client_id

      • client_secret

      • authorize_scopes

    • For Facebook:

      • client_id

      • client_secret

      • authorize_scopes

      • api_version

    • For Sign in with Apple:

      • client_id

      • team_id

      • key_id

      • private_key

      • authorize_scopes

    • For OpenID Connect (OIDC) providers:

      • client_id

      • client_secret

      • attributes_request_method

      • oidc_issuer

      • authorize_scopes

      • The following keys are only present if Amazon Cognito didn't discover them at the oidc_issuer URL.

        • authorize_url

        • token_url

        • attributes_url

        • jwks_uri

      • Amazon Cognito sets the value of the following keys automatically. They are read-only.

        • attributes_url_add_attributes

    • For SAML providers:

      • MetadataFile or MetadataURL

      • IDPSignout optional

    " + "documentation":"

    The scopes, URLs, and identifiers for your external identity provider. The following examples describe the provider detail keys for each IdP type. These values and their schema are subject to change. Social IdP authorize_scopes values must match the values listed here.

    OpenID Connect (OIDC)

    Amazon Cognito accepts the following elements when it can't discover endpoint URLs from oidc_issuer: attributes_url, authorize_url, jwks_uri, token_url.

    Create or update request: \"ProviderDetails\": { \"attributes_request_method\": \"GET\", \"attributes_url\": \"https://auth.example.com/userInfo\", \"authorize_scopes\": \"openid profile email\", \"authorize_url\": \"https://auth.example.com/authorize\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"jwks_uri\": \"https://auth.example.com/.well-known/jwks.json\", \"oidc_issuer\": \"https://auth.example.com\", \"token_url\": \"https://example.com/token\" }

    Describe response: \"ProviderDetails\": { \"attributes_request_method\": \"GET\", \"attributes_url\": \"https://auth.example.com/userInfo\", \"attributes_url_add_attributes\": \"false\", \"authorize_scopes\": \"openid profile email\", \"authorize_url\": \"https://auth.example.com/authorize\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"jwks_uri\": \"https://auth.example.com/.well-known/jwks.json\", \"oidc_issuer\": \"https://auth.example.com\", \"token_url\": \"https://example.com/token\" }

    SAML

    Create or update request with Metadata URL: \"ProviderDetails\": { \"IDPInit\": \"true\", \"IDPSignout\": \"true\", \"EncryptedResponses\" : \"true\", \"MetadataURL\": \"https://auth.example.com/sso/saml/metadata\", \"RequestSigningAlgorithm\": \"rsa-sha256\" }

    Create or update request with Metadata file: \"ProviderDetails\": { \"IDPInit\": \"true\", \"IDPSignout\": \"true\", \"EncryptedResponses\" : \"true\", \"MetadataFile\": \"[metadata XML]\", \"RequestSigningAlgorithm\": \"rsa-sha256\" }

    The value of MetadataFile must be the plaintext metadata document with all quote (\") characters escaped by backslashes.

    Describe response: \"ProviderDetails\": { \"IDPInit\": \"true\", \"IDPSignout\": \"true\", \"EncryptedResponses\" : \"true\", \"ActiveEncryptionCertificate\": \"[certificate]\", \"MetadataURL\": \"https://auth.example.com/sso/saml/metadata\", \"RequestSigningAlgorithm\": \"rsa-sha256\", \"SLORedirectBindingURI\": \"https://auth.example.com/slo/saml\", \"SSORedirectBindingURI\": \"https://auth.example.com/sso/saml\" }

    LoginWithAmazon

    Create or update request: \"ProviderDetails\": { \"authorize_scopes\": \"profile postal_code\", \"client_id\": \"amzn1.application-oa2-client.1example23456789\", \"client_secret\": \"provider-app-client-secret\"

    Describe response: \"ProviderDetails\": { \"attributes_url\": \"https://api.amazon.com/user/profile\", \"attributes_url_add_attributes\": \"false\", \"authorize_scopes\": \"profile postal_code\", \"authorize_url\": \"https://www.amazon.com/ap/oa\", \"client_id\": \"amzn1.application-oa2-client.1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"token_request_method\": \"POST\", \"token_url\": \"https://api.amazon.com/auth/o2/token\" }

    Google

    Create or update request: \"ProviderDetails\": { \"authorize_scopes\": \"email profile openid\", \"client_id\": \"1example23456789.apps.googleusercontent.com\", \"client_secret\": \"provider-app-client-secret\" }

    Describe response: \"ProviderDetails\": { \"attributes_url\": \"https://people.googleapis.com/v1/people/me?personFields=\", \"attributes_url_add_attributes\": \"true\", \"authorize_scopes\": \"email profile openid\", \"authorize_url\": \"https://accounts.google.com/o/oauth2/v2/auth\", \"client_id\": \"1example23456789.apps.googleusercontent.com\", \"client_secret\": \"provider-app-client-secret\", \"oidc_issuer\": \"https://accounts.google.com\", \"token_request_method\": \"POST\", \"token_url\": \"https://www.googleapis.com/oauth2/v4/token\" }

    SignInWithApple

    Create or update request: \"ProviderDetails\": { \"authorize_scopes\": \"email name\", \"client_id\": \"com.example.cognito\", \"private_key\": \"1EXAMPLE\", \"key_id\": \"2EXAMPLE\", \"team_id\": \"3EXAMPLE\" }

    Describe response: \"ProviderDetails\": { \"attributes_url_add_attributes\": \"false\", \"authorize_scopes\": \"email name\", \"authorize_url\": \"https://appleid.apple.com/auth/authorize\", \"client_id\": \"com.example.cognito\", \"key_id\": \"1EXAMPLE\", \"oidc_issuer\": \"https://appleid.apple.com\", \"team_id\": \"2EXAMPLE\", \"token_request_method\": \"POST\", \"token_url\": \"https://appleid.apple.com/auth/token\" }

    Facebook

    Create or update request: \"ProviderDetails\": { \"api_version\": \"v17.0\", \"authorize_scopes\": \"public_profile, email\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\" }

    Describe response: \"ProviderDetails\": { \"api_version\": \"v17.0\", \"attributes_url\": \"https://graph.facebook.com/v17.0/me?fields=\", \"attributes_url_add_attributes\": \"true\", \"authorize_scopes\": \"public_profile, email\", \"authorize_url\": \"https://www.facebook.com/v17.0/dialog/oauth\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"token_request_method\": \"GET\", \"token_url\": \"https://graph.facebook.com/v17.0/oauth/access_token\" }

    " }, "AttributeMapping":{ "shape":"AttributeMappingType", @@ -3965,7 +3965,7 @@ }, "AllowedOAuthFlows":{ "shape":"OAuthFlowsType", - "documentation":"

    The allowed OAuth flows.

    code

    Use a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the /oauth2/token endpoint.

    implicit

    Issue the access token (and, optionally, ID token, based on scopes) directly to your user.

    client_credentials

    Issue the access token from the /oauth2/token endpoint directly to a non-person user using a combination of the client ID and client secret.

    " + "documentation":"

    The OAuth grant types that you want your app client to generate. To create an app client that generates client credentials grants, you must add client_credentials as the only allowed OAuth flow.

    code

    Use a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the /oauth2/token endpoint.

    implicit

    Issue the access token (and, optionally, ID token, based on scopes) directly to your user.

    client_credentials

    Issue the access token from the /oauth2/token endpoint directly to a non-person user using a combination of the client ID and client secret.

    " }, "AllowedOAuthScopes":{ "shape":"ScopeListType", @@ -4034,7 +4034,7 @@ "members":{ "CloudFrontDomain":{ "shape":"DomainType", - "documentation":"

    The Amazon CloudFront endpoint that you use as the target of the alias that you set up with your Domain Name Service (DNS) provider.

    " + "documentation":"

    The Amazon CloudFront endpoint that you use as the target of the alias that you set up with your Domain Name Service (DNS) provider. Amazon Cognito returns this value if you set a custom domain with CustomDomainConfig. If you set an Amazon Cognito prefix domain, this operation returns a blank response.

    " } } }, @@ -5373,7 +5373,7 @@ }, "ProviderDetails":{ "shape":"ProviderDetailsType", - "documentation":"

    The IdP details. The following list describes the provider detail keys for each IdP type.

    • For Google and Login with Amazon:

      • client_id

      • client_secret

      • authorize_scopes

    • For Facebook:

      • client_id

      • client_secret

      • authorize_scopes

      • api_version

    • For Sign in with Apple:

      • client_id

      • team_id

      • key_id

      • private_key

        You can submit a private_key when you add or update an IdP. Describe operations don't return the private key.

      • authorize_scopes

    • For OIDC providers:

      • client_id

      • client_secret

      • attributes_request_method

      • oidc_issuer

      • authorize_scopes

      • The following keys are only present if Amazon Cognito didn't discover them at the oidc_issuer URL.

        • authorize_url

        • token_url

        • attributes_url

        • jwks_uri

      • Amazon Cognito sets the value of the following keys automatically. They are read-only.

        • attributes_url_add_attributes

    • For SAML providers:

      • MetadataFile or MetadataURL

      • IDPSignout optional

    " + "documentation":"

    The scopes, URLs, and identifiers for your external identity provider. The following examples describe the provider detail keys for each IdP type. These values and their schema are subject to change. Social IdP authorize_scopes values must match the values listed here.

    OpenID Connect (OIDC)

    Amazon Cognito accepts the following elements when it can't discover endpoint URLs from oidc_issuer: attributes_url, authorize_url, jwks_uri, token_url.

    Create or update request: \"ProviderDetails\": { \"attributes_request_method\": \"GET\", \"attributes_url\": \"https://auth.example.com/userInfo\", \"authorize_scopes\": \"openid profile email\", \"authorize_url\": \"https://auth.example.com/authorize\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"jwks_uri\": \"https://auth.example.com/.well-known/jwks.json\", \"oidc_issuer\": \"https://auth.example.com\", \"token_url\": \"https://example.com/token\" }

    Describe response: \"ProviderDetails\": { \"attributes_request_method\": \"GET\", \"attributes_url\": \"https://auth.example.com/userInfo\", \"attributes_url_add_attributes\": \"false\", \"authorize_scopes\": \"openid profile email\", \"authorize_url\": \"https://auth.example.com/authorize\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"jwks_uri\": \"https://auth.example.com/.well-known/jwks.json\", \"oidc_issuer\": \"https://auth.example.com\", \"token_url\": \"https://example.com/token\" }

    SAML

    Create or update request with Metadata URL: \"ProviderDetails\": { \"IDPInit\": \"true\", \"IDPSignout\": \"true\", \"EncryptedResponses\" : \"true\", \"MetadataURL\": \"https://auth.example.com/sso/saml/metadata\", \"RequestSigningAlgorithm\": \"rsa-sha256\" }

    Create or update request with Metadata file: \"ProviderDetails\": { \"IDPInit\": \"true\", \"IDPSignout\": \"true\", \"EncryptedResponses\" : \"true\", \"MetadataFile\": \"[metadata XML]\", \"RequestSigningAlgorithm\": \"rsa-sha256\" }

    The value of MetadataFile must be the plaintext metadata document with all quote (\") characters escaped by backslashes.

    Describe response: \"ProviderDetails\": { \"IDPInit\": \"true\", \"IDPSignout\": \"true\", \"EncryptedResponses\" : \"true\", \"ActiveEncryptionCertificate\": \"[certificate]\", \"MetadataURL\": \"https://auth.example.com/sso/saml/metadata\", \"RequestSigningAlgorithm\": \"rsa-sha256\", \"SLORedirectBindingURI\": \"https://auth.example.com/slo/saml\", \"SSORedirectBindingURI\": \"https://auth.example.com/sso/saml\" }

    LoginWithAmazon

    Create or update request: \"ProviderDetails\": { \"authorize_scopes\": \"profile postal_code\", \"client_id\": \"amzn1.application-oa2-client.1example23456789\", \"client_secret\": \"provider-app-client-secret\"

    Describe response: \"ProviderDetails\": { \"attributes_url\": \"https://api.amazon.com/user/profile\", \"attributes_url_add_attributes\": \"false\", \"authorize_scopes\": \"profile postal_code\", \"authorize_url\": \"https://www.amazon.com/ap/oa\", \"client_id\": \"amzn1.application-oa2-client.1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"token_request_method\": \"POST\", \"token_url\": \"https://api.amazon.com/auth/o2/token\" }

    Google

    Create or update request: \"ProviderDetails\": { \"authorize_scopes\": \"email profile openid\", \"client_id\": \"1example23456789.apps.googleusercontent.com\", \"client_secret\": \"provider-app-client-secret\" }

    Describe response: \"ProviderDetails\": { \"attributes_url\": \"https://people.googleapis.com/v1/people/me?personFields=\", \"attributes_url_add_attributes\": \"true\", \"authorize_scopes\": \"email profile openid\", \"authorize_url\": \"https://accounts.google.com/o/oauth2/v2/auth\", \"client_id\": \"1example23456789.apps.googleusercontent.com\", \"client_secret\": \"provider-app-client-secret\", \"oidc_issuer\": \"https://accounts.google.com\", \"token_request_method\": \"POST\", \"token_url\": \"https://www.googleapis.com/oauth2/v4/token\" }

    SignInWithApple

    Create or update request: \"ProviderDetails\": { \"authorize_scopes\": \"email name\", \"client_id\": \"com.example.cognito\", \"private_key\": \"1EXAMPLE\", \"key_id\": \"2EXAMPLE\", \"team_id\": \"3EXAMPLE\" }

    Describe response: \"ProviderDetails\": { \"attributes_url_add_attributes\": \"false\", \"authorize_scopes\": \"email name\", \"authorize_url\": \"https://appleid.apple.com/auth/authorize\", \"client_id\": \"com.example.cognito\", \"key_id\": \"1EXAMPLE\", \"oidc_issuer\": \"https://appleid.apple.com\", \"team_id\": \"2EXAMPLE\", \"token_request_method\": \"POST\", \"token_url\": \"https://appleid.apple.com/auth/token\" }

    Facebook

    Create or update request: \"ProviderDetails\": { \"api_version\": \"v17.0\", \"authorize_scopes\": \"public_profile, email\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\" }

    Describe response: \"ProviderDetails\": { \"api_version\": \"v17.0\", \"attributes_url\": \"https://graph.facebook.com/v17.0/me?fields=\", \"attributes_url_add_attributes\": \"true\", \"authorize_scopes\": \"public_profile, email\", \"authorize_url\": \"https://www.facebook.com/v17.0/dialog/oauth\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"token_request_method\": \"GET\", \"token_url\": \"https://graph.facebook.com/v17.0/oauth/access_token\" }

    " }, "AttributeMapping":{ "shape":"AttributeMappingType", @@ -5616,14 +5616,14 @@ "shape":"ArnType", "documentation":"

    The Amazon Resource Name (ARN) of the function that you want to assign to your Lambda trigger.

    Set this parameter for legacy purposes. If you also set an ARN in PreTokenGenerationConfig, its value must be identical to PreTokenGeneration. For new instances of pre token generation triggers, set the LambdaArn of PreTokenGenerationConfig.

    You can set

    " }, - "PreTokenGenerationConfig":{ - "shape":"PreTokenGenerationVersionConfigType", - "documentation":"

    The detailed configuration of a pre token generation trigger. If you also set an ARN in PreTokenGeneration, its value must be identical to PreTokenGenerationConfig.

    " - }, "UserMigration":{ "shape":"ArnType", "documentation":"

    The user migration Lambda config type.

    " }, + "PreTokenGenerationConfig":{ + "shape":"PreTokenGenerationVersionConfigType", + "documentation":"

    The detailed configuration of a pre token generation trigger. If you also set an ARN in PreTokenGeneration, its value must be identical to PreTokenGenerationConfig.

    " + }, "CustomSMSSender":{ "shape":"CustomSMSLambdaVersionConfigType", "documentation":"

    A custom SMS sender Lambda trigger.

    " @@ -7577,7 +7577,7 @@ }, "ProviderDetails":{ "shape":"ProviderDetailsType", - "documentation":"

    The IdP details to be updated, such as MetadataURL and MetadataFile.

    " + "documentation":"

    The scopes, URLs, and identifiers for your external identity provider. The following examples describe the provider detail keys for each IdP type. These values and their schema are subject to change. Social IdP authorize_scopes values must match the values listed here.

    OpenID Connect (OIDC)

    Amazon Cognito accepts the following elements when it can't discover endpoint URLs from oidc_issuer: attributes_url, authorize_url, jwks_uri, token_url.

    Create or update request: \"ProviderDetails\": { \"attributes_request_method\": \"GET\", \"attributes_url\": \"https://auth.example.com/userInfo\", \"authorize_scopes\": \"openid profile email\", \"authorize_url\": \"https://auth.example.com/authorize\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"jwks_uri\": \"https://auth.example.com/.well-known/jwks.json\", \"oidc_issuer\": \"https://auth.example.com\", \"token_url\": \"https://example.com/token\" }

    Describe response: \"ProviderDetails\": { \"attributes_request_method\": \"GET\", \"attributes_url\": \"https://auth.example.com/userInfo\", \"attributes_url_add_attributes\": \"false\", \"authorize_scopes\": \"openid profile email\", \"authorize_url\": \"https://auth.example.com/authorize\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"jwks_uri\": \"https://auth.example.com/.well-known/jwks.json\", \"oidc_issuer\": \"https://auth.example.com\", \"token_url\": \"https://example.com/token\" }

    SAML

    Create or update request with Metadata URL: \"ProviderDetails\": { \"IDPInit\": \"true\", \"IDPSignout\": \"true\", \"EncryptedResponses\" : \"true\", \"MetadataURL\": \"https://auth.example.com/sso/saml/metadata\", \"RequestSigningAlgorithm\": \"rsa-sha256\" }

    Create or update request with Metadata file: \"ProviderDetails\": { \"IDPInit\": \"true\", \"IDPSignout\": \"true\", \"EncryptedResponses\" : \"true\", \"MetadataFile\": \"[metadata XML]\", \"RequestSigningAlgorithm\": \"rsa-sha256\" }

    The value of MetadataFile must be the plaintext metadata document with all quote (\") characters escaped by backslashes.

    Describe response: \"ProviderDetails\": { \"IDPInit\": \"true\", \"IDPSignout\": \"true\", \"EncryptedResponses\" : \"true\", \"ActiveEncryptionCertificate\": \"[certificate]\", \"MetadataURL\": \"https://auth.example.com/sso/saml/metadata\", \"RequestSigningAlgorithm\": \"rsa-sha256\", \"SLORedirectBindingURI\": \"https://auth.example.com/slo/saml\", \"SSORedirectBindingURI\": \"https://auth.example.com/sso/saml\" }

    LoginWithAmazon

    Create or update request: \"ProviderDetails\": { \"authorize_scopes\": \"profile postal_code\", \"client_id\": \"amzn1.application-oa2-client.1example23456789\", \"client_secret\": \"provider-app-client-secret\"

    Describe response: \"ProviderDetails\": { \"attributes_url\": \"https://api.amazon.com/user/profile\", \"attributes_url_add_attributes\": \"false\", \"authorize_scopes\": \"profile postal_code\", \"authorize_url\": \"https://www.amazon.com/ap/oa\", \"client_id\": \"amzn1.application-oa2-client.1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"token_request_method\": \"POST\", \"token_url\": \"https://api.amazon.com/auth/o2/token\" }

    Google

    Create or update request: \"ProviderDetails\": { \"authorize_scopes\": \"email profile openid\", \"client_id\": \"1example23456789.apps.googleusercontent.com\", \"client_secret\": \"provider-app-client-secret\" }

    Describe response: \"ProviderDetails\": { \"attributes_url\": \"https://people.googleapis.com/v1/people/me?personFields=\", \"attributes_url_add_attributes\": \"true\", \"authorize_scopes\": \"email profile openid\", \"authorize_url\": \"https://accounts.google.com/o/oauth2/v2/auth\", \"client_id\": \"1example23456789.apps.googleusercontent.com\", \"client_secret\": \"provider-app-client-secret\", \"oidc_issuer\": \"https://accounts.google.com\", \"token_request_method\": \"POST\", \"token_url\": \"https://www.googleapis.com/oauth2/v4/token\" }

    SignInWithApple

    Create or update request: \"ProviderDetails\": { \"authorize_scopes\": \"email name\", \"client_id\": \"com.example.cognito\", \"private_key\": \"1EXAMPLE\", \"key_id\": \"2EXAMPLE\", \"team_id\": \"3EXAMPLE\" }

    Describe response: \"ProviderDetails\": { \"attributes_url_add_attributes\": \"false\", \"authorize_scopes\": \"email name\", \"authorize_url\": \"https://appleid.apple.com/auth/authorize\", \"client_id\": \"com.example.cognito\", \"key_id\": \"1EXAMPLE\", \"oidc_issuer\": \"https://appleid.apple.com\", \"team_id\": \"2EXAMPLE\", \"token_request_method\": \"POST\", \"token_url\": \"https://appleid.apple.com/auth/token\" }

    Facebook

    Create or update request: \"ProviderDetails\": { \"api_version\": \"v17.0\", \"authorize_scopes\": \"public_profile, email\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\" }

    Describe response: \"ProviderDetails\": { \"api_version\": \"v17.0\", \"attributes_url\": \"https://graph.facebook.com/v17.0/me?fields=\", \"attributes_url_add_attributes\": \"true\", \"authorize_scopes\": \"public_profile, email\", \"authorize_url\": \"https://www.facebook.com/v17.0/dialog/oauth\", \"client_id\": \"1example23456789\", \"client_secret\": \"provider-app-client-secret\", \"token_request_method\": \"GET\", \"token_url\": \"https://graph.facebook.com/v17.0/oauth/access_token\" }

    " }, "AttributeMapping":{ "shape":"AttributeMappingType", diff --git a/services/cognitosync/pom.xml b/services/cognitosync/pom.xml index c84f662f0ab3..3b261456b65c 100644 --- a/services/cognitosync/pom.xml +++ b/services/cognitosync/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT cognitosync AWS Java SDK :: Services :: Amazon Cognito Sync diff --git a/services/cognitosync/src/main/resources/codegen-resources/customization.config b/services/cognitosync/src/main/resources/codegen-resources/customization.config index f5a8b5b39a27..feaed155a6e9 100644 --- a/services/cognitosync/src/main/resources/codegen-resources/customization.config +++ b/services/cognitosync/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listIdentityPoolUsage" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/comprehend/pom.xml b/services/comprehend/pom.xml index 80e4788b75f3..224251677851 100644 --- a/services/comprehend/pom.xml +++ b/services/comprehend/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 comprehend diff --git a/services/comprehend/src/main/resources/codegen-resources/customization.config b/services/comprehend/src/main/resources/codegen-resources/customization.config index 105056591605..d82e9b5150d6 100644 --- a/services/comprehend/src/main/resources/codegen-resources/customization.config +++ b/services/comprehend/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,5 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listDocumentClassificationJobs", "listDocumentClassifiers", "listDominantLanguageDetectionJobs", @@ -8,5 +8,6 @@ "listKeyPhrasesDetectionJobs", "listSentimentDetectionJobs", "listTopicsDetectionJobs" - ] + ], + "useSraAuth": true } diff --git a/services/comprehend/src/main/resources/codegen-resources/service-2.json b/services/comprehend/src/main/resources/codegen-resources/service-2.json index c0fa2c73d65a..c2af7b0ff27d 100644 --- a/services/comprehend/src/main/resources/codegen-resources/service-2.json +++ b/services/comprehend/src/main/resources/codegen-resources/service-2.json @@ -2077,7 +2077,7 @@ }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

    The language of the input documents. Currently, English is the only valid language.

    " + "documentation":"

    The language of the input documents.

    " } } }, @@ -3153,7 +3153,7 @@ }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

    The language of the input documents. Currently, English is the only valid language.

    " + "documentation":"

    The language of the input text. Enter the language code for English (en) or Spanish (es).

    " } } }, @@ -5946,7 +5946,7 @@ }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

    The language code of the input documents

    " + "documentation":"

    The language code of the input documents.

    " }, "DataAccessRoleArn":{ "shape":"IamRoleArn", @@ -6725,7 +6725,7 @@ }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

    The language of the input documents. Currently, English is the only valid language.

    " + "documentation":"

    The language of the input documents. Enter the language code for English (en) or Spanish (es).

    " }, "ClientRequestToken":{ "shape":"ClientRequestTokenString", diff --git a/services/comprehendmedical/pom.xml b/services/comprehendmedical/pom.xml index fda229e8b4c2..6c25761f8783 100644 --- a/services/comprehendmedical/pom.xml +++ b/services/comprehendmedical/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT comprehendmedical AWS Java SDK :: Services :: ComprehendMedical diff --git a/services/comprehendmedical/src/main/resources/codegen-resources/customization.config b/services/comprehendmedical/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/comprehendmedical/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/computeoptimizer/pom.xml b/services/computeoptimizer/pom.xml index ecc7af4f88e9..1528de575b3a 100644 --- a/services/computeoptimizer/pom.xml +++ b/services/computeoptimizer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT computeoptimizer AWS Java SDK :: Services :: Compute Optimizer diff --git a/services/computeoptimizer/src/main/resources/codegen-resources/customization.config b/services/computeoptimizer/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/computeoptimizer/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/config/pom.xml b/services/config/pom.xml index 52e78a9199dd..db5621878077 100644 --- a/services/config/pom.xml +++ b/services/config/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT config AWS Java SDK :: Services :: AWS Config diff --git a/services/config/src/main/resources/codegen-resources/customization.config b/services/config/src/main/resources/codegen-resources/customization.config index d113522aaf3f..ccfdc11e5e36 100644 --- a/services/config/src/main/resources/codegen-resources/customization.config +++ b/services/config/src/main/resources/codegen-resources/customization.config @@ -1,22 +1,25 @@ { - "verifiedSimpleMethods": [ - "describeAggregationAuthorizations", - "describeComplianceByConfigRule", - "describeComplianceByResource", - "describeConfigRuleEvaluationStatus", - "describeConfigRules", - "describeConfigurationAggregators", - "describeConfigurationRecorderStatus", - "describeConfigurationRecorders", - "describeDeliveryChannelStatus", - "describeDeliveryChannels", - "describePendingAggregationRequests", - "describeRetentionConfigurations", - "getComplianceSummaryByConfigRule", - "getComplianceSummaryByResourceType", - "getDiscoveredResourceCounts" - ], - "excludedSimpleMethods": [ - "startConfigRulesEvaluation" - ] + "verifiedSimpleMethods": [ + "describeAggregationAuthorizations", + "describeComplianceByConfigRule", + "describeComplianceByResource", + "describeConfigRuleEvaluationStatus", + "describeConfigRules", + "describeConfigurationAggregators", + "describeConfigurationRecorderStatus", + "describeConfigurationRecorders", + "describeDeliveryChannelStatus", + "describeDeliveryChannels", + "describePendingAggregationRequests", + "describeRetentionConfigurations", + "getComplianceSummaryByConfigRule", + "getComplianceSummaryByResourceType", + "getDiscoveredResourceCounts" + ], + "excludedSimpleMethods": [ + "startConfigRulesEvaluation" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/config/src/main/resources/codegen-resources/service-2.json b/services/config/src/main/resources/codegen-resources/service-2.json index ccb94f485155..6219aeebed45 100644 --- a/services/config/src/main/resources/codegen-resources/service-2.json +++ b/services/config/src/main/resources/codegen-resources/service-2.json @@ -522,7 +522,7 @@ {"shape":"InvalidLimitException"}, {"shape":"OrganizationAccessDeniedException"} ], - "documentation":"

    Returns a list of organization Config rules.

    When you specify the limit and the next token, you receive a paginated response.

    Limit and next token are not applicable if you specify organization Config rule names. It is only applicable, when you request all the organization Config rules.

    For accounts within an organzation

    If you deploy an organizational rule or conformance pack in an organization administrator account, and then establish a delegated administrator and deploy an organizational rule or conformance pack in the delegated administrator account, you won't be able to see the organizational rule or conformance pack in the organization administrator account from the delegated administrator account or see the organizational rule or conformance pack in the delegated administrator account from organization administrator account. The DescribeOrganizationConfigRules and DescribeOrganizationConformancePacks APIs can only see and interact with the organization-related resource that were deployed from within the account calling those APIs.

    " + "documentation":"

    Returns a list of organization Config rules.

    When you specify the limit and the next token, you receive a paginated response.

    Limit and next token are not applicable if you specify organization Config rule names. It is only applicable, when you request all the organization Config rules.

    For accounts within an organization

    If you deploy an organizational rule or conformance pack in an organization administrator account, and then establish a delegated administrator and deploy an organizational rule or conformance pack in the delegated administrator account, you won't be able to see the organizational rule or conformance pack in the organization administrator account from the delegated administrator account or see the organizational rule or conformance pack in the delegated administrator account from organization administrator account. The DescribeOrganizationConfigRules and DescribeOrganizationConformancePacks APIs can only see and interact with the organization-related resource that were deployed from within the account calling those APIs.

    " }, "DescribeOrganizationConformancePackStatuses":{ "name":"DescribeOrganizationConformancePackStatuses", @@ -554,7 +554,7 @@ {"shape":"InvalidLimitException"}, {"shape":"OrganizationAccessDeniedException"} ], - "documentation":"

    Returns a list of organization conformance packs.

    When you specify the limit and the next token, you receive a paginated response.

    Limit and next token are not applicable if you specify organization conformance packs names. They are only applicable, when you request all the organization conformance packs.

    For accounts within an organzation

    If you deploy an organizational rule or conformance pack in an organization administrator account, and then establish a delegated administrator and deploy an organizational rule or conformance pack in the delegated administrator account, you won't be able to see the organizational rule or conformance pack in the organization administrator account from the delegated administrator account or see the organizational rule or conformance pack in the delegated administrator account from organization administrator account. The DescribeOrganizationConfigRules and DescribeOrganizationConformancePacks APIs can only see and interact with the organization-related resource that were deployed from within the account calling those APIs.

    " + "documentation":"

    Returns a list of organization conformance packs.

    When you specify the limit and the next token, you receive a paginated response.

    Limit and next token are not applicable if you specify organization conformance packs names. They are only applicable, when you request all the organization conformance packs.

    For accounts within an organization

    If you deploy an organizational rule or conformance pack in an organization administrator account, and then establish a delegated administrator and deploy an organizational rule or conformance pack in the delegated administrator account, you won't be able to see the organizational rule or conformance pack in the organization administrator account from the delegated administrator account or see the organizational rule or conformance pack in the delegated administrator account from organization administrator account. The DescribeOrganizationConfigRules and DescribeOrganizationConformancePacks APIs can only see and interact with the organization-related resource that were deployed from within the account calling those APIs.

    " }, "DescribePendingAggregationRequests":{ "name":"DescribePendingAggregationRequests", @@ -1178,7 +1178,7 @@ {"shape":"InsufficientPermissionsException"}, {"shape":"InvalidParameterValueException"} ], - "documentation":"

    Adds or updates the remediation configuration with a specific Config rule with the selected target or action. The API creates the RemediationConfiguration object for the Config rule. The Config rule must already exist for you to add a remediation configuration. The target (SSM document) must exist and have permissions to use the target.

    If you make backward incompatible changes to the SSM document, you must call this again to ensure the remediations can run.

    This API does not support adding remediation configurations for service-linked Config Rules such as Organization Config rules, the rules deployed by conformance packs, and rules deployed by Amazon Web Services Security Hub.

    For manual remediation configuration, you need to provide a value for automationAssumeRole or use a value in the assumeRolefield to remediate your resources. The SSM automation document can use either as long as it maps to a valid parameter.

    However, for automatic remediation configuration, the only valid assumeRole field value is AutomationAssumeRole and you need to provide a value for AutomationAssumeRole to remediate your resources.

    " + "documentation":"

    Adds or updates the remediation configuration with a specific Config rule with the selected target or action. The API creates the RemediationConfiguration object for the Config rule. The Config rule must already exist for you to add a remediation configuration. The target (SSM document) must exist and have permissions to use the target.

    Be aware of backward incompatible changes

    If you make backward incompatible changes to the SSM document, you must call this again to ensure the remediations can run.

    This API does not support adding remediation configurations for service-linked Config Rules such as Organization Config rules, the rules deployed by conformance packs, and rules deployed by Amazon Web Services Security Hub.

    Required fields

    For manual remediation configuration, you need to provide a value for automationAssumeRole or use a value in the assumeRolefield to remediate your resources. The SSM automation document can use either as long as it maps to a valid parameter.

    However, for automatic remediation configuration, the only valid assumeRole field value is AutomationAssumeRole and you need to provide a value for AutomationAssumeRole to remediate your resources.

    Auto remediation can be initiated even for compliant resources

    If you enable auto remediation for a specific Config rule using the PutRemediationConfigurations API or the Config console, it initiates the remediation process for all non-compliant resources for that specific rule. The auto remediation process relies on the compliance data snapshot which is captured on a periodic basis. Any non-compliant resource that is updated between the snapshot schedule will continue to be remediated based on the last known compliance data snapshot.

    This means that in some cases auto remediation can be initiated even for compliant resources, since the bootstrap processor uses a database that can have stale evaluation results based on the last known compliance data snapshot.

    " }, "PutRemediationExceptions":{ "name":"PutRemediationExceptions", @@ -1192,7 +1192,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"InsufficientPermissionsException"} ], - "documentation":"

    A remediation exception is when a specified resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specified resource with a specified Config rule.

    Config generates a remediation exception when a problem occurs running a remediation action for a specified resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

    When placing an exception on an Amazon Web Services resource, it is recommended that remediation is set as manual remediation until the given Config rule for the specified resource evaluates the resource as NON_COMPLIANT. Once the resource has been evaluated as NON_COMPLIANT, you can add remediation exceptions and change the remediation type back from Manual to Auto if you want to use auto-remediation. Otherwise, using auto-remediation before a NON_COMPLIANT evaluation result can delete resources before the exception is applied.

    Placing an exception can only be performed on resources that are NON_COMPLIANT. If you use this API for COMPLIANT resources or resources that are NOT_APPLICABLE, a remediation exception will not be generated. For more information on the conditions that initiate the possible Config evaluation results, see Concepts | Config Rules in the Config Developer Guide.

    " + "documentation":"

    A remediation exception is when a specified resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specified resource with a specified Config rule.

    Exceptions block auto remediation

    Config generates a remediation exception when a problem occurs running a remediation action for a specified resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

    Manual remediation is recommended when placing an exception

    When placing an exception on an Amazon Web Services resource, it is recommended that remediation is set as manual remediation until the given Config rule for the specified resource evaluates the resource as NON_COMPLIANT. Once the resource has been evaluated as NON_COMPLIANT, you can add remediation exceptions and change the remediation type back from Manual to Auto if you want to use auto-remediation. Otherwise, using auto-remediation before a NON_COMPLIANT evaluation result can delete resources before the exception is applied.

    Exceptions can only be performed on non-compliant resources

    Placing an exception can only be performed on resources that are NON_COMPLIANT. If you use this API for COMPLIANT resources or resources that are NOT_APPLICABLE, a remediation exception will not be generated. For more information on the conditions that initiate the possible Config evaluation results, see Concepts | Config Rules in the Config Developer Guide.

    Auto remediation can be initiated even for compliant resources

    If you enable auto remediation for a specific Config rule using the PutRemediationConfigurations API or the Config console, it initiates the remediation process for all non-compliant resources for that specific rule. The auto remediation process relies on the compliance data snapshot which is captured on a periodic basis. Any non-compliant resource that is updated between the snapshot schedule will continue to be remediated based on the last known compliance data snapshot.

    This means that in some cases auto remediation can be initiated even for compliant resources, since the bootstrap processor uses a database that can have stale evaluation results based on the last known compliance data snapshot.

    " }, "PutResourceConfig":{ "name":"PutResourceConfig", @@ -4190,7 +4190,7 @@ "documentation":"

    A comma-separated list of resource types to exclude from recording by the configuration recorder.

    " } }, - "documentation":"

    Specifies whether the configuration recorder excludes certain resource types from being recorded. Use the resourceTypes field to enter a comma-separated list of resource types you want to exclude from recording.

    By default, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    How to use the exclusion recording strategy

    To use this option, you must set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES.

    Config will then record configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded.

    Global resource types and the exclusion recording strategy

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    " + "documentation":"

    Specifies whether the configuration recorder excludes certain resource types from being recorded. Use the resourceTypes field to enter a comma-separated list of resource types you want to exclude from recording.

    By default, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    How to use the exclusion recording strategy

    To use this option, you must set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES.

    Config will then record configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded.

    Global resource types and the exclusion recording strategy

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Canada West (Calgary)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    " }, "ExecutionControls":{ "type":"structure", @@ -6638,7 +6638,7 @@ }, "includeGlobalResourceTypes":{ "shape":"IncludeGlobalResourceTypes", - "documentation":"

    This option is a bundle which only applies to the global IAM resource types: IAM users, groups, roles, and customer managed policies. These global IAM resource types can only be recorded by Config in Regions where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    Aurora global clusters are recorded in all enabled Regions

    The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled, even if includeGlobalResourceTypes is not set to true. The includeGlobalResourceTypes option is a bundle which only applies to IAM users, groups, roles, and customer managed policies.

    If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use one of the following recording strategies:

    1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

    2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

    For more information, see Selecting Which Resources are Recorded in the Config developer guide.

    Before you set this field to true, set the allSupported field of RecordingGroup to true. Optionally, you can set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES.

    Overriding fields

    If you set this field to false but list global IAM resource types in the resourceTypes field of RecordingGroup, Config will still record configuration changes for those specified resource types regardless of if you set the includeGlobalResourceTypes field to false.

    If you do not want to record configuration changes to the global IAM resource types (IAM users, groups, roles, and customer managed policies), make sure to not list them in the resourceTypes field in addition to setting the includeGlobalResourceTypes field to false.

    " + "documentation":"

    This option is a bundle which only applies to the global IAM resource types: IAM users, groups, roles, and customer managed policies. These global IAM resource types can only be recorded by Config in Regions where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Canada West (Calgary)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    Aurora global clusters are recorded in all enabled Regions

    The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled, even if includeGlobalResourceTypes is setfalse. The includeGlobalResourceTypes option is a bundle which only applies to IAM users, groups, roles, and customer managed policies.

    If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use one of the following recording strategies:

    1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

    2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

    For more information, see Selecting Which Resources are Recorded in the Config developer guide.

    includeGlobalResourceTypes and the exclusion recording strategy

    The includeGlobalResourceTypes field has no impact on the EXCLUSION_BY_RESOURCE_TYPES recording strategy. This means that the global IAM resource types (IAM users, groups, roles, and customer managed policies) will not be automatically added as exclusions for exclusionByResourceTypes when includeGlobalResourceTypes is set to false.

    The includeGlobalResourceTypes field should only be used to modify the AllSupported field, as the default for the AllSupported field is to record configuration changes for all supported resource types excluding the global IAM resource types. To include the global IAM resource types when AllSupported is set to true, make sure to set includeGlobalResourceTypes to true.

    To exclude the global IAM resource types for the EXCLUSION_BY_RESOURCE_TYPES recording strategy, you need to manually add them to the resourceTypes field of exclusionByResourceTypes.

    Required and optional fields

    Before you set this field to true, set the allSupported field of RecordingGroup to true. Optionally, you can set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES.

    Overriding fields

    If you set this field to false but list global IAM resource types in the resourceTypes field of RecordingGroup, Config will still record configuration changes for those specified resource types regardless of if you set the includeGlobalResourceTypes field to false.

    If you do not want to record configuration changes to the global IAM resource types (IAM users, groups, roles, and customer managed policies), make sure to not list them in the resourceTypes field in addition to setting the includeGlobalResourceTypes field to false.

    " }, "resourceTypes":{ "shape":"ResourceTypeList", @@ -6650,7 +6650,7 @@ }, "recordingStrategy":{ "shape":"RecordingStrategy", - "documentation":"

    An object that specifies the recording strategy for the configuration recorder.

    • If you set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES, Config records configuration changes for all supported resource types, excluding the global IAM resource types. You also must set the allSupported field of RecordingGroup to true. When Config adds support for a new resource type, Config automatically starts recording resources of that type.

    • If you set the useOnly field of RecordingStrategy to INCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for only the resource types you specify in the resourceTypes field of RecordingGroup.

    • If you set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for all supported resource types except the resource types that you specify to exclude from being recorded in the resourceTypes field of ExclusionByResourceTypes.

    Required and optional fields

    The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

    The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

    The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

    Overriding fields

    If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

    For example, even if you set includeGlobalResourceTypes to false, global IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

    Global resources types and the resource exclusion recording strategy

    By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    " + "documentation":"

    An object that specifies the recording strategy for the configuration recorder.

    • If you set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES, Config records configuration changes for all supported resource types, excluding the global IAM resource types. You also must set the allSupported field of RecordingGroup to true. When Config adds support for a new resource type, Config automatically starts recording resources of that type.

    • If you set the useOnly field of RecordingStrategy to INCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for only the resource types you specify in the resourceTypes field of RecordingGroup.

    • If you set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for all supported resource types except the resource types that you specify to exclude from being recorded in the resourceTypes field of ExclusionByResourceTypes.

    Required and optional fields

    The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

    The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

    The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

    Overriding fields

    If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

    For example, even if you set includeGlobalResourceTypes to false, global IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

    Global resources types and the resource exclusion recording strategy

    By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Canada West (Calgary)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    " } }, "documentation":"

    Specifies which resource types Config records for configuration changes. By default, Config records configuration changes for all current and future supported resource types in the Amazon Web Services Region where you have enabled Config, excluding the global IAM resource types: IAM users, groups, roles, and customer managed policies.

    In the recording group, you specify whether you want to record all supported current and future supported resource types or to include or exclude specific resources types. For a list of supported resource types, see Supported Resource Types in the Config developer guide.

    If you don't want Config to record all current and future supported resource types (excluding the global IAM resource types), use one of the following recording strategies:

    1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

    2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

    If you use the recording strategy to Record all current and future resource types (ALL_SUPPORTED_RESOURCE_TYPES), you can use the flag includeGlobalResourceTypes to include the global IAM resource types in your recording.

    Aurora global clusters are recorded in all enabled Regions

    The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled.

    If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use the EXCLUSION_BY_RESOURCE_TYPES or INCLUSION_BY_RESOURCE_TYPES recording strategy.

    " @@ -6707,7 +6707,7 @@ "members":{ "useOnly":{ "shape":"RecordingStrategyType", - "documentation":"

    The recording strategy for the configuration recorder.

    • If you set this option to ALL_SUPPORTED_RESOURCE_TYPES, Config records configuration changes for all supported resource types, excluding the global IAM resource types. You also must set the allSupported field of RecordingGroup to true. When Config adds support for a new resource type, Config automatically starts recording resources of that type. For a list of supported resource types, see Supported Resource Types in the Config developer guide.

    • If you set this option to INCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for only the resource types that you specify in the resourceTypes field of RecordingGroup.

    • If you set this option to EXCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded in the resourceTypes field of ExclusionByResourceTypes.

    Required and optional fields

    The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

    The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

    The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

    Overriding fields

    If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

    For example, even if you set includeGlobalResourceTypes to false, global IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

    Global resource types and the exclusion recording strategy

    By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    " + "documentation":"

    The recording strategy for the configuration recorder.

    • If you set this option to ALL_SUPPORTED_RESOURCE_TYPES, Config records configuration changes for all supported resource types, excluding the global IAM resource types. You also must set the allSupported field of RecordingGroup to true. When Config adds support for a new resource type, Config automatically starts recording resources of that type. For a list of supported resource types, see Supported Resource Types in the Config developer guide.

    • If you set this option to INCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for only the resource types that you specify in the resourceTypes field of RecordingGroup.

    • If you set this option to EXCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded in the resourceTypes field of ExclusionByResourceTypes.

    Required and optional fields

    The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

    The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

    The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

    Overriding fields

    If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

    For example, even if you set includeGlobalResourceTypes to false, global IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

    Global resource types and the exclusion recording strategy

    By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Canada West (Calgary)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    " } }, "documentation":"

    Specifies the recording strategy of the configuration recorder.

    " @@ -8248,7 +8248,7 @@ "members":{ "DocumentName":{ "shape":"SSMDocumentName", - "documentation":"

    The name or Amazon Resource Name (ARN) of the SSM document to use to create a conformance pack. If you use the document name, Config checks only your account and Amazon Web Services Region for the SSM document. If you want to use an SSM document from another Region or account, you must provide the ARN.

    " + "documentation":"

    The name or Amazon Resource Name (ARN) of the SSM document to use to create a conformance pack. If you use the document name, Config checks only your account and Amazon Web Services Region for the SSM document.

    " }, "DocumentVersion":{ "shape":"SSMDocumentVersion", diff --git a/services/connect/pom.xml b/services/connect/pom.xml index 9e54421e7e3a..bc196e23f290 100644 --- a/services/connect/pom.xml +++ b/services/connect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT connect AWS Java SDK :: Services :: Connect diff --git a/services/connect/src/main/resources/codegen-resources/customization.config b/services/connect/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/connect/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/connect/src/main/resources/codegen-resources/service-2.json b/services/connect/src/main/resources/codegen-resources/service-2.json index 23d0899b6fc0..142f85feb695 100644 --- a/services/connect/src/main/resources/codegen-resources/service-2.json +++ b/services/connect/src/main/resources/codegen-resources/service-2.json @@ -15059,7 +15059,7 @@ }, "PredefinedAttributeName":{ "type":"string", - "max":128, + "max":64, "min":1 }, "PredefinedAttributeSearchConditionList":{ @@ -15087,13 +15087,13 @@ }, "PredefinedAttributeStringValue":{ "type":"string", - "max":128, + "max":64, "min":1 }, "PredefinedAttributeStringValuesList":{ "type":"list", "member":{"shape":"PredefinedAttributeStringValue"}, - "max":75, + "max":128, "min":1 }, "PredefinedAttributeSummary":{ diff --git a/services/connectcampaigns/pom.xml b/services/connectcampaigns/pom.xml index d578e42dcca8..0388e1c670dd 100644 --- a/services/connectcampaigns/pom.xml +++ b/services/connectcampaigns/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT connectcampaigns AWS Java SDK :: Services :: Connect Campaigns diff --git a/services/connectcampaigns/src/main/resources/codegen-resources/customization.config b/services/connectcampaigns/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/connectcampaigns/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/connectcases/pom.xml b/services/connectcases/pom.xml index 1404ed2147ea..32ecdf49c47d 100644 --- a/services/connectcases/pom.xml +++ b/services/connectcases/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT connectcases AWS Java SDK :: Services :: Connect Cases diff --git a/services/connectcases/src/main/resources/codegen-resources/customization.config b/services/connectcases/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/connectcases/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/connectcases/src/main/resources/codegen-resources/paginators-1.json b/services/connectcases/src/main/resources/codegen-resources/paginators-1.json index 6676e79dbe11..2486cc567897 100644 --- a/services/connectcases/src/main/resources/codegen-resources/paginators-1.json +++ b/services/connectcases/src/main/resources/codegen-resources/paginators-1.json @@ -4,6 +4,11 @@ "input_token": "nextToken", "output_token": "nextToken" }, + "GetCaseAuditEvents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, "ListCasesForContact": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/connectcases/src/main/resources/codegen-resources/service-2.json b/services/connectcases/src/main/resources/codegen-resources/service-2.json index 83bb9aebe0fb..e6007f1c20f5 100644 --- a/services/connectcases/src/main/resources/codegen-resources/service-2.json +++ b/services/connectcases/src/main/resources/codegen-resources/service-2.json @@ -68,7 +68,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"} ], - "documentation":"

    Creates a case in the specified Cases domain. Case system and custom fields are taken as an array id/value pairs with a declared data types.

    The following fields are required when creating a case:

     <ul> <li> <p> <code>customer_id</code> - You must provide the full customer profile ARN in this format: <code>arn:aws:profile:your_AWS_Region:your_AWS_account ID:domains/your_profiles_domain_name/profiles/profile_ID</code> </p> </li> <li> <p> <code>title</code> </p> </li> </ul> 
    ", + "documentation":"

    If you provide a value for PerformedBy.UserArn you must also have connect:DescribeUser permission on the User ARN resource that you provide

     <p>Creates a case in the specified Cases domain. Case system and custom fields are taken as an array id/value pairs with a declared data types.</p> <p>The following fields are required when creating a case:</p> <ul> <li> <p> <code>customer_id</code> - You must provide the full customer profile ARN in this format: <code>arn:aws:profile:your_AWS_Region:your_AWS_account ID:domains/your_profiles_domain_name/profiles/profile_ID</code> </p> </li> <li> <p> <code>title</code> </p> </li> </ul> 
    ", "idempotent":true }, "CreateDomain":{ @@ -211,6 +211,24 @@ ], "documentation":"

    Returns information about a specific case if it exists.

    " }, + "GetCaseAuditEvents":{ + "name":"GetCaseAuditEvents", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/cases/{caseId}/audit-history", + "responseCode":200 + }, + "input":{"shape":"GetCaseAuditEventsRequest"}, + "output":{"shape":"GetCaseAuditEventsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Returns the audit history about a specific case if it exists.

    " + }, "GetCaseEventConfiguration":{ "name":"GetCaseEventConfiguration", "http":{ @@ -515,7 +533,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Updates the values of fields on a case. Fields to be updated are received as an array of id/value pairs identical to the CreateCase input .

    If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

    " + "documentation":"

    If you provide a value for PerformedBy.UserArn you must also have connect:DescribeUser permission on the User ARN resource that you provide

     <p>Updates the values of fields on a case. Fields to be updated are received as an array of id/value pairs identical to the <code>CreateCase</code> input .</p> <p>If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.</p> 
    " }, "UpdateField":{ "name":"UpdateField", @@ -602,6 +620,131 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "AuditEvent":{ + "type":"structure", + "required":[ + "eventId", + "fields", + "performedTime", + "type" + ], + "members":{ + "eventId":{ + "shape":"AuditEventId", + "documentation":"

    Unique identifier of a case audit history event.

    " + }, + "fields":{ + "shape":"AuditEventFieldList", + "documentation":"

    A list of Case Audit History event fields.

    " + }, + "performedBy":{ + "shape":"AuditEventPerformedBy", + "documentation":"

    Information of the user which performed the audit.

    " + }, + "performedTime":{ + "shape":"AuditEventDateTime", + "documentation":"

    Time at which an Audit History event took place.

    " + }, + "relatedItemType":{ + "shape":"RelatedItemType", + "documentation":"

    The Type of the related item.

    " + }, + "type":{ + "shape":"AuditEventType", + "documentation":"

    The Type of an audit history event.

    " + } + }, + "documentation":"

    Represents the content of a particular audit event.

    " + }, + "AuditEventDateTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "AuditEventField":{ + "type":"structure", + "required":[ + "eventFieldId", + "newValue" + ], + "members":{ + "eventFieldId":{ + "shape":"AuditEventFieldId", + "documentation":"

    Unique identifier of field in an Audit History entry.

    " + }, + "newValue":{ + "shape":"AuditEventFieldValueUnion", + "documentation":"

    Union of potential field value types.

    " + }, + "oldValue":{ + "shape":"AuditEventFieldValueUnion", + "documentation":"

    Union of potential field value types.

    " + } + }, + "documentation":"

    Fields for audit event.

    " + }, + "AuditEventFieldId":{ + "type":"string", + "max":500, + "min":1 + }, + "AuditEventFieldList":{ + "type":"list", + "member":{"shape":"AuditEventField"} + }, + "AuditEventFieldValueUnion":{ + "type":"structure", + "members":{ + "booleanValue":{ + "shape":"Boolean", + "documentation":"

    Can be either null, or have a Boolean value type. Only one value can be provided.

    " + }, + "doubleValue":{ + "shape":"Double", + "documentation":"

    Can be either null, or have a Double value type. Only one value can be provided.

    " + }, + "emptyValue":{"shape":"EmptyFieldValue"}, + "stringValue":{ + "shape":"AuditEventFieldValueUnionStringValueString", + "documentation":"

    Can be either null, or have a String value type. Only one value can be provided.

    " + }, + "userArnValue":{ + "shape":"String", + "documentation":"

    Can be either null, or have a String value type formatted as an ARN. Only one value can be provided.

    " + } + }, + "documentation":"

    Object to store union of Field values.

    This data type is a UNION, so only one of the following members can be specified when used or returned.

    ", + "union":true + }, + "AuditEventFieldValueUnionStringValueString":{ + "type":"string", + "max":500, + "min":0 + }, + "AuditEventId":{ + "type":"string", + "max":500, + "min":1 + }, + "AuditEventPerformedBy":{ + "type":"structure", + "required":["iamPrincipalArn"], + "members":{ + "iamPrincipalArn":{ + "shape":"IamPrincipalArn", + "documentation":"

    Unique identifier of an IAM role.

    " + }, + "user":{"shape":"UserUnion"} + }, + "documentation":"

    Information of the user which performed the audit.

    " + }, + "AuditEventType":{ + "type":"string", + "enum":[ + "Case.Created", + "Case.Updated", + "RelatedItem.Created" + ] + }, "BasicLayout":{ "type":"structure", "members":{ @@ -935,6 +1078,7 @@ "shape":"CreateCaseRequestFieldsList", "documentation":"

    An array of objects with field ID (matching ListFields/DescribeField) and value union data.

    " }, + "performedBy":{"shape":"UserUnion"}, "templateId":{ "shape":"TemplateId", "documentation":"

    A unique identifier of a template.

    " @@ -1534,7 +1678,8 @@ "Boolean", "DateTime", "SingleSelect", - "Url" + "Url", + "User" ] }, "FieldValue":{ @@ -1573,9 +1718,13 @@ "stringValue":{ "shape":"FieldValueUnionStringValueString", "documentation":"

    String value type.

    " + }, + "userArnValue":{ + "shape":"String", + "documentation":"

    Represents the user that performed the audit.

    " } }, - "documentation":"

    Object to store union of Field values.

    ", + "documentation":"

    Object to store union of Field values.

    The Summary system field accepts 1500 characters while all other fields accept 500 characters.

    ", "union":true }, "FieldValueUnionStringValueString":{ @@ -1583,6 +1732,61 @@ "max":1500, "min":0 }, + "GetCaseAuditEventsRequest":{ + "type":"structure", + "required":[ + "caseId", + "domainId" + ], + "members":{ + "caseId":{ + "shape":"CaseId", + "documentation":"

    A unique identifier of the case.

    ", + "location":"uri", + "locationName":"caseId" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

    The unique identifier of the Cases domain.

    ", + "location":"uri", + "locationName":"domainId" + }, + "maxResults":{ + "shape":"GetCaseAuditEventsRequestMaxResultsInteger", + "documentation":"

    The maximum number of audit events to return. The current maximum supported value is 25. This is also the default when no other value is provided.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

    " + } + } + }, + "GetCaseAuditEventsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":25, + "min":1 + }, + "GetCaseAuditEventsResponse":{ + "type":"structure", + "required":["auditEvents"], + "members":{ + "auditEvents":{ + "shape":"GetCaseAuditEventsResponseAuditEventsList", + "documentation":"

    A list of case audits where each represents a particular edit of the case.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The token for the next set of results. This is null if there are no more results to return.

    " + } + } + }, + "GetCaseAuditEventsResponseAuditEventsList":{ + "type":"list", + "member":{"shape":"AuditEvent"}, + "max":25, + "min":0 + }, "GetCaseEventConfigurationRequest":{ "type":"structure", "required":["domainId"], @@ -1877,6 +2081,11 @@ } } }, + "IamPrincipalArn":{ + "type":"string", + "max":500, + "min":1 + }, "Integer":{ "type":"integer", "box":true @@ -2842,7 +3051,8 @@ "fields":{ "shape":"UpdateCaseRequestFieldsList", "documentation":"

    An array of objects with fieldId (matching ListFields/DescribeField) and value union data, structured identical to CreateCase.

    " - } + }, + "performedBy":{"shape":"UserUnion"} } }, "UpdateCaseRequestFieldsList":{ diff --git a/services/connectcontactlens/pom.xml b/services/connectcontactlens/pom.xml index 1d83a9e07aef..6c97062806c8 100644 --- a/services/connectcontactlens/pom.xml +++ b/services/connectcontactlens/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT connectcontactlens AWS Java SDK :: Services :: Connect Contact Lens diff --git a/services/connectcontactlens/src/main/resources/codegen-resources/customization.config b/services/connectcontactlens/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/connectcontactlens/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/connectparticipant/pom.xml b/services/connectparticipant/pom.xml index ef6dd0653f65..cb811d6fd1bf 100644 --- a/services/connectparticipant/pom.xml +++ b/services/connectparticipant/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT connectparticipant AWS Java SDK :: Services :: ConnectParticipant diff --git a/services/connectparticipant/src/main/resources/codegen-resources/customization.config b/services/connectparticipant/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/connectparticipant/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/connectparticipant/src/main/resources/codegen-resources/service-2.json b/services/connectparticipant/src/main/resources/codegen-resources/service-2.json index 1230bf27ab94..41f7f09550ff 100644 --- a/services/connectparticipant/src/main/resources/codegen-resources/service-2.json +++ b/services/connectparticipant/src/main/resources/codegen-resources/service-2.json @@ -29,7 +29,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ConflictException"} ], - "documentation":"

    Allows you to confirm that the attachment has been uploaded using the pre-signed URL provided in StartAttachmentUpload API.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Allows you to confirm that the attachment has been uploaded using the pre-signed URL provided in StartAttachmentUpload API. A conflict exception is thrown when an attachment with that identifier is already being uploaded.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "CreateParticipantConnection":{ "name":"CreateParticipantConnection", @@ -110,7 +110,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

    Retrieves a transcript of the session, including details about any attachments. For information about accessing past chat contact transcripts for a persistent chat, see Enable persistent chat.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    Retrieves a transcript of the session, including details about any attachments. For information about accessing past chat contact transcripts for a persistent chat, see Enable persistent chat.

    If you have a process that consumes events in the transcript of an chat that has ended, note that chat transcripts contain the following event content types if the event has occurred during the chat session:

    • application/vnd.amazonaws.connect.event.participant.left

    • application/vnd.amazonaws.connect.event.participant.joined

    • application/vnd.amazonaws.connect.event.chat.ended

    • application/vnd.amazonaws.connect.event.transfer.succeeded

    • application/vnd.amazonaws.connect.event.transfer.failed

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "SendEvent":{ "name":"SendEvent", @@ -127,7 +127,7 @@ {"shape":"ValidationException"}, {"shape":"ConflictException"} ], - "documentation":"

    Sends an event.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " + "documentation":"

    The application/vnd.amazonaws.connect.event.connection.acknowledged ContentType will no longer be supported starting December 31, 2024. This event has been migrated to the CreateParticipantConnection API using the ConnectParticipant field.

    Sends an event. Message receipts are not supported when there are more than two active participants in the chat. Using the SendEvent API for message receipts when a supervisor is barged-in will result in a conflict exception.

    ConnectionToken is used for invoking this API instead of ParticipantToken.

    The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

    " }, "SendMessage":{ "name":"SendMessage", @@ -302,7 +302,7 @@ "members":{ "Message":{"shape":"Reason"} }, - "documentation":"

    An attachment with that identifier is already being uploaded.

    ", + "documentation":"

    The requested operation conflicts with the current state of a service resource associated with the request.

    ", "error":{"httpStatusCode":409}, "exception":true }, @@ -728,7 +728,7 @@ "members":{ "ContentType":{ "shape":"ChatContentType", - "documentation":"

    The content type of the request. Supported types are:

    • application/vnd.amazonaws.connect.event.typing

    • application/vnd.amazonaws.connect.event.connection.acknowledged

    • application/vnd.amazonaws.connect.event.message.delivered

    • application/vnd.amazonaws.connect.event.message.read

    " + "documentation":"

    The content type of the request. Supported types are:

    • application/vnd.amazonaws.connect.event.typing

    • application/vnd.amazonaws.connect.event.connection.acknowledged (will be deprecated on December 31, 2024)

    • application/vnd.amazonaws.connect.event.message.delivered

    • application/vnd.amazonaws.connect.event.message.read

    " }, "Content":{ "shape":"ChatContent", diff --git a/services/controltower/pom.xml b/services/controltower/pom.xml index a91c4d7386ad..9646665f6362 100644 --- a/services/controltower/pom.xml +++ b/services/controltower/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT controltower AWS Java SDK :: Services :: Control Tower diff --git a/services/controltower/src/main/resources/codegen-resources/customization.config b/services/controltower/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/controltower/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/controltower/src/main/resources/codegen-resources/paginators-1.json b/services/controltower/src/main/resources/codegen-resources/paginators-1.json index 24f2f2bdf599..10d8dd60fc12 100644 --- a/services/controltower/src/main/resources/codegen-resources/paginators-1.json +++ b/services/controltower/src/main/resources/codegen-resources/paginators-1.json @@ -1,5 +1,17 @@ { "pagination": { + "ListBaselines": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "baselines" + }, + "ListEnabledBaselines": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "enabledBaselines" + }, "ListEnabledControls": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/controltower/src/main/resources/codegen-resources/service-2.json b/services/controltower/src/main/resources/codegen-resources/service-2.json index 1972b4fcbf56..bd8367787d45 100644 --- a/services/controltower/src/main/resources/codegen-resources/service-2.json +++ b/services/controltower/src/main/resources/codegen-resources/service-2.json @@ -50,6 +50,27 @@ "documentation":"

    Decommissions a landing zone. This API call starts an asynchronous operation that deletes Amazon Web Services Control Tower resources deployed in accounts managed by Amazon Web Services Control Tower.

    ", "idempotent":true }, + "DisableBaseline":{ + "name":"DisableBaseline", + "http":{ + "method":"POST", + "requestUri":"/disable-baseline", + "responseCode":200 + }, + "input":{"shape":"DisableBaselineInput"}, + "output":{"shape":"DisableBaselineOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Disable an EnabledBaseline resource on the specified Target. This API starts an asynchronous operation to remove all resources deployed as part of the baseline enablement. The resource will vary depending on the enabled baseline.

    ", + "idempotent":true + }, "DisableControl":{ "name":"DisableControl", "http":{ @@ -68,7 +89,27 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

    This API call turns off a control. It starts an asynchronous operation that deletes Amazon Web Services resources on the specified organizational unit and the accounts it contains. The resources will vary according to the control that you specify. For usage examples, see the Amazon Web Services Control Tower User Guide .

    " + "documentation":"

    This API call turns off a control. It starts an asynchronous operation that deletes AWS resources on the specified organizational unit and the accounts it contains. The resources will vary according to the control that you specify. For usage examples, see the Amazon Web Services Control Tower User Guide .

    " + }, + "EnableBaseline":{ + "name":"EnableBaseline", + "http":{ + "method":"POST", + "requestUri":"/enable-baseline", + "responseCode":200 + }, + "input":{"shape":"EnableBaselineInput"}, + "output":{"shape":"EnableBaselineOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Enable (apply) a Baseline to a Target. This API starts an asynchronous operation to deploy resources specified by the Baseline to the specified Target.

    " }, "EnableControl":{ "name":"EnableControl", @@ -90,6 +131,42 @@ ], "documentation":"

    This API call activates a control. It starts an asynchronous operation that creates Amazon Web Services resources on the specified organizational unit and the accounts it contains. The resources created will vary according to the control that you specify. For usage examples, see the Amazon Web Services Control Tower User Guide .

    " }, + "GetBaseline":{ + "name":"GetBaseline", + "http":{ + "method":"POST", + "requestUri":"/get-baseline", + "responseCode":200 + }, + "input":{"shape":"GetBaselineInput"}, + "output":{"shape":"GetBaselineOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Retrieve details about an existing Baseline resource by specifying its identifier.

    " + }, + "GetBaselineOperation":{ + "name":"GetBaselineOperation", + "http":{ + "method":"POST", + "requestUri":"/get-baseline-operation", + "responseCode":200 + }, + "input":{"shape":"GetBaselineOperationInput"}, + "output":{"shape":"GetBaselineOperationOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Returns the details of an asynchronous baseline operation, as initiated by any of these APIs: EnableBaseline, DisableBaseline, UpdateEnabledBaseline, ResetEnabledBaseline. A status message is displayed in case of operation failure.

    " + }, "GetControlOperation":{ "name":"GetControlOperation", "http":{ @@ -108,6 +185,24 @@ ], "documentation":"

    Returns the status of a particular EnableControl or DisableControl operation. Displays a message in case of error. Details for an operation are available for 90 days. For usage examples, see the Amazon Web Services Control Tower User Guide .

    " }, + "GetEnabledBaseline":{ + "name":"GetEnabledBaseline", + "http":{ + "method":"POST", + "requestUri":"/get-enabled-baseline", + "responseCode":200 + }, + "input":{"shape":"GetEnabledBaselineInput"}, + "output":{"shape":"GetEnabledBaselineOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Retrieve details of an EnabledBaseline resource by specifying its identifier.

    " + }, "GetEnabledControl":{ "name":"GetEnabledControl", "http":{ @@ -162,6 +257,40 @@ ], "documentation":"

    Returns the status of the specified landing zone operation. Details for an operation are available for 60 days.

    " }, + "ListBaselines":{ + "name":"ListBaselines", + "http":{ + "method":"POST", + "requestUri":"/list-baselines", + "responseCode":200 + }, + "input":{"shape":"ListBaselinesInput"}, + "output":{"shape":"ListBaselinesOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

    Returns a summary list of all available baselines.

    " + }, + "ListEnabledBaselines":{ + "name":"ListEnabledBaselines", + "http":{ + "method":"POST", + "requestUri":"/list-enabled-baselines", + "responseCode":200 + }, + "input":{"shape":"ListEnabledBaselinesInput"}, + "output":{"shape":"ListEnabledBaselinesOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

    Returns a list of summaries describing EnabledBaseline resources. You can filter the list by the corresponding Baseline or Target of the EnabledBaseline resources.

    " + }, "ListEnabledControls":{ "name":"ListEnabledControls", "http":{ @@ -213,6 +342,26 @@ ], "documentation":"

    Returns a list of tags associated with the resource. For usage examples, see the Amazon Web Services Control Tower User Guide .

    " }, + "ResetEnabledBaseline":{ + "name":"ResetEnabledBaseline", + "http":{ + "method":"POST", + "requestUri":"/reset-enabled-baseline", + "responseCode":200 + }, + "input":{"shape":"ResetEnabledBaselineInput"}, + "output":{"shape":"ResetEnabledBaselineOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Re-enables an EnabledBaseline resource. For example, this API can re-apply the existing Baseline after a new member account is moved to the target OU.

    " + }, "ResetLandingZone":{ "name":"ResetLandingZone", "http":{ @@ -264,6 +413,26 @@ ], "documentation":"

    Removes tags from a resource. For usage examples, see the Amazon Web Services Control Tower User Guide .

    " }, + "UpdateEnabledBaseline":{ + "name":"UpdateEnabledBaseline", + "http":{ + "method":"POST", + "requestUri":"/update-enabled-baseline", + "responseCode":200 + }, + "input":{"shape":"UpdateEnabledBaselineInput"}, + "output":{"shape":"UpdateEnabledBaselineOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Updates an EnabledBaseline resource's applied parameters or version.

    " + }, "UpdateEnabledControl":{ "name":"UpdateEnabledControl", "http":{ @@ -324,6 +493,89 @@ "min":20, "pattern":"^arn:aws[0-9a-zA-Z_\\-:\\/]+$" }, + "BaselineArn":{ + "type":"string", + "pattern":"^arn:[a-z-]+:controltower:[a-z0-9-]*:[0-9]{0,12}:baseline/[A-Z0-9]{16}$" + }, + "BaselineOperation":{ + "type":"structure", + "members":{ + "endTime":{ + "shape":"Timestamp", + "documentation":"

    The end time of the operation (if applicable), in ISO 8601 format.

    " + }, + "operationIdentifier":{ + "shape":"OperationIdentifier", + "documentation":"

    The identifier of the specified operation.

    " + }, + "operationType":{ + "shape":"BaselineOperationType", + "documentation":"

    An enumerated type (enum) with possible values of ENABLE_BASELINE, DISABLE_BASELINE, UPDATE_ENABLED_BASELINE, or RESET_ENABLED_BASELINE.

    " + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

    The start time of the operation, in ISO 8601 format.

    " + }, + "status":{ + "shape":"BaselineOperationStatus", + "documentation":"

    An enumerated type (enum) with possible values of SUCCEEDED, FAILED, or IN_PROGRESS.

    " + }, + "statusMessage":{ + "shape":"String", + "documentation":"

    A status message that gives more information about the operation's status, if applicable.

    " + } + }, + "documentation":"

    An object of shape BaselineOperation, returning details about the specified Baseline operation ID.

    " + }, + "BaselineOperationStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "FAILED", + "IN_PROGRESS" + ] + }, + "BaselineOperationType":{ + "type":"string", + "enum":[ + "ENABLE_BASELINE", + "DISABLE_BASELINE", + "UPDATE_ENABLED_BASELINE", + "RESET_ENABLED_BASELINE" + ] + }, + "BaselineSummary":{ + "type":"structure", + "required":[ + "arn", + "name" + ], + "members":{ + "arn":{ + "shape":"String", + "documentation":"

    The full ARN of a Baseline.

    " + }, + "description":{ + "shape":"String", + "documentation":"

    A summary description of a Baseline.

    " + }, + "name":{ + "shape":"String", + "documentation":"

    The human-readable name of a Baseline.

    " + } + }, + "documentation":"

    Returns a summary of information about a Baseline object.

    " + }, + "BaselineVersion":{ + "type":"string", + "max":10, + "min":1, + "pattern":"^\\d+(?:\\.\\d+){0,2}$" + }, + "Baselines":{ + "type":"list", + "member":{"shape":"BaselineSummary"} + }, "ConflictException":{ "type":"structure", "required":["message"], @@ -394,7 +646,7 @@ "members":{ "manifest":{ "shape":"Manifest", - "documentation":"

    The manifest JSON file is a text file that describes your Amazon Web Services resources. For examples, review Launch your landing zone.

    " + "documentation":"

    The manifest.yaml file is a text file that describes your Amazon Web Services resources. For examples, review The manifest file.

    " }, "tags":{ "shape":"TagMap", @@ -443,6 +695,26 @@ } } }, + "DisableBaselineInput":{ + "type":"structure", + "required":["enabledBaselineIdentifier"], + "members":{ + "enabledBaselineIdentifier":{ + "shape":"Arn", + "documentation":"

    Identifier of the EnabledBaseline resource to be deactivated, in ARN format.

    " + } + } + }, + "DisableBaselineOutput":{ + "type":"structure", + "required":["operationIdentifier"], + "members":{ + "operationIdentifier":{ + "shape":"OperationIdentifier", + "documentation":"

    The ID (in UUID format) of the asynchronous DisableBaseline operation. This operationIdentifier is used to track status through calls to the GetBaselineOperation API.

    " + } + } + }, "DisableControlInput":{ "type":"structure", "required":[ @@ -452,7 +724,7 @@ "members":{ "controlIdentifier":{ "shape":"ControlIdentifier", - "documentation":"

    The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the landing zone Region deny control. For information on how to find the controlIdentifier, see the overview page.

    " + "documentation":"

    The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny control. For information on how to find the controlIdentifier, see the overview page.

    " }, "targetIdentifier":{ "shape":"TargetIdentifier", @@ -495,6 +767,53 @@ }, "documentation":"

    The drift summary of the enabled control.

    Amazon Web Services Control Tower expects the enabled control configuration to include all supported and governed Regions. If the enabled control differs from the expected configuration, it is defined to be in a state of drift. You can repair this drift by resetting the enabled control.

    " }, + "EnableBaselineInput":{ + "type":"structure", + "required":[ + "baselineIdentifier", + "baselineVersion", + "targetIdentifier" + ], + "members":{ + "baselineIdentifier":{ + "shape":"Arn", + "documentation":"

    The ARN of the baseline to be enabled.

    " + }, + "baselineVersion":{ + "shape":"BaselineVersion", + "documentation":"

    The specific version to be enabled of the specified baseline.

    " + }, + "parameters":{ + "shape":"EnabledBaselineParameters", + "documentation":"

    A list of key-value objects that specify enablement parameters, where key is a string and value is a document of any type.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    Tags associated with input to EnableBaseline.

    " + }, + "targetIdentifier":{ + "shape":"Arn", + "documentation":"

    The ARN of the target on which the baseline will be enabled. Only OUs are supported as targets.

    " + } + } + }, + "EnableBaselineOutput":{ + "type":"structure", + "required":[ + "arn", + "operationIdentifier" + ], + "members":{ + "arn":{ + "shape":"Arn", + "documentation":"

    The ARN of the EnabledBaseline resource.

    " + }, + "operationIdentifier":{ + "shape":"OperationIdentifier", + "documentation":"

    The ID (in UUID format) of the asynchronous EnableBaseline operation. This operationIdentifier is used to track status through calls to the GetBaselineOperation API.

    " + } + } + }, "EnableControlInput":{ "type":"structure", "required":[ @@ -504,11 +823,11 @@ "members":{ "controlIdentifier":{ "shape":"ControlIdentifier", - "documentation":"

    The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the landing zone Region deny control. For information on how to find the controlIdentifier, see the overview page.

    " + "documentation":"

    The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny control. For information on how to find the controlIdentifier, see the overview page.

    " }, "parameters":{ "shape":"EnabledControlParameters", - "documentation":"

    An array of EnabledControlParameter objects

    " + "documentation":"

    A list of input parameter values, which are specified to configure the control when you enable it.

    " }, "tags":{ "shape":"TagMap", @@ -534,6 +853,148 @@ } } }, + "EnabledBaselineBaselineIdentifiers":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":5, + "min":1 + }, + "EnabledBaselineDetails":{ + "type":"structure", + "required":[ + "arn", + "baselineIdentifier", + "statusSummary", + "targetIdentifier" + ], + "members":{ + "arn":{ + "shape":"Arn", + "documentation":"

    The ARN of the EnabledBaseline resource.

    " + }, + "baselineIdentifier":{ + "shape":"String", + "documentation":"

    The specific Baseline enabled as part of the EnabledBaseline resource.

    " + }, + "baselineVersion":{ + "shape":"String", + "documentation":"

    The enabled version of the Baseline.

    " + }, + "parameters":{ + "shape":"EnabledBaselineParameterSummaries", + "documentation":"

    Shows the parameters that are applied when enabling this Baseline.

    " + }, + "statusSummary":{"shape":"EnablementStatusSummary"}, + "targetIdentifier":{ + "shape":"String", + "documentation":"

    The target on which to enable the Baseline.

    " + } + }, + "documentation":"

    Details of the EnabledBaseline resource.

    " + }, + "EnabledBaselineFilter":{ + "type":"structure", + "members":{ + "baselineIdentifiers":{ + "shape":"EnabledBaselineBaselineIdentifiers", + "documentation":"

    Identifiers for the Baseline objects returned as part of the filter operation.

    " + }, + "targetIdentifiers":{ + "shape":"EnabledBaselineTargetIdentifiers", + "documentation":"

    Identifiers for the targets of the Baseline filter operation.

    " + } + }, + "documentation":"

    A filter applied on the ListEnabledBaseline operation. Allowed filters are baselineIdentifiers and targetIdentifiers. The filter can be applied for either, or both.

    " + }, + "EnabledBaselineParameter":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"String", + "documentation":"

    A string denoting the parameter key.

    " + }, + "value":{ + "shape":"EnabledBaselineParameterDocument", + "documentation":"

    A low-level Document object of any type (for example, a Java Object).

    " + } + }, + "documentation":"

    A key-value parameter to an EnabledBaseline resource.

    " + }, + "EnabledBaselineParameterDocument":{ + "type":"structure", + "members":{ + }, + "document":true + }, + "EnabledBaselineParameterSummaries":{ + "type":"list", + "member":{"shape":"EnabledBaselineParameterSummary"} + }, + "EnabledBaselineParameterSummary":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"String", + "documentation":"

    A string denoting the parameter key.

    " + }, + "value":{ + "shape":"EnabledBaselineParameterDocument", + "documentation":"

    A low-level document object of any type (for example, a Java Object).

    " + } + }, + "documentation":"

    Summary of an applied parameter to an EnabledBaseline resource.

    " + }, + "EnabledBaselineParameters":{ + "type":"list", + "member":{"shape":"EnabledBaselineParameter"} + }, + "EnabledBaselineSummary":{ + "type":"structure", + "required":[ + "arn", + "baselineIdentifier", + "statusSummary", + "targetIdentifier" + ], + "members":{ + "arn":{ + "shape":"Arn", + "documentation":"

    The ARN of the EnabledBaseline resource

    " + }, + "baselineIdentifier":{ + "shape":"String", + "documentation":"

    The specific baseline that is enabled as part of the EnabledBaseline resource.

    " + }, + "baselineVersion":{ + "shape":"String", + "documentation":"

    The enabled version of the baseline.

    " + }, + "statusSummary":{"shape":"EnablementStatusSummary"}, + "targetIdentifier":{ + "shape":"String", + "documentation":"

    The target upon which the baseline is enabled.

    " + } + }, + "documentation":"

    Returns a summary of information about an EnabledBaseline object.

    " + }, + "EnabledBaselineTargetIdentifiers":{ + "type":"list", + "member":{"shape":"Arn"}, + "max":5, + "min":1 + }, + "EnabledBaselines":{ + "type":"list", + "member":{"shape":"EnabledBaselineSummary"} + }, "EnabledControlDetails":{ "type":"structure", "members":{ @@ -577,14 +1038,14 @@ "members":{ "key":{ "shape":"String", - "documentation":"

    The key of a key/value pair. It is of type string.

    " + "documentation":"

    The key of a key/value pair.

    " }, "value":{ "shape":"Document", - "documentation":"

    The value of a key/value pair. It can be of type array string, number, object, or boolean.

    " + "documentation":"

    The value of a key/value pair.

    " } }, - "documentation":"

    A set of parameters that configure the behavior of the enabled control. A key/value pair, where Key is of type String and Value is of type Document.

    " + "documentation":"

    A key/value pair, where Key is of type String and Value is of type Document.

    " }, "EnabledControlParameterSummaries":{ "type":"list", @@ -664,6 +1125,57 @@ }, "documentation":"

    The deployment summary of the enabled control.

    " }, + "GetBaselineInput":{ + "type":"structure", + "required":["baselineIdentifier"], + "members":{ + "baselineIdentifier":{ + "shape":"BaselineArn", + "documentation":"

    The ARN of the Baseline resource to be retrieved.

    " + } + } + }, + "GetBaselineOperationInput":{ + "type":"structure", + "required":["operationIdentifier"], + "members":{ + "operationIdentifier":{ + "shape":"OperationIdentifier", + "documentation":"

    The operation ID returned from mutating asynchronous APIs (Enable, Disable, Update, Reset).

    " + } + } + }, + "GetBaselineOperationOutput":{ + "type":"structure", + "required":["baselineOperation"], + "members":{ + "baselineOperation":{ + "shape":"BaselineOperation", + "documentation":"

    A baselineOperation object that shows information about the specified operation ID.

    " + } + } + }, + "GetBaselineOutput":{ + "type":"structure", + "required":[ + "arn", + "name" + ], + "members":{ + "arn":{ + "shape":"BaselineArn", + "documentation":"

    The baseline ARN.

    " + }, + "description":{ + "shape":"String", + "documentation":"

    A description of the baseline.

    " + }, + "name":{ + "shape":"String", + "documentation":"

    A user-friendly name for the baseline.

    " + } + } + }, "GetControlOperationInput":{ "type":"structure", "required":["operationIdentifier"], @@ -684,6 +1196,25 @@ } } }, + "GetEnabledBaselineInput":{ + "type":"structure", + "required":["enabledBaselineIdentifier"], + "members":{ + "enabledBaselineIdentifier":{ + "shape":"Arn", + "documentation":"

    Identifier of the EnabledBaseline resource to be retrieved, in ARN format.

    " + } + } + }, + "GetEnabledBaselineOutput":{ + "type":"structure", + "members":{ + "enabledBaselineDetails":{ + "shape":"EnabledBaselineDetails", + "documentation":"

    Details of the EnabledBaseline resource.

    " + } + } + }, "GetEnabledControlInput":{ "type":"structure", "required":["enabledControlIdentifier"], @@ -781,11 +1312,11 @@ }, "manifest":{ "shape":"Manifest", - "documentation":"

    The landing zone manifest JSON text file that specifies the landing zone configurations.

    " + "documentation":"

    The landing zone manifest.yaml text file that specifies the landing zone configurations.

    " }, "status":{ "shape":"LandingZoneStatus", - "documentation":"

    The landing zone deployment status.

    " + "documentation":"

    The landing zone deployment status. One of ACTIVE, PROCESSING, FAILED.

    " }, "version":{ "shape":"LandingZoneVersion", @@ -878,6 +1409,80 @@ "min":3, "pattern":"^\\d+.\\d+$" }, + "ListBaselinesInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListBaselinesMaxResults", + "documentation":"

    The maximum number of results to be shown.

    " + }, + "nextToken":{ + "shape":"String", + "documentation":"

    A pagination token.

    " + } + } + }, + "ListBaselinesMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":4 + }, + "ListBaselinesOutput":{ + "type":"structure", + "required":["baselines"], + "members":{ + "baselines":{ + "shape":"Baselines", + "documentation":"

    A list of Baseline object details.

    " + }, + "nextToken":{ + "shape":"String", + "documentation":"

    A pagination token.

    " + } + } + }, + "ListEnabledBaselinesInput":{ + "type":"structure", + "members":{ + "filter":{ + "shape":"EnabledBaselineFilter", + "documentation":"

    A filter applied on the ListEnabledBaseline operation. Allowed filters are baselineIdentifiers and targetIdentifiers. The filter can be applied for either, or both.

    " + }, + "maxResults":{ + "shape":"ListEnabledBaselinesMaxResults", + "documentation":"

    The maximum number of results to be shown.

    " + }, + "nextToken":{ + "shape":"ListEnabledBaselinesNextToken", + "documentation":"

    A pagination token.

    " + } + } + }, + "ListEnabledBaselinesMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":5 + }, + "ListEnabledBaselinesNextToken":{ + "type":"string", + "pattern":"\\S+" + }, + "ListEnabledBaselinesOutput":{ + "type":"structure", + "required":["enabledBaselines"], + "members":{ + "enabledBaselines":{ + "shape":"EnabledBaselines", + "documentation":"

    Retuens a list of summaries of EnabledBaseline resources.

    " + }, + "nextToken":{ + "shape":"ListEnabledBaselinesNextToken", + "documentation":"

    A pagination token.

    " + } + } + }, "ListEnabledControlsInput":{ "type":"structure", "required":["targetIdentifier"], @@ -1004,6 +1609,26 @@ "max":50, "min":1 }, + "ResetEnabledBaselineInput":{ + "type":"structure", + "required":["enabledBaselineIdentifier"], + "members":{ + "enabledBaselineIdentifier":{ + "shape":"Arn", + "documentation":"

    Specifies the ID of the EnabledBaseline resource to be re-enabled, in ARN format.

    " + } + } + }, + "ResetEnabledBaselineOutput":{ + "type":"structure", + "required":["operationIdentifier"], + "members":{ + "operationIdentifier":{ + "shape":"OperationIdentifier", + "documentation":"

    The ID (in UUID format) of the asynchronous ResetEnabledBaseline operation. This operationIdentifier is used to track status through calls to the GetBaselineOperation API.

    " + } + } + }, "ResetLandingZoneInput":{ "type":"structure", "required":["landingZoneIdentifier"], @@ -1123,13 +1748,13 @@ }, "retryAfterSeconds":{ "shape":"Integer", - "documentation":"

    The number of seconds to wait before retrying.

    ", + "documentation":"

    The number of seconds the caller should wait before retrying.

    ", "location":"header", "locationName":"Retry-After" }, "serviceCode":{ "shape":"String", - "documentation":"

    The ID of the service that is associated with the error.

    " + "documentation":"

    The ID of the service that is associated with the error.

    " } }, "documentation":"

    The request was denied due to request throttling.

    ", @@ -1170,6 +1795,37 @@ "members":{ } }, + "UpdateEnabledBaselineInput":{ + "type":"structure", + "required":[ + "baselineVersion", + "enabledBaselineIdentifier" + ], + "members":{ + "baselineVersion":{ + "shape":"BaselineVersion", + "documentation":"

    Specifies the new Baseline version, to which the EnabledBaseline should be updated.

    " + }, + "enabledBaselineIdentifier":{ + "shape":"Arn", + "documentation":"

    Specifies the EnabledBaseline resource to be updated.

    " + }, + "parameters":{ + "shape":"EnabledBaselineParameters", + "documentation":"

    Parameters to apply when making an update.

    " + } + } + }, + "UpdateEnabledBaselineOutput":{ + "type":"structure", + "required":["operationIdentifier"], + "members":{ + "operationIdentifier":{ + "shape":"OperationIdentifier", + "documentation":"

    The ID (in UUID format) of the asynchronous UpdateEnabledBaseline operation. This operationIdentifier is used to track status through calls to the GetBaselineOperation API.

    " + } + } + }, "UpdateEnabledControlInput":{ "type":"structure", "required":[ @@ -1211,7 +1867,7 @@ }, "manifest":{ "shape":"Manifest", - "documentation":"

    The manifest JSON file is a text file that describes your Amazon Web Services resources. For examples, review Launch your landing zone.

    " + "documentation":"

    The manifest.yaml file is a text file that describes your Amazon Web Services resources. For examples, review The manifest file.

    " }, "version":{ "shape":"LandingZoneVersion", diff --git a/services/costandusagereport/pom.xml b/services/costandusagereport/pom.xml index fffcb3d208ee..ffd6240e029c 100644 --- a/services/costandusagereport/pom.xml +++ b/services/costandusagereport/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT costandusagereport AWS Java SDK :: Services :: AWS Cost and Usage Report diff --git a/services/costandusagereport/src/main/resources/codegen-resources/customization.config b/services/costandusagereport/src/main/resources/codegen-resources/customization.config index bb24e28984aa..ecb32bc84df9 100644 --- a/services/costandusagereport/src/main/resources/codegen-resources/customization.config +++ b/services/costandusagereport/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "verifiedSimpleMethods": [ - "describeReportDefinitions" - ], - "excludedSimpleMethods": [ - "deleteReportDefinition" - ] + "verifiedSimpleMethods": [ + "describeReportDefinitions" + ], + "excludedSimpleMethods": [ + "deleteReportDefinition" + ], + "useSraAuth": true } diff --git a/services/costexplorer/pom.xml b/services/costexplorer/pom.xml index fb4e0267859d..924755c31f65 100644 --- a/services/costexplorer/pom.xml +++ b/services/costexplorer/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 costexplorer diff --git a/services/costexplorer/src/main/resources/codegen-resources/customization.config b/services/costexplorer/src/main/resources/codegen-resources/customization.config index 09691b4543c1..57e870992202 100644 --- a/services/costexplorer/src/main/resources/codegen-resources/customization.config +++ b/services/costexplorer/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,8 @@ { - "excludedSimpleMethods" : ["getCostAndUsage"] + "excludedSimpleMethods": [ + "getCostAndUsage" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/costoptimizationhub/pom.xml b/services/costoptimizationhub/pom.xml index d72fd1d676a0..57ee19da8318 100644 --- a/services/costoptimizationhub/pom.xml +++ b/services/costoptimizationhub/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT costoptimizationhub AWS Java SDK :: Services :: Cost Optimization Hub diff --git a/services/costoptimizationhub/src/main/resources/codegen-resources/customization.config b/services/costoptimizationhub/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/costoptimizationhub/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/costoptimizationhub/src/main/resources/codegen-resources/service-2.json b/services/costoptimizationhub/src/main/resources/codegen-resources/service-2.json index d2006d8af591..664c769f5938 100644 --- a/services/costoptimizationhub/src/main/resources/codegen-resources/service-2.json +++ b/services/costoptimizationhub/src/main/resources/codegen-resources/service-2.json @@ -844,7 +844,7 @@ "members":{ "accountId":{ "shape":"AccountId", - "documentation":"

    The enrollment status of a specific account ID in the organization.

    " + "documentation":"

    The account ID of a member account in the organization.

    " }, "includeOrganizationInfo":{ "shape":"PrimitiveBoolean", @@ -863,9 +863,13 @@ "ListEnrollmentStatusesResponse":{ "type":"structure", "members":{ + "includeMemberAccounts":{ + "shape":"Boolean", + "documentation":"

    The enrollment status of all member accounts in the organization if the account is the management account.

    " + }, "items":{ "shape":"AccountEnrollmentStatuses", - "documentation":"

    The account enrollment statuses.

    " + "documentation":"

    The enrollment status of a specific account ID, including creation and last updated timestamps.

    " }, "nextToken":{ "shape":"String", diff --git a/services/customerprofiles/pom.xml b/services/customerprofiles/pom.xml index 1bd883c6a8a7..295723cce72b 100644 --- a/services/customerprofiles/pom.xml +++ b/services/customerprofiles/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT customerprofiles AWS Java SDK :: Services :: Customer Profiles diff --git a/services/customerprofiles/src/main/resources/codegen-resources/customization.config b/services/customerprofiles/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/customerprofiles/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/databasemigration/pom.xml b/services/databasemigration/pom.xml index 5f8c578880a4..76add8307a14 100644 --- a/services/databasemigration/pom.xml +++ b/services/databasemigration/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT databasemigration AWS Java SDK :: Services :: AWS Database Migration Service diff --git a/services/databasemigration/src/main/resources/codegen-resources/customization.config b/services/databasemigration/src/main/resources/codegen-resources/customization.config index c746548fecc0..40015a333c1d 100644 --- a/services/databasemigration/src/main/resources/codegen-resources/customization.config +++ b/services/databasemigration/src/main/resources/codegen-resources/customization.config @@ -1,19 +1,22 @@ { - "verifiedSimpleMethods": [ - "describeAccountAttributes", - "describeCertificates", - "describeConnections", - "describeEndpointTypes", - "describeEndpoints", - "describeEventCategories", - "describeEventSubscriptions", - "describeEvents", - "describeOrderableReplicationInstances", - "describeReplicationInstances", - "describeReplicationSubnetGroups", - "describeReplicationTasks" - ], - "excludedSimpleMethods": [ - "describeReplicationTaskAssessmentResults" - ] + "verifiedSimpleMethods": [ + "describeAccountAttributes", + "describeCertificates", + "describeConnections", + "describeEndpointTypes", + "describeEndpoints", + "describeEventCategories", + "describeEventSubscriptions", + "describeEvents", + "describeOrderableReplicationInstances", + "describeReplicationInstances", + "describeReplicationSubnetGroups", + "describeReplicationTasks" + ], + "excludedSimpleMethods": [ + "describeReplicationTaskAssessmentResults" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/databrew/pom.xml b/services/databrew/pom.xml index 49ccd6e35762..daac30e1d871 100644 --- a/services/databrew/pom.xml +++ b/services/databrew/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT databrew AWS Java SDK :: Services :: Data Brew diff --git a/services/databrew/src/main/resources/codegen-resources/customization.config b/services/databrew/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/databrew/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/dataexchange/pom.xml b/services/dataexchange/pom.xml index 20cf8294a836..fb61789f393b 100644 --- a/services/dataexchange/pom.xml +++ b/services/dataexchange/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT dataexchange AWS Java SDK :: Services :: DataExchange diff --git a/services/dataexchange/src/main/resources/codegen-resources/customization.config b/services/dataexchange/src/main/resources/codegen-resources/customization.config index 78ff91600302..683e651d1a7c 100644 --- a/services/dataexchange/src/main/resources/codegen-resources/customization.config +++ b/services/dataexchange/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "operationModifiers": { - "SendApiAsset": { - "exclude": true - } - }, - "generateEndpointClientTests": true + "operationModifiers": { + "SendApiAsset": { + "exclude": true + } + }, + "generateEndpointClientTests": true, + "useSraAuth": true } diff --git a/services/datapipeline/pom.xml b/services/datapipeline/pom.xml index dc816451a6a7..0d8753455000 100644 --- a/services/datapipeline/pom.xml +++ b/services/datapipeline/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT datapipeline AWS Java SDK :: Services :: AWS Data Pipeline diff --git a/services/datapipeline/src/main/resources/codegen-resources/customization.config b/services/datapipeline/src/main/resources/codegen-resources/customization.config index 6d3852e46dd0..a1b0cd17e4f5 100644 --- a/services/datapipeline/src/main/resources/codegen-resources/customization.config +++ b/services/datapipeline/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listPipelines" - ] + ], + "useSraAuth": true } diff --git a/services/datasync/pom.xml b/services/datasync/pom.xml index 61e18a6d7d61..577a0ee1b22c 100644 --- a/services/datasync/pom.xml +++ b/services/datasync/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT datasync AWS Java SDK :: Services :: DataSync diff --git a/services/datasync/src/main/resources/codegen-resources/customization.config b/services/datasync/src/main/resources/codegen-resources/customization.config index 296e08b3695c..54cfb6c48bf5 100644 --- a/services/datasync/src/main/resources/codegen-resources/customization.config +++ b/services/datasync/src/main/resources/codegen-resources/customization.config @@ -1,9 +1,12 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listAgents", "listLocations", "listTaskExecutions", "listTasks" ], - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/datasync/src/main/resources/codegen-resources/service-2.json b/services/datasync/src/main/resources/codegen-resources/service-2.json index 0246bb0a35a6..c5ee7b7160cb 100644 --- a/services/datasync/src/main/resources/codegen-resources/service-2.json +++ b/services/datasync/src/main/resources/codegen-resources/service-2.json @@ -69,7 +69,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for a Microsoft Azure Blob Storage container that DataSync can use as a transfer source or destination.

    Before you begin, make sure you know how DataSync accesses Azure Blob Storage and works with access tiers and blob types. You also need a DataSync agent that can connect to your container.

    " + "documentation":"

    Creates a transfer location for a Microsoft Azure Blob Storage container. DataSync can use this location as a transfer source or destination.

    Before you begin, make sure you know how DataSync accesses Azure Blob Storage and works with access tiers and blob types. You also need a DataSync agent that can connect to your container.

    " }, "CreateLocationEfs":{ "name":"CreateLocationEfs", @@ -83,7 +83,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for an Amazon EFS file system that DataSync can access for a transfer. For more information, see Creating a location for Amazon EFS.

    " + "documentation":"

    Creates a transfer location for an Amazon EFS file system. DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you understand how DataSync accesses Amazon EFS file systems.

    " }, "CreateLocationFsxLustre":{ "name":"CreateLocationFsxLustre", @@ -97,7 +97,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for an Amazon FSx for Lustre file system.

    " + "documentation":"

    Creates a transfer location for an Amazon FSx for Lustre file system. DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you understand how DataSync accesses FSx for Lustre file systems.

    " }, "CreateLocationFsxOntap":{ "name":"CreateLocationFsxOntap", @@ -111,7 +111,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for an Amazon FSx for NetApp ONTAP file system that DataSync can use for a data transfer.

    Before you begin, make sure that you understand how DataSync accesses an FSx for ONTAP file system.

    " + "documentation":"

    Creates a transfer location for an Amazon FSx for NetApp ONTAP file system. DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you understand how DataSync accesses FSx for ONTAP file systems.

    " }, "CreateLocationFsxOpenZfs":{ "name":"CreateLocationFsxOpenZfs", @@ -125,7 +125,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for an Amazon FSx for OpenZFS file system that DataSync can access for a transfer. For more information, see Creating a location for FSx for OpenZFS.

    Request parameters related to SMB aren't supported with the CreateLocationFsxOpenZfs operation.

    " + "documentation":"

    Creates a transfer location for an Amazon FSx for OpenZFS file system. DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you understand how DataSync accesses FSx for OpenZFS file systems.

    Request parameters related to SMB aren't supported with the CreateLocationFsxOpenZfs operation.

    " }, "CreateLocationFsxWindows":{ "name":"CreateLocationFsxWindows", @@ -139,7 +139,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for an Amazon FSx for Windows File Server file system that DataSync can use for a data transfer.

    Before you begin, make sure that you understand how DataSync accesses an FSx for Windows File Server.

    " + "documentation":"

    Creates a transfer location for an Amazon FSx for Windows File Server file system. DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you understand how DataSync accesses FSx for Windows File Server file systems.

    " }, "CreateLocationHdfs":{ "name":"CreateLocationHdfs", @@ -153,7 +153,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for a Hadoop Distributed File System (HDFS).

    " + "documentation":"

    Creates a transfer location for a Hadoop Distributed File System (HDFS). DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you understand how DataSync accesses HDFS clusters.

    " }, "CreateLocationNfs":{ "name":"CreateLocationNfs", @@ -167,7 +167,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for a Network File System (NFS) file server that DataSync can use for a data transfer.

    For more information, see Configuring transfers to or from an NFS file server.

    If you're copying data to or from an Snowcone device, you can also use CreateLocationNfs to create your transfer location. For more information, see Configuring transfers with Snowcone.

    " + "documentation":"

    Creates a transfer location for a Network File System (NFS) file server. DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you understand how DataSync accesses NFS file servers.

    If you're copying data to or from an Snowcone device, you can also use CreateLocationNfs to create your transfer location. For more information, see Configuring transfers with Snowcone.

    " }, "CreateLocationObjectStorage":{ "name":"CreateLocationObjectStorage", @@ -181,7 +181,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for an object storage system that DataSync can access for a transfer. For more information, see Creating a location for object storage.

    " + "documentation":"

    Creates a transfer location for an object storage system. DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you understand the prerequisites for DataSync to work with object storage systems.

    " }, "CreateLocationS3":{ "name":"CreateLocationS3", @@ -195,7 +195,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    A location is an endpoint for an Amazon S3 bucket. DataSync can use the location as a source or destination for copying data.

    Before you create your location, make sure that you read the following sections:

    For more information, see Creating an Amazon S3 location.

    " + "documentation":"

    Creates a transfer location for an Amazon S3 bucket. DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you read the following topics:

    For more information, see Configuring transfers with Amazon S3.

    " }, "CreateLocationSmb":{ "name":"CreateLocationSmb", @@ -209,7 +209,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Creates an endpoint for a Server Message Block (SMB) file server that DataSync can use for a data transfer.

    Before you begin, make sure that you understand how DataSync accesses an SMB file server.

    " + "documentation":"

    Creates a transfer location for a Server Message Block (SMB) file server. DataSync can use this location as a source or destination for transferring data.

    Before you begin, make sure that you understand how DataSync accesses SMB file servers.

    " }, "CreateTask":{ "name":"CreateTask", @@ -251,7 +251,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Deletes the configuration of a location used by DataSync.

    " + "documentation":"

    Deletes a transfer location resource from DataSync.

    " }, "DeleteTask":{ "name":"DeleteTask", @@ -265,7 +265,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Deletes an DataSync transfer task.

    " + "documentation":"

    Deletes a transfer task resource from DataSync.

    " }, "DescribeAgent":{ "name":"DescribeAgent", @@ -322,7 +322,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Returns metadata about your DataSync location for an Amazon EFS file system.

    " + "documentation":"

    Provides details about how an DataSync transfer location for an Amazon EFS file system is configured.

    " }, "DescribeLocationFsxLustre":{ "name":"DescribeLocationFsxLustre", @@ -336,7 +336,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Provides details about how an DataSync location for an Amazon FSx for Lustre file system is configured.

    " + "documentation":"

    Provides details about how an DataSync transfer location for an Amazon FSx for Lustre file system is configured.

    " }, "DescribeLocationFsxOntap":{ "name":"DescribeLocationFsxOntap", @@ -350,7 +350,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Provides details about how an DataSync location for an Amazon FSx for NetApp ONTAP file system is configured.

    If your location uses SMB, the DescribeLocationFsxOntap operation doesn't actually return a Password.

    " + "documentation":"

    Provides details about how an DataSync transfer location for an Amazon FSx for NetApp ONTAP file system is configured.

    If your location uses SMB, the DescribeLocationFsxOntap operation doesn't actually return a Password.

    " }, "DescribeLocationFsxOpenZfs":{ "name":"DescribeLocationFsxOpenZfs", @@ -364,7 +364,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Provides details about how an DataSync location for an Amazon FSx for OpenZFS file system is configured.

    Response elements related to SMB aren't supported with the DescribeLocationFsxOpenZfs operation.

    " + "documentation":"

    Provides details about how an DataSync transfer location for an Amazon FSx for OpenZFS file system is configured.

    Response elements related to SMB aren't supported with the DescribeLocationFsxOpenZfs operation.

    " }, "DescribeLocationFsxWindows":{ "name":"DescribeLocationFsxWindows", @@ -378,7 +378,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Returns metadata about an Amazon FSx for Windows File Server location, such as information about its path.

    " + "documentation":"

    Provides details about how an DataSync transfer location for an Amazon FSx for Windows File Server file system is configured.

    " }, "DescribeLocationHdfs":{ "name":"DescribeLocationHdfs", @@ -392,7 +392,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Returns metadata, such as the authentication information about the Hadoop Distributed File System (HDFS) location.

    " + "documentation":"

    Provides details about how an DataSync transfer location for a Hadoop Distributed File System (HDFS) is configured.

    " }, "DescribeLocationNfs":{ "name":"DescribeLocationNfs", @@ -420,7 +420,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Returns metadata about your DataSync location for an object storage system.

    " + "documentation":"

    Provides details about how an DataSync transfer location for an object storage system is configured.

    " }, "DescribeLocationS3":{ "name":"DescribeLocationS3", @@ -434,7 +434,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Returns metadata, such as bucket name, about an Amazon S3 bucket location.

    " + "documentation":"

    Provides details about how an DataSync transfer location for an S3 bucket is configured.

    " }, "DescribeLocationSmb":{ "name":"DescribeLocationSmb", @@ -448,7 +448,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Returns metadata, such as the path and user information about an SMB location.

    " + "documentation":"

    Provides details about how an DataSync transfer location for a Server Message Block (SMB) file server is configured.

    " }, "DescribeStorageSystem":{ "name":"DescribeStorageSystem", @@ -622,7 +622,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Returns a list of executed tasks.

    " + "documentation":"

    Returns a list of executions for an DataSync transfer task.

    " }, "ListTasks":{ "name":"ListTasks", @@ -851,7 +851,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

    Updates the configuration of a DataSync transfer task.

    " + "documentation":"

    Updates the configuration of an DataSync transfer task.

    " }, "UpdateTaskExecution":{ "name":"UpdateTaskExecution", @@ -1353,15 +1353,15 @@ }, "User":{ "shape":"SmbUser", - "documentation":"

    Specifies the user who has the permissions to access files, folders, and metadata in your file system.

    For information about choosing a user with the right level of access for your transfer, see required permissions for FSx for Windows File Server locations.

    " + "documentation":"

    Specifies the user with the permissions to mount and access the files, folders, and file metadata in your FSx for Windows File Server file system.

    For information about choosing a user with the right level of access for your transfer, see required permissions for FSx for Windows File Server locations.

    " }, "Domain":{ "shape":"SmbDomain", - "documentation":"

    Specifies the name of the Windows domain that the FSx for Windows File Server belongs to.

    If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.

    For more information, see required permissions for FSx for Windows File Server locations.

    " + "documentation":"

    Specifies the name of the Microsoft Active Directory domain that the FSx for Windows File Server file system belongs to.

    If you have multiple Active Directory domains in your environment, configuring this parameter makes sure that DataSync connects to the right file system.

    " }, "Password":{ "shape":"SmbPassword", - "documentation":"

    Specifies the password of the user who has the permissions to access files and folders in the file system.

    For more information, see required permissions for FSx for Windows File Server locations.

    " + "documentation":"

    Specifies the password of the user with the permissions to mount and access the files, folders, and file metadata in your FSx for Windows File Server file system.

    " } } }, @@ -1556,24 +1556,24 @@ "members":{ "Subdirectory":{ "shape":"S3Subdirectory", - "documentation":"

    A subdirectory in the Amazon S3 bucket. This subdirectory in Amazon S3 is used to read data from the S3 source location or write data to the S3 destination.

    " + "documentation":"

    Specifies a prefix in the S3 bucket that DataSync reads from or writes to (depending on whether the bucket is a source or destination location).

    DataSync can't transfer objects with a prefix that begins with a slash (/) or includes //, /./, or /../ patterns. For example:

    • /photos

    • photos//2006/January

    • photos/./2006/February

    • photos/../2006/March

    " }, "S3BucketArn":{ "shape":"S3BucketArn", - "documentation":"

    The ARN of the Amazon S3 bucket. If the bucket is on an Amazon Web Services Outpost, this must be an access point ARN.

    " + "documentation":"

    Specifies the ARN of the S3 bucket that you want to use as a location. (When creating your DataSync task later, you specify whether this location is a transfer source or destination.)

    If your S3 bucket is located on an Outposts resource, you must specify an Amazon S3 access point. For more information, see Managing data access with Amazon S3 access points in the Amazon S3 User Guide.

    " }, "S3StorageClass":{ "shape":"S3StorageClass", - "documentation":"

    The Amazon S3 storage class that you want to store your files in when this location is used as a task destination. For buckets in Amazon Web Services Regions, the storage class defaults to Standard. For buckets on Outposts, the storage class defaults to Amazon Web Services S3 Outposts.

    For more information about S3 storage classes, see Amazon S3 Storage Classes. Some storage classes have behaviors that can affect your S3 storage cost. For detailed information, see Considerations when working with S3 storage classes in DataSync.

    " + "documentation":"

    Specifies the storage class that you want your objects to use when Amazon S3 is a transfer destination.

    For buckets in Amazon Web Services Regions, the storage class defaults to STANDARD. For buckets on Outposts, the storage class defaults to OUTPOSTS.

    For more information, see Storage class considerations with Amazon S3 transfers.

    " }, "S3Config":{"shape":"S3Config"}, "AgentArns":{ "shape":"AgentArnList", - "documentation":"

    If you're using DataSync on an Amazon Web Services Outpost, specify the Amazon Resource Names (ARNs) of the DataSync agents deployed on your Outpost. For more information about launching a DataSync agent on an Amazon Web Services Outpost, see Deploy your DataSync agent on Outposts.

    " + "documentation":"

    (Amazon S3 on Outposts only) Specifies the Amazon Resource Name (ARN) of the DataSync agent on your Outpost.

    For more information, see Deploy your DataSync agent on Outposts.

    " }, "Tags":{ "shape":"InputTagList", - "documentation":"

    The key-value pair that represents the tag that you want to add to the location. The value can be an empty string. We recommend using tags to name your resources.

    " + "documentation":"

    Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your transfer location.

    " } }, "documentation":"

    CreateLocationS3Request

    " @@ -1583,7 +1583,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the source Amazon S3 bucket location that is created.

    " + "documentation":"

    The ARN of the S3 location that you created.

    " } }, "documentation":"

    CreateLocationS3Response

    " @@ -1600,7 +1600,7 @@ "members":{ "Subdirectory":{ "shape":"SmbSubdirectory", - "documentation":"

    Specifies the name of the share exported by your SMB file server where DataSync will read or write data. You can include a subdirectory in the share path (for example, /path/to/subdirectory). Make sure that other SMB clients in your network can also mount this path.

    To copy all data in the specified subdirectory, DataSync must be able to mount the SMB share and access all of its data. For more information, see required permissions for SMB locations.

    " + "documentation":"

    Specifies the name of the share exported by your SMB file server where DataSync will read or write data. You can include a subdirectory in the share path (for example, /path/to/subdirectory). Make sure that other SMB clients in your network can also mount this path.

    To copy all data in the subdirectory, DataSync must be able to mount the SMB share and access all of its data. For more information, see required permissions for SMB locations.

    " }, "ServerHostname":{ "shape":"ServerHostname", @@ -1608,11 +1608,11 @@ }, "User":{ "shape":"SmbUser", - "documentation":"

    Specifies the user name that can mount your SMB file server and has permission to access the files and folders involved in your transfer.

    For information about choosing a user with the right level of access for your transfer, see required permissions for SMB locations.

    " + "documentation":"

    Specifies the user that can mount and access the files, folders, and file metadata in your SMB file server.

    For information about choosing a user with the right level of access for your transfer, see required permissions for SMB locations.

    " }, "Domain":{ "shape":"SmbDomain", - "documentation":"

    Specifies the Windows domain name that your SMB file server belongs to.

    If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.

    For more information, see required permissions for SMB locations.

    " + "documentation":"

    Specifies the name of the Active Directory domain that your SMB file server belongs to.

    If you have multiple Active Directory domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.

    " }, "Password":{ "shape":"SmbPassword", @@ -1686,9 +1686,13 @@ "shape":"FilterList", "documentation":"

    Specifies a list of filter rules that include specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync.

    " }, + "ManifestConfig":{ + "shape":"ManifestConfig", + "documentation":"

    Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, see Specifying what DataSync transfers by using a manifest.

    When using this parameter, your caller identity (the role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission.

    " + }, "TaskReportConfig":{ "shape":"TaskReportConfig", - "documentation":"

    Specifies how you want to configure a task report, which provides detailed information about for your DataSync transfer.

    " + "documentation":"

    Specifies how you want to configure a task report, which provides detailed information about your DataSync transfer. For more information, see Monitoring your DataSync transfers with task reports.

    When using this parameter, your caller identity (the role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission.

    " } }, "documentation":"

    CreateTaskRequest

    " @@ -2054,7 +2058,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the FSx for Windows File Server location to describe.

    " + "documentation":"

    Specifies the Amazon Resource Name (ARN) of the FSx for Windows File Server location.

    " } } }, @@ -2063,15 +2067,15 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the FSx for Windows File Server location that was described.

    " + "documentation":"

    The ARN of the FSx for Windows File Server location.

    " }, "LocationUri":{ "shape":"LocationUri", - "documentation":"

    The URL of the FSx for Windows File Server location that was described.

    " + "documentation":"

    The uniform resource identifier (URI) of the FSx for Windows File Server location.

    " }, "SecurityGroupArns":{ "shape":"Ec2SecurityGroupArnList", - "documentation":"

    The Amazon Resource Names (ARNs) of the security groups that are configured for the FSx for Windows File Server file system.

    " + "documentation":"

    The ARNs of the security groups that are configured for the FSx for Windows File Server file system.

    " }, "CreationTime":{ "shape":"Time", @@ -2079,11 +2083,11 @@ }, "User":{ "shape":"SmbUser", - "documentation":"

    The user who has the permissions to access files and folders in the FSx for Windows File Server file system.

    " + "documentation":"

    The user with the permissions to mount and access the FSx for Windows File Server file system.

    " }, "Domain":{ "shape":"SmbDomain", - "documentation":"

    The name of the Windows domain that the FSx for Windows File Server belongs to.

    " + "documentation":"

    The name of the Microsoft Active Directory domain that the FSx for Windows File Server file system belongs to.

    " } } }, @@ -2093,7 +2097,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the HDFS cluster location to describe.

    " + "documentation":"

    Specifies the Amazon Resource Name (ARN) of the HDFS location.

    " } } }, @@ -2102,15 +2106,15 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The ARN of the HDFS cluster location.

    " + "documentation":"

    The ARN of the HDFS location.

    " }, "LocationUri":{ "shape":"LocationUri", - "documentation":"

    The URI of the HDFS cluster location.

    " + "documentation":"

    The URI of the HDFS location.

    " }, "NameNodes":{ "shape":"HdfsNameNodeList", - "documentation":"

    The NameNode that manage the HDFS namespace.

    " + "documentation":"

    The NameNode that manages the HDFS namespace.

    " }, "BlockSize":{ "shape":"HdfsBlockSize", @@ -2126,7 +2130,7 @@ }, "QopConfiguration":{ "shape":"QopConfiguration", - "documentation":"

    The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster.

    " + "documentation":"

    The Quality of Protection (QOP) configuration, which specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the HDFS cluster.

    " }, "AuthenticationType":{ "shape":"HdfsAuthenticationType", @@ -2134,7 +2138,7 @@ }, "SimpleUser":{ "shape":"HdfsUser", - "documentation":"

    The user name used to identify the client on the host operating system. This parameter is used if the AuthenticationType is defined as SIMPLE.

    " + "documentation":"

    The user name to identify the client on the host operating system. This parameter is used if the AuthenticationType is defined as SIMPLE.

    " }, "KerberosPrincipal":{ "shape":"KerberosPrincipal", @@ -2142,7 +2146,7 @@ }, "AgentArns":{ "shape":"AgentArnList", - "documentation":"

    The ARNs of the agents that are used to connect to the HDFS cluster.

    " + "documentation":"

    The ARNs of the DataSync agents that can connect with your HDFS cluster.

    " }, "CreationTime":{ "shape":"Time", @@ -2170,7 +2174,7 @@ }, "LocationUri":{ "shape":"LocationUri", - "documentation":"

    The URL of the NFS location.

    " + "documentation":"

    The URI of the NFS location.

    " }, "OnPremConfig":{"shape":"OnPremConfig"}, "MountOptions":{ @@ -2190,7 +2194,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the object storage system location that you want information about.

    " + "documentation":"

    Specifies the Amazon Resource Name (ARN) of the object storage system location.

    " } }, "documentation":"

    DescribeLocationObjectStorageRequest

    " @@ -2204,7 +2208,7 @@ }, "LocationUri":{ "shape":"LocationUri", - "documentation":"

    The URL of the object storage system location.

    " + "documentation":"

    The URI of the object storage system location.

    " }, "AccessKey":{ "shape":"ObjectStorageAccessKey", @@ -2220,7 +2224,7 @@ }, "AgentArns":{ "shape":"AgentArnList", - "documentation":"

    The ARNs of the DataSync agents that can securely connect with your location.

    " + "documentation":"

    The ARNs of the DataSync agents that can connect with your object storage system.

    " }, "CreationTime":{ "shape":"Time", @@ -2239,7 +2243,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the Amazon S3 bucket location to describe.

    " + "documentation":"

    Specifies the Amazon Resource Name (ARN) of the Amazon S3 location.

    " } }, "documentation":"

    DescribeLocationS3Request

    " @@ -2249,7 +2253,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the Amazon S3 bucket or access point.

    " + "documentation":"

    The ARN of the Amazon S3 location.

    " }, "LocationUri":{ "shape":"LocationUri", @@ -2257,16 +2261,16 @@ }, "S3StorageClass":{ "shape":"S3StorageClass", - "documentation":"

    The Amazon S3 storage class that you chose to store your files in when this location is used as a task destination. For more information about S3 storage classes, see Amazon S3 Storage Classes. Some storage classes have behaviors that can affect your S3 storage cost. For detailed information, see Considerations when working with S3 storage classes in DataSync.

    " + "documentation":"

    When Amazon S3 is a destination location, this is the storage class that you chose for your objects.

    Some storage classes have behaviors that can affect your Amazon S3 storage costs. For more information, see Storage class considerations with Amazon S3 transfers.

    " }, "S3Config":{"shape":"S3Config"}, "AgentArns":{ "shape":"AgentArnList", - "documentation":"

    If you are using DataSync on an Amazon Web Services Outpost, the Amazon Resource Name (ARNs) of the EC2 agents deployed on your Outpost. For more information about launching a DataSync agent on an Amazon Web Services Outpost, see Deploy your DataSync agent on Outposts.

    " + "documentation":"

    The ARNs of the DataSync agents deployed on your Outpost when using working with Amazon S3 on Outposts.

    For more information, see Deploy your DataSync agent on Outposts.

    " }, "CreationTime":{ "shape":"Time", - "documentation":"

    The time that the Amazon S3 bucket location was created.

    " + "documentation":"

    The time that the Amazon S3 location was created.

    " } }, "documentation":"

    DescribeLocationS3Response

    " @@ -2277,7 +2281,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the SMB location to describe.

    " + "documentation":"

    Specifies the Amazon Resource Name (ARN) of the SMB location that you want information about.

    " } }, "documentation":"

    DescribeLocationSmbRequest

    " @@ -2287,27 +2291,27 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the SMB location that was described.

    " + "documentation":"

    The ARN of the SMB location.

    " }, "LocationUri":{ "shape":"LocationUri", - "documentation":"

    The URL of the source SMB location that was described.

    " + "documentation":"

    The URI of the SMB location.

    " }, "AgentArns":{ "shape":"AgentArnList", - "documentation":"

    The Amazon Resource Name (ARN) of the source SMB file system location that is created.

    " + "documentation":"

    The ARNs of the DataSync agents that can connect with your SMB file server.

    " }, "User":{ "shape":"SmbUser", - "documentation":"

    The user who can mount the share, has the permissions to access files and folders in the SMB share.

    " + "documentation":"

    The user that can mount and access the files, folders, and file metadata in your SMB file server.

    " }, "Domain":{ "shape":"SmbDomain", - "documentation":"

    The name of the Windows domain that the SMB server belongs to.

    " + "documentation":"

    The name of the Microsoft Active Directory domain that the SMB file server belongs to.

    " }, "MountOptions":{ "shape":"SmbMountOptions", - "documentation":"

    The mount options that are available for DataSync to use to access an SMB location.

    " + "documentation":"

    The protocol that DataSync use to access your SMB file.

    " }, "CreationTime":{ "shape":"Time", @@ -2499,6 +2503,10 @@ "shape":"FilterList", "documentation":"

    A list of filter rules that include specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync.

    " }, + "ManifestConfig":{ + "shape":"ManifestConfig", + "documentation":"

    The configuration of the manifest that lists the files or objects to transfer. For more information, see Specifying what DataSync transfers by using a manifest.

    " + }, "StartTime":{ "shape":"Time", "documentation":"

    The time when the task execution started.

    " @@ -2523,17 +2531,17 @@ "shape":"long", "documentation":"

    The total number of bytes that are involved in the transfer. For the number of bytes sent over the network, see BytesCompressed.

    " }, - "Result":{ - "shape":"TaskExecutionResultDetail", - "documentation":"

    The result of the task execution.

    " - }, "BytesCompressed":{ "shape":"long", "documentation":"

    The physical number of bytes transferred over the network after compression was applied. In most cases, this number is less than BytesTransferred unless the data isn't compressible.

    " }, + "Result":{ + "shape":"TaskExecutionResultDetail", + "documentation":"

    The result of the task execution.

    " + }, "TaskReportConfig":{ "shape":"TaskReportConfig", - "documentation":"

    The configuration of your task report, which provides detailed information about for your DataSync transfer.

    " + "documentation":"

    The configuration of your task report, which provides detailed information about for your DataSync transfer. For more information, see Creating a task report.

    " }, "FilesDeleted":{ "shape":"long", @@ -2636,9 +2644,13 @@ "shape":"FilterList", "documentation":"

    A list of filter rules that include specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync.

    " }, + "ManifestConfig":{ + "shape":"ManifestConfig", + "documentation":"

    The configuration of the manifest that lists the files or objects to transfer. For more information, see Specifying what DataSync transfers by using a manifest.

    " + }, "TaskReportConfig":{ "shape":"TaskReportConfig", - "documentation":"

    The configuration of your task report. For more information, see Creating a task report.

    " + "documentation":"

    The configuration of your task report, which provides detailed information about for your DataSync transfer. For more information, see Creating a task report.

    " } }, "documentation":"

    DescribeTaskResponse

    " @@ -2919,7 +2931,7 @@ "members":{ "Domain":{ "shape":"SmbDomain", - "documentation":"

    Specifies the fully qualified domain name (FQDN) of the Microsoft Active Directory that your storage virtual machine (SVM) belongs to.

    " + "documentation":"

    Specifies the fully qualified domain name (FQDN) of the Microsoft Active Directory that your storage virtual machine (SVM) belongs to.

    If you have multiple domains in your environment, configuring this setting makes sure that DataSync connects to the right SVM.

    " }, "MountOptions":{"shape":"SmbMountOptions"}, "Password":{ @@ -2928,7 +2940,7 @@ }, "User":{ "shape":"SmbUser", - "documentation":"

    Specifies a user name that can mount the location and access the files, folders, and metadata that you need in the SVM.

    If you provide a user in your Active Directory, note the following:

    • If you're using Directory Service for Microsoft Active Directory, the user must be a member of the Amazon Web Services Delegated FSx Administrators group.

    • If you're using a self-managed Active Directory, the user must be a member of either the Domain Admins group or a custom group that you specified for file system administration when you created your file system.

    Make sure that the user has the permissions it needs to copy the data you want:

    • SE_TCB_NAME: Required to set object ownership and file metadata. With this privilege, you also can copy NTFS discretionary access lists (DACLs).

    • SE_SECURITY_NAME: May be needed to copy NTFS system access control lists (SACLs). This operation specifically requires the Windows privilege, which is granted to members of the Domain Admins group. If you configure your task to copy SACLs, make sure that the user has the required privileges. For information about copying SACLs, see Ownership and permissions-related options.

    " + "documentation":"

    Specifies a user that can mount and access the files, folders, and metadata in your SVM.

    For information about choosing a user with the right level of access for your transfer, see Using the SMB protocol.

    " } }, "documentation":"

    Specifies the Server Message Block (SMB) protocol configuration that DataSync uses to access your Amazon FSx for NetApp ONTAP file system. For more information, see Accessing FSx for ONTAP file systems.

    " @@ -3302,15 +3314,15 @@ "members":{ "TaskArn":{ "shape":"TaskArn", - "documentation":"

    The Amazon Resource Name (ARN) of the task whose tasks you want to list.

    " + "documentation":"

    Specifies the Amazon Resource Name (ARN) of the task that you want execution information about.

    " }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    The maximum number of executed tasks to list.

    " + "documentation":"

    Specifies how many results you want in the response.

    " }, "NextToken":{ "shape":"NextToken", - "documentation":"

    An opaque string that indicates the position at which to begin the next list of the executed tasks.

    " + "documentation":"

    Specifies an opaque string that indicates the position at which to begin the next list of results in the response.

    " } }, "documentation":"

    ListTaskExecutions

    " @@ -3320,11 +3332,11 @@ "members":{ "TaskExecutions":{ "shape":"TaskExecutionList", - "documentation":"

    A list of executed tasks.

    " + "documentation":"

    A list of the task's executions.

    " }, "NextToken":{ "shape":"NextToken", - "documentation":"

    An opaque string that indicates the position at which to begin returning the next list of executed tasks.

    " + "documentation":"

    The opaque string that indicates the position to begin the next list of results in the response.

    " } }, "documentation":"

    ListTaskExecutionsResponse

    " @@ -3437,6 +3449,32 @@ "TRANSFER" ] }, + "ManifestAction":{ + "type":"string", + "enum":["TRANSFER"] + }, + "ManifestConfig":{ + "type":"structure", + "members":{ + "Action":{ + "shape":"ManifestAction", + "documentation":"

    Specifies what DataSync uses the manifest for.

    " + }, + "Format":{ + "shape":"ManifestFormat", + "documentation":"

    Specifies the file format of your manifest. For more information, see Creating a manifest.

    " + }, + "Source":{ + "shape":"SourceManifestConfig", + "documentation":"

    Specifies the manifest that you want DataSync to use and where it's hosted.

    You must specify this parameter if you're configuring a new manifest on or after February 7, 2024.

    If you don't, you'll get a 400 status code and ValidationException error stating that you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your manifest. For more information, see Providing DataSync access to your manifest.

    " + } + }, + "documentation":"

    Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, see Specifying what DataSync transfers by using a manifest.

    " + }, + "ManifestFormat":{ + "type":"string", + "enum":["CSV"] + }, "MaxP95Performance":{ "type":"structure", "members":{ @@ -3828,39 +3866,39 @@ "members":{ "VerifyMode":{ "shape":"VerifyMode", - "documentation":"

    Specifies how and when DataSync checks the integrity of your data during a transfer.

    Default value: POINT_IN_TIME_CONSISTENT

    ONLY_FILES_TRANSFERRED (recommended): DataSync calculates the checksum of transferred files and metadata at the source location. At the end of the transfer, DataSync then compares this checksum to the checksum calculated on those files at the destination.

    We recommend this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

    POINT_IN_TIME_CONSISTENT: At the end of the transfer, DataSync scans the entire source and destination to verify that both locations are fully synchronized.

    You can't use this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

    NONE: DataSync doesn't run additional verification at the end of the transfer. All data transmissions are still integrity-checked with checksum verification during the transfer.

    " + "documentation":"

    Specifies how and when DataSync checks the integrity of your data during a transfer.

    • ONLY_FILES_TRANSFERRED (recommended) - DataSync calculates the checksum of transferred files and metadata at the source location. At the end of the transfer, DataSync then compares this checksum to the checksum calculated on those files at the destination.

      We recommend this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

    • POINT_IN_TIME_CONSISTENT (default) - At the end of the transfer, DataSync scans the entire source and destination to verify that both locations are fully synchronized.

      You can't use this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

    • NONE - DataSync doesn't run additional verification at the end of the transfer. All data transmissions are still integrity-checked with checksum verification during the transfer.

    " }, "OverwriteMode":{ "shape":"OverwriteMode", - "documentation":"

    Specifies whether data at the destination location should be overwritten or preserved. If set to NEVER, a destination file for example will not be replaced by a source file (even if the destination file differs from the source file). If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.

    Some storage classes have specific behaviors that can affect your Amazon S3 storage cost. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync.

    " + "documentation":"

    Specifies whether DataSync should modify or preserve data at the destination location.

    • ALWAYS (default) - DataSync modifies data in the destination location when source data (including metadata) has changed.

      If DataSync overwrites objects, you might incur additional charges for certain Amazon S3 storage classes (for example, for retrieval or early deletion). For more information, see Storage class considerations with Amazon S3 transfers.

    • NEVER - DataSync doesn't overwrite data in the destination location even if the source data has changed. You can use this option to protect against overwriting changes made to files or objects in the destination.

    " }, "Atime":{ "shape":"Atime", - "documentation":"

    Specifies whether to preserve metadata indicating the last time a file was read or written to. If you set Atime to BEST_EFFORT, DataSync attempts to preserve the original Atime attribute on all source files (that is, the version before the PREPARING phase of the task execution).

    The behavior of Atime isn't fully standard across platforms, so DataSync can only do this on a best-effort basis.

    Default value: BEST_EFFORT

    BEST_EFFORT: Attempt to preserve the per-file Atime value (recommended).

    NONE: Ignore Atime.

    If Atime is set to BEST_EFFORT, Mtime must be set to PRESERVE.

    If Atime is set to NONE, Mtime must also be NONE.

    " + "documentation":"

    Specifies whether to preserve metadata indicating the last time a file was read or written to.

    The behavior of Atime isn't fully standard across platforms, so DataSync can only do this on a best-effort basis.

    • BEST_EFFORT (default) - DataSync attempts to preserve the original Atime attribute on all source files (that is, the version before the PREPARING phase of the task execution). This option is recommended.

    • NONE - Ignores Atime.

    If Atime is set to BEST_EFFORT, Mtime must be set to PRESERVE.

    If Atime is set to NONE, Mtime must also be NONE.

    " }, "Mtime":{ "shape":"Mtime", - "documentation":"

    Specifies whether to preserve metadata indicating the last time that a file was written to before the PREPARING phase of your task execution. This option is required when you need to run the a task more than once.

    Default Value: PRESERVE

    PRESERVE: Preserve original Mtime (recommended)

    NONE: Ignore Mtime.

    If Mtime is set to PRESERVE, Atime must be set to BEST_EFFORT.

    If Mtime is set to NONE, Atime must also be set to NONE.

    " + "documentation":"

    Specifies whether to preserve metadata indicating the last time that a file was written to before the PREPARING phase of your task execution. This option is required when you need to run the a task more than once.

    • PRESERVE (default) - Preserves original Mtime, which is recommended.

    • NONE - Ignores Mtime.

    If Mtime is set to PRESERVE, Atime must be set to BEST_EFFORT.

    If Mtime is set to NONE, Atime must also be set to NONE.

    " }, "Uid":{ "shape":"Uid", - "documentation":"

    Specifies the POSIX user ID (UID) of the file's owner.

    For more information, see Metadata copied by DataSync.

    Default value: INT_VALUE. This preserves the integer value of the ID.

    INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended).

    NONE: Ignore UID and GID.

    " + "documentation":"

    Specifies the POSIX user ID (UID) of the file's owner.

    • INT_VALUE (default) - Preserves the integer value of UID and group ID (GID), which is recommended.

    • NONE - Ignores UID and GID.

    For more information, see Metadata copied by DataSync.

    " }, "Gid":{ "shape":"Gid", - "documentation":"

    Specifies the POSIX group ID (GID) of the file's owners.

    For more information, see Metadata copied by DataSync.

    Default value: INT_VALUE. This preserves the integer value of the ID.

    INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended).

    NONE: Ignore UID and GID.

    " + "documentation":"

    Specifies the POSIX group ID (GID) of the file's owners.

    • INT_VALUE (default) - Preserves the integer value of user ID (UID) and GID, which is recommended.

    • NONE - Ignores UID and GID.

    For more information, see Metadata copied by DataSync.

    " }, "PreserveDeletedFiles":{ "shape":"PreserveDeletedFiles", - "documentation":"

    Specifies whether files in the destination location that don't exist in the source should be preserved. This option can affect your Amazon S3 storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync.

    Default value: PRESERVE

    PRESERVE: Ignore such destination files (recommended).

    REMOVE: Delete destination files that aren’t present in the source.

    If you set this parameter to REMOVE, you can't set TransferMode to ALL. When you transfer all data, DataSync doesn't scan your destination location and doesn't know what to delete.

    " + "documentation":"

    Specifies whether files in the destination location that don't exist in the source should be preserved. This option can affect your Amazon S3 storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync.

    • PRESERVE (default) - Ignores such destination files, which is recommended.

    • REMOVE - Deletes destination files that aren’t present in the source.

    If you set this parameter to REMOVE, you can't set TransferMode to ALL. When you transfer all data, DataSync doesn't scan your destination location and doesn't know what to delete.

    " }, "PreserveDevices":{ "shape":"PreserveDevices", - "documentation":"

    Specifies whether DataSync should preserve the metadata of block and character devices in the source location and recreate the files with that device name and metadata on the destination. DataSync copies only the name and metadata of such devices.

    DataSync can't copy the actual contents of these devices because they're nonterminal and don't return an end-of-file (EOF) marker.

    Default value: NONE

    NONE: Ignore special devices (recommended).

    PRESERVE: Preserve character and block device metadata. This option currently isn't supported for Amazon EFS.

    " + "documentation":"

    Specifies whether DataSync should preserve the metadata of block and character devices in the source location and recreate the files with that device name and metadata on the destination. DataSync copies only the name and metadata of such devices.

    DataSync can't copy the actual contents of these devices because they're nonterminal and don't return an end-of-file (EOF) marker.

    • NONE (default) - Ignores special devices (recommended).

    • PRESERVE - Preserves character and block device metadata. This option currently isn't supported for Amazon EFS.

    " }, "PosixPermissions":{ "shape":"PosixPermissions", - "documentation":"

    Specifies which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.

    For more information, see Metadata copied by DataSync.

    Default value: PRESERVE

    PRESERVE: Preserve POSIX-style permissions (recommended).

    NONE: Ignore permissions.

    DataSync can preserve extant permissions of a source location.

    " + "documentation":"

    Specifies which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.

    For more information, see Metadata copied by DataSync.

    • PRESERVE (default) - Preserves POSIX-style permissions, which is recommended.

    • NONE - Ignores POSIX-style permissions.

    DataSync can preserve extant permissions of a source location.

    " }, "BytesPerSecond":{ "shape":"BytesPerSecond", @@ -3872,19 +3910,19 @@ }, "LogLevel":{ "shape":"LogLevel", - "documentation":"

    Specifies the type of logs that DataSync publishes to a Amazon CloudWatch Logs log group. To specify the log group, see CloudWatchLogGroupArn.

    If you set LogLevel to OFF, no logs are published. BASIC publishes logs on errors for individual files transferred. TRANSFER publishes logs for every file or object that is transferred and integrity checked.

    " + "documentation":"

    Specifies the type of logs that DataSync publishes to a Amazon CloudWatch Logs log group. To specify the log group, see CloudWatchLogGroupArn.

    • BASIC - Publishes logs with only basic information (such as transfer errors).

    • TRANSFER - Publishes logs for all files or objects that your DataSync task transfers and performs data-integrity checks on.

    • OFF - No logs are published.

    " }, "TransferMode":{ "shape":"TransferMode", - "documentation":"

    Determines whether DataSync transfers only the data and metadata that differ between the source and the destination location or transfers all the content from the source (without comparing what's in the destination).

    CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location.

    ALL: DataSync copies all source location content to the destination (without comparing what's in the destination).

    " + "documentation":"

    Determines whether DataSync transfers only the data and metadata that differ between the source and the destination location or transfers all the content from the source (without comparing what's in the destination).

    • CHANGED (default) - DataSync copies only data or metadata that is new or different content from the source location to the destination location.

    • ALL - DataSync copies everything in the source to the destination without comparing differences between the locations.

    " }, "SecurityDescriptorCopyFlags":{ "shape":"SmbSecurityDescriptorCopyFlags", - "documentation":"

    Specifies which components of the SMB security descriptor are copied from source to destination objects.

    This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations or between two FSx for Windows File Server locations. For more information, see how DataSync handles metadata.

    Default value: OWNER_DACL

    OWNER_DACL: For each copied object, DataSync copies the following metadata:

    • The object owner.

    • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

      DataSync won't copy NTFS system access control lists (SACLs) with this option.

    OWNER_DACL_SACL: For each copied object, DataSync copies the following metadata:

    • The object owner.

    • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

    • SACLs, which are used by administrators to log attempts to access a secured object.

      Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see user.

    NONE: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration.

    " + "documentation":"

    Specifies which components of the SMB security descriptor are copied from source to destination objects.

    This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations or between two FSx for Windows File Server locations. For more information, see how DataSync handles metadata.

    • OWNER_DACL (default) - For each copied object, DataSync copies the following metadata:

      • The object owner.

      • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

        DataSync won't copy NTFS system access control lists (SACLs) with this option.

    • OWNER_DACL_SACL - For each copied object, DataSync copies the following metadata:

      • The object owner.

      • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

      • SACLs, which are used by administrators to log attempts to access a secured object.

        Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user with the right permissions, see required permissions for SMB, FSx for Windows File Server, or FSx for ONTAP (depending on the type of location in your transfer).

    • NONE - None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration.

    " }, "ObjectTags":{ "shape":"ObjectTags", - "documentation":"

    Specifies whether object tags are preserved when transferring between object storage systems. If you want your DataSync task to ignore object tags, specify the NONE value.

    Default Value: PRESERVE

    " + "documentation":"

    Specifies whether you want DataSync to PRESERVE object tags (default behavior) when transferring between object storage systems. If you want your DataSync task to ignore object tags, specify the NONE value.

    " } }, "documentation":"

    Indicates how your transfer task is configured. These options include how DataSync handles files, objects, and their associated metadata during your transfer. You also can specify how to verify data integrity, set bandwidth limits for your task, among other options.

    Each option has a default value. Unless you need to, you don't have to configure any of these options before starting your task.

    " @@ -3945,7 +3983,7 @@ "members":{ "Version":{ "shape":"AgentVersion", - "documentation":"

    The version of the DataSync agent.

    Beginning December 7, 2023, we will discontinue version 1 DataSync agents. Check the DataSync console to see if you have affected agents. If you do, replace those agents before then to avoid data transfer or storage discovery disruptions. If you need more help, contact Amazon Web Services Support.

    " + "documentation":"

    The version of the DataSync agent.

    On December 7, 2023, we discontinued version 1 DataSync agents. Check the DataSync console to see if you have affected agents. If you do, replace those agents or delete them if they aren't in use. If you need more help, contact Amazon Web Services Support.

    " } }, "documentation":"

    The platform-related details about the DataSync agent, such as the version number.

    " @@ -4107,7 +4145,7 @@ }, "BucketAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

    Specifies the Amazon Resource Name (ARN) of the IAM policy that allows DataSync to upload a task report to your S3 bucket. For more information, see Allowing DataSync to upload a task report to an Amazon S3 bucket.

    " + "documentation":"

    Specifies the Amazon Resource Name (ARN) of the IAM policy that allows DataSync to upload a task report to your S3 bucket. For more information, see Allowing DataSync to upload a task report to an Amazon S3 bucket.

    " } }, "documentation":"

    Specifies the Amazon S3 bucket where DataSync uploads your task report.

    " @@ -4246,10 +4284,43 @@ "members":{ "BucketAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

    The ARN of the IAM role for accessing the S3 bucket.

    " + "documentation":"

    Specifies the ARN of the IAM role that DataSync uses to access your S3 bucket.

    " } }, - "documentation":"

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role used to access an Amazon S3 bucket.

    For detailed information about using such a role, see Creating a Location for Amazon S3 in the DataSync User Guide.

    " + "documentation":"

    Specifies the Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that DataSync uses to access your S3 bucket.

    For more information, see Accessing S3 buckets.

    " + }, + "S3ManifestConfig":{ + "type":"structure", + "required":[ + "ManifestObjectPath", + "BucketAccessRoleArn", + "S3BucketArn" + ], + "members":{ + "ManifestObjectPath":{ + "shape":"S3Subdirectory", + "documentation":"

    Specifies the Amazon S3 object key of your manifest. This can include a prefix (for example, prefix/my-manifest.csv).

    " + }, + "BucketAccessRoleArn":{ + "shape":"IamRoleArn", + "documentation":"

    Specifies the Identity and Access Management (IAM) role that allows DataSync to access your manifest. For more information, see Providing DataSync access to your manifest.

    " + }, + "S3BucketArn":{ + "shape":"S3BucketArn", + "documentation":"

    Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.

    " + }, + "ManifestObjectVersionId":{ + "shape":"S3ObjectVersionId", + "documentation":"

    Specifies the object version ID of the manifest that you want DataSync to use. If you don't set this, DataSync uses the latest version of the object.

    " + } + }, + "documentation":"

    Specifies the S3 bucket where you're hosting the manifest that you want DataSync to use. For more information and configuration examples, see Specifying what DataSync transfers by using a manifest.

    " + }, + "S3ObjectVersionId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^.+$" }, "S3StorageClass":{ "type":"string", @@ -4333,6 +4404,17 @@ "SMB2_0" ] }, + "SourceManifestConfig":{ + "type":"structure", + "required":["S3"], + "members":{ + "S3":{ + "shape":"S3ManifestConfig", + "documentation":"

    Specifies the S3 bucket where you're hosting your manifest.

    " + } + }, + "documentation":"

    Specifies the manifest that you want DataSync to use and where it's hosted. For more information and configuration examples, see Specifying what DataSync transfers by using a manifest.

    " + }, "SourceNetworkInterfaceArns":{ "type":"list", "member":{"shape":"NetworkInterfaceArn"} @@ -4390,13 +4472,17 @@ "shape":"FilterList", "documentation":"

    Specifies a list of filter rules that determines which files to exclude from a task. The list contains a single filter string that consists of the patterns to exclude. The patterns are delimited by \"|\" (that is, a pipe), for example, \"/folder1|/folder2\".

    " }, - "Tags":{ - "shape":"InputTagList", - "documentation":"

    Specifies the tags that you want to apply to the Amazon Resource Name (ARN) representing the task execution.

    Tags are key-value pairs that help you manage, filter, and search for your DataSync resources.

    " + "ManifestConfig":{ + "shape":"ManifestConfig", + "documentation":"

    Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, see Specifying what DataSync transfers by using a manifest.

    When using this parameter, your caller identity (the role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission.

    To remove a manifest configuration, specify this parameter with an empty value.

    " }, "TaskReportConfig":{ "shape":"TaskReportConfig", - "documentation":"

    Specifies how you want to configure a task report, which provides detailed information about for your DataSync transfer.

    " + "documentation":"

    Specifies how you want to configure a task report, which provides detailed information about your DataSync transfer. For more information, see Monitoring your DataSync transfers with task reports.

    When using this parameter, your caller identity (the role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission.

    To remove a task report configuration, specify this parameter as empty.

    " + }, + "Tags":{ + "shape":"InputTagList", + "documentation":"

    Specifies the tags that you want to apply to the Amazon Resource Name (ARN) representing the task execution.

    Tags are key-value pairs that help you manage, filter, and search for your DataSync resources.

    " } }, "documentation":"

    StartTaskExecutionRequest

    " @@ -4542,14 +4628,14 @@ "members":{ "TaskExecutionArn":{ "shape":"TaskExecutionArn", - "documentation":"

    The Amazon Resource Name (ARN) of the task that was executed.

    " + "documentation":"

    The Amazon Resource Name (ARN) of a task execution.

    " }, "Status":{ "shape":"TaskExecutionStatus", - "documentation":"

    The status of a task execution.

    " + "documentation":"

    The status of a task execution. For more information, see Task execution statuses.

    " } }, - "documentation":"

    Represents a single entry in a list of task executions. TaskExecutionListEntry returns an array that contains a list of specific invocations of a task when the ListTaskExecutions operation is called.

    " + "documentation":"

    Represents a single entry in a list of DataSync task executions that's returned with the ListTaskExecutions operation.

    " }, "TaskExecutionResultDetail":{ "type":"structure", @@ -5105,9 +5191,13 @@ "shape":"FilterList", "documentation":"

    Specifies a list of filter rules that include specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync.

    " }, + "ManifestConfig":{ + "shape":"ManifestConfig", + "documentation":"

    Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, see Specifying what DataSync transfers by using a manifest.

    When using this parameter, your caller identity (the IAM role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission.

    To remove a manifest configuration, specify this parameter as empty.

    " + }, "TaskReportConfig":{ "shape":"TaskReportConfig", - "documentation":"

    Specifies how you want to configure a task report, which provides detailed information about for your DataSync transfer.

    " + "documentation":"

    Specifies how you want to configure a task report, which provides detailed information about your DataSync transfer. For more information, see Monitoring your DataSync transfers with task reports.

    When using this parameter, your caller identity (the IAM role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission.

    To remove a task report configuration, specify this parameter as empty.

    " } }, "documentation":"

    UpdateTaskResponse

    " diff --git a/services/datazone/pom.xml b/services/datazone/pom.xml index a30387c08b73..b06afe94bbc6 100644 --- a/services/datazone/pom.xml +++ b/services/datazone/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT datazone AWS Java SDK :: Services :: Data Zone diff --git a/services/datazone/src/main/resources/codegen-resources/customization.config b/services/datazone/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/datazone/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/datazone/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/datazone/src/main/resources/codegen-resources/endpoint-rule-set.json index 03a4daf5387c..45dcfcf48e9f 100644 --- a/services/datazone/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/datazone/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -33,7 +33,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -61,7 +60,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -74,7 +74,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -88,7 +87,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -108,7 +106,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -122,14 +119,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -138,11 +133,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -153,14 +148,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -171,7 +168,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -185,14 +183,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -201,11 +197,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -216,14 +212,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -234,9 +232,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/datazone/src/main/resources/codegen-resources/service-2.json b/services/datazone/src/main/resources/codegen-resources/service-2.json index 47d78cd6d503..ba5233ee6bb9 100644 --- a/services/datazone/src/main/resources/codegen-resources/service-2.json +++ b/services/datazone/src/main/resources/codegen-resources/service-2.json @@ -4047,6 +4047,10 @@ "shape":"DomainId", "documentation":"

    The identifier of the Amazon DataZone domain in which the project was created.

    " }, + "failureReasons":{ + "shape":"FailureReasons", + "documentation":"

    Reasons for failed project deletion

    " + }, "glossaryTerms":{ "shape":"GlossaryTerms", "documentation":"

    The glossary terms that can be used in the project.

    " @@ -4062,6 +4066,10 @@ "name":{ "shape":"ProjectName", "documentation":"

    The name of the project.

    " + }, + "projectStatus":{ + "shape":"ProjectStatus", + "documentation":"

    Status of the project

    " } } }, @@ -5092,6 +5100,12 @@ "documentation":"

    The identifier of the Amazon Web Services domain that is to be deleted.

    ", "location":"uri", "locationName":"identifier" + }, + "skipDeletionCheck":{ + "shape":"Boolean", + "documentation":"

    Optional flag to delete all child entities within the domain

    ", + "location":"querystring", + "locationName":"skipDeletionCheck" } } }, @@ -5295,6 +5309,12 @@ "documentation":"

    The identifier of the project that is to be deleted.

    ", "location":"uri", "locationName":"identifier" + }, + "skipDeletionCheck":{ + "shape":"Boolean", + "documentation":"

    Optional flag to asynchronously delete child entities within the project

    ", + "location":"querystring", + "locationName":"skipDeletionCheck" } } }, @@ -5984,6 +6004,10 @@ }, "documentation":"

    Specifies the error message that is returned if the operation cannot be successfully completed.

    " }, + "FailureReasons":{ + "type":"list", + "member":{"shape":"ProjectDeletionError"} + }, "Filter":{ "type":"structure", "required":[ @@ -7523,6 +7547,10 @@ "shape":"DomainId", "documentation":"

    The ID of the Amazon DataZone domain in which the project exists.

    " }, + "failureReasons":{ + "shape":"FailureReasons", + "documentation":"

    Reasons for failed project deletion

    " + }, "glossaryTerms":{ "shape":"GlossaryTerms", "documentation":"

    The business glossary terms that can be used in the project.

    " @@ -7538,6 +7566,10 @@ "name":{ "shape":"ProjectName", "documentation":"

    The name of the project.

    " + }, + "projectStatus":{ + "shape":"ProjectStatus", + "documentation":"

    Status of the project

    " } } }, @@ -9603,6 +9635,20 @@ }, "documentation":"

    The configuration of the prediction.

    " }, + "ProjectDeletionError":{ + "type":"structure", + "members":{ + "code":{ + "shape":"String", + "documentation":"

    Project Deletion Error Code

    " + }, + "message":{ + "shape":"String", + "documentation":"

    Project Deletion Error Message

    " + } + }, + "documentation":"

    Error that occurred during project deletion

    " + }, "ProjectId":{ "type":"string", "pattern":"^[a-zA-Z0-9_-]{1,36}$" @@ -9636,6 +9682,14 @@ "pattern":"^[\\w -]+$", "sensitive":true }, + "ProjectStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "DELETING", + "DELETE_FAILED" + ] + }, "ProjectSummaries":{ "type":"list", "member":{"shape":"ProjectSummary"} @@ -9665,6 +9719,10 @@ "shape":"DomainId", "documentation":"

    The identifier of a Amazon DataZone domain where the project exists.

    " }, + "failureReasons":{ + "shape":"FailureReasons", + "documentation":"

    Reasons for failed project deletion

    " + }, "id":{ "shape":"ProjectId", "documentation":"

    The identifier of a project.

    " @@ -9673,6 +9731,10 @@ "shape":"ProjectName", "documentation":"

    The name of a project.

    " }, + "projectStatus":{ + "shape":"ProjectStatus", + "documentation":"

    Status of the project

    " + }, "updatedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

    The timestamp of when the project was updated.

    " @@ -12427,6 +12489,10 @@ "shape":"DomainId", "documentation":"

    The identifier of the Amazon DataZone domain in which a project is updated.

    " }, + "failureReasons":{ + "shape":"FailureReasons", + "documentation":"

    Reasons for failed project deletion

    " + }, "glossaryTerms":{ "shape":"GlossaryTerms", "documentation":"

    The glossary terms of the project that are to be updated.

    " @@ -12442,6 +12508,10 @@ "name":{ "shape":"ProjectName", "documentation":"

    The name of the project that is to be updated.

    " + }, + "projectStatus":{ + "shape":"ProjectStatus", + "documentation":"

    Status of the project

    " } } }, diff --git a/services/dax/pom.xml b/services/dax/pom.xml index bfb6b599abd3..ac27bfeffc10 100644 --- a/services/dax/pom.xml +++ b/services/dax/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT dax AWS Java SDK :: Services :: Amazon DynamoDB Accelerator (DAX) diff --git a/services/dax/src/main/resources/codegen-resources/customization.config b/services/dax/src/main/resources/codegen-resources/customization.config index c244da95aeb8..e0052d181dbc 100644 --- a/services/dax/src/main/resources/codegen-resources/customization.config +++ b/services/dax/src/main/resources/codegen-resources/customization.config @@ -1,9 +1,10 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeClusters", "describeDefaultParameters", "describeEvents", "describeParameterGroups", "describeSubnetGroups" - ] + ], + "useSraAuth": true } diff --git a/services/detective/pom.xml b/services/detective/pom.xml index 563770d9e22b..e37a403bfa31 100644 --- a/services/detective/pom.xml +++ b/services/detective/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT detective AWS Java SDK :: Services :: Detective diff --git a/services/detective/src/main/resources/codegen-resources/customization.config b/services/detective/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/detective/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/detective/src/main/resources/codegen-resources/service-2.json b/services/detective/src/main/resources/codegen-resources/service-2.json index d42856e1462d..3bfa54668f4f 100644 --- a/services/detective/src/main/resources/codegen-resources/service-2.json +++ b/services/detective/src/main/resources/codegen-resources/service-2.json @@ -74,7 +74,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Creates a new behavior graph for the calling account, and sets that account as the administrator account. This operation is called by the account that is enabling Detective.

    Before you try to enable Detective, make sure that your account has been enrolled in Amazon GuardDuty for at least 48 hours. If you do not meet this requirement, you cannot enable Detective. If you do meet the GuardDuty prerequisite, then when you make the request to enable Detective, it checks whether your data volume is within the Detective quota. If it exceeds the quota, then you cannot enable Detective.

    The operation also enables Detective for the calling account in the currently selected Region. It returns the ARN of the new behavior graph.

    CreateGraph triggers a process to create the corresponding data tables for the new behavior graph.

    An account can only be the administrator account for one behavior graph within a Region. If the same account calls CreateGraph with the same administrator account, it always returns the same behavior graph ARN. It does not create a new behavior graph.

    " + "documentation":"

    Creates a new behavior graph for the calling account, and sets that account as the administrator account. This operation is called by the account that is enabling Detective.

    The operation also enables Detective for the calling account in the currently selected Region. It returns the ARN of the new behavior graph.

    CreateGraph triggers a process to create the corresponding data tables for the new behavior graph.

    An account can only be the administrator account for one behavior graph within a Region. If the same account calls CreateGraph with the same administrator account, it always returns the same behavior graph ARN. It does not create a new behavior graph.

    " }, "CreateMembers":{ "name":"CreateMembers", @@ -201,7 +201,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

    Returns the investigation results of an investigation for a behavior graph.

    " + "documentation":"

    Detective investigations lets you investigate IAM users and IAM roles using indicators of compromise. An indicator of compromise (IOC) is an artifact observed in or on a network, system, or environment that can (with a high level of confidence) identify malicious activity or a security incident. GetInvestigation returns the investigation results of an investigation for a behavior graph.

    " }, "GetMembers":{ "name":"GetMembers", @@ -265,7 +265,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

    Get the indicators from an investigation

    " + "documentation":"

    Gets the indicators from an investigation. You can use the information from the indicators to determine if an IAM user and/or IAM role is involved in an unusual activity that could indicate malicious behavior and its impact.

    " }, "ListInvestigations":{ "name":"ListInvestigations", @@ -282,7 +282,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

    List all Investigations.

    " + "documentation":"

    Detective investigations lets you investigate IAM users and IAM roles using indicators of compromise. An indicator of compromise (IOC) is an artifact observed in or on a network, system, or environment that can (with a high level of confidence) identify malicious activity or a security incident. ListInvestigations lists all active Detective investigations.

    " }, "ListInvitations":{ "name":"ListInvitations", @@ -379,7 +379,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

    initiate an investigation on an entity in a graph

    " + "documentation":"

    Detective investigations lets you investigate IAM users and IAM roles using indicators of compromise. An indicator of compromise (IOC) is an artifact observed in or on a network, system, or environment that can (with a high level of confidence) identify malicious activity or a security incident. StartInvestigation initiates an investigation on an entity in a behavior graph.

    " }, "StartMonitoringMember":{ "name":"StartMonitoringMember", @@ -462,7 +462,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

    Update the state of an investigation.

    " + "documentation":"

    Updates the state of an investigation.

    " }, "UpdateOrganizationConfiguration":{ "name":"UpdateOrganizationConfiguration", @@ -787,7 +787,7 @@ }, "EndInclusive":{ "shape":"Timestamp", - "documentation":"

    A timestamp representing the end date of the time period until when data is filtered , including the end date.

    " + "documentation":"

    A timestamp representing the end date of the time period until when data is filtered, including the end date.

    " } }, "documentation":"

    Contains details on the time range used to filter data.

    " @@ -962,7 +962,7 @@ "members":{ "GraphArn":{ "shape":"GraphArn", - "documentation":"

    The ARN of the behavior graph.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the behavior graph.

    " }, "InvestigationId":{ "shape":"InvestigationId", @@ -975,7 +975,7 @@ "members":{ "GraphArn":{ "shape":"GraphArn", - "documentation":"

    The ARN of the behavior graph.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the behavior graph.

    " }, "InvestigationId":{ "shape":"InvestigationId", @@ -983,35 +983,35 @@ }, "EntityArn":{ "shape":"EntityArn", - "documentation":"

    The unique Amazon Resource Name (ARN) of the IAM user and IAM role.

    " + "documentation":"

    The unique Amazon Resource Name (ARN). Detective supports IAM user ARNs and IAM role ARNs.

    " }, "EntityType":{ "shape":"EntityType", - "documentation":"

    Type of entity. For example, Amazon Web Services accounts, such as IAM user and role.

    " + "documentation":"

    Type of entity. For example, Amazon Web Services accounts, such as an IAM user and/or IAM role.

    " }, "CreatedTime":{ "shape":"Timestamp", - "documentation":"

    The UTC time stamp of the creation time of the investigation report.

    " + "documentation":"

    The creation time of the investigation report in UTC time stamp format.

    " }, "ScopeStartTime":{ "shape":"Timestamp", - "documentation":"

    The start date and time for the scope time set to generate the investigation report.

    " + "documentation":"

    The start date and time used to set the scope time within which you want to generate the investigation report. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

    " }, "ScopeEndTime":{ "shape":"Timestamp", - "documentation":"

    The data and time when the investigation began. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

    " + "documentation":"

    The data and time when the investigation began. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

    " }, "Status":{ "shape":"Status", - "documentation":"

    Status based on the completion status of the investigation.

    " + "documentation":"

    The status based on the completion status of the investigation.

    " }, "Severity":{ "shape":"Severity", - "documentation":"

    Severity based on the likelihood and impact of the indicators of compromise discovered in the investigation.

    " + "documentation":"

    The severity assigned is based on the likelihood and impact of the indicators of compromise discovered in the investigation.

    " }, "State":{ "shape":"State", - "documentation":"

    The current state of the investigation. An archived investigation indicates you have completed reviewing the investigation.

    " + "documentation":"

    The current state of the investigation. An archived investigation indicates that you have completed reviewing the investigation.

    " } } }, @@ -1083,7 +1083,7 @@ "members":{ "StartingIpAddress":{ "shape":"IpAddress", - "documentation":"

    IP address where the resource was first used in the impossible travel

    " + "documentation":"

    IP address where the resource was first used in the impossible travel.

    " }, "EndingIpAddress":{ "shape":"IpAddress", @@ -1091,7 +1091,7 @@ }, "StartingLocation":{ "shape":"Location", - "documentation":"

    Location where the resource was first used in the impossible travel

    " + "documentation":"

    Location where the resource was first used in the impossible travel.

    " }, "EndingLocation":{ "shape":"Location", @@ -1109,14 +1109,14 @@ "members":{ "IndicatorType":{ "shape":"IndicatorType", - "documentation":"

    The type of indicator.

    " + "documentation":"

    The type of indicator.

    " }, "IndicatorDetail":{ "shape":"IndicatorDetail", - "documentation":"

    Details about the indicator of compromise.

    " + "documentation":"

    Details about the indicators of compromise that are used to determine if a resource is involved in a security incident. An indicator of compromise (IOC) is an artifact observed in or on a network, system, or environment that can (with a high level of confidence) identify malicious activity or a security incident.

    " } }, - "documentation":"

    Investigations triages indicators of compromises such as a finding and surfaces only the most critical and suspicious issues, so you can focus on high-level investigations.

    " + "documentation":"

    Detective investigations triages indicators of compromises such as a finding and surfaces only the most critical and suspicious issues, so you can focus on high-level investigations. An Indicator lets you determine if an Amazon Web Services resource is involved in unusual activity that could indicate malicious behavior and its impact.

    " }, "IndicatorDetail":{ "type":"structure", @@ -1131,7 +1131,7 @@ }, "FlaggedIpAddressDetail":{ "shape":"FlaggedIpAddressDetail", - "documentation":"

    Suspicious IP addresses that are flagged, which indicates critical or severe threats based on threat intelligence by Detective. This indicator is derived from AWS threat intelligence.

    " + "documentation":"

    Suspicious IP addresses that are flagged, which indicates critical or severe threats based on threat intelligence by Detective. This indicator is derived from Amazon Web Services threat intelligence.

    " }, "NewGeolocationDetail":{ "shape":"NewGeolocationDetail", @@ -1154,7 +1154,7 @@ "documentation":"

    Contains details about related finding groups.

    " } }, - "documentation":"

    Details about the indicators of compromise which are used to determine if a resource is involved in a security incident.

    " + "documentation":"

    Details about the indicators of compromise which are used to determine if a resource is involved in a security incident. An indicator of compromise (IOC) is an artifact observed in or on a network, system, or environment that can (with a high level of confidence) identify malicious activity or a security incident. For the list of indicators of compromise that are generated by Detective investigations, see Detective investigations.

    " }, "IndicatorType":{ "type":"string", @@ -1203,7 +1203,7 @@ }, "CreatedTime":{ "shape":"Timestamp", - "documentation":"

    The UTC time stamp of the creation time of the investigation report.

    " + "documentation":"

    The time stamp of the creation time of the investigation report. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

    " }, "EntityArn":{ "shape":"EntityArn", @@ -1214,7 +1214,7 @@ "documentation":"

    Type of entity. For example, Amazon Web Services accounts, such as IAM user and role.

    " } }, - "documentation":"

    Details about the investigation related to a potential security event identified by Detective

    " + "documentation":"

    Details about the investigation related to a potential security event identified by Detective.

    " }, "InvestigationDetails":{ "type":"list", @@ -1306,7 +1306,7 @@ "members":{ "GraphArn":{ "shape":"GraphArn", - "documentation":"

    The ARN of the behavior graph.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the behavior graph.

    " }, "InvestigationId":{ "shape":"InvestigationId", @@ -1314,15 +1314,15 @@ }, "IndicatorType":{ "shape":"IndicatorType", - "documentation":"

    See Detective investigations..

    " + "documentation":"

    For the list of indicators of compromise that are generated by Detective investigations, see Detective investigations.

    " }, "NextToken":{ "shape":"AiPaginationToken", - "documentation":"

    List if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours. Using an expired pagination token will return a Validation Exception error.

    " + "documentation":"

    Lists if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours. Using an expired pagination token will return a Validation Exception error.

    " }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    List the maximum number of indicators in a page.

    " + "documentation":"

    Lists the maximum number of indicators in a page.

    " } } }, @@ -1331,7 +1331,7 @@ "members":{ "GraphArn":{ "shape":"GraphArn", - "documentation":"

    The ARN of the behavior graph.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the behavior graph.

    " }, "InvestigationId":{ "shape":"InvestigationId", @@ -1339,11 +1339,11 @@ }, "NextToken":{ "shape":"AiPaginationToken", - "documentation":"

    List if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours. Using an expired pagination token will return a Validation Exception error.

    " + "documentation":"

    Lists if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours. Using an expired pagination token will return a Validation Exception error.

    " }, "Indicators":{ "shape":"Indicators", - "documentation":"

    Indicators of compromise listed based on severity.

    " + "documentation":"

    Lists the indicators of compromise.

    " } } }, @@ -1353,19 +1353,19 @@ "members":{ "GraphArn":{ "shape":"GraphArn", - "documentation":"

    The ARN of the behavior graph.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the behavior graph.

    " }, "NextToken":{ "shape":"AiPaginationToken", - "documentation":"

    List if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours. Using an expired pagination token will return a Validation Exception error.

    " + "documentation":"

    Lists if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours. Using an expired pagination token will return a Validation Exception error.

    " }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    List the maximum number of investigations in a page.

    " + "documentation":"

    Lists the maximum number of investigations in a page.

    " }, "FilterCriteria":{ "shape":"FilterCriteria", - "documentation":"

    Filter the investigation results based on a criteria.

    " + "documentation":"

    Filters the investigation results based on a criteria.

    " }, "SortCriteria":{ "shape":"SortCriteria", @@ -1378,11 +1378,11 @@ "members":{ "InvestigationDetails":{ "shape":"InvestigationDetails", - "documentation":"

    Investigations details lists the summary of uncommon behavior or malicious activity which indicates a compromise.

    " + "documentation":"

    Lists the summary of uncommon behavior or malicious activity which indicates a compromise.

    " }, "NextToken":{ "shape":"AiPaginationToken", - "documentation":"

    List if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

    " + "documentation":"

    Lists if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours.

    " } } }, @@ -1635,7 +1635,7 @@ }, "IsNewForEntireAccount":{ "shape":"IsNewForEntireAccount", - "documentation":"

    Checks if the ASO is for new for the entire account.

    " + "documentation":"

    Checks if the Autonomous System Organization (ASO) is new for the entire account.

    " } }, "documentation":"

    Details new Autonomous System Organizations (ASOs) used either at the resource or account level.

    " @@ -1653,7 +1653,7 @@ }, "IsNewForEntireAccount":{ "shape":"IsNewForEntireAccount", - "documentation":"

    Checks if the gelocation is new for the entire account.

    " + "documentation":"

    Checks if the geolocation is new for the entire account.

    " } }, "documentation":"

    Details new geolocations used either at the resource or account level. For example, lists an observed geolocation that is an infrequent or unused location based on previous user activity.

    " @@ -1698,7 +1698,7 @@ "members":{ "Arn":{ "shape":"EntityArn", - "documentation":"

    The ARN of the related finding.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the related finding.

    " }, "Type":{ "shape":"Type", @@ -1750,7 +1750,7 @@ "documentation":"

    The type of resource that has exceeded the service quota.

    " } }, - "documentation":"

    This request cannot be completed for one of the following reasons.

    • The request would cause the number of member accounts in the behavior graph to exceed the maximum allowed. A behavior graph cannot have more than 1200 member accounts.

    • The request would cause the data rate for the behavior graph to exceed the maximum allowed.

    • Detective is unable to verify the data rate for the member account. This is usually because the member account is not enrolled in Amazon GuardDuty.

    ", + "documentation":"

    This request cannot be completed for one of the following reasons.

    • This request cannot be completed if it would cause the number of member accounts in the behavior graph to exceed the maximum allowed. A behavior graph cannot have more than 1,200 member accounts.

    • This request cannot be completed if the current volume ingested is above the limit of 10 TB per day. Detective will not allow you to add additional member accounts.

    ", "error":{"httpStatusCode":402}, "exception":true }, @@ -1796,7 +1796,7 @@ "members":{ "GraphArn":{ "shape":"GraphArn", - "documentation":"

    The ARN of the behavior graph.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the behavior graph.

    " }, "EntityArn":{ "shape":"EntityArn", @@ -1808,7 +1808,7 @@ }, "ScopeEndTime":{ "shape":"Timestamp", - "documentation":"

    The data and time when the investigation began. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

    " + "documentation":"

    The data and time when the investigation ended. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

    " } } }, @@ -1881,11 +1881,11 @@ }, "IpAddress":{ "shape":"IpAddress", - "documentation":"

    The IP address where the TTP was observed.

    " + "documentation":"

    The IP address where the tactics, techniques, and procedure (TTP) was observed.

    " }, "APIName":{ "shape":"APIName", - "documentation":"

    The name of the API where the TTP was observed.

    " + "documentation":"

    The name of the API where the tactics, techniques, and procedure (TTP) was observed.

    " }, "APISuccessCount":{ "shape":"APISuccessCount", @@ -2061,7 +2061,7 @@ "members":{ "GraphArn":{ "shape":"GraphArn", - "documentation":"

    The ARN of the behavior graph.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the behavior graph.

    " }, "InvestigationId":{ "shape":"InvestigationId", @@ -2116,5 +2116,5 @@ "value":{"shape":"DatasourcePackageUsageInfo"} } }, - "documentation":"

    Detective uses machine learning and purpose-built visualizations to help you to analyze and investigate security issues across your Amazon Web Services (Amazon Web Services) workloads. Detective automatically extracts time-based events such as login attempts, API calls, and network traffic from CloudTrail and Amazon Virtual Private Cloud (Amazon VPC) flow logs. It also extracts findings detected by Amazon GuardDuty.

    The Detective API primarily supports the creation and management of behavior graphs. A behavior graph contains the extracted data from a set of member accounts, and is created and managed by an administrator account.

    To add a member account to the behavior graph, the administrator account sends an invitation to the account. When the account accepts the invitation, it becomes a member account in the behavior graph.

    Detective is also integrated with Organizations. The organization management account designates the Detective administrator account for the organization. That account becomes the administrator account for the organization behavior graph. The Detective administrator account is also the delegated administrator account for Detective in Organizations.

    The Detective administrator account can enable any organization account as a member account in the organization behavior graph. The organization accounts do not receive invitations. The Detective administrator account can also invite other accounts to the organization behavior graph.

    Every behavior graph is specific to a Region. You can only use the API to manage behavior graphs that belong to the Region that is associated with the currently selected endpoint.

    The administrator account for a behavior graph can use the Detective API to do the following:

    • Enable and disable Detective. Enabling Detective creates a new behavior graph.

    • View the list of member accounts in a behavior graph.

    • Add member accounts to a behavior graph.

    • Remove member accounts from a behavior graph.

    • Apply tags to a behavior graph.

    The organization management account can use the Detective API to select the delegated administrator for Detective.

    The Detective administrator account for an organization can use the Detective API to do the following:

    • Perform all of the functions of an administrator account.

    • Determine whether to automatically enable new organization accounts as member accounts in the organization behavior graph.

    An invited member account can use the Detective API to do the following:

    • View the list of behavior graphs that they are invited to.

    • Accept an invitation to contribute to a behavior graph.

    • Decline an invitation to contribute to a behavior graph.

    • Remove their account from a behavior graph.

    All API actions are logged as CloudTrail events. See Logging Detective API Calls with CloudTrail.

    We replaced the term \"master account\" with the term \"administrator account.\" An administrator account is used to centrally manage multiple accounts. In the case of Detective, the administrator account manages the accounts in their behavior graph.

    " + "documentation":"

    Detective uses machine learning and purpose-built visualizations to help you to analyze and investigate security issues across your Amazon Web Services (Amazon Web Services) workloads. Detective automatically extracts time-based events such as login attempts, API calls, and network traffic from CloudTrail and Amazon Virtual Private Cloud (Amazon VPC) flow logs. It also extracts findings detected by Amazon GuardDuty.

    The Detective API primarily supports the creation and management of behavior graphs. A behavior graph contains the extracted data from a set of member accounts, and is created and managed by an administrator account.

    To add a member account to the behavior graph, the administrator account sends an invitation to the account. When the account accepts the invitation, it becomes a member account in the behavior graph.

    Detective is also integrated with Organizations. The organization management account designates the Detective administrator account for the organization. That account becomes the administrator account for the organization behavior graph. The Detective administrator account is also the delegated administrator account for Detective in Organizations.

    The Detective administrator account can enable any organization account as a member account in the organization behavior graph. The organization accounts do not receive invitations. The Detective administrator account can also invite other accounts to the organization behavior graph.

    Every behavior graph is specific to a Region. You can only use the API to manage behavior graphs that belong to the Region that is associated with the currently selected endpoint.

    The administrator account for a behavior graph can use the Detective API to do the following:

    • Enable and disable Detective. Enabling Detective creates a new behavior graph.

    • View the list of member accounts in a behavior graph.

    • Add member accounts to a behavior graph.

    • Remove member accounts from a behavior graph.

    • Apply tags to a behavior graph.

    The organization management account can use the Detective API to select the delegated administrator for Detective.

    The Detective administrator account for an organization can use the Detective API to do the following:

    • Perform all of the functions of an administrator account.

    • Determine whether to automatically enable new organization accounts as member accounts in the organization behavior graph.

    An invited member account can use the Detective API to do the following:

    • View the list of behavior graphs that they are invited to.

    • Accept an invitation to contribute to a behavior graph.

    • Decline an invitation to contribute to a behavior graph.

    • Remove their account from a behavior graph.

    All API actions are logged as CloudTrail events. See Logging Detective API Calls with CloudTrail.

    We replaced the term \"master account\" with the term \"administrator account\". An administrator account is used to centrally manage multiple accounts. In the case of Detective, the administrator account manages the accounts in their behavior graph.

    " } diff --git a/services/devicefarm/pom.xml b/services/devicefarm/pom.xml index aa0c14b1c5d7..74e643017695 100644 --- a/services/devicefarm/pom.xml +++ b/services/devicefarm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT devicefarm AWS Java SDK :: Services :: AWS Device Farm diff --git a/services/devicefarm/src/main/resources/codegen-resources/customization.config b/services/devicefarm/src/main/resources/codegen-resources/customization.config index 158dab87a468..d931f5df83ee 100644 --- a/services/devicefarm/src/main/resources/codegen-resources/customization.config +++ b/services/devicefarm/src/main/resources/codegen-resources/customization.config @@ -1,18 +1,19 @@ { - "verifiedSimpleMethods": [ - "listOfferingTransactions", - "getAccountSettings", - "getOfferingStatus", - "listDeviceInstances", - "listDevices", - "listInstanceProfiles", - "listOfferingPromotions", - "listOfferings", - "listProjects" - ], - "excludedSimpleMethods": [ - "purchaseOffering", - "renewOffering", - "listVPCEConfigurations" - ] + "verifiedSimpleMethods": [ + "listOfferingTransactions", + "getAccountSettings", + "getOfferingStatus", + "listDeviceInstances", + "listDevices", + "listInstanceProfiles", + "listOfferingPromotions", + "listOfferings", + "listProjects" + ], + "excludedSimpleMethods": [ + "purchaseOffering", + "renewOffering", + "listVPCEConfigurations" + ], + "useSraAuth": true } diff --git a/services/devopsguru/pom.xml b/services/devopsguru/pom.xml index e2f85150f3fd..a2cc58d2edd3 100644 --- a/services/devopsguru/pom.xml +++ b/services/devopsguru/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT devopsguru AWS Java SDK :: Services :: Dev Ops Guru diff --git a/services/devopsguru/src/main/resources/codegen-resources/customization.config b/services/devopsguru/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/devopsguru/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/directconnect/pom.xml b/services/directconnect/pom.xml index 82566a2ab4c6..6b99bc100bc1 100644 --- a/services/directconnect/pom.xml +++ b/services/directconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT directconnect AWS Java SDK :: Services :: AWS Direct Connect diff --git a/services/directconnect/src/main/resources/codegen-resources/customization.config b/services/directconnect/src/main/resources/codegen-resources/customization.config index 4afc46a926a1..c987c85d3d06 100644 --- a/services/directconnect/src/main/resources/codegen-resources/customization.config +++ b/services/directconnect/src/main/resources/codegen-resources/customization.config @@ -1,23 +1,24 @@ { - "verifiedSimpleMethods": [ - "describeInterconnects", - "describeConnections", - "describeDirectConnectGateways", - "describeLags", - "describeLocations", - "describeVirtualGateways", - "describeVirtualInterfaces" - ], - "excludedSimpleMethods": [ - "createBGPPeer", - "deleteBGPPeer", - "describeDirectConnectGatewayAttachments", - "describeDirectConnectGatewayAssociations" - ], - "deprecatedOperations": [ - "AllocateConnectionOnInterconnect", - "DescribeConnectionLoa", - "DescribeConnectionsOnInterconnect", - "DescribeInterconnectLoa" - ] + "verifiedSimpleMethods": [ + "describeInterconnects", + "describeConnections", + "describeDirectConnectGateways", + "describeLags", + "describeLocations", + "describeVirtualGateways", + "describeVirtualInterfaces" + ], + "excludedSimpleMethods": [ + "createBGPPeer", + "deleteBGPPeer", + "describeDirectConnectGatewayAttachments", + "describeDirectConnectGatewayAssociations" + ], + "deprecatedOperations": [ + "AllocateConnectionOnInterconnect", + "DescribeConnectionLoa", + "DescribeConnectionsOnInterconnect", + "DescribeInterconnectLoa" + ], + "useSraAuth": true } diff --git a/services/directory/pom.xml b/services/directory/pom.xml index 307263d38481..9f862e5f504a 100644 --- a/services/directory/pom.xml +++ b/services/directory/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT directory AWS Java SDK :: Services :: AWS Directory Service diff --git a/services/directory/src/main/resources/codegen-resources/customization.config b/services/directory/src/main/resources/codegen-resources/customization.config index 1d5e83a7666d..2647b1d15ef7 100644 --- a/services/directory/src/main/resources/codegen-resources/customization.config +++ b/services/directory/src/main/resources/codegen-resources/customization.config @@ -1,219 +1,220 @@ { - "verifiedSimpleMethods": [ - "describeDirectories", - "describeEventTopics", - "describeSnapshots", - "describeTrusts", - "getDirectoryLimits", - "listLogSubscriptions" - ], - "shapeModifiers": { - "DomainControllerLimitExceededException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "EntityDoesNotExistException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "ClientException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "DirectoryUnavailableException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "DirectoryLimitExceededException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "InsufficientPermissionsException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "TagLimitExceededException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "AuthenticationFailedException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "EntityAlreadyExistsException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "InvalidParameterException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "IpRouteLimitExceededException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "ServiceException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "UnsupportedOperationException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "SnapshotLimitExceededException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "AccessDeniedException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "DirectoryAlreadySharedException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "DirectoryNotSharedException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "InvalidPasswordException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "InvalidTargetException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "OrganizationsException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryrequestid" - } - } - ] - }, - "ShareLimitExceededException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "UserDoesNotExistException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - }, - "InvalidNextTokenException": { - "modify": [ - { - "RequestId": { - "emitPropertyName": "directoryRequestId" - } - } - ] - } - } + "verifiedSimpleMethods": [ + "describeDirectories", + "describeEventTopics", + "describeSnapshots", + "describeTrusts", + "getDirectoryLimits", + "listLogSubscriptions" + ], + "shapeModifiers": { + "DomainControllerLimitExceededException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "EntityDoesNotExistException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "ClientException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "DirectoryUnavailableException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "DirectoryLimitExceededException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "InsufficientPermissionsException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "TagLimitExceededException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "AuthenticationFailedException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "EntityAlreadyExistsException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "InvalidParameterException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "IpRouteLimitExceededException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "ServiceException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "UnsupportedOperationException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "SnapshotLimitExceededException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "AccessDeniedException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "DirectoryAlreadySharedException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "DirectoryNotSharedException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "InvalidPasswordException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "InvalidTargetException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "OrganizationsException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryrequestid" + } + } + ] + }, + "ShareLimitExceededException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "UserDoesNotExistException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + }, + "InvalidNextTokenException": { + "modify": [ + { + "RequestId": { + "emitPropertyName": "directoryRequestId" + } + } + ] + } + }, + "useSraAuth": true } diff --git a/services/dlm/pom.xml b/services/dlm/pom.xml index 30a6b947c66e..bdacd8049735 100644 --- a/services/dlm/pom.xml +++ b/services/dlm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT dlm AWS Java SDK :: Services :: DLM diff --git a/services/dlm/src/main/resources/codegen-resources/customization.config b/services/dlm/src/main/resources/codegen-resources/customization.config index cbedf5277157..05f74f379a85 100644 --- a/services/dlm/src/main/resources/codegen-resources/customization.config +++ b/services/dlm/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "getLifecyclePolicies" - ] + ], + "useSraAuth": true } diff --git a/services/docdb/pom.xml b/services/docdb/pom.xml index 91c563569911..e0381b6d51d9 100644 --- a/services/docdb/pom.xml +++ b/services/docdb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT docdb AWS Java SDK :: Services :: DocDB @@ -56,11 +56,6 @@ aws-query-protocol ${awsjavasdk.version} - - software.amazon.awssdk - profiles - ${awsjavasdk.version} - software.amazon.awssdk http-auth-aws diff --git a/services/docdb/src/main/java/software/amazon/awssdk/services/docdb/internal/RdsPresignInterceptor.java b/services/docdb/src/main/java/software/amazon/awssdk/services/docdb/internal/RdsPresignInterceptor.java index 8db75eaf6bee..4d48de11e262 100644 --- a/services/docdb/src/main/java/software/amazon/awssdk/services/docdb/internal/RdsPresignInterceptor.java +++ b/services/docdb/src/main/java/software/amazon/awssdk/services/docdb/internal/RdsPresignInterceptor.java @@ -15,21 +15,20 @@ package software.amazon.awssdk.services.docdb.internal; -import static software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute.AWS_CREDENTIALS; import static software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute.SELECTED_AUTH_SCHEME; import java.net.URI; import java.time.Clock; +import java.time.Duration; +import java.time.Instant; +import java.time.ZoneOffset; +import java.util.concurrent.CompletableFuture; import software.amazon.awssdk.annotations.SdkInternalApi; -import software.amazon.awssdk.auth.credentials.AwsCredentials; -import software.amazon.awssdk.auth.credentials.CredentialUtils; -import software.amazon.awssdk.auth.signer.Aws4Signer; -import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; -import software.amazon.awssdk.auth.signer.params.Aws4PresignerParams; import software.amazon.awssdk.awscore.AwsExecutionAttribute; import software.amazon.awssdk.awscore.endpoint.DefaultServiceEndpointBuilder; import software.amazon.awssdk.core.Protocol; import software.amazon.awssdk.core.SdkRequest; +import software.amazon.awssdk.core.SelectedAuthScheme; import software.amazon.awssdk.core.client.config.SdkClientConfiguration; import software.amazon.awssdk.core.client.config.SdkClientOption; import software.amazon.awssdk.core.exception.SdkClientException; @@ -40,7 +39,13 @@ import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpMethod; import software.amazon.awssdk.http.SdkHttpRequest; -import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.HttpSigner; +import software.amazon.awssdk.http.auth.spi.signer.SignRequest; +import software.amazon.awssdk.http.auth.spi.signer.SignedRequest; +import software.amazon.awssdk.identity.spi.Identity; import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.docdb.model.DocDbRequest; @@ -79,49 +84,39 @@ public interface PresignableRequest { private final Class requestClassToPreSign; - private final Clock signingOverrideClock; + private final Clock signingClockOverride; protected RdsPresignInterceptor(Class requestClassToPreSign) { this(requestClassToPreSign, null); } - protected RdsPresignInterceptor(Class requestClassToPreSign, Clock signingOverrideClock) { + protected RdsPresignInterceptor(Class requestClassToPreSign, Clock signingClockOverride) { this.requestClassToPreSign = requestClassToPreSign; - this.signingOverrideClock = signingOverrideClock; + this.signingClockOverride = signingClockOverride; } @Override public final SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, - ExecutionAttributes executionAttributes) { + ExecutionAttributes executionAttributes) { SdkHttpRequest request = context.httpRequest(); - SdkRequest originalRequest = context.request(); - if (!requestClassToPreSign.isInstance(originalRequest)) { - return request; - } - - if (request.firstMatchingRawQueryParameter(PARAM_PRESIGNED_URL).isPresent()) { - return request; + PresignableRequest presignableRequest = toPresignableRequest(request, context); + if (presignableRequest == null) { + return request.toBuilder().removeQueryParameter(PARAM_SOURCE_REGION).build(); } - PresignableRequest presignableRequest = adaptRequest(requestClassToPreSign.cast(originalRequest)); - + SelectedAuthScheme selectedAuthScheme = executionAttributes.getAttribute(SELECTED_AUTH_SCHEME); String sourceRegion = presignableRequest.getSourceRegion(); - if (sourceRegion == null) { - return request; - } - - String destinationRegion = executionAttributes.getAttribute(AwsSignerExecutionAttribute.SIGNING_REGION).id(); - + String destinationRegion = selectedAuthScheme.authSchemeOption().signerProperty(AwsV4HttpSigner.REGION_NAME); URI endpoint = createEndpoint(sourceRegion, SERVICE_NAME, executionAttributes); SdkHttpFullRequest.Builder marshalledRequest = presignableRequest.marshall().toBuilder().uri(endpoint); SdkHttpFullRequest requestToPresign = - marshalledRequest.method(SdkHttpMethod.GET) - .putRawQueryParameter(PARAM_DESTINATION_REGION, destinationRegion) - .removeQueryParameter(PARAM_SOURCE_REGION) - .build(); + marshalledRequest.method(SdkHttpMethod.GET) + .putRawQueryParameter(PARAM_DESTINATION_REGION, destinationRegion) + .removeQueryParameter(PARAM_SOURCE_REGION) + .build(); - requestToPresign = presignRequest(requestToPresign, executionAttributes, sourceRegion); + requestToPresign = sraPresignRequest(executionAttributes, requestToPresign, sourceRegion); String presignedUrl = requestToPresign.getUri().toString(); @@ -140,39 +135,93 @@ public final SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, */ protected abstract PresignableRequest adaptRequest(T originalRequest); - private SdkHttpFullRequest presignRequest(SdkHttpFullRequest request, - ExecutionAttributes attributes, - String signingRegion) { + /** + * Converts the request to a PresignableRequest if possible. + */ + private PresignableRequest toPresignableRequest(SdkHttpRequest request, Context.ModifyHttpRequest context) { + SdkRequest originalRequest = context.request(); + if (!requestClassToPreSign.isInstance(originalRequest)) { + return null; + } + if (request.firstMatchingRawQueryParameter(PARAM_PRESIGNED_URL).isPresent()) { + return null; + } + PresignableRequest presignableRequest = adaptRequest(requestClassToPreSign.cast(originalRequest)); + String sourceRegion = presignableRequest.getSourceRegion(); + if (sourceRegion == null) { + return null; + } + return presignableRequest; + } + + /** + * Presign the provided HTTP request using SRA HttpSigner + */ + private SdkHttpFullRequest sraPresignRequest(ExecutionAttributes executionAttributes, SdkHttpFullRequest request, + String signingRegion) { + SelectedAuthScheme selectedAuthScheme = executionAttributes.getAttribute(SELECTED_AUTH_SCHEME); - Aws4Signer signer = Aws4Signer.create(); - Aws4PresignerParams presignerParams = Aws4PresignerParams.builder() - .signingRegion(Region.of(signingRegion)) - .signingName(SERVICE_NAME) - .signingClockOverride(signingOverrideClock) - .awsCredentials(resolveCredentials(attributes)) - .build(); - return signer.presign(request, presignerParams); + Instant signingInstant; + if (signingClockOverride != null) { + signingInstant = signingClockOverride.instant(); + } else { + signingInstant = Instant.now(); + } + // A fixed signing clock is used so that the current time used by the signing logic, as well as to + // determine expiration are the same. + Clock signingClock = Clock.fixed(signingInstant, ZoneOffset.UTC); + Duration expirationDuration = Duration.ofDays(7); + return doSraPresign(request, selectedAuthScheme, signingRegion, signingClock, expirationDuration); + } + + private SdkHttpFullRequest doSraPresign(SdkHttpFullRequest request, + SelectedAuthScheme selectedAuthScheme, + String signingRegion, + Clock signingClock, + Duration expirationDuration) { + CompletableFuture identityFuture = selectedAuthScheme.identity(); + T identity = CompletableFutureUtils.joinLikeSync(identityFuture); + + // Pre-signed URL puts auth info in query string, does not sign the payload, and has an expiry. + SignRequest.Builder signRequestBuilder = SignRequest + .builder(identity) + .putProperty(AwsV4FamilyHttpSigner.AUTH_LOCATION, AwsV4FamilyHttpSigner.AuthLocation.QUERY_STRING) + .putProperty(AwsV4FamilyHttpSigner.EXPIRATION_DURATION, expirationDuration) + .putProperty(HttpSigner.SIGNING_CLOCK, signingClock) + .request(request) + .payload(request.contentStreamProvider().orElse(null)); + AuthSchemeOption authSchemeOption = selectedAuthScheme.authSchemeOption(); + authSchemeOption.forEachSignerProperty(signRequestBuilder::putProperty); + // Override the region + signRequestBuilder.putProperty(AwsV4HttpSigner.REGION_NAME, signingRegion); + HttpSigner signer = selectedAuthScheme.signer(); + SignedRequest signedRequest = signer.sign(signRequestBuilder.build()); + return toSdkHttpFullRequest(signedRequest); } - private AwsCredentials resolveCredentials(ExecutionAttributes attributes) { - return attributes.getOptionalAttribute(SELECTED_AUTH_SCHEME) - .map(selectedAuthScheme -> selectedAuthScheme.identity()) - .map(identityFuture -> CompletableFutureUtils.joinLikeSync(identityFuture)) - .filter(identity -> identity instanceof AwsCredentialsIdentity) - .map(identity -> { - AwsCredentialsIdentity awsCredentialsIdentity = (AwsCredentialsIdentity) identity; - return CredentialUtils.toCredentials(awsCredentialsIdentity); - }).orElse(attributes.getAttribute(AWS_CREDENTIALS)); + private SdkHttpFullRequest toSdkHttpFullRequest(SignedRequest signedRequest) { + SdkHttpRequest request = signedRequest.request(); + + return SdkHttpFullRequest.builder() + .contentStreamProvider(signedRequest.payload().orElse(null)) + .protocol(request.protocol()) + .method(request.method()) + .host(request.host()) + .port(request.port()) + .encodedPath(request.encodedPath()) + .applyMutation(r -> request.forEachHeader(r::putHeader)) + .applyMutation(r -> request.forEachRawQueryParameter(r::putRawQueryParameter)) + .removeQueryParameter(PARAM_SOURCE_REGION) + .build(); } private URI createEndpoint(String regionName, String serviceName, ExecutionAttributes attributes) { Region region = Region.of(regionName); - if (region == null) { throw SdkClientException.builder() .message("{" + serviceName + ", " + regionName + "} was not " - + "found in region metadata. Update to latest version of SDK and try again.") + + "found in region metadata. Update to latest version of SDK and try again.") .build(); } diff --git a/services/docdb/src/main/resources/codegen-resources/customization.config b/services/docdb/src/main/resources/codegen-resources/customization.config index 2f1a69a71316..16e12a0d7085 100644 --- a/services/docdb/src/main/resources/codegen-resources/customization.config +++ b/services/docdb/src/main/resources/codegen-resources/customization.config @@ -1,4 +1,6 @@ { + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true, "verifiedSimpleMethods" : [ "describeDBClusterParameterGroups", "describeDBClusterSnapshots", diff --git a/services/docdb/src/main/resources/codegen-resources/customization.tmp b/services/docdb/src/main/resources/codegen-resources/customization.tmp new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/services/docdb/src/test/java/software/amazon/awssdk/services/docdb/internal/PresignRequestHandlerTest.java b/services/docdb/src/test/java/software/amazon/awssdk/services/docdb/internal/PresignRequestHandlerTest.java index 1a261fc2ebdd..62cb53e9b5c6 100644 --- a/services/docdb/src/test/java/software/amazon/awssdk/services/docdb/internal/PresignRequestHandlerTest.java +++ b/services/docdb/src/test/java/software/amazon/awssdk/services/docdb/internal/PresignRequestHandlerTest.java @@ -15,173 +15,345 @@ package software.amazon.awssdk.services.docdb.internal; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.Mockito.when; +import java.io.IOException; +import java.io.UncheckedIOException; import java.net.URI; -import java.net.URISyntaxException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; import java.time.Clock; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.TimeZone; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; +import java.time.Instant; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; -import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; -import software.amazon.awssdk.awscore.endpoint.DefaultServiceEndpointBuilder; -import software.amazon.awssdk.core.Protocol; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.core.interceptor.Context; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; -import software.amazon.awssdk.core.interceptor.InterceptorContext; -import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute; import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpRequest; -import software.amazon.awssdk.profiles.ProfileFile; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.docdb.DocDbClient; +import software.amazon.awssdk.services.docdb.DocDbClientBuilder; +import software.amazon.awssdk.services.docdb.DocDbServiceClientConfiguration; +import software.amazon.awssdk.services.docdb.auth.scheme.DocDbAuthSchemeProvider; import software.amazon.awssdk.services.docdb.model.CopyDbClusterSnapshotRequest; -import software.amazon.awssdk.services.docdb.model.DocDbRequest; -import software.amazon.awssdk.services.docdb.transform.CopyDbClusterSnapshotRequestMarshaller; +import software.amazon.awssdk.utils.IoUtils; +import software.amazon.awssdk.utils.Validate; /** * Unit Tests for {@link RdsPresignInterceptor} */ -public class PresignRequestHandlerTest { - private static final AwsBasicCredentials CREDENTIALS = AwsBasicCredentials.create("foo", "bar"); - private static final Region DESTINATION_REGION = Region.of("us-west-2"); +class PresignRequestHandlerTest { + private static String TEST_KMS_KEY_ID = "arn:aws:kms:us-west-2:123456789012:key/" + + "11111111-2222-3333-4444-555555555555"; - private static final RdsPresignInterceptor presignInterceptor = new CopyDbClusterSnapshotPresignInterceptor(); - private final CopyDbClusterSnapshotRequestMarshaller marshaller = - new CopyDbClusterSnapshotRequestMarshaller(RdsPresignInterceptor.PROTOCOL_FACTORY); + @ParameterizedTest + @MethodSource("testCases") + public void testExpectations(TestCase testCase) { + // Arrange + CapturingInterceptor interceptor = new CapturingInterceptor(); + DocDbClientBuilder clientBuilder = client(interceptor, testCase.signingClockOverride); + testCase.clientConfigure.accept(clientBuilder); + DocDbClient client = clientBuilder.build(); - @Test - public void testSetsPresignedUrl() { - CopyDbClusterSnapshotRequest request = makeTestRequest(); - SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshallRequest(request)); + // Act + assertThatThrownBy(() -> testCase.clientConsumer.accept(client)) + .hasMessageContaining("boom!"); - assertNotNull(presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); - } + // Assert + SdkHttpFullRequest request = (SdkHttpFullRequest) interceptor.httpRequest(); + Map> rawQueryParameters = rawQueryParameters(request); - @Test - public void testComputesPresignedUrlCorrectlyForCopyDbClusterSnapshotRequest() { - // Note: test data was baselined by performing actual calls, with real - // credentials to RDS and checking that they succeeded. Then the - // request was recreated with all the same parameters but with test - // credentials. - final CopyDbClusterSnapshotRequest request = CopyDbClusterSnapshotRequest.builder() - .sourceDBClusterSnapshotIdentifier("arn:aws:rds:us-east-1:123456789012:snapshot:rds:test-instance-ss-2016-12-20-23-19") - .targetDBClusterSnapshotIdentifier("test-instance-ss-copy-2") - .sourceRegion("us-east-1") - .kmsKeyId("arn:aws:kms:us-west-2:123456789012:key/11111111-2222-3333-4444-555555555555") - .build(); - - Calendar c = new GregorianCalendar(); - c.setTimeZone(TimeZone.getTimeZone("UTC")); - // 20161221T180735Z - // Note: month is 0-based - c.set(2016, Calendar.DECEMBER, 21, 18, 7, 35); - - Clock signingDateOverride = Mockito.mock(Clock.class); - when(signingDateOverride.millis()).thenReturn(c.getTimeInMillis()); - - RdsPresignInterceptor interceptor = new CopyDbClusterSnapshotPresignInterceptor(signingDateOverride); - - SdkHttpRequest presignedRequest = modifyHttpRequest(interceptor, request, marshallRequest(request)); - - final String expectedPreSignedUrl = "https://rds.us-east-1.amazonaws.com?" + - "Action=CopyDBClusterSnapshot" + - "&Version=2014-10-31" + - "&SourceDBClusterSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-east-1%3A123456789012%3Asnapshot%3Ards%3Atest-instance-ss-2016-12-20-23-19" + - "&TargetDBClusterSnapshotIdentifier=test-instance-ss-copy-2" + - "&KmsKeyId=arn%3Aaws%3Akms%3Aus-west-2%3A123456789012%3Akey%2F11111111-2222-3333-4444-555555555555" + - "&DestinationRegion=us-west-2" + - "&X-Amz-Algorithm=AWS4-HMAC-SHA256" + - "&X-Amz-Date=20161221T180735Z" + - "&X-Amz-SignedHeaders=host" + - "&X-Amz-Expires=604800" + - "&X-Amz-Credential=foo%2F20161221%2Fus-east-1%2Frds%2Faws4_request" + - "&X-Amz-Signature=00822ebbba95e2e6ac09112aa85621fbef060a596e3e1480f9f4ac61493e9821"; - assertEquals(expectedPreSignedUrl, presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); - } + // The following params should not be included in the outgoing request + assertFalse(rawQueryParameters.containsKey("SourceRegion")); + assertFalse(rawQueryParameters.containsKey("DestinationRegion")); - @Test - public void testSkipsPresigningIfUrlSet() { - CopyDbClusterSnapshotRequest request = CopyDbClusterSnapshotRequest.builder() - .sourceRegion("us-west-2") - .preSignedUrl("PRESIGNED") - .build(); + if (testCase.shouldContainPreSignedUrl) { + List rawPresignedUrlValue = rawQueryParameters.get("PreSignedUrl"); + assertNotNull(rawPresignedUrlValue); + assertTrue(rawPresignedUrlValue.size() == 1); + String presignedUrl = rawPresignedUrlValue.get(0); + assertNotNull(presignedUrl); + // Validate that the URL can be parsed back + URI presignedUrlAsUri = URI.create(presignedUrl); + assertNotNull(presignedUrlAsUri); + if (testCase.expectedDestinationRegion != null) { + assertTrue(presignedUrl.contains("DestinationRegion=" + testCase.expectedDestinationRegion)); + } + if (testCase.expectedUri != null) { + assertEquals(normalize(URI.create(testCase.expectedUri)), normalize(presignedUrlAsUri)); + } + } else { + assertFalse(rawQueryParameters.containsKey("PreSignedUrl")); + } + } + public static List testCases() { + return Arrays.asList( + builder("CopyDbClusterSnapshot - Sets pre-signed URL when sourceRegion is set") + .clientConsumer(c -> c.copyDBClusterSnapshot(makeTestRequestBuilder() + .sourceRegion("us-east-1") + .build())) + .shouldContainPreSignedUrl(true) + .expectedDestinationRegion("us-east-1") + .build(), + builder("CopyDbClusterSnapshot - Doesn't set pre-signed URL when sourceRegion is NOT set") + .clientConsumer(c -> c.copyDBClusterSnapshot(makeTestRequestBuilder().build())) + .shouldContainPreSignedUrl(false) + .build(), + builder("CopyDbClusterSnapshot - Does not override pre-signed URL") + .clientConsumer(c -> c.copyDBClusterSnapshot( + makeTestRequestBuilder() + .sourceRegion("us-west-2") + .preSignedUrl("http://localhost?foo=bar") + .build())) + .shouldContainPreSignedUrl(true) + .expectedUri("http://localhost?foo=bar") + .build(), + builder("CopyDbClusterSnapshot - Fixed time") + .clientConfigure(c -> c.region(Region.US_WEST_2)) + .clientConsumer(c -> c.copyDBClusterSnapshot( + makeTestRequestBuilder() + .sourceRegion("us-east-1") + .build())) + .shouldContainPreSignedUrl(true) + .signingClockOverride(Clock.fixed(Instant.parse("2016-12-21T18:07:35.000Z"), ZoneId.of("UTC"))) + .expectedUri(fixedTimePresignedUrl()) + .build(), - SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshallRequest(request)); + builder("createDBCluster With SourceRegion Sends Presigned Url") + .clientConsumer(c -> c.createDBCluster(r -> r.kmsKeyId(TEST_KMS_KEY_ID) + .sourceRegion("us-west-2"))) + .shouldContainPreSignedUrl(true) + .expectedDestinationRegion("us-east-1") + .build(), + builder("createDBCluster Without SourceRegion Does NOT Send PresignedUrl") + .clientConsumer(c -> c.createDBCluster(r -> r.kmsKeyId(TEST_KMS_KEY_ID))) + .shouldContainPreSignedUrl(false) + .build() + ); + } - assertEquals("PRESIGNED", presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); + private static CopyDbClusterSnapshotRequest.Builder makeTestRequestBuilder() { + return CopyDbClusterSnapshotRequest + .builder() + .sourceDBClusterSnapshotIdentifier("arn:aws:rds:us-east-1:123456789012:snapshot:rds" + + ":test-instance-ss-2016-12-20-23-19") + .targetDBClusterSnapshotIdentifier("test-instance-ss-copy-2") + .kmsKeyId(TEST_KMS_KEY_ID); } - @Test - public void testSkipsPresigningIfSourceRegionNotSet() { - CopyDbClusterSnapshotRequest request = CopyDbClusterSnapshotRequest.builder().build(); + private static DocDbClientBuilder client(CapturingInterceptor interceptor, Clock signingClockOverride) { + DocDbClientBuilder builder = DocDbClient + .builder() + .credentialsProvider( + StaticCredentialsProvider.create( + AwsBasicCredentials.create("foo", "bar"))) + .region(Region.US_EAST_1) + .addPlugin(c -> { + // Adds the capturing interceptor. + DocDbServiceClientConfiguration.Builder config = + Validate.isInstanceOf(DocDbServiceClientConfiguration.Builder.class, c, + "\uD83E\uDD14"); + config.overrideConfiguration(oc -> oc.addExecutionInterceptor(interceptor)); + }); - SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshallRequest(request)); + if (signingClockOverride != null) { + // Adds a auth scheme wrapper that handles the clock override + builder.addPlugin(c -> { + DocDbServiceClientConfiguration.Builder config = + Validate.isInstanceOf(DocDbServiceClientConfiguration.Builder.class, c, "\uD83E\uDD14"); + config.authSchemeProvider(clockOverridingAuthScheme(config.authSchemeProvider(), signingClockOverride)); + }); + } + return builder; + } - assertNull(presignedRequest.rawQueryParameters().get("PreSignedUrl")); + private static DocDbAuthSchemeProvider clockOverridingAuthScheme(DocDbAuthSchemeProvider source, Clock signingClockOverride) { + return authSchemeParams -> { + List authSchemeOptions = source.resolveAuthScheme(authSchemeParams); + List result = new ArrayList<>(authSchemeOptions.size()); + for (AuthSchemeOption option : authSchemeOptions) { + if (option.schemeId().equals(AwsV4AuthScheme.SCHEME_ID)) { + option = option.toBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.SIGNING_CLOCK, signingClockOverride) + .build(); + } + result.add(option); + } + return result; + }; } - @Test - public void testParsesDestinationRegionfromRequestEndpoint() throws URISyntaxException { - CopyDbClusterSnapshotRequest request = CopyDbClusterSnapshotRequest.builder() - .sourceRegion("us-east-1") - .build(); - Region destination = Region.of("us-west-2"); - SdkHttpFullRequest marshalled = marshallRequest(request); + static String fixedTimePresignedUrl() { + return + "https://rds.us-east-1.amazonaws.com?" + + "Action=CopyDBClusterSnapshot" + + "&Version=2014-10-31" + + "&SourceDBClusterSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-east-1%3A123456789012" + + "%3Asnapshot%3Ards%3Atest-instance-ss-2016-12-20-23-19" + + "&TargetDBClusterSnapshotIdentifier=test-instance-ss-copy-2" + + "&KmsKeyId=arn%3Aaws%3Akms%3Aus-west-2%3A123456789012%3Akey%2F11111111-2222-3333" + + "-4444-555555555555" + + "&DestinationRegion=us-west-2" + + "&X-Amz-Algorithm=AWS4-HMAC-SHA256" + + "&X-Amz-Date=20161221T180735Z" + + "&X-Amz-SignedHeaders=host" + + "&X-Amz-Credential=foo%2F20161221%2Fus-east-1%2Frds%2Faws4_request" + + "&X-Amz-Expires=604800" + + "&X-Amz-Signature=00822ebbba95e2e6ac09112aa85621fbef060a596e3e1480f9f4ac61493e9821"; + } - final SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshalled); + private Map> rawQueryParameters(SdkHttpFullRequest request) { + // Retrieve back from the query parameters from the body, this is best-effort only. + try { + String decodedQueryParams = IoUtils.toUtf8String(request.contentStreamProvider().get().newStream()); + String[] keyValuePairs = decodedQueryParams.split("&"); + Map> result = new LinkedHashMap<>(); + for (String keyValuePair : keyValuePairs) { + String[] kvpParts = keyValuePair.split("=", 2); + String value = URLDecoder.decode(kvpParts.length > 1 ? kvpParts[1] : "", StandardCharsets.UTF_8.name()); + result.computeIfAbsent(kvpParts[0], x -> new ArrayList<>()).add(value); + } + return result; + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } - final URI presignedUrl = new URI(presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); - assertTrue(presignedUrl.toString().contains("DestinationRegion=" + destination.id())); + static TestCaseBuilder builder(String name) { + return new TestCaseBuilder() + .clientConfigure(c -> { + }) + .name(name); } - @Test - public void testSourceRegionRemovedFromOriginalRequest() { - CopyDbClusterSnapshotRequest request = makeTestRequest(); - SdkHttpFullRequest marshalled = marshallRequest(request); - SdkHttpRequest actual = modifyHttpRequest(presignInterceptor, request, marshalled); + private static String normalize(URI uri) { + String uriAsString = uri.toString(); + int queryStart = uriAsString.indexOf('?'); + if (queryStart == -1) { + return uriAsString; + } + String uriQueryPrefix = uriAsString.substring(0, queryStart); + String query = uri.getQuery(); + if (query == null) { + return uriAsString; + } + if (!query.isEmpty()) { + String[] queryParts = query.split("&"); + query = Arrays.stream(queryParts) + .sorted() + .collect(Collectors.joining("&")); - assertFalse(actual.rawQueryParameters().containsKey("SourceRegion")); + } + return uriQueryPrefix + "?" + query; } - private SdkHttpFullRequest marshallRequest(CopyDbClusterSnapshotRequest request) { - SdkHttpFullRequest.Builder marshalled = marshaller.marshall(request).toBuilder(); + static class TestCase { + private final String name; + private final Consumer clientConfigure; + private final Consumer clientConsumer; + private final Boolean shouldContainPreSignedUrl; + private final String expectedDestinationRegion; + private final Clock signingClockOverride; + private final String expectedUri; - URI endpoint = new DefaultServiceEndpointBuilder("rds", Protocol.HTTPS.toString()) - .withRegion(DESTINATION_REGION) - .getServiceEndpoint(); - return marshalled.uri(endpoint).build(); + TestCase(TestCaseBuilder builder) { + this.name = Validate.notNull(builder.name, "name"); + this.clientConsumer = Validate.notNull(builder.clientConsumer, "clientConsumer"); + this.clientConfigure = Validate.notNull(builder.clientConfigure, "clientConfigure"); + this.shouldContainPreSignedUrl = builder.shouldContainPreSignedUrl; + this.expectedDestinationRegion = builder.expectedDestinationRegion; + this.signingClockOverride = builder.signingClockOverride; + this.expectedUri = builder.expectedUri; + } } - private ExecutionAttributes executionAttributes() { - return new ExecutionAttributes().putAttribute(AwsSignerExecutionAttribute.AWS_CREDENTIALS, CREDENTIALS) - .putAttribute(AwsSignerExecutionAttribute.SIGNING_REGION, DESTINATION_REGION) - .putAttribute(SdkExecutionAttribute.PROFILE_FILE_SUPPLIER, - ProfileFile::defaultProfileFile) - .putAttribute(SdkExecutionAttribute.PROFILE_NAME, "default"); - } + static class TestCaseBuilder { + private String name; + private Consumer clientConfigure; + private Consumer clientConsumer; + private Boolean shouldContainPreSignedUrl; + private String expectedDestinationRegion; + private Clock signingClockOverride; + private String expectedUri; + + private TestCaseBuilder name(String name) { + this.name = name; + return this; + } - private CopyDbClusterSnapshotRequest makeTestRequest() { - return CopyDbClusterSnapshotRequest.builder() - .sourceDBClusterSnapshotIdentifier("arn:aws:rds:us-east-1:123456789012:snapshot:rds:test-instance-ss-2016-12-20-23-19") - .targetDBClusterSnapshotIdentifier("test-instance-ss-copy-2") - .sourceRegion("us-east-1") - .kmsKeyId("arn:aws:kms:us-west-2:123456789012:key/11111111-2222-3333-4444-555555555555") - .build(); + private TestCaseBuilder clientConfigure(Consumer clientConfigure) { + this.clientConfigure = clientConfigure; + return this; + } + + private TestCaseBuilder clientConsumer(Consumer clientConsumer) { + this.clientConsumer = clientConsumer; + return this; + } + + private TestCaseBuilder shouldContainPreSignedUrl(Boolean value) { + this.shouldContainPreSignedUrl = value; + return this; + } + + private TestCaseBuilder expectedDestinationRegion(String value) { + this.expectedDestinationRegion = value; + return this; + } + + public TestCaseBuilder signingClockOverride(Clock signingClockOverride) { + this.signingClockOverride = signingClockOverride; + return this; + } + + public TestCaseBuilder expectedUri(String expectedUri) { + this.expectedUri = expectedUri; + return this; + } + + public TestCase build() { + return new TestCase(this); + } } - private SdkHttpRequest modifyHttpRequest(ExecutionInterceptor interceptor, - DocDbRequest request, - SdkHttpFullRequest httpRequest) { - InterceptorContext context = InterceptorContext.builder().request(request).httpRequest(httpRequest).build(); - return interceptor.modifyHttpRequest(context, executionAttributes()); + static class CapturingInterceptor implements ExecutionInterceptor { + private static final RuntimeException BOOM = new RuntimeException("boom!"); + private Context.BeforeTransmission context; + private ExecutionAttributes executionAttributes; + + @Override + public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { + this.context = context; + this.executionAttributes = executionAttributes; + throw BOOM; + } + + public ExecutionAttributes executionAttributes() { + return executionAttributes; + } + + public SdkHttpRequest httpRequest() { + return context.httpRequest(); + } } } diff --git a/services/docdb/src/test/java/software/amazon/awssdk/services/docdb/internal/PresignRequestWireMockTest.java b/services/docdb/src/test/java/software/amazon/awssdk/services/docdb/internal/PresignRequestWireMockTest.java index 6342bbabc251..5b68da7dae9f 100644 --- a/services/docdb/src/test/java/software/amazon/awssdk/services/docdb/internal/PresignRequestWireMockTest.java +++ b/services/docdb/src/test/java/software/amazon/awssdk/services/docdb/internal/PresignRequestWireMockTest.java @@ -78,12 +78,6 @@ public void createDbClusterWithSourceRegionSendsPresignedUrl() { "CreateDBCluster"); } - @Test - public void createDBInstanceReadReplicaWithSourceRegionSendsPresignedUrl() { - verifyMethodCallSendsPresignedUrl(() -> client.createDBCluster(r -> r.sourceRegion("us-west-2")), - "CreateDBCluster"); - } - public void verifyMethodCallSendsPresignedUrl(Runnable methodCall, String actionName) { stubFor(any(anyUrl()).willReturn(aResponse().withStatus(200).withBody(""))); diff --git a/services/docdbelastic/pom.xml b/services/docdbelastic/pom.xml index cf70c3ca46fc..1c9727520520 100644 --- a/services/docdbelastic/pom.xml +++ b/services/docdbelastic/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT docdbelastic AWS Java SDK :: Services :: Doc DB Elastic diff --git a/services/docdbelastic/src/main/resources/codegen-resources/customization.config b/services/docdbelastic/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/docdbelastic/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/drs/pom.xml b/services/drs/pom.xml index 6d4aa7d93cde..d7740ca2e57a 100644 --- a/services/drs/pom.xml +++ b/services/drs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT drs AWS Java SDK :: Services :: Drs diff --git a/services/drs/src/main/resources/codegen-resources/customization.config b/services/drs/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/drs/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/drs/src/main/resources/codegen-resources/service-2.json b/services/drs/src/main/resources/codegen-resources/service-2.json index 23cb507a4020..7565305cf159 100644 --- a/services/drs/src/main/resources/codegen-resources/service-2.json +++ b/services/drs/src/main/resources/codegen-resources/service-2.json @@ -1096,6 +1096,10 @@ "shape":"VolumeToConversionMap", "documentation":"

    A mapping between the volumes being converted and the converted snapshot ids

    " }, + "volumeToProductCodes":{ + "shape":"VolumeToProductCodes", + "documentation":"

    A mapping between the volumes being converted and the product codes associated with them

    " + }, "volumeToVolumeSize":{ "shape":"VolumeToSizeMap", "documentation":"

    A mapping between the volumes and their sizes

    " @@ -1385,6 +1389,10 @@ "totalStorageBytes":{ "shape":"PositiveInteger", "documentation":"

    The total amount of data to be replicated in bytes.

    " + }, + "volumeStatus":{ + "shape":"VolumeStatus", + "documentation":"

    The status of the volume.

    " } }, "documentation":"

    A disk that should be replicated.

    " @@ -3095,6 +3103,37 @@ "type":"long", "min":0 }, + "ProductCode":{ + "type":"structure", + "members":{ + "productCodeId":{ + "shape":"ProductCodeId", + "documentation":"

    Id of a product code associated with a volume.

    " + }, + "productCodeMode":{ + "shape":"ProductCodeMode", + "documentation":"

    Mode of a product code associated with a volume.

    " + } + }, + "documentation":"

    Properties of a product code associated with a volume.

    " + }, + "ProductCodeId":{ + "type":"string", + "max":25, + "min":25, + "pattern":"^([A-Za-z0-9])+$" + }, + "ProductCodeMode":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "ProductCodes":{ + "type":"list", + "member":{"shape":"ProductCode"} + }, "PutLaunchActionRequest":{ "type":"structure", "required":[ @@ -4879,11 +4918,25 @@ "other" ] }, + "VolumeStatus":{ + "type":"string", + "enum":[ + "REGULAR", + "CONTAINS_MARKETPLACE_PRODUCT_CODES", + "MISSING_VOLUME_ATTRIBUTES", + "MISSING_VOLUME_ATTRIBUTES_AND_PRECHECK_UNAVAILABLE" + ] + }, "VolumeToConversionMap":{ "type":"map", "key":{"shape":"LargeBoundedString"}, "value":{"shape":"ConversionMap"} }, + "VolumeToProductCodes":{ + "type":"map", + "key":{"shape":"LargeBoundedString"}, + "value":{"shape":"ProductCodes"} + }, "VolumeToSizeMap":{ "type":"map", "key":{"shape":"LargeBoundedString"}, diff --git a/services/dynamodb/pom.xml b/services/dynamodb/pom.xml index c383b0469181..03cfec37dc81 100644 --- a/services/dynamodb/pom.xml +++ b/services/dynamodb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT dynamodb AWS Java SDK :: Services :: Amazon DynamoDB diff --git a/services/dynamodb/src/main/resources/codegen-resources/customization.config b/services/dynamodb/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/dynamodb/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json index 853b7c73d26a..c4d7cbde3f46 100644 --- a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json +++ b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json @@ -674,7 +674,7 @@ {"shape":"PointInTimeRecoveryUnavailableException"}, {"shape":"InternalServerError"} ], - "documentation":"

    Restores the specified table to the specified point in time within EarliestRestorableDateTime and LatestRestorableDateTime. You can restore your table to any point in time during the last 35 days. Any number of users can execute up to 4 concurrent restores (any type of restore) in a given account.

    When you restore using point in time recovery, DynamoDB restores your table data to the state based on the selected date and time (day:hour:minute:second) to a new table.

    Along with data, the following are also included on the new restored table using point in time recovery:

    • Global secondary indexes (GSIs)

    • Local secondary indexes (LSIs)

    • Provisioned read and write capacity

    • Encryption settings

      All these settings come from the current settings of the source table at the time of restore.

    You must manually set up the following on the restored table:

    • Auto scaling policies

    • IAM policies

    • Amazon CloudWatch metrics and alarms

    • Tags

    • Stream settings

    • Time to Live (TTL) settings

    • Point in time recovery settings

    ", + "documentation":"

    Restores the specified table to the specified point in time within EarliestRestorableDateTime and LatestRestorableDateTime. You can restore your table to any point in time during the last 35 days. Any number of users can execute up to 50 concurrent restores (any type of restore) in a given account.

    When you restore using point in time recovery, DynamoDB restores your table data to the state based on the selected date and time (day:hour:minute:second) to a new table.

    Along with data, the following are also included on the new restored table using point in time recovery:

    • Global secondary indexes (GSIs)

    • Local secondary indexes (LSIs)

    • Provisioned read and write capacity

    • Encryption settings

      All these settings come from the current settings of the source table at the time of restore.

    You must manually set up the following on the restored table:

    • Auto scaling policies

    • IAM policies

    • Amazon CloudWatch metrics and alarms

    • Tags

    • Stream settings

    • Time to Live (TTL) settings

    • Point in time recovery settings

    ", "endpointdiscovery":{ } }, @@ -893,7 +893,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServerError"} ], - "documentation":"

    Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.

    This operation only applies to Version 2019.11.21 (Current) of global tables.

    You can only perform one of the following operations at once:

    • Modify the provisioned throughput settings of the table.

    • Remove a global secondary index from the table.

    • Create a new global secondary index on the table. After the index begins backfilling, you can use UpdateTable to perform other operations.

    UpdateTable is an asynchronous operation; while it is executing, the table status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot issue another UpdateTable request. When the table returns to the ACTIVE state, the UpdateTable operation is complete.

    ", + "documentation":"

    Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.

    This operation only applies to Version 2019.11.21 (Current) of global tables.

    You can only perform one of the following operations at once:

    • Modify the provisioned throughput settings of the table.

    • Remove a global secondary index from the table.

    • Create a new global secondary index on the table. After the index begins backfilling, you can use UpdateTable to perform other operations.

    UpdateTable is an asynchronous operation; while it's executing, the table status changes from ACTIVE to UPDATING. While it's UPDATING, you can't issue another UpdateTable request on the base table nor any replicas. When the table returns to the ACTIVE state, the UpdateTable operation is complete.

    ", "endpointdiscovery":{ } }, @@ -6379,7 +6379,7 @@ }, "StreamSpecification":{ "shape":"StreamSpecification", - "documentation":"

    Represents the DynamoDB Streams configuration for the table.

    You receive a ResourceInUseException if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.

    " + "documentation":"

    Represents the DynamoDB Streams configuration for the table.

    You receive a ValidationException if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.

    " }, "SSESpecification":{ "shape":"SSESpecification", diff --git a/services/ebs/pom.xml b/services/ebs/pom.xml index c1bb84715dea..566dfc4b96fb 100644 --- a/services/ebs/pom.xml +++ b/services/ebs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ebs AWS Java SDK :: Services :: EBS diff --git a/services/ebs/src/main/resources/codegen-resources/customization.config b/services/ebs/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/ebs/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/ec2/pom.xml b/services/ec2/pom.xml index db981f53b6bb..20afcdc5994c 100644 --- a/services/ec2/pom.xml +++ b/services/ec2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ec2 AWS Java SDK :: Services :: Amazon EC2 diff --git a/services/ec2/src/main/resources/codegen-resources/customization.config b/services/ec2/src/main/resources/codegen-resources/customization.config index df7bb789e2d6..5013a8fce19f 100644 --- a/services/ec2/src/main/resources/codegen-resources/customization.config +++ b/services/ec2/src/main/resources/codegen-resources/customization.config @@ -1,352 +1,353 @@ { - "verifiedSimpleMethods": [ - "allocateAddress", - "associateAddress", - "createInternetGateway", - "deleteSpotDatafeedSubscription", - "describeFpgaImages", - "describeReservedInstancesListings", - "describeSpotDatafeedSubscription", - "createDefaultVpc", - "createTransitGateway", - "describeAccountAttributes", - "describeAddresses", - "describeAggregateIdFormat", - "describeAvailabilityZones", - "describeBundleTasks", - "describeCapacityReservations", - "describeClassicLinkInstances", - "describeClientVpnEndpoints", - "describeConversionTasks", - "describeCustomerGateways", - "describeDhcpOptions", - "describeEgressOnlyInternetGateways", - "describeElasticGpus", - "describeExportTasks", - "describeFleets", - "describeFlowLogs", - "describeHostReservationOfferings", - "describeHostReservations", - "describeHosts", - "describeIamInstanceProfileAssociations", - "describeIdFormat", - "describeImages", - "describeImportImageTasks", - "describeImportSnapshotTasks", - "describeInstanceCreditSpecifications", - "describeInstanceStatus", - "describeInstances", - "describeInternetGateways", - "describeKeyPairs", - "describeLaunchTemplates", - "describeMovingAddresses", - "describeNatGateways", - "describeNetworkAcls", - "describeNetworkInterfacePermissions", - "describeNetworkInterfaces", - "describePlacementGroups", - "describePrefixLists", - "describePrincipalIdFormat", - "describePublicIpv4Pools", - "describeRegions", - "describeReservedInstancesModifications", - "describeReservedInstancesOfferings", - "describeReservedInstances", - "describeRouteTables", - "describeScheduledInstances", - "describeSecurityGroups", - "describeSnapshots", - "describeSpotFleetRequests", - "describeSpotInstanceRequests", - "describeSpotPriceHistory", - "describeSubnets", - "describeTags", - "describeTransitGatewayAttachments", - "describeTransitGatewayRouteTables", - "describeTransitGatewayVpcAttachments", - "describeTransitGateways", - "describeVolumeStatus", - "describeVolumesModifications", - "describeVolumes", - "describeVpcClassicLinkDnsSupport", - "describeVpcClassicLink", - "describeVpcEndpointConnectionNotifications", - "describeVpcEndpointConnections", - "describeVpcEndpointServiceConfigurations", - "describeVpcEndpointServices", - "describeVpcEndpoints", - "describeVpcPeeringConnections", - "describeVpcs", - "describeVpnConnections", - "describeVpnGateways" - ], - "shapeModifiers": { - "AttachClassicLinkVpcResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } + "verifiedSimpleMethods": [ + "allocateAddress", + "associateAddress", + "createInternetGateway", + "deleteSpotDatafeedSubscription", + "describeFpgaImages", + "describeReservedInstancesListings", + "describeSpotDatafeedSubscription", + "createDefaultVpc", + "createTransitGateway", + "describeAccountAttributes", + "describeAddresses", + "describeAggregateIdFormat", + "describeAvailabilityZones", + "describeBundleTasks", + "describeCapacityReservations", + "describeClassicLinkInstances", + "describeClientVpnEndpoints", + "describeConversionTasks", + "describeCustomerGateways", + "describeDhcpOptions", + "describeEgressOnlyInternetGateways", + "describeElasticGpus", + "describeExportTasks", + "describeFleets", + "describeFlowLogs", + "describeHostReservationOfferings", + "describeHostReservations", + "describeHosts", + "describeIamInstanceProfileAssociations", + "describeIdFormat", + "describeImages", + "describeImportImageTasks", + "describeImportSnapshotTasks", + "describeInstanceCreditSpecifications", + "describeInstanceStatus", + "describeInstances", + "describeInternetGateways", + "describeKeyPairs", + "describeLaunchTemplates", + "describeMovingAddresses", + "describeNatGateways", + "describeNetworkAcls", + "describeNetworkInterfacePermissions", + "describeNetworkInterfaces", + "describePlacementGroups", + "describePrefixLists", + "describePrincipalIdFormat", + "describePublicIpv4Pools", + "describeRegions", + "describeReservedInstancesModifications", + "describeReservedInstancesOfferings", + "describeReservedInstances", + "describeRouteTables", + "describeScheduledInstances", + "describeSecurityGroups", + "describeSnapshots", + "describeSpotFleetRequests", + "describeSpotInstanceRequests", + "describeSpotPriceHistory", + "describeSubnets", + "describeTags", + "describeTransitGatewayAttachments", + "describeTransitGatewayRouteTables", + "describeTransitGatewayVpcAttachments", + "describeTransitGateways", + "describeVolumeStatus", + "describeVolumesModifications", + "describeVolumes", + "describeVpcClassicLinkDnsSupport", + "describeVpcClassicLink", + "describeVpcEndpointConnectionNotifications", + "describeVpcEndpointConnections", + "describeVpcEndpointServiceConfigurations", + "describeVpcEndpointServices", + "describeVpcEndpoints", + "describeVpcPeeringConnections", + "describeVpcs", + "describeVpnConnections", + "describeVpnGateways" + ], + "shapeModifiers": { + "AttachClassicLinkVpcResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ConfirmProductInstanceResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "CreateRouteResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "DeleteVpcPeeringConnectionResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "DetachClassicLinkVpcResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "DisableVpcClassicLinkDnsSupportResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "DisableVpcClassicLinkResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "EnableVpcClassicLinkDnsSupportResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "EnableVpcClassicLinkResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ModifyInstancePlacementResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ModifySpotFleetRequestResponse": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ModifyVpcEndpointResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "RejectVpcPeeringConnectionResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "DeleteFpgaImageResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "DeleteNetworkInterfacePermissionResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ResetFpgaImageAttributeResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "UpdateSecurityGroupRuleDescriptionsEgressResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "UpdateSecurityGroupRuleDescriptionsIngressResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ModifyFleetResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ModifyVpcEndpointServiceConfigurationResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ModifyInstanceCapacityReservationAttributesResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ModifyCapacityReservationResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "CancelCapacityReservationResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ImportClientVpnClientCertificateRevocationListResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "ModifyClientVpnEndpointResult": { + "modify": [ + { + "Return": { + "emitPropertyName": "ReturnValue" + } + } + ] + }, + "Image": { + "modify": [ + { + "Public": { + "emitPropertyName": "PublicLaunchPermissions" + } + } + ] + }, + "FpgaImage": { + "modify": [ + { + "Public": { + "emitPropertyName": "isPublic" + } + } + ] } - ] }, - "ConfirmProductInstanceResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "CreateRouteResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "DeleteVpcPeeringConnectionResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "DetachClassicLinkVpcResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "DisableVpcClassicLinkDnsSupportResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "DisableVpcClassicLinkResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "EnableVpcClassicLinkDnsSupportResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "EnableVpcClassicLinkResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ModifyInstancePlacementResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ModifySpotFleetRequestResponse": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ModifyVpcEndpointResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "RejectVpcPeeringConnectionResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "DeleteFpgaImageResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "DeleteNetworkInterfacePermissionResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ResetFpgaImageAttributeResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "UpdateSecurityGroupRuleDescriptionsEgressResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "UpdateSecurityGroupRuleDescriptionsIngressResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ModifyFleetResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ModifyVpcEndpointServiceConfigurationResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ModifyInstanceCapacityReservationAttributesResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ModifyCapacityReservationResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "CancelCapacityReservationResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ImportClientVpnClientCertificateRevocationListResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "ModifyClientVpnEndpointResult": { - "modify": [ - { - "Return": { - "emitPropertyName": "ReturnValue" - } - } - ] - }, - "Image": { - "modify": [ - { - "Public": { - "emitPropertyName": "PublicLaunchPermissions" - } - } - ] - }, - "FpgaImage": { - "modify": [ - { - "Public": { - "emitPropertyName": "isPublic" - } - } - ] - } - }, - "excludedSimpleMethods": [ - "acceptVpcPeeringConnection", - "authorizeSecurityGroupIngress", - "cancelImportTask", - "createVpcPeeringConnection", - "deleteSecurityGroup", - "disableVpcClassicLinkDnsSupport", - "disassociateAddress", - "enableVpcClassicLinkDnsSupport", - "importImage", - "importSnapshot", - "releaseAddress", - "revokeSecurityGroupIngress", - "deleteLaunchTemplate", - "modifyLaunchTemplate", - "requestSpotInstances", - "describeLaunchTemplateVersions", - "createPlacementGroup", - "createTransitGateway" - ], - "interceptors": [ - "software.amazon.awssdk.services.ec2.transform.internal.GeneratePreSignUrlInterceptor", - "software.amazon.awssdk.services.ec2.transform.internal.TimestampFormatInterceptor" - ] + "excludedSimpleMethods": [ + "acceptVpcPeeringConnection", + "authorizeSecurityGroupIngress", + "cancelImportTask", + "createVpcPeeringConnection", + "deleteSecurityGroup", + "disableVpcClassicLinkDnsSupport", + "disassociateAddress", + "enableVpcClassicLinkDnsSupport", + "importImage", + "importSnapshot", + "releaseAddress", + "revokeSecurityGroupIngress", + "deleteLaunchTemplate", + "modifyLaunchTemplate", + "requestSpotInstances", + "describeLaunchTemplateVersions", + "createPlacementGroup", + "createTransitGateway" + ], + "interceptors": [ + "software.amazon.awssdk.services.ec2.transform.internal.GeneratePreSignUrlInterceptor", + "software.amazon.awssdk.services.ec2.transform.internal.TimestampFormatInterceptor" + ], + "useSraAuth": true } diff --git a/services/ec2/src/main/resources/codegen-resources/service-2.json b/services/ec2/src/main/resources/codegen-resources/service-2.json index 4466ba2b205b..df6be36f336c 100644 --- a/services/ec2/src/main/resources/codegen-resources/service-2.json +++ b/services/ec2/src/main/resources/codegen-resources/service-2.json @@ -2423,7 +2423,7 @@ }, "input":{"shape":"DescribeElasticGpusRequest"}, "output":{"shape":"DescribeElasticGpusResult"}, - "documentation":"

    Describes the Elastic Graphics accelerator associated with your instances. For more information about Elastic Graphics, see Amazon Elastic Graphics.

    " + "documentation":"

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    Describes the Elastic Graphics accelerator associated with your instances. For more information about Elastic Graphics, see Amazon Elastic Graphics.

    " }, "DescribeExportImageTasks":{ "name":"DescribeExportImageTasks", @@ -4465,7 +4465,7 @@ }, "input":{"shape":"GetLaunchTemplateDataRequest"}, "output":{"shape":"GetLaunchTemplateDataResult"}, - "documentation":"

    Retrieves the configuration data of the specified instance. You can use this data to create a launch template.

    This action calls on other describe actions to get instance information. Depending on your instance configuration, you may need to allow the following actions in your IAM policy: DescribeSpotInstanceRequests, DescribeInstanceCreditSpecifications, DescribeVolumes, DescribeInstanceAttribute, and DescribeElasticGpus. Or, you can allow describe* depending on your instance requirements.

    " + "documentation":"

    Retrieves the configuration data of the specified instance. You can use this data to create a launch template.

    This action calls on other describe actions to get instance information. Depending on your instance configuration, you may need to allow the following actions in your IAM policy: DescribeSpotInstanceRequests, DescribeInstanceCreditSpecifications, DescribeVolumes, and DescribeInstanceAttribute. Or, you can allow describe* depending on your instance requirements.

    " }, "GetManagedPrefixListAssociations":{ "name":"GetManagedPrefixListAssociations", @@ -5966,7 +5966,7 @@ }, "input":{"shape":"StartInstancesRequest"}, "output":{"shape":"StartInstancesResult"}, - "documentation":"

    Starts an Amazon EBS-backed instance that you've previously stopped.

    Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for instance usage. However, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage.

    Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

    Performing this operation on an instance that uses an instance store as its root device returns an error.

    If you attempt to start a T3 instance with host tenancy and the unlimted CPU credit option, the request fails. The unlimited CPU credit option is not supported on Dedicated Hosts. Before you start the instance, either change its CPU credit option to standard, or change its tenancy to default or dedicated.

    For more information, see Stop and start your instance in the Amazon EC2 User Guide.

    " + "documentation":"

    Starts an Amazon EBS-backed instance that you've previously stopped.

    Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for instance usage. However, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage.

    Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

    Performing this operation on an instance that uses an instance store as its root device returns an error.

    If you attempt to start a T3 instance with host tenancy and the unlimited CPU credit option, the request fails. The unlimited CPU credit option is not supported on Dedicated Hosts. Before you start the instance, either change its CPU credit option to standard, or change its tenancy to default or dedicated.

    For more information, see Stop and start your instance in the Amazon EC2 User Guide.

    " }, "StartNetworkInsightsAccessScopeAnalysis":{ "name":"StartNetworkInsightsAccessScopeAnalysis", @@ -9245,7 +9245,8 @@ "available", "information", "impaired", - "unavailable" + "unavailable", + "constrained" ] }, "AvailabilityZoneStringList":{ @@ -12595,7 +12596,7 @@ "members":{ "ClientToken":{ "shape":"String", - "documentation":"

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

    " + "documentation":"

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

    " }, "DryRun":{ "shape":"Boolean", @@ -13674,7 +13675,7 @@ }, "ClientToken":{ "shape":"String", - "documentation":"

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

    Constraint: Maximum 64 ASCII characters.

    ", + "documentation":"

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

    Constraint: Maximum 64 ASCII characters.

    ", "idempotencyToken":true }, "DryRun":{ @@ -13809,6 +13810,11 @@ "shape":"TagSpecificationList", "documentation":"

    The tags to assign to the network ACL.

    ", "locationName":"TagSpecification" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

    ", + "idempotencyToken":true } } }, @@ -13819,6 +13825,11 @@ "shape":"NetworkAcl", "documentation":"

    Information about the network ACL.

    ", "locationName":"networkAcl" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

    Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

    ", + "locationName":"clientToken" } } }, @@ -14384,6 +14395,11 @@ "shape":"TagSpecificationList", "documentation":"

    The tags to assign to the route table.

    ", "locationName":"TagSpecification" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

    ", + "idempotencyToken":true } } }, @@ -14394,6 +14410,11 @@ "shape":"RouteTable", "documentation":"

    Information about the route table.

    ", "locationName":"routeTable" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

    Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

    ", + "locationName":"clientToken" } } }, @@ -18856,7 +18877,7 @@ "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

    The filters.

    • group-name - For Availability Zones, use the Region name. For Local Zones, use the name of the group associated with the Local Zone (for example, us-west-2-lax-1) For Wavelength Zones, use the name of the group associated with the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

    • message - The Zone message.

    • opt-in-status - The opt-in status (opted-in | not-opted-in | opt-in-not-required).

    • parent-zoneID - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.

    • parent-zoneName - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.

    • region-name - The name of the Region for the Zone (for example, us-east-1).

    • state - The state of the Availability Zone, the Local Zone, or the Wavelength Zone (available).

    • zone-id - The ID of the Availability Zone (for example, use1-az1), the Local Zone (for example, usw2-lax1-az1), or the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

    • zone-name - The name of the Availability Zone (for example, us-east-1a), the Local Zone (for example, us-west-2-lax-1a), or the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

    • zone-type - The type of zone (availability-zone | local-zone | wavelength-zone).

    ", + "documentation":"

    The filters.

    • group-name - For Availability Zones, use the Region name. For Local Zones, use the name of the group associated with the Local Zone (for example, us-west-2-lax-1) For Wavelength Zones, use the name of the group associated with the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

    • message - The Zone message.

    • opt-in-status - The opt-in status (opted-in | not-opted-in | opt-in-not-required).

    • parent-zone-id - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.

    • parent-zone-name - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.

    • region-name - The name of the Region for the Zone (for example, us-east-1).

    • state - The state of the Availability Zone, the Local Zone, or the Wavelength Zone (available).

    • zone-id - The ID of the Availability Zone (for example, use1-az1), the Local Zone (for example, usw2-lax1-az1), or the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

    • zone-name - The name of the Availability Zone (for example, us-east-1a), the Local Zone (for example, us-west-2-lax-1a), or the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

    • zone-type - The type of zone (availability-zone | local-zone | wavelength-zone).

    ", "locationName":"Filter" }, "ZoneNames":{ @@ -22920,7 +22941,7 @@ "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

    The filters.

    • association.route-table-association-id - The ID of an association ID for the route table.

    • association.route-table-id - The ID of the route table involved in the association.

    • association.subnet-id - The ID of the subnet involved in the association.

    • association.main - Indicates whether the route table is the main route table for the VPC (true | false). Route tables that do not have an association ID are not returned in the response.

    • owner-id - The ID of the Amazon Web Services account that owns the route table.

    • route-table-id - The ID of the route table.

    • route.destination-cidr-block - The IPv4 CIDR range specified in a route in the table.

    • route.destination-ipv6-cidr-block - The IPv6 CIDR range specified in a route in the route table.

    • route.destination-prefix-list-id - The ID (prefix) of the Amazon Web Service specified in a route in the table.

    • route.egress-only-internet-gateway-id - The ID of an egress-only Internet gateway specified in a route in the route table.

    • route.gateway-id - The ID of a gateway specified in a route in the table.

    • route.instance-id - The ID of an instance specified in a route in the table.

    • route.nat-gateway-id - The ID of a NAT gateway.

    • route.transit-gateway-id - The ID of a transit gateway.

    • route.origin - Describes how the route was created. CreateRouteTable indicates that the route was automatically created when the route table was created; CreateRoute indicates that the route was manually added to the route table; EnableVgwRoutePropagation indicates that the route was propagated by route propagation.

    • route.state - The state of a route in the route table (active | blackhole). The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, the specified NAT instance has been terminated, and so on).

    • route.vpc-peering-connection-id - The ID of a VPC peering connection specified in a route in the table.

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

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

    • vpc-id - The ID of the VPC for the route table.

    ", + "documentation":"

    The filters.

    • association.gateway-id - The ID of the gateway involved in the association.

    • association.route-table-association-id - The ID of an association ID for the route table.

    • association.route-table-id - The ID of the route table involved in the association.

    • association.subnet-id - The ID of the subnet involved in the association.

    • association.main - Indicates whether the route table is the main route table for the VPC (true | false). Route tables that do not have an association ID are not returned in the response.

    • owner-id - The ID of the Amazon Web Services account that owns the route table.

    • route-table-id - The ID of the route table.

    • route.destination-cidr-block - The IPv4 CIDR range specified in a route in the table.

    • route.destination-ipv6-cidr-block - The IPv6 CIDR range specified in a route in the route table.

    • route.destination-prefix-list-id - The ID (prefix) of the Amazon Web Service specified in a route in the table.

    • route.egress-only-internet-gateway-id - The ID of an egress-only Internet gateway specified in a route in the route table.

    • route.gateway-id - The ID of a gateway specified in a route in the table.

    • route.instance-id - The ID of an instance specified in a route in the table.

    • route.nat-gateway-id - The ID of a NAT gateway.

    • route.transit-gateway-id - The ID of a transit gateway.

    • route.origin - Describes how the route was created. CreateRouteTable indicates that the route was automatically created when the route table was created; CreateRoute indicates that the route was manually added to the route table; EnableVgwRoutePropagation indicates that the route was propagated by route propagation.

    • route.state - The state of a route in the route table (active | blackhole). The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, the specified NAT instance has been terminated, and so on).

    • route.vpc-peering-connection-id - The ID of a VPC peering connection specified in a route in the table.

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

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

    • vpc-id - The ID of the VPC for the route table.

    ", "locationName":"Filter" }, "DryRun":{ @@ -27279,7 +27300,7 @@ "locationName":"elasticGpuAssociationTime" } }, - "documentation":"

    Describes the association between an instance and an Elastic Graphics accelerator.

    " + "documentation":"

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    Describes the association between an instance and an Elastic Graphics accelerator.

    " }, "ElasticGpuAssociationList":{ "type":"list", @@ -27297,7 +27318,7 @@ "locationName":"status" } }, - "documentation":"

    Describes the status of an Elastic Graphics accelerator.

    " + "documentation":"

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    Describes the status of an Elastic Graphics accelerator.

    " }, "ElasticGpuId":{"type":"string"}, "ElasticGpuIdSet":{ @@ -27323,7 +27344,7 @@ "documentation":"

    The type of Elastic Graphics accelerator. For more information about the values to specify for Type, see Elastic Graphics Basics, specifically the Elastic Graphics accelerator column, in the Amazon Elastic Compute Cloud User Guide for Windows Instances.

    " } }, - "documentation":"

    A specification for an Elastic Graphics accelerator.

    " + "documentation":"

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    A specification for an Elastic Graphics accelerator.

    " }, "ElasticGpuSpecificationList":{ "type":"list", @@ -27337,11 +27358,11 @@ "members":{ "Type":{ "shape":"String", - "documentation":"

    The elastic GPU type.

    ", + "documentation":"

    Deprecated.

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    ", "locationName":"type" } }, - "documentation":"

    Describes an elastic GPU.

    " + "documentation":"

    Deprecated.

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    " }, "ElasticGpuSpecificationResponseList":{ "type":"list", @@ -27407,7 +27428,7 @@ "locationName":"tagSet" } }, - "documentation":"

    Describes an Elastic Graphics accelerator.

    " + "documentation":"

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    Describes an Elastic Graphics accelerator.

    " }, "ElasticInferenceAccelerator":{ "type":"structure", @@ -27562,11 +27583,11 @@ "members":{ "Source":{ "shape":"String", - "documentation":"

    The source Region or Availability Zone that the metric subscription is enabled for. For example, us-east-1.

    " + "documentation":"

    The source Region (like us-east-1) or Availability Zone ID (like use1-az1) that the metric subscription is enabled for. If you use Availability Zone IDs, the Source and Destination Availability Zones must be in the same Region.

    " }, "Destination":{ "shape":"String", - "documentation":"

    The target Region or Availability Zone that the metric subscription is enabled for. For example, eu-west-1.

    " + "documentation":"

    The target Region (like us-east-2) or Availability Zone ID (like use2-az2) that the metric subscription is enabled for. If you use Availability Zone IDs, the Source and Destination Availability Zones must be in the same Region.

    " }, "Metric":{ "shape":"MetricType", @@ -34077,7 +34098,7 @@ }, "ElasticGpuAssociations":{ "shape":"ElasticGpuAssociationList", - "documentation":"

    The Elastic GPU associated with the instance.

    ", + "documentation":"

    Deprecated.

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    ", "locationName":"elasticGpuAssociationSet" }, "ElasticInferenceAcceleratorAssociations":{ @@ -35449,12 +35470,12 @@ }, "SpotMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

    The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To turn off price protection, specify a high value, such as 999999.

    This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

    If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

    Default: 100

    ", + "documentation":"

    [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To indicate no price protection threshold, specify a high value, such as 999999.

    If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

    This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

    Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, then SpotMaxPricePercentageOverLowestPrice is used and the value for that parameter defaults to 100.

    Default: 100

    ", "locationName":"spotMaxPricePercentageOverLowestPrice" }, "OnDemandMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

    The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To turn off price protection, specify a high value, such as 999999.

    This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

    If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

    Default: 20

    ", + "documentation":"

    [Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To turn off price protection, specify a high value, such as 999999.

    This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

    If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

    Default: 20

    ", "locationName":"onDemandMaxPricePercentageOverLowestPrice" }, "BareMetal":{ @@ -35531,6 +35552,11 @@ "shape":"AllowedInstanceTypeSet", "documentation":"

    The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.

    You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

    For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types.

    If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.

    Default: All instance types

    ", "locationName":"allowedInstanceTypeSet" + }, + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice":{ + "shape":"Integer", + "documentation":"

    [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To indicate no price protection threshold, specify a high value, such as 999999.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.

    Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, then SpotMaxPricePercentageOverLowestPrice is used and the value for that parameter defaults to 100.

    ", + "locationName":"maxSpotPriceAsPercentageOfOptimalOnDemandPrice" } }, "documentation":"

    The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

    You must specify VCpuCount and MemoryMiB. All other attributes are optional. Any unspecified optional attribute is set to its default.

    When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.

    To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:

    • AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.

    • ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes.

    If you specify InstanceRequirements, you can't specify InstanceType.

    Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the launch instance wizard or with the RunInstances API, you can't specify InstanceRequirements.

    For more information, see Create a mixed instances group using attribute-based instance type selection in the Amazon EC2 Auto Scaling User Guide, and also Attribute-based instance type selection for EC2 Fleet, Attribute-based instance type selection for Spot Fleet, and Spot placement score in the Amazon EC2 User Guide.

    " @@ -35571,11 +35597,11 @@ }, "SpotMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

    The price protection threshold for Spot Instance. This is the maximum you’ll pay for an Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To turn off price protection, specify a high value, such as 999999.

    This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

    If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

    Default: 100

    " + "documentation":"

    [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To indicate no price protection threshold, specify a high value, such as 999999.

    If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

    This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

    Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, then SpotMaxPricePercentageOverLowestPrice is used and the value for that parameter defaults to 100.

    Default: 100

    " }, "OnDemandMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

    The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To turn off price protection, specify a high value, such as 999999.

    This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

    If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

    Default: 20

    " + "documentation":"

    [Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To indicate no price protection threshold, specify a high value, such as 999999.

    This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

    If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

    Default: 20

    " }, "BareMetal":{ "shape":"BareMetal", @@ -35641,6 +35667,10 @@ "shape":"AllowedInstanceTypeSet", "documentation":"

    The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.

    You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

    For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types.

    If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.

    Default: All instance types

    ", "locationName":"AllowedInstanceType" + }, + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice":{ + "shape":"Integer", + "documentation":"

    [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    To indicate no price protection threshold, specify a high value, such as 999999.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.

    Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, then SpotMaxPricePercentageOverLowestPrice is used and the value for that parameter defaults to 100.

    " } }, "documentation":"

    The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

    You must specify VCpuCount and MemoryMiB. All other attributes are optional. Any unspecified optional attribute is set to its default.

    When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.

    To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:

    • AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.

    • ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes.

    If you specify InstanceRequirements, you can't specify InstanceType.

    Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the launch instance wizard, or with the RunInstances API or AWS::EC2::Instance Amazon Web Services CloudFormation resource, you can't specify InstanceRequirements.

    For more information, see Attribute-based instance type selection for EC2 Fleet, Attribute-based instance type selection for Spot Fleet, and Spot placement score in the Amazon EC2 User Guide.

    " @@ -40221,7 +40251,7 @@ "members":{ "ResourceType":{ "shape":"ResourceType", - "documentation":"

    The type of resource to tag.

    Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: instance | volume | elastic-gpu | network-interface | spot-instances-request. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include an Elastic GPU.

    To tag a resource after it has been created, see CreateTags.

    " + "documentation":"

    The type of resource to tag.

    Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: instance | volume | network-interface | spot-instances-request. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.

    To tag a resource after it has been created, see CreateTags.

    " }, "Tags":{ "shape":"TagList", @@ -42888,7 +42918,7 @@ }, "MapPublicIpOnLaunch":{ "shape":"AttributeBooleanValue", - "documentation":"

    Specify true to indicate that network interfaces attached to instances created in the specified subnet should be assigned a public IPv4 address.

    " + "documentation":"

    Specify true to indicate that network interfaces attached to instances created in the specified subnet should be assigned a public IPv4 address.

    Starting on February 1, 2024, Amazon Web Services will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

    " }, "SubnetId":{ "shape":"SubnetId", @@ -44213,7 +44243,7 @@ }, "RekeyMarginTimeSeconds":{ "shape":"Integer", - "documentation":"

    The margin time, in seconds, before the phase 2 lifetime expires, during which the Amazon Web Services side of the VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for RekeyFuzzPercentage.

    Constraints: A value between 60 and half of Phase2LifetimeSeconds.

    Default: 540

    " + "documentation":"

    The margin time, in seconds, before the phase 2 lifetime expires, during which the Amazon Web Services side of the VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for RekeyFuzzPercentage.

    Constraints: A value between 60 and half of Phase2LifetimeSeconds.

    Default: 270

    " }, "RekeyFuzzPercentage":{ "shape":"Integer", @@ -49067,7 +49097,7 @@ }, "ElasticGpuSpecifications":{ "shape":"ElasticGpuSpecificationList", - "documentation":"

    An elastic GPU to associate with the instance.

    ", + "documentation":"

    Deprecated.

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    ", "locationName":"ElasticGpuSpecification" }, "ElasticInferenceAccelerators":{ @@ -50347,7 +50377,7 @@ }, "ElasticGpuSpecifications":{ "shape":"ElasticGpuSpecificationResponseList", - "documentation":"

    The elastic GPU specification.

    ", + "documentation":"

    Deprecated.

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    ", "locationName":"elasticGpuSpecificationSet" }, "ElasticInferenceAccelerators":{ @@ -51293,7 +51323,7 @@ }, "ElasticGpuSpecification":{ "shape":"ElasticGpuSpecifications", - "documentation":"

    An elastic GPU to associate with the instance. An Elastic GPU is a GPU resource that you can attach to your Windows instance to accelerate the graphics performance of your applications. For more information, see Amazon EC2 Elastic GPUs in the Amazon EC2 User Guide.

    " + "documentation":"

    Deprecated.

    Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.

    " }, "ElasticInferenceAccelerators":{ "shape":"ElasticInferenceAccelerators", @@ -51302,7 +51332,7 @@ }, "TagSpecifications":{ "shape":"TagSpecificationList", - "documentation":"

    The tags to apply to the resources that are created during instance launch.

    You can specify tags for the following resources only:

    • Instances

    • Volumes

    • Elastic graphics

    • Spot Instance requests

    • Network interfaces

    To tag a resource after it has been created, see CreateTags.

    ", + "documentation":"

    The tags to apply to the resources that are created during instance launch.

    You can specify tags for the following resources only:

    • Instances

    • Volumes

    • Spot Instance requests

    • Network interfaces

    To tag a resource after it has been created, see CreateTags.

    ", "locationName":"TagSpecification" }, "LaunchTemplate":{ @@ -54435,7 +54465,7 @@ }, "MapPublicIpOnLaunch":{ "shape":"Boolean", - "documentation":"

    Indicates whether instances launched in this subnet receive a public IPv4 address.

    ", + "documentation":"

    Indicates whether instances launched in this subnet receive a public IPv4 address.

    Starting on February 1, 2024, Amazon Web Services will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

    ", "locationName":"mapPublicIpOnLaunch" }, "MapCustomerOwnedIpOnLaunch":{ @@ -54690,7 +54720,8 @@ "type":"string", "enum":[ "pending", - "available" + "available", + "unavailable" ] }, "Subscription":{ @@ -60414,7 +60445,7 @@ }, "RekeyMarginTimeSeconds":{ "shape":"Integer", - "documentation":"

    The margin time, in seconds, before the phase 2 lifetime expires, during which the Amazon Web Services side of the VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for RekeyFuzzPercentage.

    Constraints: A value between 60 and half of Phase2LifetimeSeconds.

    Default: 540

    " + "documentation":"

    The margin time, in seconds, before the phase 2 lifetime expires, during which the Amazon Web Services side of the VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for RekeyFuzzPercentage.

    Constraints: A value between 60 and half of Phase2LifetimeSeconds.

    Default: 270

    " }, "RekeyFuzzPercentage":{ "shape":"Integer", diff --git a/services/ec2instanceconnect/pom.xml b/services/ec2instanceconnect/pom.xml index 3a12b5557f8f..5b1b30386ea0 100644 --- a/services/ec2instanceconnect/pom.xml +++ b/services/ec2instanceconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ec2instanceconnect AWS Java SDK :: Services :: EC2 Instance Connect diff --git a/services/ec2instanceconnect/src/main/resources/codegen-resources/customization.config b/services/ec2instanceconnect/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/ec2instanceconnect/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/ecr/pom.xml b/services/ecr/pom.xml index ce3aa23cce98..8847631aa4e6 100644 --- a/services/ecr/pom.xml +++ b/services/ecr/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ecr AWS Java SDK :: Services :: Amazon EC2 Container Registry diff --git a/services/ecr/src/main/resources/codegen-resources/customization.config b/services/ecr/src/main/resources/codegen-resources/customization.config index 8ff796031895..dc7146d6b7c3 100644 --- a/services/ecr/src/main/resources/codegen-resources/customization.config +++ b/services/ecr/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,9 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeRepositories", "getAuthorizationToken" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/ecrpublic/pom.xml b/services/ecrpublic/pom.xml index e07370970b16..5f8704fd75c6 100644 --- a/services/ecrpublic/pom.xml +++ b/services/ecrpublic/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ecrpublic AWS Java SDK :: Services :: ECR PUBLIC diff --git a/services/ecrpublic/src/main/resources/codegen-resources/customization.config b/services/ecrpublic/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/ecrpublic/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/ecs/pom.xml b/services/ecs/pom.xml index 3a8f5cfe5c94..2452baac885e 100644 --- a/services/ecs/pom.xml +++ b/services/ecs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ecs AWS Java SDK :: Services :: Amazon EC2 Container Service diff --git a/services/ecs/src/main/resources/codegen-resources/customization.config b/services/ecs/src/main/resources/codegen-resources/customization.config index b0f923be73f8..f375c61b95ae 100644 --- a/services/ecs/src/main/resources/codegen-resources/customization.config +++ b/services/ecs/src/main/resources/codegen-resources/customization.config @@ -1,19 +1,22 @@ { - "verifiedSimpleMethods": [ - "createCluster", - "listContainerInstances", - "listServices", - "listTasks", - "describeClusters", - "listAccountSettings", - "listClusters", - "listTaskDefinitionFamilies", - "listTaskDefinitions" - ], - "excludedSimpleMethods": [ - "discoverPollEndpoint", - "registerContainerInstance", - "submitContainerStateChange", - "submitTaskStateChange" - ] + "verifiedSimpleMethods": [ + "createCluster", + "listContainerInstances", + "listServices", + "listTasks", + "describeClusters", + "listAccountSettings", + "listClusters", + "listTaskDefinitionFamilies", + "listTaskDefinitions" + ], + "excludedSimpleMethods": [ + "discoverPollEndpoint", + "registerContainerInstance", + "submitContainerStateChange", + "submitTaskStateChange" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/ecs/src/main/resources/codegen-resources/service-2.json b/services/ecs/src/main/resources/codegen-resources/service-2.json index 31d55d20af08..9e82e520ba38 100644 --- a/services/ecs/src/main/resources/codegen-resources/service-2.json +++ b/services/ecs/src/main/resources/codegen-resources/service-2.json @@ -88,7 +88,7 @@ {"shape":"ServiceNotActiveException"}, {"shape":"NamespaceNotFoundException"} ], - "documentation":"

    Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

    You can create a maximum of 5 tasks sets for a deployment.

    " + "documentation":"

    Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

    For information about the maximum number of task sets and otther quotas, see Amazon ECS service quotas in the Amazon Elastic Container Service Developer Guide.

    " }, "DeleteAccountSetting":{ "name":"DeleteAccountSetting", @@ -572,7 +572,7 @@ {"shape":"ClientException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

    Modifies an account setting. Account settings are set on a per-Region basis.

    If you change the root user account setting, the default settings are reset for users and roles that do not have specified individual account settings. For more information, see Account Settings in the Amazon Elastic Container Service Developer Guide.

    When you specify serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

    When you specify awsvpcTrunking, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If awsvpcTrunking is turned on, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see Elastic Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

    When you specify containerInsights, the default setting indicating whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. If containerInsights is turned on, any new clusters that are created will have Container Insights turned on unless you disable it during cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

    Amazon ECS is introducing tagging authorization for resource creation. Users must have permissions for actions that create the resource, such as ecsCreateCluster. If tags are specified when you create a resource, Amazon Web Services performs additional authorization to verify if users or roles have permissions to create tags. Therefore, you must grant explicit permissions to use the ecs:TagResource action. For more information, see Grant permission to tag resources on creation in the Amazon ECS Developer Guide.

    When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to configure the wait time to retire a Fargate task. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

    The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

    " + "documentation":"

    Modifies an account setting. Account settings are set on a per-Region basis.

    If you change the root user account setting, the default settings are reset for users and roles that do not have specified individual account settings. For more information, see Account Settings in the Amazon Elastic Container Service Developer Guide.

    " }, "PutAccountSettingDefault":{ "name":"PutAccountSettingDefault", @@ -1135,7 +1135,7 @@ "documentation":"

    Whether the task's elastic network interface receives a public IP address. The default value is DISABLED.

    " } }, - "documentation":"

    An object representing the networking details for a task or service.

    " + "documentation":"

    An object representing the networking details for a task or service. For example awsvpcConfiguration={subnets=[\"subnet-12344321\"],securityGroups=[\"sg-12344321\"]}

    " }, "BlockedException":{ "type":"structure", @@ -1687,7 +1687,7 @@ }, "ulimits":{ "shape":"UlimitList", - "documentation":"

    A list of ulimits to set in the container. If a ulimit value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type.

    Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and the default hard limit is 4096.

    This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

    This parameter is not supported for Windows containers.

    " + "documentation":"

    A list of ulimits to set in the container. If a ulimit value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type.

    Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and the default hard limit is 65535.

    This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

    This parameter is not supported for Windows containers.

    " }, "logConfiguration":{ "shape":"LogConfiguration", @@ -1699,7 +1699,7 @@ }, "systemControls":{ "shape":"SystemControls", - "documentation":"

    A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the Create a container section of the Docker Remote API and the --sysctl option to docker run. For example, you can configure net.ipv4.tcp_keepalive_time setting to maintain longer lived connections.

    We don't recommended that you specify network-related systemControls parameters for multiple containers in a single task that also uses either the awsvpc or host network modes. For tasks that use the awsvpc network mode, the container that's started last determines which systemControls parameters take effect. For tasks that use the host network mode, it changes the container instance's namespaced kernel parameters as well as the containers.

    This parameter is not supported for Windows containers.

    This parameter is only supported for tasks that are hosted on Fargate if the tasks are using platform version 1.4.0 or later (Linux). This isn't supported for Windows containers on Fargate.

    " + "documentation":"

    A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the Create a container section of the Docker Remote API and the --sysctl option to docker run. For example, you can configure net.ipv4.tcp_keepalive_time setting to maintain longer lived connections.

    " }, "resourceRequirements":{ "shape":"ResourceRequirements", @@ -1740,7 +1740,7 @@ "documentation":"

    The dependency condition of the container. The following are the available conditions and their behavior:

    • START - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.

    • COMPLETE - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.

    • SUCCESS - This condition is the same as COMPLETE, but it also requires that the container exits with a zero status. This condition can't be set on an essential container.

    • HEALTHY - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup.

    " } }, - "documentation":"

    The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.

    Your Amazon ECS container instances require at least version 1.26.0 of the container agent to use container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

    For tasks that use the Fargate launch type, the task or service requires the following platforms:

    • Linux platform version 1.3.0 or later.

    • Windows platform version 1.0.0 or later.

    " + "documentation":"

    The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.

    Your Amazon ECS container instances require at least version 1.26.0 of the container agent to use container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

    For tasks that use the Fargate launch type, the task or service requires the following platforms:

    • Linux platform version 1.3.0 or later.

    • Windows platform version 1.0.0 or later.

    For more information about how to create a container dependency, see Container dependency in the Amazon Elastic Container Service Developer Guide.

    " }, "ContainerInstance":{ "type":"structure", @@ -2049,7 +2049,7 @@ }, "launchType":{ "shape":"LaunchType", - "documentation":"

    The infrastructure that you run your service on. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

    The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.

    Fargate Spot infrastructure is available for use but a capacity provider strategy must be used. For more information, see Fargate capacity providers in the Amazon ECS User Guide for Fargate.

    The EC2 launch type runs your tasks on Amazon EC2 instances registered to your cluster.

    The EXTERNAL launch type runs your tasks on your on-premises server or virtual machine (VM) capacity registered to your cluster.

    A service can use either a launch type or a capacity provider strategy. If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

    " + "documentation":"

    The infrastructure that you run your service on. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

    The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.

    Fargate Spot infrastructure is available for use but a capacity provider strategy must be used. For more information, see Fargate capacity providers in the Amazon ECS User Guide for Fargate.

    The EC2 launch type runs your tasks on Amazon EC2 instances registered to your cluster.

    The EXTERNAL launch type runs your tasks on your on-premises server or virtual machine (VM) capacity registered to your cluster.

    A service can use either a launch type or a capacity provider strategy. If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

    " }, "capacityProviderStrategy":{ "shape":"CapacityProviderStrategy", @@ -2502,7 +2502,7 @@ }, "minimumHealthyPercent":{ "shape":"BoxedInteger", - "documentation":"

    If a service is using the rolling update (ECS) deployment type, the minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks.

    For services that do not use a load balancer, the following should be noted:

    • A service is considered healthy if all essential containers within the tasks in the service pass their health checks.

    • If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a RUNNING state before the task is counted towards the minimum healthy percent total.

    • If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings.

    For services are that do use a load balancer, the following should be noted:

    • If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.

    • If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.

    If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the EC2 launch type, the minimum healthy percent value is set to the default value and is used to define the lower limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state. If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.

    " + "documentation":"

    If a service is using the rolling update (ECS) deployment type, the minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks.

    For services that do not use a load balancer, the following should be noted:

    • A service is considered healthy if all essential containers within the tasks in the service pass their health checks.

    • If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a RUNNING state before the task is counted towards the minimum healthy percent total.

    • If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings.

    For services that do use a load balancer, the following should be noted:

    • If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.

    • If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.

    If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the EC2 launch type, the minimum healthy percent value is set to the default value and is used to define the lower limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state. If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.

    " }, "alarms":{ "shape":"DeploymentAlarms", @@ -2915,6 +2915,11 @@ "documentation":"

    This parameter is specified when you're using Docker volumes. Docker volumes are only supported when you're using the EC2 launch type. Windows containers only support the use of the local driver. To use bind mounts, specify a host instead.

    " }, "Double":{"type":"double"}, + "Duration":{ + "type":"integer", + "max":2147483647, + "min":0 + }, "EBSKMSKeyId":{"type":"string"}, "EBSResourceType":{ "type":"string", @@ -3040,7 +3045,7 @@ "documentation":"

    The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 21 GiB and the maximum supported value is 200 GiB.

    " } }, - "documentation":"

    The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage in the Amazon ECS User Guide for Fargate.

    For tasks using the Fargate launch type, the task requires the following platforms:

    • Linux platform version 1.4.0 or later.

    • Windows platform version 1.0.0 or later.

    " + "documentation":"

    The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Using data volumes in tasks in the Amazon ECS Developer Guide;.

    For tasks using the Fargate launch type, the task requires the following platforms:

    • Linux platform version 1.4.0 or later.

    • Windows platform version 1.0.0 or later.

    " }, "ExecuteCommandConfiguration":{ "type":"structure", @@ -3890,7 +3895,7 @@ }, "containerName":{ "shape":"String", - "documentation":"

    The name of the container (as it appears in a container definition) to associate with the load balancer.

    " + "documentation":"

    The name of the container (as it appears in a container definition) to associate with the load balancer.

    You need to specify the container name when configuring the target group for an Amazon ECS load balancer.

    " }, "containerPort":{ "shape":"BoxedInteger", @@ -4399,7 +4404,7 @@ "members":{ "name":{ "shape":"SettingName", - "documentation":"

    The resource name for which to modify the account setting. If you specify serviceLongArnFormat, the ARN for your Amazon ECS services is affected. If you specify taskLongArnFormat, the ARN and resource ID for your Amazon ECS tasks is affected. If you specify containerInstanceLongArnFormat, the ARN and resource ID for your Amazon ECS container instances is affected. If you specify awsvpcTrunking, the ENI limit for your Amazon ECS container instances is affected. If you specify containerInsights, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected. If you specify tagResourceAuthorization, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, the default wait time to retire a Fargate task due to required maintenance is affected.

    When you specify fargateFIPSMode for the name and enabled for the value, Fargate uses FIPS-140 compliant cryptographic algorithms on your tasks. For more information about FIPS-140 compliance with Fargate, see Amazon Web Services Fargate Federal Information Processing Standard (FIPS) 140-2 compliance in the Amazon Elastic Container Service Developer Guide.

    When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to set the wait time to retire a Fargate task to the default. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

    The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

    " + "documentation":"

    The resource name for which to modify the account setting.

    The following are the valid values for the account setting name.

    • serviceLongArnFormat - When modified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

    • taskLongArnFormat - When modified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

    • containerInstanceLongArnFormat - When modified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

    • awsvpcTrunking - When modified, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If awsvpcTrunking is turned on, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see Elastic Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

    • containerInsights - When modified, the default setting indicating whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. If containerInsights is turned on, any new clusters that are created will have Container Insights turned on unless you disable it during cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

    • dualStackIPv6 - When turned on, when using a VPC in dual stack mode, your tasks using the awsvpc network mode can have an IPv6 address assigned. For more information on using IPv6 with tasks launched on Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 with tasks launched on Fargate, see Using a VPC in dual-stack mode.

    • fargateFIPSMode - If you specify fargateFIPSMode, Fargate FIPS 140 compliance is affected.

    • fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to configure the wait time to retire a Fargate task. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

    • tagResourceAuthorization - Amazon ECS is introducing tagging authorization for resource creation. Users must have permissions for actions that create the resource, such as ecsCreateCluster. If tags are specified when you create a resource, Amazon Web Services performs additional authorization to verify if users or roles have permissions to create tags. Therefore, you must grant explicit permissions to use the ecs:TagResource action. For more information, see Grant permission to tag resources on creation in the Amazon ECS Developer Guide.

    • guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

    " }, "value":{ "shape":"String", @@ -4425,7 +4430,7 @@ "members":{ "name":{ "shape":"SettingName", - "documentation":"

    The Amazon ECS resource name for which to modify the account setting. If you specify serviceLongArnFormat, the ARN for your Amazon ECS services is affected. If you specify taskLongArnFormat, the ARN and resource ID for your Amazon ECS tasks is affected. If you specify containerInstanceLongArnFormat, the ARN and resource ID for your Amazon ECS container instances is affected. If you specify awsvpcTrunking, the elastic network interface (ENI) limit for your Amazon ECS container instances is affected. If you specify containerInsights, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected. If you specify fargateFIPSMode, Fargate FIPS 140 compliance is affected. If you specify tagResourceAuthorization, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, the wait time to retire a Fargate task is affected.

    The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

    " + "documentation":"

    The Amazon ECS account setting name to modify.

    The following are the valid values for the account setting name.

    • serviceLongArnFormat - When modified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

    • taskLongArnFormat - When modified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

    • containerInstanceLongArnFormat - When modified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

    • awsvpcTrunking - When modified, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If awsvpcTrunking is turned on, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see Elastic Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

    • containerInsights - When modified, the default setting indicating whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. If containerInsights is turned on, any new clusters that are created will have Container Insights turned on unless you disable it during cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

    • dualStackIPv6 - When turned on, when using a VPC in dual stack mode, your tasks using the awsvpc network mode can have an IPv6 address assigned. For more information on using IPv6 with tasks launched on Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 with tasks launched on Fargate, see Using a VPC in dual-stack mode.

    • fargateFIPSMode - If you specify fargateFIPSMode, Fargate FIPS 140 compliance is affected.

    • fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to configure the wait time to retire a Fargate task. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

    • tagResourceAuthorization - Amazon ECS is introducing tagging authorization for resource creation. Users must have permissions for actions that create the resource, such as ecsCreateCluster. If tags are specified when you create a resource, Amazon Web Services performs additional authorization to verify if users or roles have permissions to create tags. Therefore, you must grant explicit permissions to use the ecs:TagResource action. For more information, see Grant permission to tag resources on creation in the Amazon ECS Developer Guide.

    • guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

    " }, "value":{ "shape":"String", @@ -4619,7 +4624,7 @@ }, "ephemeralStorage":{ "shape":"EphemeralStorage", - "documentation":"

    The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage in the Amazon ECS User Guide for Fargate.

    For tasks using the Fargate launch type, the task requires the following platforms:

    • Linux platform version 1.4.0 or later.

    • Windows platform version 1.0.0 or later.

    " + "documentation":"

    The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Using data volumes in tasks in the Amazon ECS Developer Guide.

    For tasks using the Fargate launch type, the task requires the following platforms:

    • Linux platform version 1.4.0 or later.

    • Windows platform version 1.0.0 or later.

    " }, "runtimePlatform":{ "shape":"RuntimePlatform", @@ -4766,7 +4771,7 @@ }, "launchType":{ "shape":"LaunchType", - "documentation":"

    The infrastructure to run your standalone task on. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

    The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.

    Fargate Spot infrastructure is available for use but a capacity provider strategy must be used. For more information, see Fargate capacity providers in the Amazon ECS User Guide for Fargate.

    The EC2 launch type runs your tasks on Amazon EC2 instances registered to your cluster.

    The EXTERNAL launch type runs your tasks on your on-premises server or virtual machine (VM) capacity registered to your cluster.

    A task can use either a launch type or a capacity provider strategy. If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

    When you use cluster auto scaling, you must specify capacityProviderStrategy and not launchType.

    " + "documentation":"

    The infrastructure to run your standalone task on. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

    The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.

    Fargate Spot infrastructure is available for use but a capacity provider strategy must be used. For more information, see Fargate capacity providers in the Amazon ECS Developer Guide.

    The EC2 launch type runs your tasks on Amazon EC2 instances registered to your cluster.

    The EXTERNAL launch type runs your tasks on your on-premises server or virtual machine (VM) capacity registered to your cluster.

    A task can use either a launch type or a capacity provider strategy. If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

    When you use cluster auto scaling, you must specify capacityProviderStrategy and not launchType.

    " }, "networkConfiguration":{ "shape":"NetworkConfiguration", @@ -4828,7 +4833,7 @@ }, "failures":{ "shape":"Failures", - "documentation":"

    Any failures associated with the call.

    " + "documentation":"

    Any failures associated with the call.

    For information about how to address failures, see Service event messages and API failure reasons in the Amazon Elastic Container Service Developer Guide.

    " } } }, @@ -5104,6 +5109,14 @@ "ingressPortOverride":{ "shape":"PortNumber", "documentation":"

    The port number for the Service Connect proxy to listen on.

    Use the value of this field to bypass the proxy for traffic on the port number specified in the named portMapping in the task definition of this application, and then use it in your VPC security groups to allow traffic into the proxy for this Amazon ECS service.

    In awsvpc mode and Fargate, the default value is the container port number. The container port number is in the portMapping in the task definition. In bridge mode, the default value is the ephemeral port of the Service Connect proxy.

    " + }, + "timeout":{ + "shape":"TimeoutConfiguration", + "documentation":"

    A reference to an object that represents the configured timeouts for Service Connect.

    " + }, + "tls":{ + "shape":"ServiceConnectTlsConfiguration", + "documentation":"

    A reference to an object that represents a Transport Layer Security (TLS) configuration.

    " } }, "documentation":"

    The Service Connect service object configuration. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

    " @@ -5130,6 +5143,35 @@ "type":"list", "member":{"shape":"ServiceConnectServiceResource"} }, + "ServiceConnectTlsCertificateAuthority":{ + "type":"structure", + "members":{ + "awsPcaAuthorityArn":{ + "shape":"String", + "documentation":"

    The ARN of the Amazon Web Services Private Certificate Authority certificate.

    " + } + }, + "documentation":"

    An object that represents the Amazon Web Services Private Certificate Authority certificate.

    " + }, + "ServiceConnectTlsConfiguration":{ + "type":"structure", + "required":["issuerCertificateAuthority"], + "members":{ + "issuerCertificateAuthority":{ + "shape":"ServiceConnectTlsCertificateAuthority", + "documentation":"

    The signer certificate authority.

    " + }, + "kmsKey":{ + "shape":"String", + "documentation":"

    The Amazon Web Services Key Management Service key.

    " + }, + "roleArn":{ + "shape":"String", + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that's associated with the Service Connect TLS.

    " + } + }, + "documentation":"

    An object that represents the configuration for Service Connect TLS.

    " + }, "ServiceEvent":{ "type":"structure", "members":{ @@ -5441,7 +5483,7 @@ }, "reason":{ "shape":"String", - "documentation":"

    An optional message specified when a task is stopped. For example, if you're using a custom scheduler, you can use this parameter to specify the reason for stopping the task here, and the message appears in subsequent DescribeTasks API operations on this task. Up to 255 characters are allowed in this message.

    " + "documentation":"

    An optional message specified when a task is stopped. For example, if you're using a custom scheduler, you can use this parameter to specify the reason for stopping the task here, and the message appears in subsequent DescribeTasks API operations on this task.

    " } } }, @@ -5599,7 +5641,7 @@ "documentation":"

    The namespaced kernel parameter to set a value for.

    Valid IPC namespace values: \"kernel.msgmax\" | \"kernel.msgmnb\" | \"kernel.msgmni\" | \"kernel.sem\" | \"kernel.shmall\" | \"kernel.shmmax\" | \"kernel.shmmni\" | \"kernel.shm_rmid_forced\", and Sysctls that start with \"fs.mqueue.*\"

    Valid network namespace values: Sysctls that start with \"net.*\"

    All of these values are supported by Fargate.

    " } }, - "documentation":"

    A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the Create a container section of the Docker Remote API and the --sysctl option to docker run.

    We don't recommend that you specify network-related systemControls parameters for multiple containers in a single task. This task also uses either the awsvpc or host network mode. It does it for the following reasons.

    • For tasks that use the awsvpc network mode, if you set systemControls for any container, it applies to all containers in the task. If you set different systemControls for multiple containers in a single task, the container that's started last determines which systemControls take effect.

    • For tasks that use the host network mode, the systemControls parameter applies to the container instance's kernel parameter and that of all containers of any tasks running on that container instance.

    " + "documentation":"

    A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the Create a container section of the Docker Remote API and the --sysctl option to docker run. For example, you can configure net.ipv4.tcp_keepalive_time setting to maintain longer lived connections.

    We don't recommend that you specify network-related systemControls parameters for multiple containers in a single task that also uses either the awsvpc or host network mode. Doing this has the following disadvantages:

    • For tasks that use the awsvpc network mode including Fargate, if you set systemControls for any container, it applies to all containers in the task. If you set different systemControls for multiple containers in a single task, the container that's started last determines which systemControls take effect.

    • For tasks that use the host network mode, the network namespace systemControls aren't supported.

    If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see IPC mode.

    • For tasks that use the host IPC mode, IPC namespace systemControls aren't supported.

    • For tasks that use the task IPC mode, IPC namespace systemControls values apply to all containers within a task.

    This parameter is not supported for Windows containers.

    This parameter is only supported for tasks that are hosted on Fargate if the tasks are using platform version 1.4.0 or later (Linux). This isn't supported for Windows containers on Fargate.

    " }, "SystemControls":{ "type":"list", @@ -5794,7 +5836,7 @@ }, "stopCode":{ "shape":"TaskStopCode", - "documentation":"

    The stop code indicating why a task was stopped. The stoppedReason might contain additional details.

    For more information about stop code, see Stopped tasks error codes in the Amazon ECS User Guide.

    The following are valid values:

    • TaskFailedToStart

    • EssentialContainerExited

    • UserInitiated

    • TerminationNotice

    • ServiceSchedulerInitiated

    • SpotInterruption

    " + "documentation":"

    The stop code indicating why a task was stopped. The stoppedReason might contain additional details.

    For more information about stop code, see Stopped tasks error codes in the Amazon ECS Developer Guide.

    " }, "stoppedAt":{ "shape":"Timestamp", @@ -6250,6 +6292,20 @@ "type":"list", "member":{"shape":"Task"} }, + "TimeoutConfiguration":{ + "type":"structure", + "members":{ + "idleTimeoutSeconds":{ + "shape":"Duration", + "documentation":"

    The amount of time in seconds a connection will stay active while idle. A value of 0 can be set to disable idleTimeout.

    The idleTimeout default for HTTP/HTTP2/GRPC is 5 minutes.

    The idleTimeout default for TCP is 1 hour.

    " + }, + "perRequestTimeoutSeconds":{ + "shape":"Duration", + "documentation":"

    The amount of time waiting for the upstream to respond with a complete response per request. A value of 0 can be set to disable perRequestTimeout. perRequestTimeout can only be set if Service Connect appProtocol isn't TCP. Only idleTimeout is allowed for TCP appProtocol.

    " + } + }, + "documentation":"

    An object that represents the timeout configurations for Service Connect.

    If idleTimeout is set to a time that is less than perRequestTimeout, the connection will close when the idleTimeout is reached and not the perRequestTimeout.

    " + }, "Timestamp":{"type":"timestamp"}, "Tmpfs":{ "type":"structure", @@ -6305,7 +6361,7 @@ "documentation":"

    The hard limit for the ulimit type.

    " } }, - "documentation":"

    The ulimit settings to pass to the container.

    Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and the default hard limit is 4096.

    You can specify the ulimit settings for a container in a task definition.

    " + "documentation":"

    The ulimit settings to pass to the container.

    Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and the default hard limit is 65535.

    You can specify the ulimit settings for a container in a task definition.

    " }, "UlimitList":{ "type":"list", diff --git a/services/efs/pom.xml b/services/efs/pom.xml index 3738285b2a4a..b4a64e0bb683 100644 --- a/services/efs/pom.xml +++ b/services/efs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT efs AWS Java SDK :: Services :: Amazon Elastic File System diff --git a/services/efs/src/main/resources/codegen-resources/customization.config b/services/efs/src/main/resources/codegen-resources/customization.config index ea0753f0e300..c1821cc86871 100644 --- a/services/efs/src/main/resources/codegen-resources/customization.config +++ b/services/efs/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "verifiedSimpleMethods": [ - "describeFileSystems" - ], - "excludedSimpleMethods": [ - "describeMountTargets" - ] + "verifiedSimpleMethods": [ + "describeFileSystems" + ], + "excludedSimpleMethods": [ + "describeMountTargets" + ], + "useSraAuth": true } diff --git a/services/eks/pom.xml b/services/eks/pom.xml index 63622a987b08..e73f331c4b29 100644 --- a/services/eks/pom.xml +++ b/services/eks/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT eks AWS Java SDK :: Services :: EKS diff --git a/services/eks/src/main/resources/codegen-resources/customization.config b/services/eks/src/main/resources/codegen-resources/customization.config index 511e32d39570..a12a922892bf 100644 --- a/services/eks/src/main/resources/codegen-resources/customization.config +++ b/services/eks/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listClusters" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true } diff --git a/services/eksauth/pom.xml b/services/eksauth/pom.xml index 4e3fd3ef4261..77e8336e723e 100644 --- a/services/eksauth/pom.xml +++ b/services/eksauth/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT eksauth AWS Java SDK :: Services :: EKS Auth diff --git a/services/eksauth/src/main/resources/codegen-resources/customization.config b/services/eksauth/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/eksauth/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/elasticache/pom.xml b/services/elasticache/pom.xml index 2f2052c42ca7..99d5a989bf60 100644 --- a/services/elasticache/pom.xml +++ b/services/elasticache/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT elasticache AWS Java SDK :: Services :: Amazon ElastiCache diff --git a/services/elasticache/src/main/resources/codegen-resources/customization.config b/services/elasticache/src/main/resources/codegen-resources/customization.config index 8f466b4cef8e..93fee897f237 100644 --- a/services/elasticache/src/main/resources/codegen-resources/customization.config +++ b/services/elasticache/src/main/resources/codegen-resources/customization.config @@ -1,17 +1,18 @@ { - "verifiedSimpleMethods": [ - "describeCacheClusters", - "describeCacheEngineVersions", - "describeCacheParameterGroups", - "describeCacheSubnetGroups", - "describeEvents", - "describeReplicationGroups", - "describeReservedCacheNodes", - "describeReservedCacheNodesOfferings", - "describeSnapshots" - ], - "excludedSimpleMethods": [ - "describeCacheSecurityGroups", - "listAllowedNodeTypeModifications" - ] + "verifiedSimpleMethods": [ + "describeCacheClusters", + "describeCacheEngineVersions", + "describeCacheParameterGroups", + "describeCacheSubnetGroups", + "describeEvents", + "describeReplicationGroups", + "describeReservedCacheNodes", + "describeReservedCacheNodesOfferings", + "describeSnapshots" + ], + "excludedSimpleMethods": [ + "describeCacheSecurityGroups", + "listAllowedNodeTypeModifications" + ], + "useSraAuth": true } diff --git a/services/elasticbeanstalk/pom.xml b/services/elasticbeanstalk/pom.xml index 32ac714b7341..6d684bef8339 100644 --- a/services/elasticbeanstalk/pom.xml +++ b/services/elasticbeanstalk/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT elasticbeanstalk AWS Java SDK :: Services :: AWS Elastic Beanstalk diff --git a/services/elasticbeanstalk/src/main/resources/codegen-resources/customization.config b/services/elasticbeanstalk/src/main/resources/codegen-resources/customization.config index f0f2660d2737..7289e05b0a4d 100644 --- a/services/elasticbeanstalk/src/main/resources/codegen-resources/customization.config +++ b/services/elasticbeanstalk/src/main/resources/codegen-resources/customization.config @@ -4,7 +4,6 @@ // 'Builder' class, which is invalid Java "Builder" : "PlatformBuilder" }, - "shapeModifiers" : { "CreatePlatformVersionResult" : { "modify": [ @@ -43,5 +42,8 @@ "describeEvents", "listAvailableSolutionStacks", "listPlatformVersions" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/elasticinference/pom.xml b/services/elasticinference/pom.xml index fb61e02fca52..b9f923bde0b9 100644 --- a/services/elasticinference/pom.xml +++ b/services/elasticinference/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT elasticinference AWS Java SDK :: Services :: Elastic Inference diff --git a/services/elasticinference/src/main/resources/codegen-resources/customization.config b/services/elasticinference/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/elasticinference/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/elasticloadbalancing/pom.xml b/services/elasticloadbalancing/pom.xml index 7c38ef41cea8..d311bacaf63b 100644 --- a/services/elasticloadbalancing/pom.xml +++ b/services/elasticloadbalancing/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT elasticloadbalancing AWS Java SDK :: Services :: Elastic Load Balancing diff --git a/services/elasticloadbalancing/src/main/resources/codegen-resources/customization.config b/services/elasticloadbalancing/src/main/resources/codegen-resources/customization.config index 55c6f1f439ea..db136060b169 100644 --- a/services/elasticloadbalancing/src/main/resources/codegen-resources/customization.config +++ b/services/elasticloadbalancing/src/main/resources/codegen-resources/customization.config @@ -1,14 +1,17 @@ { - "verifiedSimpleMethods": [ - "describeAccountLimits", - "describeLoadBalancerPolicies", - "describeLoadBalancerPolicyTypes", - "describeLoadBalancers" - ], - "renameShapes": { - "AccessPointNotFoundException": "LoadBalancerNotFoundException", - "DuplicateAccessPointNameException": "DuplicateLoadBalancerNameException", - "TooManyAccessPointsException": "TooManyLoadBalancersException", - "InvalidEndPointException": "InvalidInstanceException" - } + "verifiedSimpleMethods": [ + "describeAccountLimits", + "describeLoadBalancerPolicies", + "describeLoadBalancerPolicyTypes", + "describeLoadBalancers" + ], + "renameShapes": { + "AccessPointNotFoundException": "LoadBalancerNotFoundException", + "DuplicateAccessPointNameException": "DuplicateLoadBalancerNameException", + "TooManyAccessPointsException": "TooManyLoadBalancersException", + "InvalidEndPointException": "InvalidInstanceException" + }, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/elasticloadbalancingv2/pom.xml b/services/elasticloadbalancingv2/pom.xml index e69b8176ac4e..d750baa32658 100644 --- a/services/elasticloadbalancingv2/pom.xml +++ b/services/elasticloadbalancingv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT elasticloadbalancingv2 AWS Java SDK :: Services :: Elastic Load Balancing V2 diff --git a/services/elasticloadbalancingv2/src/main/resources/codegen-resources/customization.config b/services/elasticloadbalancingv2/src/main/resources/codegen-resources/customization.config index 45f2d8ee516e..32485aeafbd5 100644 --- a/services/elasticloadbalancingv2/src/main/resources/codegen-resources/customization.config +++ b/services/elasticloadbalancingv2/src/main/resources/codegen-resources/customization.config @@ -1,12 +1,13 @@ { - "verifiedSimpleMethods": [ - "describeAccountLimits", - "describeLoadBalancers", - "describeSSLPolicies", - "describeTargetGroups" - ], - "excludedSimpleMethods": [ - "describeRules", - "describeListeners" - ] + "verifiedSimpleMethods": [ + "describeAccountLimits", + "describeLoadBalancers", + "describeSSLPolicies", + "describeTargetGroups" + ], + "excludedSimpleMethods": [ + "describeRules", + "describeListeners" + ], + "useSraAuth": true } diff --git a/services/elasticloadbalancingv2/src/main/resources/codegen-resources/service-2.json b/services/elasticloadbalancingv2/src/main/resources/codegen-resources/service-2.json index 2a9ebfe29071..8fe1ed37d5ca 100644 --- a/services/elasticloadbalancingv2/src/main/resources/codegen-resources/service-2.json +++ b/services/elasticloadbalancingv2/src/main/resources/codegen-resources/service-2.json @@ -1352,11 +1352,11 @@ }, "Subnets":{ "shape":"Subnets", - "documentation":"

    The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.

    [Application Load Balancers] You must specify subnets from at least two Availability Zones.

    [Application Load Balancers on Outposts] You must specify one Outpost subnet.

    [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.

    [Network Load Balancers] You can specify subnets from one or more Availability Zones.

    [Gateway Load Balancers] You can specify subnets from one or more Availability Zones.

    " + "documentation":"

    The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.

    [Application Load Balancers] You must specify subnets from at least two Availability Zones.

    [Application Load Balancers on Outposts] You must specify one Outpost subnet.

    [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.

    [Network Load Balancers] You can specify subnets from one or more Availability Zones.

    [Gateway Load Balancers] You can specify subnets from one or more Availability Zones.

    " }, "SubnetMappings":{ "shape":"SubnetMappings", - "documentation":"

    The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.

    [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.

    [Application Load Balancers on Outposts] You must specify one Outpost subnet.

    [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.

    [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.

    [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets.

    " + "documentation":"

    The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.

    [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.

    [Application Load Balancers on Outposts] You must specify one Outpost subnet.

    [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.

    [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.

    [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets.

    " }, "SecurityGroups":{ "shape":"SecurityGroups", @@ -3549,7 +3549,7 @@ "members":{ "Values":{ "shape":"ListOfString", - "documentation":"

    The source IP addresses, in CIDR format. You can use both IPv4 and IPv6 addresses. Wildcards are not supported.

    If you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks. This condition is not satisfied by the addresses in the X-Forwarded-For header. To search for addresses in the X-Forwarded-For header, use HttpHeaderConditionConfig.

    " + "documentation":"

    The source IP addresses, in CIDR format. You can use both IPv4 and IPv6 addresses. Wildcards are not supported.

    If you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks. This condition is not satisfied by the addresses in the X-Forwarded-For header. To search for addresses in the X-Forwarded-For header, use HttpHeaderConditionConfig.

    The total number of values must be less than, or equal to five.

    " } }, "documentation":"

    Information about a source IP condition.

    You can use this condition to route based on the IP address of the source that connects to the load balancer. If a client is behind a proxy, this is the IP address of the proxy not the IP address of the client.

    " @@ -3813,7 +3813,7 @@ "members":{ "Key":{ "shape":"TargetGroupAttributeKey", - "documentation":"

    The name of the attribute.

    The following attributes are supported by all load balancers:

    • deregistration_delay.timeout_seconds - The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds. If the target is a Lambda function, this attribute is not supported.

    • stickiness.enabled - Indicates whether target stickiness is enabled. The value is true or false. The default is false.

    • stickiness.type - Indicates the type of stickiness. The possible values are:

      • lb_cookie and app_cookie for Application Load Balancers.

      • source_ip for Network Load Balancers.

      • source_ip_dest_ip and source_ip_dest_ip_proto for Gateway Load Balancers.

    The following attributes are supported by Application Load Balancers and Network Load Balancers:

    • load_balancing.cross_zone.enabled - Indicates whether cross zone load balancing is enabled. The value is true, false or use_load_balancer_configuration. The default is use_load_balancer_configuration.

    • target_group_health.dns_failover.minimum_healthy_targets.count - The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off or an integer from 1 to the maximum number of targets. The default is off.

    • target_group_health.dns_failover.minimum_healthy_targets.percentage - The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off or an integer from 1 to 100. The default is off.

    • target_group_health.unhealthy_state_routing.minimum_healthy_targets.count - The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are 1 to the maximum number of targets. The default is 1.

    • target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage - The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are off or an integer from 1 to 100. The default is off.

    The following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address:

    • load_balancing.algorithm.type - The load balancing algorithm determines how the load balancer selects targets when routing requests. The value is round_robin, least_outstanding_requests, or weighted_random. The default is round_robin.

    • load_balancing.algorithm.anomaly_mitigation - Only available when load_balancing.algorithm.type is weighted_random. Indicates whether anomaly mitigation is enabled. The value is on or off. The default is off.

    • slow_start.duration_seconds - The time period, in seconds, during which a newly registered target receives an increasing share of the traffic to the target group. After this time period ends, the target receives its full share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 seconds (disabled).

    • stickiness.app_cookie.cookie_name - Indicates the name of the application-based cookie. Names that start with the following prefixes are not allowed: AWSALB, AWSALBAPP, and AWSALBTG; they're reserved for use by the load balancer.

    • stickiness.app_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the application-based cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

    • stickiness.lb_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

    The following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function:

    • lambda.multi_value_headers.enabled - Indicates whether the request and response headers that are exchanged between the load balancer and the Lambda function include arrays of values or strings. The value is true or false. The default is false. If the value is false and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client.

    The following attributes are supported only by Network Load Balancers:

    • deregistration_delay.connection_termination.enabled - Indicates whether the load balancer terminates connections at the end of the deregistration timeout. The value is true or false. For new UDP/TCP_UDP target groups the default is true. Otherwise, the default is false.

    • preserve_client_ip.enabled - Indicates whether client IP preservation is enabled. The value is true or false. The default is disabled if the target group type is IP address and the target group protocol is TCP or TLS. Otherwise, the default is enabled. Client IP preservation cannot be disabled for UDP and TCP_UDP target groups.

    • proxy_protocol_v2.enabled - Indicates whether Proxy Protocol version 2 is enabled. The value is true or false. The default is false.

    • target_health_state.unhealthy.connection_termination.enabled - Indicates whether the load balancer terminates connections to unhealthy targets. The value is true or false. The default is true.

    The following attributes are supported only by Gateway Load Balancers:

    • target_failover.on_deregistration - Indicates how the Gateway Load Balancer handles existing flows when a target is deregistered. The possible values are rebalance and no_rebalance. The default is no_rebalance. The two attributes (target_failover.on_deregistration and target_failover.on_unhealthy) can't be set independently. The value you set for both attributes must be the same.

    • target_failover.on_unhealthy - Indicates how the Gateway Load Balancer handles existing flows when a target is unhealthy. The possible values are rebalance and no_rebalance. The default is no_rebalance. The two attributes (target_failover.on_deregistration and target_failover.on_unhealthy) cannot be set independently. The value you set for both attributes must be the same.

    " + "documentation":"

    The name of the attribute.

    The following attributes are supported by all load balancers:

    • deregistration_delay.timeout_seconds - The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds. If the target is a Lambda function, this attribute is not supported.

    • stickiness.enabled - Indicates whether target stickiness is enabled. The value is true or false. The default is false.

    • stickiness.type - Indicates the type of stickiness. The possible values are:

      • lb_cookie and app_cookie for Application Load Balancers.

      • source_ip for Network Load Balancers.

      • source_ip_dest_ip and source_ip_dest_ip_proto for Gateway Load Balancers.

    The following attributes are supported by Application Load Balancers and Network Load Balancers:

    • load_balancing.cross_zone.enabled - Indicates whether cross zone load balancing is enabled. The value is true, false or use_load_balancer_configuration. The default is use_load_balancer_configuration.

    • target_group_health.dns_failover.minimum_healthy_targets.count - The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off or an integer from 1 to the maximum number of targets. The default is off.

    • target_group_health.dns_failover.minimum_healthy_targets.percentage - The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off or an integer from 1 to 100. The default is off.

    • target_group_health.unhealthy_state_routing.minimum_healthy_targets.count - The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are 1 to the maximum number of targets. The default is 1.

    • target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage - The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are off or an integer from 1 to 100. The default is off.

    The following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address:

    • load_balancing.algorithm.type - The load balancing algorithm determines how the load balancer selects targets when routing requests. The value is round_robin, least_outstanding_requests, or weighted_random. The default is round_robin.

    • load_balancing.algorithm.anomaly_mitigation - Only available when load_balancing.algorithm.type is weighted_random. Indicates whether anomaly mitigation is enabled. The value is on or off. The default is off.

    • slow_start.duration_seconds - The time period, in seconds, during which a newly registered target receives an increasing share of the traffic to the target group. After this time period ends, the target receives its full share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 seconds (disabled).

    • stickiness.app_cookie.cookie_name - Indicates the name of the application-based cookie. Names that start with the following prefixes are not allowed: AWSALB, AWSALBAPP, and AWSALBTG; they're reserved for use by the load balancer.

    • stickiness.app_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the application-based cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

    • stickiness.lb_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

    The following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function:

    • lambda.multi_value_headers.enabled - Indicates whether the request and response headers that are exchanged between the load balancer and the Lambda function include arrays of values or strings. The value is true or false. The default is false. If the value is false and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client.

    The following attributes are supported only by Network Load Balancers:

    • deregistration_delay.connection_termination.enabled - Indicates whether the load balancer terminates connections at the end of the deregistration timeout. The value is true or false. For new UDP/TCP_UDP target groups the default is true. Otherwise, the default is false.

    • preserve_client_ip.enabled - Indicates whether client IP preservation is enabled. The value is true or false. The default is disabled if the target group type is IP address and the target group protocol is TCP or TLS. Otherwise, the default is enabled. Client IP preservation cannot be disabled for UDP and TCP_UDP target groups.

    • proxy_protocol_v2.enabled - Indicates whether Proxy Protocol version 2 is enabled. The value is true or false. The default is false.

    • target_health_state.unhealthy.connection_termination.enabled - Indicates whether the load balancer terminates connections to unhealthy targets. The value is true or false. The default is true.

    • target_health_state.unhealthy.draining_interval_seconds - The amount of time for Elastic Load Balancing to wait before changing the state of an unhealthy target from unhealthy.draining to unhealthy. The range is 0-360000 seconds. The default value is 0 seconds.

      Note: This attribute can only be configured when target_health_state.unhealthy.connection_termination.enabled is false.

    The following attributes are supported only by Gateway Load Balancers:

    • target_failover.on_deregistration - Indicates how the Gateway Load Balancer handles existing flows when a target is deregistered. The possible values are rebalance and no_rebalance. The default is no_rebalance. The two attributes (target_failover.on_deregistration and target_failover.on_unhealthy) can't be set independently. The value you set for both attributes must be the same.

    • target_failover.on_unhealthy - Indicates how the Gateway Load Balancer handles existing flows when a target is unhealthy. The possible values are rebalance and no_rebalance. The default is no_rebalance. The two attributes (target_failover.on_deregistration and target_failover.on_unhealthy) cannot be set independently. The value you set for both attributes must be the same.

    " }, "Value":{ "shape":"TargetGroupAttributeValue", @@ -3962,6 +3962,7 @@ "initial", "healthy", "unhealthy", + "unhealthy.draining", "unused", "draining", "unavailable" diff --git a/services/elasticsearch/pom.xml b/services/elasticsearch/pom.xml index 32fff358e1ad..edf95dde00b5 100644 --- a/services/elasticsearch/pom.xml +++ b/services/elasticsearch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT elasticsearch AWS Java SDK :: Services :: Amazon Elasticsearch Service diff --git a/services/elasticsearch/src/main/resources/codegen-resources/customization.config b/services/elasticsearch/src/main/resources/codegen-resources/customization.config index 5a81e2ac92e5..a2b7819eaf5a 100644 --- a/services/elasticsearch/src/main/resources/codegen-resources/customization.config +++ b/services/elasticsearch/src/main/resources/codegen-resources/customization.config @@ -1,10 +1,11 @@ { - "verifiedSimpleMethods": [ - "deleteElasticsearchServiceRole", - "describeReservedElasticsearchInstanceOfferings", - "describeReservedElasticsearchInstances", - "getCompatibleElasticsearchVersions", - "listDomainNames", - "listElasticsearchVersions" - ] + "verifiedSimpleMethods": [ + "deleteElasticsearchServiceRole", + "describeReservedElasticsearchInstanceOfferings", + "describeReservedElasticsearchInstances", + "getCompatibleElasticsearchVersions", + "listDomainNames", + "listElasticsearchVersions" + ], + "useSraAuth": true } diff --git a/services/elasticsearch/src/main/resources/codegen-resources/service-2.json b/services/elasticsearch/src/main/resources/codegen-resources/service-2.json index 5aa20dafabb7..fcc9f8d04590 100644 --- a/services/elasticsearch/src/main/resources/codegen-resources/service-2.json +++ b/services/elasticsearch/src/main/resources/codegen-resources/service-2.json @@ -76,6 +76,23 @@ ], "documentation":"

    Provides access to an Amazon OpenSearch Service domain through the use of an interface VPC endpoint.

    " }, + "CancelDomainConfigChange":{ + "name":"CancelDomainConfigChange", + "http":{ + "method":"POST", + "requestUri":"/2015-01-01/es/domain/{DomainName}/config/cancel" + }, + "input":{"shape":"CancelDomainConfigChangeRequest"}, + "output":{"shape":"CancelDomainConfigChangeResponse"}, + "errors":[ + {"shape":"BaseException"}, + {"shape":"InternalException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"DisabledOperationException"} + ], + "documentation":"

    Cancels a pending configuration change on an Amazon OpenSearch Service domain.

    " + }, "CancelElasticsearchServiceSoftwareUpdate":{ "name":"CancelElasticsearchServiceSoftwareUpdate", "http":{ @@ -1287,6 +1304,41 @@ "exception":true }, "Boolean":{"type":"boolean"}, + "CancelDomainConfigChangeRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

    Name of the OpenSearch Service domain configuration request to cancel.

    ", + "location":"uri", + "locationName":"DomainName" + }, + "DryRun":{ + "shape":"DryRun", + "documentation":"

    When set to True, returns the list of change IDs and properties that will be cancelled without actually cancelling the change.

    " + } + }, + "documentation":"

    Container for parameters of the CancelDomainConfigChange operation.

    " + }, + "CancelDomainConfigChangeResponse":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"DryRun", + "documentation":"

    Whether or not the request was a dry run. If True, the changes were not actually cancelled.

    " + }, + "CancelledChangeIds":{ + "shape":"GUIDList", + "documentation":"

    The unique identifiers of the changes that were cancelled.

    " + }, + "CancelledChangeProperties":{ + "shape":"CancelledChangePropertyList", + "documentation":"

    The domain change properties that were cancelled.

    " + } + }, + "documentation":"

    Contains the details of the cancelled domain config change.

    " + }, "CancelElasticsearchServiceSoftwareUpdateRequest":{ "type":"structure", "required":["DomainName"], @@ -1308,6 +1360,28 @@ }, "documentation":"

    The result of a CancelElasticsearchServiceSoftwareUpdate operation. Contains the status of the update.

    " }, + "CancelledChangeProperty":{ + "type":"structure", + "members":{ + "PropertyName":{ + "shape":"String", + "documentation":"

    The name of the property whose change was cancelled.

    " + }, + "CancelledValue":{ + "shape":"String", + "documentation":"

    The pending value of the property that was cancelled. This would have been the eventual value of the property if the chance had not been cancelled.

    " + }, + "ActiveValue":{ + "shape":"String", + "documentation":"

    The current value of the property, after the change was cancelled.

    " + } + }, + "documentation":"

    A property change that was cancelled for an Amazon OpenSearch Service domain.

    " + }, + "CancelledChangePropertyList":{ + "type":"list", + "member":{"shape":"CancelledChangeProperty"} + }, "ChangeProgressDetails":{ "type":"structure", "members":{ @@ -1318,6 +1392,22 @@ "Message":{ "shape":"Message", "documentation":"

    Contains an optional message associated with the domain configuration change.

    " + }, + "ConfigChangeStatus":{ + "shape":"ConfigChangeStatus", + "documentation":"

    The current status of the configuration change.

    " + }, + "StartTime":{ + "shape":"UpdateTimestamp", + "documentation":"

    The time that the configuration change was initiated, in Universal Coordinated Time (UTC).

    " + }, + "LastUpdatedTime":{ + "shape":"UpdateTimestamp", + "documentation":"

    The last time that the configuration change was updated.

    " + }, + "InitiatedBy":{ + "shape":"InitiatedBy", + "documentation":"

    The IAM principal who initiated the configuration change.

    " } }, "documentation":"

    Specifies change details of the domain configuration change.

    " @@ -1389,6 +1479,18 @@ "ChangeProgressStages":{ "shape":"ChangeProgressStageList", "documentation":"

    The specific stages that the domain is going through to perform the configuration change.

    " + }, + "ConfigChangeStatus":{ + "shape":"ConfigChangeStatus", + "documentation":"

    The current status of the configuration change.

    " + }, + "LastUpdatedTime":{ + "shape":"UpdateTimestamp", + "documentation":"

    The last time that the status of the configuration change was updated.

    " + }, + "InitiatedBy":{ + "shape":"InitiatedBy", + "documentation":"

    The IAM principal who initiated the configuration change.

    " } }, "documentation":"

    The progress details of a specific domain configuration change.

    " @@ -1472,6 +1574,19 @@ }, "documentation":"

    A map from an ElasticsearchVersion to a list of compatible ElasticsearchVersion s to which the domain can be upgraded.

    " }, + "ConfigChangeStatus":{ + "type":"string", + "enum":[ + "Pending", + "Initializing", + "Validating", + "ValidationFailed", + "ApplyingChanges", + "Completed", + "PendingUserInput", + "Cancelled" + ] + }, "ConflictException":{ "type":"structure", "members":{ @@ -2417,6 +2532,18 @@ "DISSOCIATION_FAILED" ] }, + "DomainProcessingStatusType":{ + "type":"string", + "enum":[ + "Creating", + "Active", + "Modifying", + "UpgradingEngineVersion", + "UpdatingServiceSoftware", + "Isolated", + "Deleting" + ] + }, "Double":{"type":"double"}, "DryRun":{"type":"boolean"}, "DryRunResults":{ @@ -2696,6 +2823,10 @@ "ChangeProgressDetails":{ "shape":"ChangeProgressDetails", "documentation":"

    Specifies change details of the domain configuration change.

    " + }, + "ModifyingProperties":{ + "shape":"ModifyingPropertiesList", + "documentation":"

    Information about the domain properties that are currently being modified.

    " } }, "documentation":"

    The configuration of an Elasticsearch domain.

    " @@ -2805,6 +2936,14 @@ "ChangeProgressDetails":{ "shape":"ChangeProgressDetails", "documentation":"

    Specifies change details of the domain configuration change.

    " + }, + "DomainProcessingStatus":{ + "shape":"DomainProcessingStatusType", + "documentation":"

    The status of any changes that are currently in progress for the domain.

    " + }, + "ModifyingProperties":{ + "shape":"ModifyingPropertiesList", + "documentation":"

    Information about the domain properties that are currently being modified.

    " } }, "documentation":"

    The current status of an Elasticsearch domain.

    " @@ -2925,6 +3064,10 @@ "type":"string", "pattern":"\\p{XDigit}{8}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{12}" }, + "GUIDList":{ + "type":"list", + "member":{"shape":"GUID"} + }, "GetCompatibleElasticsearchVersionsRequest":{ "type":"structure", "members":{ @@ -3106,6 +3249,13 @@ "type":"list", "member":{"shape":"InboundCrossClusterSearchConnection"} }, + "InitiatedBy":{ + "type":"string", + "enum":[ + "CUSTOMER", + "SERVICE" + ] + }, "InstanceCount":{ "type":"integer", "documentation":"

    Specifies the number of EC2 instances in the Elasticsearch domain.

    ", @@ -3569,6 +3719,32 @@ "type":"integer", "documentation":"

    Minimum number of Instances that can be instantiated for given InstanceType.

    " }, + "ModifyingProperties":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"String", + "documentation":"

    The name of the property that is currently being modified.

    " + }, + "ActiveValue":{ + "shape":"String", + "documentation":"

    The current value of the domain property that is being modified.

    " + }, + "PendingValue":{ + "shape":"String", + "documentation":"

    The value that the property that is currently being modified will eventually have.

    " + }, + "ValueType":{ + "shape":"PropertyValueType", + "documentation":"

    The type of value that is currently being modified. Properties can have two types:

    • PLAIN_TEXT: Contain direct values such as \"1\", \"True\", or \"c5.large.search\".
    • STRINGIFIED_JSON: Contain content in JSON format, such as {\"Enabled\":\"True\"}\".
    " + } + }, + "documentation":"

    Information about the domain properties that are currently being modified.

    " + }, + "ModifyingPropertiesList":{ + "type":"list", + "member":{"shape":"ModifyingProperties"} + }, "NextToken":{ "type":"string", "documentation":"

    Paginated APIs accepts NextToken input to returns next page results and provides a NextToken output in the response which can be used by the client to retrieve more results.

    " @@ -3839,6 +4015,13 @@ "AWS_SERVICE" ] }, + "PropertyValueType":{ + "type":"string", + "enum":[ + "PLAIN_TEXT", + "STRINGIFIED_JSON" + ] + }, "PurchaseReservedElasticsearchInstanceOfferingRequest":{ "type":"structure", "required":[ diff --git a/services/elastictranscoder/pom.xml b/services/elastictranscoder/pom.xml index e14fbf0a3340..33ab2c8fd9a4 100644 --- a/services/elastictranscoder/pom.xml +++ b/services/elastictranscoder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT elastictranscoder AWS Java SDK :: Services :: Amazon Elastic Transcoder diff --git a/services/elastictranscoder/src/main/resources/codegen-resources/customization.config b/services/elastictranscoder/src/main/resources/codegen-resources/customization.config index 5ce889c1817a..c719c102cf35 100644 --- a/services/elastictranscoder/src/main/resources/codegen-resources/customization.config +++ b/services/elastictranscoder/src/main/resources/codegen-resources/customization.config @@ -1,9 +1,12 @@ { - "verifiedSimpleMethods": [ - "listPipelines", - "listPresets" - ], - "deprecatedOperations": [ - "TestRole" - ] + "verifiedSimpleMethods": [ + "listPipelines", + "listPresets" + ], + "deprecatedOperations": [ + "TestRole" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/emr/pom.xml b/services/emr/pom.xml index 77ccc0227503..48003dc6f998 100644 --- a/services/emr/pom.xml +++ b/services/emr/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT emr AWS Java SDK :: Services :: Amazon EMR diff --git a/services/emr/src/main/resources/codegen-resources/customization.config b/services/emr/src/main/resources/codegen-resources/customization.config index 1e066e00e14d..2b45bb09afad 100644 --- a/services/emr/src/main/resources/codegen-resources/customization.config +++ b/services/emr/src/main/resources/codegen-resources/customization.config @@ -1,25 +1,28 @@ { - "verifiedSimpleMethods": [ - "listClusters", - "listSecurityConfigurations" - ], - "shapeModifiers": { - "InvalidRequestException": { - "modify": [ - { - "ErrorCode": { - "emitPropertyName": "emrErrorCode" - } + "verifiedSimpleMethods": [ + "listClusters", + "listSecurityConfigurations" + ], + "shapeModifiers": { + "InvalidRequestException": { + "modify": [ + { + "ErrorCode": { + "emitPropertyName": "emrErrorCode" + } + } + ] } - ] - } - }, - "excludedSimpleMethods": [ - "cancelSteps", - "modifyInstanceGroups", - "describeJobFlows" - ], - "deprecatedOperations": [ - "DescribeJobFlows" - ] + }, + "excludedSimpleMethods": [ + "cancelSteps", + "modifyInstanceGroups", + "describeJobFlows" + ], + "deprecatedOperations": [ + "DescribeJobFlows" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/emr/src/main/resources/codegen-resources/service-2.json b/services/emr/src/main/resources/codegen-resources/service-2.json index 4fba715453ad..63b45ccdd1c8 100644 --- a/services/emr/src/main/resources/codegen-resources/service-2.json +++ b/services/emr/src/main/resources/codegen-resources/service-2.json @@ -652,7 +652,19 @@ "errors":[ {"shape":"InternalServerError"} ], - "documentation":"

    SetTerminationProtection locks a cluster (job flow) so the Amazon EC2 instances in the cluster cannot be terminated by user intervention, an API call, or in the event of a job-flow error. The cluster still terminates upon successful completion of the job flow. Calling SetTerminationProtection on a cluster is similar to calling the Amazon EC2 DisableAPITermination API on all Amazon EC2 instances in a cluster.

    SetTerminationProtection is used to prevent accidental termination of a cluster and to ensure that in the event of an error, the instances persist so that you can recover any data stored in their ephemeral instance storage.

    To terminate a cluster that has been locked by setting SetTerminationProtection to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection in which you set the value to false.

    For more information, seeManaging Cluster Termination in the Amazon EMR Management Guide.

    " + "documentation":"

    SetTerminationProtection locks a cluster (job flow) so the Amazon EC2 instances in the cluster cannot be terminated by user intervention, an API call, or in the event of a job-flow error. The cluster still terminates upon successful completion of the job flow. Calling SetTerminationProtection on a cluster is similar to calling the Amazon EC2 DisableAPITermination API on all Amazon EC2 instances in a cluster.

    SetTerminationProtection is used to prevent accidental termination of a cluster and to ensure that in the event of an error, the instances persist so that you can recover any data stored in their ephemeral instance storage.

    To terminate a cluster that has been locked by setting SetTerminationProtection to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection in which you set the value to false.

    For more information, see Managing Cluster Termination in the Amazon EMR Management Guide.

    " + }, + "SetUnhealthyNodeReplacement":{ + "name":"SetUnhealthyNodeReplacement", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetUnhealthyNodeReplacementInput"}, + "errors":[ + {"shape":"InternalServerError"} + ], + "documentation":"

    Specify whether to enable unhealthy node replacement, which lets Amazon EMR gracefully replace core nodes on a cluster if any nodes become unhealthy. For example, a node becomes unhealthy if disk usage is above 90%. If unhealthy node replacement is on and TerminationProtected are off, Amazon EMR immediately terminates the unhealthy core nodes. To use unhealthy node replacement and retain unhealthy core nodes, use to turn on termination protection. In such cases, Amazon EMR adds the unhealthy nodes to a denylist, reducing job interruptions and failures.

    If unhealthy node replacement is on, Amazon EMR notifies YARN and other applications on the cluster to stop scheduling tasks with these nodes, moves the data, and then terminates the nodes.

    For more information, see graceful node replacement in the Amazon EMR Management Guide.

    " }, "SetVisibleToAllUsers":{ "name":"SetVisibleToAllUsers", @@ -1238,6 +1250,10 @@ "shape":"Boolean", "documentation":"

    Indicates whether Amazon EMR will lock the cluster to prevent the Amazon EC2 instances from being terminated by an API call or user intervention, or in the event of a cluster error.

    " }, + "UnhealthyNodeReplacement":{ + "shape":"BooleanObject", + "documentation":"

    Indicates whether Amazon EMR should gracefully replace Amazon EC2 core instances that have degraded within the cluster.

    " + }, "VisibleToAllUsers":{ "shape":"Boolean", "documentation":"

    Indicates whether the cluster is visible to IAM principals in the Amazon Web Services account associated with the cluster. When true, IAM principals in the Amazon Web Services account can perform Amazon EMR cluster actions on the cluster that their IAM policies allow. When false, only the IAM principal that created the cluster and the Amazon Web Services account root user can perform Amazon EMR actions, regardless of IAM permissions policies attached to other IAM principals.

    The default value is true if a value is not provided when creating a cluster using the Amazon EMR API RunJobFlow command, the CLI create-cluster command, or the Amazon Web Services Management Console.

    " @@ -3359,6 +3375,10 @@ "shape":"Boolean", "documentation":"

    Specifies whether to lock the cluster to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job-flow error.

    " }, + "UnhealthyNodeReplacement":{ + "shape":"BooleanObject", + "documentation":"

    Indicates whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster.

    " + }, "HadoopVersion":{ "shape":"XmlStringMaxLen256", "documentation":"

    Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop version for the cluster. Valid inputs are \"0.18\" (no longer maintained), \"0.20\" (no longer maintained), \"0.20.205\" (no longer maintained), \"1.0.3\", \"2.2.0\", or \"2.4.0\". If you do not set this value, the default of 0.18 is used, unless the AmiVersion parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.

    " @@ -3450,6 +3470,10 @@ "shape":"Boolean", "documentation":"

    Specifies whether the Amazon EC2 instances in the cluster are protected from termination by API calls, user intervention, or in the event of a job-flow error.

    " }, + "UnhealthyNodeReplacement":{ + "shape":"BooleanObject", + "documentation":"

    Indicates whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster.

    " + }, "HadoopVersion":{ "shape":"XmlStringMaxLen256", "documentation":"

    The Hadoop version for the cluster.

    " @@ -4895,6 +4919,23 @@ }, "documentation":"

    The input argument to the TerminationProtection operation.

    " }, + "SetUnhealthyNodeReplacementInput":{ + "type":"structure", + "required":[ + "JobFlowIds", + "UnhealthyNodeReplacement" + ], + "members":{ + "JobFlowIds":{ + "shape":"XmlStringList", + "documentation":"

    The list of strings that uniquely identify the clusters for which to turn on unhealthy node replacement. You can get these identifiers by running the RunJobFlow or the DescribeJobFlows operations.

    " + }, + "UnhealthyNodeReplacement":{ + "shape":"BooleanObject", + "documentation":"

    Indicates whether to turn on or turn off graceful unhealthy node replacement.

    " + } + } + }, "SetVisibleToAllUsersInput":{ "type":"structure", "required":[ diff --git a/services/emrcontainers/pom.xml b/services/emrcontainers/pom.xml index b719f53b29c1..029cad136a7b 100644 --- a/services/emrcontainers/pom.xml +++ b/services/emrcontainers/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT emrcontainers AWS Java SDK :: Services :: EMR Containers diff --git a/services/emrcontainers/src/main/resources/codegen-resources/customization.config b/services/emrcontainers/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/emrcontainers/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/emrserverless/pom.xml b/services/emrserverless/pom.xml index 1d7ec5572d02..01e243f463e3 100644 --- a/services/emrserverless/pom.xml +++ b/services/emrserverless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT emrserverless AWS Java SDK :: Services :: EMR Serverless diff --git a/services/emrserverless/src/main/resources/codegen-resources/customization.config b/services/emrserverless/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/emrserverless/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/entityresolution/pom.xml b/services/entityresolution/pom.xml index 41e0ade820e0..f15e2d1d1fb2 100644 --- a/services/entityresolution/pom.xml +++ b/services/entityresolution/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT entityresolution AWS Java SDK :: Services :: Entity Resolution diff --git a/services/entityresolution/src/main/resources/codegen-resources/customization.config b/services/entityresolution/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/entityresolution/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/eventbridge/pom.xml b/services/eventbridge/pom.xml index 459005ad3451..f09e17c2ed11 100644 --- a/services/eventbridge/pom.xml +++ b/services/eventbridge/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT eventbridge AWS Java SDK :: Services :: EventBridge diff --git a/services/eventbridge/src/main/resources/codegen-resources/customization.config b/services/eventbridge/src/main/resources/codegen-resources/customization.config index dbe25a828440..9c2ceb126913 100644 --- a/services/eventbridge/src/main/resources/codegen-resources/customization.config +++ b/services/eventbridge/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,9 @@ { - "enableEndpointAuthSchemeParams": true, - "allowedEndpointAuthSchemeParams": [ - "EndpointId" - ] + "enableEndpointAuthSchemeParams": true, + "allowedEndpointAuthSchemeParams": [ + "EndpointId" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/evidently/pom.xml b/services/evidently/pom.xml index ba284bba2399..d82c701ab855 100644 --- a/services/evidently/pom.xml +++ b/services/evidently/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT evidently AWS Java SDK :: Services :: Evidently diff --git a/services/evidently/src/main/resources/codegen-resources/customization.config b/services/evidently/src/main/resources/codegen-resources/customization.config index 0e729acd0371..47a49338406e 100644 --- a/services/evidently/src/main/resources/codegen-resources/customization.config +++ b/services/evidently/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,4 @@ { - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true } diff --git a/services/finspace/pom.xml b/services/finspace/pom.xml index ebacd96da99e..1e50a457eb5b 100644 --- a/services/finspace/pom.xml +++ b/services/finspace/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT finspace AWS Java SDK :: Services :: Finspace diff --git a/services/finspace/src/main/resources/codegen-resources/customization.config b/services/finspace/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/finspace/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/finspace/src/main/resources/codegen-resources/service-2.json b/services/finspace/src/main/resources/codegen-resources/service-2.json index 878f7f8789c3..f9e92e2d8cde 100644 --- a/services/finspace/src/main/resources/codegen-resources/service-2.json +++ b/services/finspace/src/main/resources/codegen-resources/service-2.json @@ -3347,13 +3347,13 @@ "type":"string", "max":50, "min":1, - "pattern":"^(?![Aa][Ww][Ss])(s|([a-zA-Z][a-zA-Z0-9_]+))" + "pattern":"^(?![Aa][Ww][Ss])(s|([a-zA-Z][a-zA-Z0-9_]+))|(AWS_ZIP_DEFAULT)" }, "KxCommandLineArgumentValue":{ "type":"string", "max":50, "min":1, - "pattern":"^[a-zA-Z0-9_:./]+$" + "pattern":"^[a-zA-Z0-9_:./,]+$" }, "KxCommandLineArguments":{ "type":"list", diff --git a/services/finspacedata/pom.xml b/services/finspacedata/pom.xml index 67eafbbdedea..994b8811a1b8 100644 --- a/services/finspacedata/pom.xml +++ b/services/finspacedata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT finspacedata AWS Java SDK :: Services :: Finspace Data diff --git a/services/finspacedata/src/main/resources/codegen-resources/customization.config b/services/finspacedata/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/finspacedata/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/firehose/pom.xml b/services/firehose/pom.xml index f7846b2882ee..7b6cdd9249b4 100644 --- a/services/firehose/pom.xml +++ b/services/firehose/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT firehose AWS Java SDK :: Services :: Amazon Kinesis Firehose diff --git a/services/firehose/src/main/resources/codegen-resources/customization.config b/services/firehose/src/main/resources/codegen-resources/customization.config index ae78a94eb69d..dca3760bfd3f 100644 --- a/services/firehose/src/main/resources/codegen-resources/customization.config +++ b/services/firehose/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listDeliveryStreams" - ] + ], + "useSraAuth": true } diff --git a/services/firehose/src/main/resources/codegen-resources/service-2.json b/services/firehose/src/main/resources/codegen-resources/service-2.json index e7117e9376cc..db142d3f0474 100644 --- a/services/firehose/src/main/resources/codegen-resources/service-2.json +++ b/services/firehose/src/main/resources/codegen-resources/service-2.json @@ -27,7 +27,7 @@ {"shape":"ResourceInUseException"}, {"shape":"InvalidKMSResourceException"} ], - "documentation":"

    Creates a Kinesis Data Firehose delivery stream.

    By default, you can create up to 50 delivery streams per Amazon Web Services Region.

    This is an asynchronous operation that immediately returns. The initial status of the delivery stream is CREATING. After the delivery stream is created, its status is ACTIVE and it now accepts data. If the delivery stream creation fails, the status transitions to CREATING_FAILED. Attempts to send data to a delivery stream that is not in the ACTIVE state cause an exception. To check the state of a delivery stream, use DescribeDeliveryStream.

    If the status of a delivery stream is CREATING_FAILED, this status doesn't change, and you can't invoke CreateDeliveryStream again on it. However, you can invoke the DeleteDeliveryStream operation to delete it.

    A Kinesis Data Firehose delivery stream can be configured to receive records directly from providers using PutRecord or PutRecordBatch, or it can be configured to use an existing Kinesis stream as its source. To specify a Kinesis data stream as input, set the DeliveryStreamType parameter to KinesisStreamAsSource, and provide the Kinesis stream Amazon Resource Name (ARN) and role ARN in the KinesisStreamSourceConfiguration parameter.

    To create a delivery stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput in your request. This is optional. You can also invoke StartDeliveryStreamEncryption to turn on SSE for an existing delivery stream that doesn't have SSE enabled.

    A delivery stream is configured with a single destination, such as Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch Serverless, Splunk, and any custom HTTP endpoint or HTTP endpoints owned by or supported by third-party service providers, including Datadog, Dynatrace, LogicMonitor, MongoDB, New Relic, and Sumo Logic. You must specify only one of the following destination configuration parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration, ElasticsearchDestinationConfiguration, RedshiftDestinationConfiguration, or SplunkDestinationConfiguration.

    When you specify S3DestinationConfiguration, you can also provide the following optional values: BufferingHints, EncryptionConfiguration, and CompressionFormat. By default, if no BufferingHints value is provided, Kinesis Data Firehose buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied first. BufferingHints is a hint, so there are some cases where the service cannot adhere to these conditions strictly. For example, record boundaries might be such that the size is a little over or under the configured buffering size. By default, no encryption is performed. We strongly recommend that you enable encryption to ensure secure data storage in Amazon S3.

    A few notes about Amazon Redshift as a destination:

    • An Amazon Redshift destination requires an S3 bucket as intermediate location. Kinesis Data Firehose first delivers data to Amazon S3 and then uses COPY syntax to load data into an Amazon Redshift table. This is specified in the RedshiftDestinationConfiguration.S3Configuration parameter.

    • The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration because the Amazon Redshift COPY operation that reads from the S3 bucket doesn't support these compression formats.

    • We strongly recommend that you use the user name and password you provide exclusively with Kinesis Data Firehose, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions.

    Kinesis Data Firehose assumes the IAM role that is configured as part of the destination. The role should allow the Kinesis Data Firehose principal to assume the role, and the role should have permissions that allow the service to deliver the data. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination in the Amazon Kinesis Data Firehose Developer Guide.

    " + "documentation":"

    Creates a Firehose delivery stream.

    By default, you can create up to 50 delivery streams per Amazon Web Services Region.

    This is an asynchronous operation that immediately returns. The initial status of the delivery stream is CREATING. After the delivery stream is created, its status is ACTIVE and it now accepts data. If the delivery stream creation fails, the status transitions to CREATING_FAILED. Attempts to send data to a delivery stream that is not in the ACTIVE state cause an exception. To check the state of a delivery stream, use DescribeDeliveryStream.

    If the status of a delivery stream is CREATING_FAILED, this status doesn't change, and you can't invoke CreateDeliveryStream again on it. However, you can invoke the DeleteDeliveryStream operation to delete it.

    A Firehose delivery stream can be configured to receive records directly from providers using PutRecord or PutRecordBatch, or it can be configured to use an existing Kinesis stream as its source. To specify a Kinesis data stream as input, set the DeliveryStreamType parameter to KinesisStreamAsSource, and provide the Kinesis stream Amazon Resource Name (ARN) and role ARN in the KinesisStreamSourceConfiguration parameter.

    To create a delivery stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput in your request. This is optional. You can also invoke StartDeliveryStreamEncryption to turn on SSE for an existing delivery stream that doesn't have SSE enabled.

    A delivery stream is configured with a single destination, such as Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch Serverless, Splunk, and any custom HTTP endpoint or HTTP endpoints owned by or supported by third-party service providers, including Datadog, Dynatrace, LogicMonitor, MongoDB, New Relic, and Sumo Logic. You must specify only one of the following destination configuration parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration, ElasticsearchDestinationConfiguration, RedshiftDestinationConfiguration, or SplunkDestinationConfiguration.

    When you specify S3DestinationConfiguration, you can also provide the following optional values: BufferingHints, EncryptionConfiguration, and CompressionFormat. By default, if no BufferingHints value is provided, Firehose buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied first. BufferingHints is a hint, so there are some cases where the service cannot adhere to these conditions strictly. For example, record boundaries might be such that the size is a little over or under the configured buffering size. By default, no encryption is performed. We strongly recommend that you enable encryption to ensure secure data storage in Amazon S3.

    A few notes about Amazon Redshift as a destination:

    • An Amazon Redshift destination requires an S3 bucket as intermediate location. Firehose first delivers data to Amazon S3 and then uses COPY syntax to load data into an Amazon Redshift table. This is specified in the RedshiftDestinationConfiguration.S3Configuration parameter.

    • The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration because the Amazon Redshift COPY operation that reads from the S3 bucket doesn't support these compression formats.

    • We strongly recommend that you use the user name and password you provide exclusively with Firehose, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions.

    Firehose assumes the IAM role that is configured as part of the destination. The role should allow the Firehose principal to assume the role, and the role should have permissions that allow the service to deliver the data. For more information, see Grant Firehose Access to an Amazon S3 Destination in the Amazon Firehose Developer Guide.

    " }, "DeleteDeliveryStream":{ "name":"DeleteDeliveryStream", @@ -41,7 +41,7 @@ {"shape":"ResourceInUseException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

    Deletes a delivery stream and its data.

    To check the state of a delivery stream, use DescribeDeliveryStream. You can delete a delivery stream only if it is in one of the following states: ACTIVE, DELETING, CREATING_FAILED, or DELETING_FAILED. You can't delete a delivery stream that is in the CREATING state. While the deletion request is in process, the delivery stream is in the DELETING state.

    While the delivery stream is in the DELETING state, the service might continue to accept records, but it doesn't make any guarantees with respect to delivering the data. Therefore, as a best practice, first stop any applications that are sending records before you delete a delivery stream.

    " + "documentation":"

    Deletes a delivery stream and its data.

    You can delete a delivery stream only if it is in one of the following states: ACTIVE, DELETING, CREATING_FAILED, or DELETING_FAILED. You can't delete a delivery stream that is in the CREATING state. To check the state of a delivery stream, use DescribeDeliveryStream.

    DeleteDeliveryStream is an asynchronous API. When an API request to DeleteDeliveryStream succeeds, the delivery stream is marked for deletion, and it goes into the DELETING state.While the delivery stream is in the DELETING state, the service might continue to accept records, but it doesn't make any guarantees with respect to delivering the data. Therefore, as a best practice, first stop any applications that are sending records before you delete a delivery stream.

    Removal of a delivery stream that is in the DELETING state is a low priority operation for the service. A stream may remain in the DELETING state for several minutes. Therefore, as a best practice, applications should not wait for streams in the DELETING state to be removed.

    " }, "DescribeDeliveryStream":{ "name":"DescribeDeliveryStream", @@ -96,7 +96,7 @@ {"shape":"InvalidSourceException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

    Writes a single data record into an Amazon Kinesis Data Firehose delivery stream. To write multiple data records into a delivery stream, use PutRecordBatch. Applications using these operations are referred to as producers.

    By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. If you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits and how to request an increase, see Amazon Kinesis Data Firehose Limits.

    Kinesis Data Firehose accumulates and publishes a particular metric for a customer account in one minute intervals. It is possible that the bursts of incoming bytes/records ingested to a delivery stream last only for a few seconds. Due to this, the actual spikes in the traffic might not be fully visible in the customer's 1 minute CloudWatch metrics.

    You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KiB in size, and any kind of data. For example, it can be a segment from a log file, geographic location data, website clickstream data, and so on.

    Kinesis Data Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\\n) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination.

    The PutRecord operation returns a RecordId, which is a unique string assigned to each record. Producer applications can use this ID for purposes such as auditability and investigation.

    If the PutRecord operation throws a ServiceUnavailableException, the API is automatically reinvoked (retried) 3 times. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream.

    Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) can result in data duplicates. For larger data assets, allow for a longer time out before retrying Put API operations.

    Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they are added to a delivery stream as it tries to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available.

    Don't concatenate two or more base64 strings to form the data fields of your records. Instead, concatenate the raw data, then perform base64 encoding.

    " + "documentation":"

    Writes a single data record into an Amazon Firehose delivery stream. To write multiple data records into a delivery stream, use PutRecordBatch. Applications using these operations are referred to as producers.

    By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. If you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits and how to request an increase, see Amazon Firehose Limits.

    Firehose accumulates and publishes a particular metric for a customer account in one minute intervals. It is possible that the bursts of incoming bytes/records ingested to a delivery stream last only for a few seconds. Due to this, the actual spikes in the traffic might not be fully visible in the customer's 1 minute CloudWatch metrics.

    You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KiB in size, and any kind of data. For example, it can be a segment from a log file, geographic location data, website clickstream data, and so on.

    Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\\n) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination.

    The PutRecord operation returns a RecordId, which is a unique string assigned to each record. Producer applications can use this ID for purposes such as auditability and investigation.

    If the PutRecord operation throws a ServiceUnavailableException, the API is automatically reinvoked (retried) 3 times. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream.

    Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) can result in data duplicates. For larger data assets, allow for a longer time out before retrying Put API operations.

    Data records sent to Firehose are stored for 24 hours from the time they are added to a delivery stream as it tries to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available.

    Don't concatenate two or more base64 strings to form the data fields of your records. Instead, concatenate the raw data, then perform base64 encoding.

    " }, "PutRecordBatch":{ "name":"PutRecordBatch", @@ -113,7 +113,7 @@ {"shape":"InvalidSourceException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

    Writes multiple data records into a delivery stream in a single call, which can achieve higher throughput per producer than when writing single records. To write single data records into a delivery stream, use PutRecord. Applications using these operations are referred to as producers.

    Kinesis Data Firehose accumulates and publishes a particular metric for a customer account in one minute intervals. It is possible that the bursts of incoming bytes/records ingested to a delivery stream last only for a few seconds. Due to this, the actual spikes in the traffic might not be fully visible in the customer's 1 minute CloudWatch metrics.

    For information about service quota, see Amazon Kinesis Data Firehose Quota.

    Each PutRecordBatch request supports up to 500 records. Each record in the request can be as large as 1,000 KB (before base64 encoding), up to a limit of 4 MB for the entire request. These limits cannot be changed.

    You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data. For example, it could be a segment from a log file, geographic location data, website clickstream data, and so on.

    Kinesis Data Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\\n) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination.

    The PutRecordBatch response includes a count of failed records, FailedPutCount, and an array of responses, RequestResponses. Even if the PutRecordBatch call succeeds, the value of FailedPutCount may be greater than 0, indicating that there are records for which the operation didn't succeed. Each entry in the RequestResponses array provides additional information about the processed record. It directly correlates with a record in the request array using the same ordering, from the top to the bottom. The response array always includes the same number of records as the request array. RequestResponses includes both successfully and unsuccessfully processed records. Kinesis Data Firehose tries to process all records in each PutRecordBatch request. A single record failure does not stop the processing of subsequent records.

    A successfully processed record includes a RecordId value, which is unique for the record. An unsuccessfully processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error, and is one of the following values: ServiceUnavailableException or InternalFailure. ErrorMessage provides more detailed information about the error.

    If there is an internal server error or a timeout, the write might have completed or it might have failed. If FailedPutCount is greater than 0, retry the request, resending only those records that might have failed processing. This minimizes the possible duplicate records and also reduces the total bytes sent (and corresponding charges). We recommend that you handle any duplicates at the destination.

    If PutRecordBatch throws ServiceUnavailableException, the API is automatically reinvoked (retried) 3 times. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream.

    Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) can result in data duplicates. For larger data assets, allow for a longer time out before retrying Put API operations.

    Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available.

    Don't concatenate two or more base64 strings to form the data fields of your records. Instead, concatenate the raw data, then perform base64 encoding.

    " + "documentation":"

    Writes multiple data records into a delivery stream in a single call, which can achieve higher throughput per producer than when writing single records. To write single data records into a delivery stream, use PutRecord. Applications using these operations are referred to as producers.

    Firehose accumulates and publishes a particular metric for a customer account in one minute intervals. It is possible that the bursts of incoming bytes/records ingested to a delivery stream last only for a few seconds. Due to this, the actual spikes in the traffic might not be fully visible in the customer's 1 minute CloudWatch metrics.

    For information about service quota, see Amazon Firehose Quota.

    Each PutRecordBatch request supports up to 500 records. Each record in the request can be as large as 1,000 KB (before base64 encoding), up to a limit of 4 MB for the entire request. These limits cannot be changed.

    You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data. For example, it could be a segment from a log file, geographic location data, website clickstream data, and so on.

    Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\\n) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination.

    The PutRecordBatch response includes a count of failed records, FailedPutCount, and an array of responses, RequestResponses. Even if the PutRecordBatch call succeeds, the value of FailedPutCount may be greater than 0, indicating that there are records for which the operation didn't succeed. Each entry in the RequestResponses array provides additional information about the processed record. It directly correlates with a record in the request array using the same ordering, from the top to the bottom. The response array always includes the same number of records as the request array. RequestResponses includes both successfully and unsuccessfully processed records. Firehose tries to process all records in each PutRecordBatch request. A single record failure does not stop the processing of subsequent records.

    A successfully processed record includes a RecordId value, which is unique for the record. An unsuccessfully processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error, and is one of the following values: ServiceUnavailableException or InternalFailure. ErrorMessage provides more detailed information about the error.

    If there is an internal server error or a timeout, the write might have completed or it might have failed. If FailedPutCount is greater than 0, retry the request, resending only those records that might have failed processing. This minimizes the possible duplicate records and also reduces the total bytes sent (and corresponding charges). We recommend that you handle any duplicates at the destination.

    If PutRecordBatch throws ServiceUnavailableException, the API is automatically reinvoked (retried) 3 times. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream.

    Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) can result in data duplicates. For larger data assets, allow for a longer time out before retrying Put API operations.

    Data records sent to Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available.

    Don't concatenate two or more base64 strings to form the data fields of your records. Instead, concatenate the raw data, then perform base64 encoding.

    " }, "StartDeliveryStreamEncryption":{ "name":"StartDeliveryStreamEncryption", @@ -130,7 +130,7 @@ {"shape":"LimitExceededException"}, {"shape":"InvalidKMSResourceException"} ], - "documentation":"

    Enables server-side encryption (SSE) for the delivery stream.

    This operation is asynchronous. It returns immediately. When you invoke it, Kinesis Data Firehose first sets the encryption status of the stream to ENABLING, and then to ENABLED. The encryption status of a delivery stream is the Status property in DeliveryStreamEncryptionConfiguration. If the operation fails, the encryption status changes to ENABLING_FAILED. You can continue to read and write data to your delivery stream while the encryption status is ENABLING, but the data is not encrypted. It can take up to 5 seconds after the encryption status changes to ENABLED before all records written to the delivery stream are encrypted. To find out whether a record or a batch of records was encrypted, check the response elements PutRecordOutput$Encrypted and PutRecordBatchOutput$Encrypted, respectively.

    To check the encryption status of a delivery stream, use DescribeDeliveryStream.

    Even if encryption is currently enabled for a delivery stream, you can still invoke this operation on it to change the ARN of the CMK or both its type and ARN. If you invoke this method to change the CMK, and the old CMK is of type CUSTOMER_MANAGED_CMK, Kinesis Data Firehose schedules the grant it had on the old CMK for retirement. If the new CMK is of type CUSTOMER_MANAGED_CMK, Kinesis Data Firehose creates a grant that enables it to use the new CMK to encrypt and decrypt data and to manage the grant.

    For the KMS grant creation to be successful, Kinesis Data Firehose APIs StartDeliveryStreamEncryption and CreateDeliveryStream should not be called with session credentials that are more than 6 hours old.

    If a delivery stream already has encryption enabled and then you invoke this operation to change the ARN of the CMK or both its type and ARN and you get ENABLING_FAILED, this only means that the attempt to change the CMK failed. In this case, encryption remains enabled with the old CMK.

    If the encryption status of your delivery stream is ENABLING_FAILED, you can invoke this operation again with a valid CMK. The CMK must be enabled and the key policy mustn't explicitly deny the permission for Kinesis Data Firehose to invoke KMS encrypt and decrypt operations.

    You can enable SSE for a delivery stream only if it's a delivery stream that uses DirectPut as its source.

    The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption operations have a combined limit of 25 calls per delivery stream per 24 hours. For example, you reach the limit if you call StartDeliveryStreamEncryption 13 times and StopDeliveryStreamEncryption 12 times for the same delivery stream in a 24-hour period.

    " + "documentation":"

    Enables server-side encryption (SSE) for the delivery stream.

    This operation is asynchronous. It returns immediately. When you invoke it, Firehose first sets the encryption status of the stream to ENABLING, and then to ENABLED. The encryption status of a delivery stream is the Status property in DeliveryStreamEncryptionConfiguration. If the operation fails, the encryption status changes to ENABLING_FAILED. You can continue to read and write data to your delivery stream while the encryption status is ENABLING, but the data is not encrypted. It can take up to 5 seconds after the encryption status changes to ENABLED before all records written to the delivery stream are encrypted. To find out whether a record or a batch of records was encrypted, check the response elements PutRecordOutput$Encrypted and PutRecordBatchOutput$Encrypted, respectively.

    To check the encryption status of a delivery stream, use DescribeDeliveryStream.

    Even if encryption is currently enabled for a delivery stream, you can still invoke this operation on it to change the ARN of the CMK or both its type and ARN. If you invoke this method to change the CMK, and the old CMK is of type CUSTOMER_MANAGED_CMK, Firehose schedules the grant it had on the old CMK for retirement. If the new CMK is of type CUSTOMER_MANAGED_CMK, Firehose creates a grant that enables it to use the new CMK to encrypt and decrypt data and to manage the grant.

    For the KMS grant creation to be successful, Firehose APIs StartDeliveryStreamEncryption and CreateDeliveryStream should not be called with session credentials that are more than 6 hours old.

    If a delivery stream already has encryption enabled and then you invoke this operation to change the ARN of the CMK or both its type and ARN and you get ENABLING_FAILED, this only means that the attempt to change the CMK failed. In this case, encryption remains enabled with the old CMK.

    If the encryption status of your delivery stream is ENABLING_FAILED, you can invoke this operation again with a valid CMK. The CMK must be enabled and the key policy mustn't explicitly deny the permission for Firehose to invoke KMS encrypt and decrypt operations.

    You can enable SSE for a delivery stream only if it's a delivery stream that uses DirectPut as its source.

    The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption operations have a combined limit of 25 calls per delivery stream per 24 hours. For example, you reach the limit if you call StartDeliveryStreamEncryption 13 times and StopDeliveryStreamEncryption 12 times for the same delivery stream in a 24-hour period.

    " }, "StopDeliveryStreamEncryption":{ "name":"StopDeliveryStreamEncryption", @@ -146,7 +146,7 @@ {"shape":"InvalidArgumentException"}, {"shape":"LimitExceededException"} ], - "documentation":"

    Disables server-side encryption (SSE) for the delivery stream.

    This operation is asynchronous. It returns immediately. When you invoke it, Kinesis Data Firehose first sets the encryption status of the stream to DISABLING, and then to DISABLED. You can continue to read and write data to your stream while its status is DISABLING. It can take up to 5 seconds after the encryption status changes to DISABLED before all records written to the delivery stream are no longer subject to encryption. To find out whether a record or a batch of records was encrypted, check the response elements PutRecordOutput$Encrypted and PutRecordBatchOutput$Encrypted, respectively.

    To check the encryption state of a delivery stream, use DescribeDeliveryStream.

    If SSE is enabled using a customer managed CMK and then you invoke StopDeliveryStreamEncryption, Kinesis Data Firehose schedules the related KMS grant for retirement and then retires it after it ensures that it is finished delivering records to the destination.

    The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption operations have a combined limit of 25 calls per delivery stream per 24 hours. For example, you reach the limit if you call StartDeliveryStreamEncryption 13 times and StopDeliveryStreamEncryption 12 times for the same delivery stream in a 24-hour period.

    " + "documentation":"

    Disables server-side encryption (SSE) for the delivery stream.

    This operation is asynchronous. It returns immediately. When you invoke it, Firehose first sets the encryption status of the stream to DISABLING, and then to DISABLED. You can continue to read and write data to your stream while its status is DISABLING. It can take up to 5 seconds after the encryption status changes to DISABLED before all records written to the delivery stream are no longer subject to encryption. To find out whether a record or a batch of records was encrypted, check the response elements PutRecordOutput$Encrypted and PutRecordBatchOutput$Encrypted, respectively.

    To check the encryption state of a delivery stream, use DescribeDeliveryStream.

    If SSE is enabled using a customer managed CMK and then you invoke StopDeliveryStreamEncryption, Firehose schedules the related KMS grant for retirement and then retires it after it ensures that it is finished delivering records to the destination.

    The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption operations have a combined limit of 25 calls per delivery stream per 24 hours. For example, you reach the limit if you call StartDeliveryStreamEncryption 13 times and StopDeliveryStreamEncryption 12 times for the same delivery stream in a 24-hour period.

    " }, "TagDeliveryStream":{ "name":"TagDeliveryStream", @@ -194,7 +194,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ConcurrentModificationException"} ], - "documentation":"

    Updates the specified destination of the specified delivery stream.

    Use this operation to change the destination type (for example, to replace the Amazon S3 destination with Amazon Redshift) or change the parameters associated with a destination (for example, to change the bucket name of the Amazon S3 destination). The update might not occur immediately. The target delivery stream remains active while the configurations are updated, so data writes to the delivery stream can continue during this process. The updated configurations are usually effective within a few minutes.

    Switching between Amazon OpenSearch Service and other services is not supported. For an Amazon OpenSearch Service destination, you can only update to another Amazon OpenSearch Service destination.

    If the destination type is the same, Kinesis Data Firehose merges the configuration parameters specified with the destination configuration that already exists on the delivery stream. If any of the parameters are not specified in the call, the existing values are retained. For example, in the Amazon S3 destination, if EncryptionConfiguration is not specified, then the existing EncryptionConfiguration is maintained on the destination.

    If the destination type is not the same, for example, changing the destination from Amazon S3 to Amazon Redshift, Kinesis Data Firehose does not merge any parameters. In this case, all parameters must be specified.

    Kinesis Data Firehose uses CurrentDeliveryStreamVersionId to avoid race conditions and conflicting merges. This is a required field, and the service updates the configuration only if the existing configuration has a version ID that matches. After the update is applied successfully, the version ID is updated, and can be retrieved using DescribeDeliveryStream. Use the new version ID to set CurrentDeliveryStreamVersionId in the next call.

    " + "documentation":"

    Updates the specified destination of the specified delivery stream.

    Use this operation to change the destination type (for example, to replace the Amazon S3 destination with Amazon Redshift) or change the parameters associated with a destination (for example, to change the bucket name of the Amazon S3 destination). The update might not occur immediately. The target delivery stream remains active while the configurations are updated, so data writes to the delivery stream can continue during this process. The updated configurations are usually effective within a few minutes.

    Switching between Amazon OpenSearch Service and other services is not supported. For an Amazon OpenSearch Service destination, you can only update to another Amazon OpenSearch Service destination.

    If the destination type is the same, Firehose merges the configuration parameters specified with the destination configuration that already exists on the delivery stream. If any of the parameters are not specified in the call, the existing values are retained. For example, in the Amazon S3 destination, if EncryptionConfiguration is not specified, then the existing EncryptionConfiguration is maintained on the destination.

    If the destination type is not the same, for example, changing the destination from Amazon S3 to Amazon Redshift, Firehose does not merge any parameters. In this case, all parameters must be specified.

    Firehose uses CurrentDeliveryStreamVersionId to avoid race conditions and conflicting merges. This is a required field, and the service updates the configuration only if the existing configuration has a version ID that matches. After the update is applied successfully, the version ID is updated, and can be retrieved using DescribeDeliveryStream. Use the new version ID to set CurrentDeliveryStreamVersionId in the next call.

    " } }, "shapes":{ @@ -244,7 +244,7 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents.

    " }, "CollectionEndpoint":{ "shape":"AmazonOpenSearchServerlessCollectionEndpoint", @@ -260,11 +260,11 @@ }, "RetryOptions":{ "shape":"AmazonOpenSearchServerlessRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver documents to the Serverless offering for Amazon OpenSearch Service. The default value is 300 (5 minutes).

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver documents to the Serverless offering for Amazon OpenSearch Service. The default value is 300 (5 minutes).

    " }, "S3BackupMode":{ "shape":"AmazonOpenSearchServerlessS3BackupMode", - "documentation":"

    Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Kinesis Data Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with AmazonOpenSearchService-failed/ appended to the key prefix. When set to AllDocuments, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents with AmazonOpenSearchService-failed/ appended to the prefix.

    " + "documentation":"

    Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with AmazonOpenSearchService-failed/ appended to the key prefix. When set to AllDocuments, Firehose delivers all incoming records to Amazon S3, and also writes failed documents with AmazonOpenSearchService-failed/ appended to the prefix.

    " }, "S3Configuration":{"shape":"S3DestinationConfiguration"}, "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, @@ -312,7 +312,7 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents.

    " }, "CollectionEndpoint":{ "shape":"AmazonOpenSearchServerlessCollectionEndpoint", @@ -328,7 +328,7 @@ }, "RetryOptions":{ "shape":"AmazonOpenSearchServerlessRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver documents to the Serverless offering for Amazon OpenSearch Service. The default value is 300 (5 minutes).

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver documents to the Serverless offering for Amazon OpenSearch Service. The default value is 300 (5 minutes).

    " }, "S3Update":{"shape":"S3DestinationUpdate"}, "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, @@ -352,10 +352,10 @@ "members":{ "DurationInSeconds":{ "shape":"AmazonOpenSearchServerlessRetryDurationInSeconds", - "documentation":"

    After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time during which Kinesis Data Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

    " + "documentation":"

    After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time during which Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

    " } }, - "documentation":"

    Configures retry behavior in case Kinesis Data Firehose is unable to deliver documents to the Serverless offering for Amazon OpenSearch Service.

    " + "documentation":"

    Configures retry behavior in case Firehose is unable to deliver documents to the Serverless offering for Amazon OpenSearch Service.

    " }, "AmazonOpenSearchServerlessS3BackupMode":{ "type":"string", @@ -404,7 +404,7 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents.

    " }, "DomainARN":{ "shape":"AmazonopensearchserviceDomainARN", @@ -420,7 +420,7 @@ }, "TypeName":{ "shape":"AmazonopensearchserviceTypeName", - "documentation":"

    The Amazon OpenSearch Service type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Kinesis Data Firehose returns an error during run time.

    " + "documentation":"

    The Amazon OpenSearch Service type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Firehose returns an error during run time.

    " }, "IndexRotationPeriod":{ "shape":"AmazonopensearchserviceIndexRotationPeriod", @@ -432,11 +432,11 @@ }, "RetryOptions":{ "shape":"AmazonopensearchserviceRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).

    " }, "S3BackupMode":{ "shape":"AmazonopensearchserviceS3BackupMode", - "documentation":"

    Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Kinesis Data Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with AmazonOpenSearchService-failed/ appended to the key prefix. When set to AllDocuments, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents with AmazonOpenSearchService-failed/ appended to the prefix.

    " + "documentation":"

    Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with AmazonOpenSearchService-failed/ appended to the key prefix. When set to AllDocuments, Firehose delivers all incoming records to Amazon S3, and also writes failed documents with AmazonOpenSearchService-failed/ appended to the prefix.

    " }, "S3Configuration":{"shape":"S3DestinationConfiguration"}, "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, @@ -444,7 +444,7 @@ "VpcConfiguration":{"shape":"VpcConfiguration"}, "DocumentIdOptions":{ "shape":"DocumentIdOptions", - "documentation":"

    Indicates the method for setting up document ID. The supported methods are Kinesis Data Firehose generated document ID and OpenSearch Service generated document ID.

    " + "documentation":"

    Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.

    " } }, "documentation":"

    Describes the configuration of a destination in Amazon OpenSearch Service

    " @@ -462,7 +462,7 @@ }, "ClusterEndpoint":{ "shape":"AmazonopensearchserviceClusterEndpoint", - "documentation":"

    The endpoint to use when communicating with the cluster. Kinesis Data Firehose uses either this ClusterEndpoint or the DomainARN field to send data to Amazon OpenSearch Service.

    " + "documentation":"

    The endpoint to use when communicating with the cluster. Firehose uses either this ClusterEndpoint or the DomainARN field to send data to Amazon OpenSearch Service.

    " }, "IndexName":{ "shape":"AmazonopensearchserviceIndexName", @@ -494,7 +494,7 @@ "VpcConfigurationDescription":{"shape":"VpcConfigurationDescription"}, "DocumentIdOptions":{ "shape":"DocumentIdOptions", - "documentation":"

    Indicates the method for setting up document ID. The supported methods are Kinesis Data Firehose generated document ID and OpenSearch Service generated document ID.

    " + "documentation":"

    Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.

    " } }, "documentation":"

    The destination description in Amazon OpenSearch Service.

    " @@ -504,7 +504,7 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents.

    " }, "DomainARN":{ "shape":"AmazonopensearchserviceDomainARN", @@ -520,7 +520,7 @@ }, "TypeName":{ "shape":"AmazonopensearchserviceTypeName", - "documentation":"

    The Amazon OpenSearch Service type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Kinesis Data Firehose returns an error during runtime.

    If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery stream, Kinesis Data Firehose still delivers data to Elasticsearch with the old index name and type name. If you want to update your delivery stream with a new index name, provide an empty string for TypeName.

    " + "documentation":"

    The Amazon OpenSearch Service type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Firehose returns an error during runtime.

    If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery stream, Firehose still delivers data to Elasticsearch with the old index name and type name. If you want to update your delivery stream with a new index name, provide an empty string for TypeName.

    " }, "IndexRotationPeriod":{ "shape":"AmazonopensearchserviceIndexRotationPeriod", @@ -532,14 +532,14 @@ }, "RetryOptions":{ "shape":"AmazonopensearchserviceRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).

    " }, "S3Update":{"shape":"S3DestinationUpdate"}, "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"}, "DocumentIdOptions":{ "shape":"DocumentIdOptions", - "documentation":"

    Indicates the method for setting up document ID. The supported methods are Kinesis Data Firehose generated document ID and OpenSearch Service generated document ID.

    " + "documentation":"

    Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.

    " } }, "documentation":"

    Describes an update for a destination in Amazon OpenSearch Service.

    " @@ -576,10 +576,10 @@ "members":{ "DurationInSeconds":{ "shape":"AmazonopensearchserviceRetryDurationInSeconds", - "documentation":"

    After an initial failure to deliver to Amazon OpenSearch Service, the total amount of time during which Kinesis Data Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

    " + "documentation":"

    After an initial failure to deliver to Amazon OpenSearch Service, the total amount of time during which Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

    " } }, - "documentation":"

    Configures retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service.

    " + "documentation":"

    Configures retry behavior in case Firehose is unable to deliver documents to Amazon OpenSearch Service.

    " }, "AmazonopensearchserviceS3BackupMode":{ "type":"string", @@ -635,7 +635,7 @@ "documentation":"

    Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for SizeInMBs, and vice versa.

    " } }, - "documentation":"

    Describes hints for the buffering to perform before delivering data to the destination. These options are treated as hints, and therefore Kinesis Data Firehose might choose to use different values when it is optimal. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other.

    " + "documentation":"

    Describes hints for the buffering to perform before delivering data to the destination. These options are treated as hints, and therefore Firehose might choose to use different values when it is optimal. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other.

    " }, "CloudWatchLoggingOptions":{ "type":"structure", @@ -715,7 +715,7 @@ }, "CopyOptions":{ "shape":"CopyOptions", - "documentation":"

    Optional parameters to use with the Amazon Redshift COPY command. For more information, see the \"Optional Parameters\" section of Amazon Redshift COPY command. Some possible examples that would apply to Kinesis Data Firehose are as follows:

    delimiter '\\t' lzop; - fields are delimited with \"\\t\" (TAB character) and compressed using lzop.

    delimiter '|' - fields are delimited with \"|\" (this is the default delimiter).

    delimiter '|' escape - the delimiter should be escaped.

    fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6' - fields are fixed width in the source, with each width specified after every column in the table.

    JSON 's3://mybucket/jsonpaths.txt' - data is in JSON format, and the path specified is the format of the data.

    For more examples, see Amazon Redshift COPY command examples.

    " + "documentation":"

    Optional parameters to use with the Amazon Redshift COPY command. For more information, see the \"Optional Parameters\" section of Amazon Redshift COPY command. Some possible examples that would apply to Firehose are as follows:

    delimiter '\\t' lzop; - fields are delimited with \"\\t\" (TAB character) and compressed using lzop.

    delimiter '|' - fields are delimited with \"|\" (this is the default delimiter).

    delimiter '|' escape - the delimiter should be escaped.

    fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6' - fields are fixed width in the source, with each width specified after every column in the table.

    JSON 's3://mybucket/jsonpaths.txt' - data is in JSON format, and the path specified is the format of the data.

    For more examples, see Amazon Redshift COPY command examples.

    " } }, "documentation":"

    Describes a COPY command for Amazon Redshift.

    " @@ -799,6 +799,11 @@ } } }, + "CustomTimeZone":{ + "type":"string", + "max":50, + "min":0 + }, "Data":{ "type":"blob", "max":1024000, @@ -813,18 +818,18 @@ }, "InputFormatConfiguration":{ "shape":"InputFormatConfiguration", - "documentation":"

    Specifies the deserializer that you want Kinesis Data Firehose to use to convert the format of your data from JSON. This parameter is required if Enabled is set to true.

    " + "documentation":"

    Specifies the deserializer that you want Firehose to use to convert the format of your data from JSON. This parameter is required if Enabled is set to true.

    " }, "OutputFormatConfiguration":{ "shape":"OutputFormatConfiguration", - "documentation":"

    Specifies the serializer that you want Kinesis Data Firehose to use to convert the format of your data to the Parquet or ORC format. This parameter is required if Enabled is set to true.

    " + "documentation":"

    Specifies the serializer that you want Firehose to use to convert the format of your data to the Parquet or ORC format. This parameter is required if Enabled is set to true.

    " }, "Enabled":{ "shape":"BooleanObject", "documentation":"

    Defaults to true. Set it to false if you want to disable format conversion while preserving the configuration details.

    " } }, - "documentation":"

    Specifies that you want Kinesis Data Firehose to convert data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. Kinesis Data Firehose uses the serializer and deserializer that you specify, in addition to the column information from the Amazon Web Services Glue table, to deserialize your input data from JSON and then serialize it to the Parquet or ORC format. For more information, see Kinesis Data Firehose Record Format Conversion.

    " + "documentation":"

    Specifies that you want Firehose to convert data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. Firehose uses the serializer and deserializer that you specify, in addition to the column information from the Amazon Web Services Glue table, to deserialize your input data from JSON and then serialize it to the Parquet or ORC format. For more information, see Firehose Record Format Conversion.

    " }, "DataTableColumns":{ "type":"string", @@ -855,7 +860,7 @@ }, "AllowForceDelete":{ "shape":"BooleanObject", - "documentation":"

    Set this to true if you want to delete the delivery stream even if Kinesis Data Firehose is unable to retire the grant for the CMK. Kinesis Data Firehose might be unable to retire the grant due to a customer error, such as when the CMK or the grant are in an invalid state. If you force deletion, you can then use the RevokeGrant operation to revoke the grant you gave to Kinesis Data Firehose. If a failure to retire the grant happens due to an Amazon Web Services KMS issue, Kinesis Data Firehose keeps retrying the delete operation.

    The default value is false.

    " + "documentation":"

    Set this to true if you want to delete the delivery stream even if Firehose is unable to retire the grant for the CMK. Firehose might be unable to retire the grant due to a customer error, such as when the CMK or the grant are in an invalid state. If you force deletion, you can then use the RevokeGrant operation to revoke the grant you gave to Firehose. If a failure to retire the grant happens due to an Amazon Web Services KMS issue, Firehose keeps retrying the delete operation.

    The default value is false.

    " } } }, @@ -962,11 +967,11 @@ "members":{ "KeyARN":{ "shape":"AWSKMSKeyARN", - "documentation":"

    If you set KeyType to CUSTOMER_MANAGED_CMK, you must specify the Amazon Resource Name (ARN) of the CMK. If you set KeyType to Amazon Web Services_OWNED_CMK, Kinesis Data Firehose uses a service-account CMK.

    " + "documentation":"

    If you set KeyType to CUSTOMER_MANAGED_CMK, you must specify the Amazon Resource Name (ARN) of the CMK. If you set KeyType to Amazon Web Services_OWNED_CMK, Firehose uses a service-account CMK.

    " }, "KeyType":{ "shape":"KeyType", - "documentation":"

    Indicates the type of customer master key (CMK) to use for encryption. The default setting is Amazon Web Services_OWNED_CMK. For more information about CMKs, see Customer Master Keys (CMKs). When you invoke CreateDeliveryStream or StartDeliveryStreamEncryption with KeyType set to CUSTOMER_MANAGED_CMK, Kinesis Data Firehose invokes the Amazon KMS operation CreateGrant to create a grant that allows the Kinesis Data Firehose service to use the customer managed CMK to perform encryption and decryption. Kinesis Data Firehose manages that grant.

    When you invoke StartDeliveryStreamEncryption to change the CMK for a delivery stream that is encrypted with a customer managed CMK, Kinesis Data Firehose schedules the grant it had on the old CMK for retirement.

    You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery streams. If a CreateDeliveryStream or StartDeliveryStreamEncryption operation exceeds this limit, Kinesis Data Firehose throws a LimitExceededException.

    To encrypt your delivery stream, use symmetric CMKs. Kinesis Data Firehose doesn't support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see About Symmetric and Asymmetric CMKs in the Amazon Web Services Key Management Service developer guide.

    " + "documentation":"

    Indicates the type of customer master key (CMK) to use for encryption. The default setting is Amazon Web Services_OWNED_CMK. For more information about CMKs, see Customer Master Keys (CMKs). When you invoke CreateDeliveryStream or StartDeliveryStreamEncryption with KeyType set to CUSTOMER_MANAGED_CMK, Firehose invokes the Amazon KMS operation CreateGrant to create a grant that allows the Firehose service to use the customer managed CMK to perform encryption and decryption. Firehose manages that grant.

    When you invoke StartDeliveryStreamEncryption to change the CMK for a delivery stream that is encrypted with a customer managed CMK, Firehose schedules the grant it had on the old CMK for retirement.

    You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery streams. If a CreateDeliveryStream or StartDeliveryStreamEncryption operation exceeds this limit, Firehose throws a LimitExceededException.

    To encrypt your delivery stream, use symmetric CMKs. Firehose doesn't support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see About Symmetric and Asymmetric CMKs in the Amazon Web Services Key Management Service developer guide.

    " } }, "documentation":"

    Specifies the type and Amazon Resource Name (ARN) of the CMK to use for Server-Side Encryption (SSE).

    " @@ -1050,7 +1055,7 @@ }, "ExclusiveStartDestinationId":{ "shape":"DestinationId", - "documentation":"

    The ID of the destination to start returning the destination information. Kinesis Data Firehose supports one destination per delivery stream.

    " + "documentation":"

    The ID of the destination to start returning the destination information. Firehose supports one destination per delivery stream.

    " } } }, @@ -1074,14 +1079,14 @@ "members":{ "OpenXJsonSerDe":{ "shape":"OpenXJsonSerDe", - "documentation":"

    The OpenX SerDe. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the native Hive / HCatalog JsonSerDe.

    " + "documentation":"

    The OpenX SerDe. Used by Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the native Hive / HCatalog JsonSerDe.

    " }, "HiveJsonSerDe":{ "shape":"HiveJsonSerDe", - "documentation":"

    The native Hive / HCatalog JsonSerDe. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the OpenX SerDe.

    " + "documentation":"

    The native Hive / HCatalog JsonSerDe. Used by Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the OpenX SerDe.

    " } }, - "documentation":"

    The deserializer you want Kinesis Data Firehose to use for converting the input data from JSON. Kinesis Data Firehose then serializes the data to its final format using the Serializer. Kinesis Data Firehose supports two types of deserializers: the Apache Hive JSON SerDe and the OpenX JSON SerDe.

    " + "documentation":"

    The deserializer you want Firehose to use for converting the input data from JSON. Firehose then serializes the data to its final format using the Serializer. Firehose supports two types of deserializers: the Apache Hive JSON SerDe and the OpenX JSON SerDe.

    " }, "DestinationDescription":{ "type":"structure", @@ -1146,21 +1151,21 @@ "members":{ "DefaultDocumentIdFormat":{ "shape":"DefaultDocumentIdFormat", - "documentation":"

    When the FIREHOSE_DEFAULT option is chosen, Kinesis Data Firehose generates a unique document ID for each record based on a unique internal identifier. The generated document ID is stable across multiple delivery attempts, which helps prevent the same record from being indexed multiple times with different document IDs.

    When the NO_DOCUMENT_ID option is chosen, Kinesis Data Firehose does not include any document IDs in the requests it sends to the Amazon OpenSearch Service. This causes the Amazon OpenSearch Service domain to generate document IDs. In case of multiple delivery attempts, this may cause the same record to be indexed more than once with different document IDs. This option enables write-heavy operations, such as the ingestion of logs and observability data, to consume less resources in the Amazon OpenSearch Service domain, resulting in improved performance.

    " + "documentation":"

    When the FIREHOSE_DEFAULT option is chosen, Firehose generates a unique document ID for each record based on a unique internal identifier. The generated document ID is stable across multiple delivery attempts, which helps prevent the same record from being indexed multiple times with different document IDs.

    When the NO_DOCUMENT_ID option is chosen, Firehose does not include any document IDs in the requests it sends to the Amazon OpenSearch Service. This causes the Amazon OpenSearch Service domain to generate document IDs. In case of multiple delivery attempts, this may cause the same record to be indexed more than once with different document IDs. This option enables write-heavy operations, such as the ingestion of logs and observability data, to consume less resources in the Amazon OpenSearch Service domain, resulting in improved performance.

    " } }, - "documentation":"

    Indicates the method for setting up document ID. The supported methods are Kinesis Data Firehose generated document ID and OpenSearch Service generated document ID.

    " + "documentation":"

    Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.

    " }, "DynamicPartitioningConfiguration":{ "type":"structure", "members":{ "RetryOptions":{ "shape":"RetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver data to an Amazon S3 prefix.

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver data to an Amazon S3 prefix.

    " }, "Enabled":{ "shape":"BooleanObject", - "documentation":"

    Specifies that the dynamic partitioning is enabled for this Kinesis Data Firehose delivery stream.

    " + "documentation":"

    Specifies that the dynamic partitioning is enabled for this Firehose delivery stream.

    " } }, "documentation":"

    The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations.

    " @@ -1205,7 +1210,7 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Grant Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

    " }, "DomainARN":{ "shape":"ElasticsearchDomainARN", @@ -1221,7 +1226,7 @@ }, "TypeName":{ "shape":"ElasticsearchTypeName", - "documentation":"

    The Elasticsearch type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Kinesis Data Firehose returns an error during run time.

    For Elasticsearch 7.x, don't specify a TypeName.

    " + "documentation":"

    The Elasticsearch type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Firehose returns an error during run time.

    For Elasticsearch 7.x, don't specify a TypeName.

    " }, "IndexRotationPeriod":{ "shape":"ElasticsearchIndexRotationPeriod", @@ -1233,11 +1238,11 @@ }, "RetryOptions":{ "shape":"ElasticsearchRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).

    " }, "S3BackupMode":{ "shape":"ElasticsearchS3BackupMode", - "documentation":"

    Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Kinesis Data Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with AmazonOpenSearchService-failed/ appended to the key prefix. When set to AllDocuments, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents with AmazonOpenSearchService-failed/ appended to the prefix. For more information, see Amazon S3 Backup for the Amazon ES Destination. Default value is FailedDocumentsOnly.

    You can't change this backup mode after you create the delivery stream.

    " + "documentation":"

    Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with AmazonOpenSearchService-failed/ appended to the key prefix. When set to AllDocuments, Firehose delivers all incoming records to Amazon S3, and also writes failed documents with AmazonOpenSearchService-failed/ appended to the prefix. For more information, see Amazon S3 Backup for the Amazon ES Destination. Default value is FailedDocumentsOnly.

    You can't change this backup mode after you create the delivery stream.

    " }, "S3Configuration":{ "shape":"S3DestinationConfiguration", @@ -1257,7 +1262,7 @@ }, "DocumentIdOptions":{ "shape":"DocumentIdOptions", - "documentation":"

    Indicates the method for setting up document ID. The supported methods are Kinesis Data Firehose generated document ID and OpenSearch Service generated document ID.

    " + "documentation":"

    Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.

    " } }, "documentation":"

    Describes the configuration of a destination in Amazon ES.

    " @@ -1271,11 +1276,11 @@ }, "DomainARN":{ "shape":"ElasticsearchDomainARN", - "documentation":"

    The ARN of the Amazon ES domain. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

    Kinesis Data Firehose uses either ClusterEndpoint or DomainARN to send data to Amazon ES.

    " + "documentation":"

    The ARN of the Amazon ES domain. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

    Firehose uses either ClusterEndpoint or DomainARN to send data to Amazon ES.

    " }, "ClusterEndpoint":{ "shape":"ElasticsearchClusterEndpoint", - "documentation":"

    The endpoint to use when communicating with the cluster. Kinesis Data Firehose uses either this ClusterEndpoint or the DomainARN field to send data to Amazon ES.

    " + "documentation":"

    The endpoint to use when communicating with the cluster. Firehose uses either this ClusterEndpoint or the DomainARN field to send data to Amazon ES.

    " }, "IndexName":{ "shape":"ElasticsearchIndexName", @@ -1319,7 +1324,7 @@ }, "DocumentIdOptions":{ "shape":"DocumentIdOptions", - "documentation":"

    Indicates the method for setting up document ID. The supported methods are Kinesis Data Firehose generated document ID and OpenSearch Service generated document ID.

    " + "documentation":"

    Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.

    " } }, "documentation":"

    The destination description in Amazon ES.

    " @@ -1329,7 +1334,7 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Grant Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

    " }, "DomainARN":{ "shape":"ElasticsearchDomainARN", @@ -1345,7 +1350,7 @@ }, "TypeName":{ "shape":"ElasticsearchTypeName", - "documentation":"

    The Elasticsearch type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Kinesis Data Firehose returns an error during runtime.

    If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery stream, Kinesis Data Firehose still delivers data to Elasticsearch with the old index name and type name. If you want to update your delivery stream with a new index name, provide an empty string for TypeName.

    " + "documentation":"

    The Elasticsearch type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Firehose returns an error during runtime.

    If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery stream, Firehose still delivers data to Elasticsearch with the old index name and type name. If you want to update your delivery stream with a new index name, provide an empty string for TypeName.

    " }, "IndexRotationPeriod":{ "shape":"ElasticsearchIndexRotationPeriod", @@ -1357,7 +1362,7 @@ }, "RetryOptions":{ "shape":"ElasticsearchRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).

    " }, "S3Update":{ "shape":"S3DestinationUpdate", @@ -1373,7 +1378,7 @@ }, "DocumentIdOptions":{ "shape":"DocumentIdOptions", - "documentation":"

    Indicates the method for setting up document ID. The supported methods are Kinesis Data Firehose generated document ID and OpenSearch Service generated document ID.

    " + "documentation":"

    Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.

    " } }, "documentation":"

    Describes an update for a destination in Amazon ES.

    " @@ -1410,10 +1415,10 @@ "members":{ "DurationInSeconds":{ "shape":"ElasticsearchRetryDurationInSeconds", - "documentation":"

    After an initial failure to deliver to Amazon ES, the total amount of time during which Kinesis Data Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

    " + "documentation":"

    After an initial failure to deliver to Amazon ES, the total amount of time during which Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

    " } }, - "documentation":"

    Configures retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon ES.

    " + "documentation":"

    Configures retry behavior in case Firehose is unable to deliver documents to Amazon ES.

    " }, "ElasticsearchS3BackupMode":{ "type":"string", @@ -1471,7 +1476,7 @@ }, "ErrorOutputPrefix":{ "shape":"ErrorOutputPrefix", - "documentation":"

    A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " + "documentation":"

    A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " }, "BufferingHints":{ "shape":"BufferingHints", @@ -1508,6 +1513,14 @@ "DynamicPartitioningConfiguration":{ "shape":"DynamicPartitioningConfiguration", "documentation":"

    The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations.

    " + }, + "FileExtension":{ + "shape":"FileExtension", + "documentation":"

    Specify a file extension. It will override the default file extension

    " + }, + "CustomTimeZone":{ + "shape":"CustomTimeZone", + "documentation":"

    The time zone you prefer. UTC is the default.

    " } }, "documentation":"

    Describes the configuration of a destination in Amazon S3.

    " @@ -1536,7 +1549,7 @@ }, "ErrorOutputPrefix":{ "shape":"ErrorOutputPrefix", - "documentation":"

    A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " + "documentation":"

    A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " }, "BufferingHints":{ "shape":"BufferingHints", @@ -1573,6 +1586,14 @@ "DynamicPartitioningConfiguration":{ "shape":"DynamicPartitioningConfiguration", "documentation":"

    The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations.

    " + }, + "FileExtension":{ + "shape":"FileExtension", + "documentation":"

    Specify a file extension. It will override the default file extension

    " + }, + "CustomTimeZone":{ + "shape":"CustomTimeZone", + "documentation":"

    The time zone you prefer. UTC is the default.

    " } }, "documentation":"

    Describes a destination in Amazon S3.

    " @@ -1594,7 +1615,7 @@ }, "ErrorOutputPrefix":{ "shape":"ErrorOutputPrefix", - "documentation":"

    A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " + "documentation":"

    A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " }, "BufferingHints":{ "shape":"BufferingHints", @@ -1631,6 +1652,14 @@ "DynamicPartitioningConfiguration":{ "shape":"DynamicPartitioningConfiguration", "documentation":"

    The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations.

    " + }, + "FileExtension":{ + "shape":"FileExtension", + "documentation":"

    Specify a file extension. It will override the default file extension

    " + }, + "CustomTimeZone":{ + "shape":"CustomTimeZone", + "documentation":"

    The time zone you prefer. UTC is the default.

    " } }, "documentation":"

    Describes an update for a destination in Amazon S3.

    " @@ -1653,6 +1682,12 @@ }, "documentation":"

    Provides details in case one of the following operations fails due to an error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

    " }, + "FileExtension":{ + "type":"string", + "max":128, + "min":0, + "pattern":"^$|\\.[0-9a-z!\\-_.*'()]+" + }, "HECAcknowledgmentTimeoutInSeconds":{ "type":"integer", "max":600, @@ -1682,10 +1717,10 @@ "members":{ "TimestampFormats":{ "shape":"ListOfNonEmptyStrings", - "documentation":"

    Indicates how you want Kinesis Data Firehose to parse the date and timestamps that may be present in your input data JSON. To specify these format strings, follow the pattern syntax of JodaTime's DateTimeFormat format strings. For more information, see Class DateTimeFormat. You can also use the special value millis to parse timestamps in epoch milliseconds. If you don't specify a format, Kinesis Data Firehose uses java.sql.Timestamp::valueOf by default.

    " + "documentation":"

    Indicates how you want Firehose to parse the date and timestamps that may be present in your input data JSON. To specify these format strings, follow the pattern syntax of JodaTime's DateTimeFormat format strings. For more information, see Class DateTimeFormat. You can also use the special value millis to parse timestamps in epoch milliseconds. If you don't specify a format, Firehose uses java.sql.Timestamp::valueOf by default.

    " } }, - "documentation":"

    The native Hive / HCatalog JsonSerDe. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the OpenX SerDe.

    " + "documentation":"

    The native Hive / HCatalog JsonSerDe. Used by Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the OpenX SerDe.

    " }, "HttpEndpointAccessKey":{ "type":"string", @@ -1720,7 +1755,7 @@ "documentation":"

    Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes).

    " } }, - "documentation":"

    Describes the buffering options that can be applied before data is delivered to the HTTP endpoint destination. Kinesis Data Firehose treats these options as hints, and it might choose to use more optimal values. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other.

    " + "documentation":"

    Describes the buffering options that can be applied before data is delivered to the HTTP endpoint destination. Firehose treats these options as hints, and it might choose to use more optimal values. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other.

    " }, "HttpEndpointBufferingIntervalInSeconds":{ "type":"integer", @@ -1802,7 +1837,7 @@ }, "BufferingHints":{ "shape":"HttpEndpointBufferingHints", - "documentation":"

    The buffering options that can be used before data is delivered to the specified destination. Kinesis Data Firehose treats these options as hints, and it might choose to use more optimal values. The SizeInMBs and IntervalInSeconds parameters are optional. However, if you specify a value for one of them, you must also provide a value for the other.

    " + "documentation":"

    The buffering options that can be used before data is delivered to the specified destination. Firehose treats these options as hints, and it might choose to use more optimal values. The SizeInMBs and IntervalInSeconds parameters are optional. However, if you specify a value for one of them, you must also provide a value for the other.

    " }, "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"}, "RequestConfiguration":{ @@ -1812,15 +1847,15 @@ "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, "RoleARN":{ "shape":"RoleARN", - "documentation":"

    Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs.

    " + "documentation":"

    Firehose uses this IAM role for all the permissions that the delivery stream needs.

    " }, "RetryOptions":{ "shape":"HttpEndpointRetryOptions", - "documentation":"

    Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.

    " + "documentation":"

    Describes the retry behavior in case Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.

    " }, "S3BackupMode":{ "shape":"HttpEndpointS3BackupMode", - "documentation":"

    Describes the S3 bucket backup options for the data that Kinesis Data Firehose delivers to the HTTP endpoint destination. You can back up all documents (AllData) or only the documents that Kinesis Data Firehose could not deliver to the specified HTTP endpoint destination (FailedDataOnly).

    " + "documentation":"

    Describes the S3 bucket backup options for the data that Firehose delivers to the HTTP endpoint destination. You can back up all documents (AllData) or only the documents that Firehose could not deliver to the specified HTTP endpoint destination (FailedDataOnly).

    " }, "S3Configuration":{"shape":"S3DestinationConfiguration"} }, @@ -1835,7 +1870,7 @@ }, "BufferingHints":{ "shape":"HttpEndpointBufferingHints", - "documentation":"

    Describes buffering options that can be applied to the data before it is delivered to the HTTPS endpoint destination. Kinesis Data Firehose teats these options as hints, and it might choose to use more optimal values. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other.

    " + "documentation":"

    Describes buffering options that can be applied to the data before it is delivered to the HTTPS endpoint destination. Firehose teats these options as hints, and it might choose to use more optimal values. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other.

    " }, "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"}, "RequestConfiguration":{ @@ -1845,15 +1880,15 @@ "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, "RoleARN":{ "shape":"RoleARN", - "documentation":"

    Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs.

    " + "documentation":"

    Firehose uses this IAM role for all the permissions that the delivery stream needs.

    " }, "RetryOptions":{ "shape":"HttpEndpointRetryOptions", - "documentation":"

    Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.

    " + "documentation":"

    Describes the retry behavior in case Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.

    " }, "S3BackupMode":{ "shape":"HttpEndpointS3BackupMode", - "documentation":"

    Describes the S3 bucket backup options for the data that Kinesis Firehose delivers to the HTTP endpoint destination. You can back up all documents (AllData) or only the documents that Kinesis Data Firehose could not deliver to the specified HTTP endpoint destination (FailedDataOnly).

    " + "documentation":"

    Describes the S3 bucket backup options for the data that Kinesis Firehose delivers to the HTTP endpoint destination. You can back up all documents (AllData) or only the documents that Firehose could not deliver to the specified HTTP endpoint destination (FailedDataOnly).

    " }, "S3DestinationDescription":{"shape":"S3DestinationDescription"} }, @@ -1868,7 +1903,7 @@ }, "BufferingHints":{ "shape":"HttpEndpointBufferingHints", - "documentation":"

    Describes buffering options that can be applied to the data before it is delivered to the HTTPS endpoint destination. Kinesis Data Firehose teats these options as hints, and it might choose to use more optimal values. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other.

    " + "documentation":"

    Describes buffering options that can be applied to the data before it is delivered to the HTTPS endpoint destination. Firehose teats these options as hints, and it might choose to use more optimal values. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other.

    " }, "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"}, "RequestConfiguration":{ @@ -1878,15 +1913,15 @@ "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, "RoleARN":{ "shape":"RoleARN", - "documentation":"

    Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs.

    " + "documentation":"

    Firehose uses this IAM role for all the permissions that the delivery stream needs.

    " }, "RetryOptions":{ "shape":"HttpEndpointRetryOptions", - "documentation":"

    Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.

    " + "documentation":"

    Describes the retry behavior in case Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.

    " }, "S3BackupMode":{ "shape":"HttpEndpointS3BackupMode", - "documentation":"

    Describes the S3 bucket backup options for the data that Kinesis Firehose delivers to the HTTP endpoint destination. You can back up all documents (AllData) or only the documents that Kinesis Data Firehose could not deliver to the specified HTTP endpoint destination (FailedDataOnly).

    " + "documentation":"

    Describes the S3 bucket backup options for the data that Kinesis Firehose delivers to the HTTP endpoint destination. You can back up all documents (AllData) or only the documents that Firehose could not deliver to the specified HTTP endpoint destination (FailedDataOnly).

    " }, "S3Update":{"shape":"S3DestinationUpdate"} }, @@ -1903,7 +1938,7 @@ "members":{ "ContentEncoding":{ "shape":"ContentEncoding", - "documentation":"

    Kinesis Data Firehose uses the content encoding to compress the body of a request before sending the request to the destination. For more information, see Content-Encoding in MDN Web Docs, the official Mozilla documentation.

    " + "documentation":"

    Firehose uses the content encoding to compress the body of a request before sending the request to the destination. For more information, see Content-Encoding in MDN Web Docs, the official Mozilla documentation.

    " }, "CommonAttributes":{ "shape":"HttpEndpointCommonAttributesList", @@ -1922,10 +1957,10 @@ "members":{ "DurationInSeconds":{ "shape":"HttpEndpointRetryDurationInSeconds", - "documentation":"

    The total amount of time that Kinesis Data Firehose spends on retries. This duration starts after the initial attempt to send data to the custom destination via HTTPS endpoint fails. It doesn't include the periods during which Kinesis Data Firehose waits for acknowledgment from the specified destination after each attempt.

    " + "documentation":"

    The total amount of time that Firehose spends on retries. This duration starts after the initial attempt to send data to the custom destination via HTTPS endpoint fails. It doesn't include the periods during which Firehose waits for acknowledgment from the specified destination after each attempt.

    " } }, - "documentation":"

    Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.

    " + "documentation":"

    Describes the retry behavior in case Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.

    " }, "HttpEndpointS3BackupMode":{ "type":"string", @@ -1973,7 +2008,7 @@ "code":{"shape":"ErrorCode"}, "message":{"shape":"ErrorMessage"} }, - "documentation":"

    Kinesis Data Firehose throws this exception when an attempt to put records or to start or stop delivery stream encryption fails. This happens when the KMS service throws one of the following exception types: AccessDeniedException, InvalidStateException, DisabledException, or NotFoundException.

    ", + "documentation":"

    Firehose throws this exception when an attempt to put records or to start or stop delivery stream encryption fails. This happens when the KMS service throws one of the following exception types: AccessDeniedException, InvalidStateException, DisabledException, or NotFoundException.

    ", "exception":true }, "InvalidSourceException":{ @@ -2040,10 +2075,10 @@ }, "DeliveryStartTimestamp":{ "shape":"DeliveryStartTimestamp", - "documentation":"

    Kinesis Data Firehose starts retrieving records from the Kinesis data stream starting with this timestamp.

    " + "documentation":"

    Firehose starts retrieving records from the Kinesis data stream starting with this timestamp.

    " } }, - "documentation":"

    Details about a Kinesis data stream used as the source for a Kinesis Data Firehose delivery stream.

    " + "documentation":"

    Details about a Kinesis data stream used as the source for a Firehose delivery stream.

    " }, "LimitExceededException":{ "type":"structure", @@ -2207,10 +2242,10 @@ }, "DeliveryStartTimestamp":{ "shape":"DeliveryStartTimestamp", - "documentation":"

    Kinesis Data Firehose starts retrieving records from the topic within the Amazon MSK cluster starting with this timestamp.

    " + "documentation":"

    Firehose starts retrieving records from the topic within the Amazon MSK cluster starting with this timestamp.

    " } }, - "documentation":"

    Details about the Amazon MSK cluster used as the source for a Kinesis Data Firehose delivery stream.

    " + "documentation":"

    Details about the Amazon MSK cluster used as the source for a Firehose delivery stream.

    " }, "NoEncryptionConfig":{ "type":"string", @@ -2237,18 +2272,18 @@ "members":{ "ConvertDotsInJsonKeysToUnderscores":{ "shape":"BooleanObject", - "documentation":"

    When set to true, specifies that the names of the keys include dots and that you want Kinesis Data Firehose to replace them with underscores. This is useful because Apache Hive does not allow dots in column names. For example, if the JSON contains a key whose name is \"a.b\", you can define the column name to be \"a_b\" when using this option.

    The default is false.

    " + "documentation":"

    When set to true, specifies that the names of the keys include dots and that you want Firehose to replace them with underscores. This is useful because Apache Hive does not allow dots in column names. For example, if the JSON contains a key whose name is \"a.b\", you can define the column name to be \"a_b\" when using this option.

    The default is false.

    " }, "CaseInsensitive":{ "shape":"BooleanObject", - "documentation":"

    When set to true, which is the default, Kinesis Data Firehose converts JSON keys to lowercase before deserializing them.

    " + "documentation":"

    When set to true, which is the default, Firehose converts JSON keys to lowercase before deserializing them.

    " }, "ColumnToJsonKeyMappings":{ "shape":"ColumnToJsonKeyMappings", "documentation":"

    Maps column names to JSON keys that aren't identical to the column names. This is useful when the JSON contains keys that are Hive keywords. For example, timestamp is a Hive keyword. If you have a JSON key named timestamp, set this parameter to {\"ts\": \"timestamp\"} to map this key to a column named ts.

    " } }, - "documentation":"

    The OpenX SerDe. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the native Hive / HCatalog JsonSerDe.

    " + "documentation":"

    The OpenX SerDe. Used by Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the native Hive / HCatalog JsonSerDe.

    " }, "OrcCompression":{ "type":"string", @@ -2278,7 +2313,7 @@ }, "BlockSizeBytes":{ "shape":"BlockSizeBytes", - "documentation":"

    The Hadoop Distributed File System (HDFS) block size. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and the minimum is 64 MiB. Kinesis Data Firehose uses this value for padding calculations.

    " + "documentation":"

    The Hadoop Distributed File System (HDFS) block size. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and the minimum is 64 MiB. Firehose uses this value for padding calculations.

    " }, "RowIndexStride":{ "shape":"OrcRowIndexStride", @@ -2290,7 +2325,7 @@ }, "PaddingTolerance":{ "shape":"Proportion", - "documentation":"

    A number between 0 and 1 that defines the tolerance for block padding as a decimal fraction of stripe size. The default value is 0.05, which means 5 percent of stripe size.

    For the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the default block padding tolerance of 5 percent reserves a maximum of 3.2 MiB for padding within the 256 MiB block. In such a case, if the available size within the block is more than 3.2 MiB, a new, smaller stripe is inserted to fit within that space. This ensures that no stripe crosses block boundaries and causes remote reads within a node-local task.

    Kinesis Data Firehose ignores this parameter when OrcSerDe$EnablePadding is false.

    " + "documentation":"

    A number between 0 and 1 that defines the tolerance for block padding as a decimal fraction of stripe size. The default value is 0.05, which means 5 percent of stripe size.

    For the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the default block padding tolerance of 5 percent reserves a maximum of 3.2 MiB for padding within the 256 MiB block. In such a case, if the available size within the block is more than 3.2 MiB, a new, smaller stripe is inserted to fit within that space. This ensures that no stripe crosses block boundaries and causes remote reads within a node-local task.

    Firehose ignores this parameter when OrcSerDe$EnablePadding is false.

    " }, "Compression":{ "shape":"OrcCompression", @@ -2298,7 +2333,7 @@ }, "BloomFilterColumns":{ "shape":"ListOfNonEmptyStringsWithoutWhitespace", - "documentation":"

    The column names for which you want Kinesis Data Firehose to create bloom filters. The default is null.

    " + "documentation":"

    The column names for which you want Firehose to create bloom filters. The default is null.

    " }, "BloomFilterFalsePositiveProbability":{ "shape":"Proportion", @@ -2327,7 +2362,7 @@ "documentation":"

    Specifies which serializer to use. You can choose either the ORC SerDe or the Parquet SerDe. If both are non-null, the server rejects the request.

    " } }, - "documentation":"

    Specifies the serializer that you want Kinesis Data Firehose to use to convert the format of your data before it writes it to Amazon S3. This parameter is required if Enabled is set to true.

    " + "documentation":"

    Specifies the serializer that you want Firehose to use to convert the format of your data before it writes it to Amazon S3. This parameter is required if Enabled is set to true.

    " }, "ParquetCompression":{ "type":"string", @@ -2346,7 +2381,7 @@ "members":{ "BlockSizeBytes":{ "shape":"BlockSizeBytes", - "documentation":"

    The Hadoop Distributed File System (HDFS) block size. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and the minimum is 64 MiB. Kinesis Data Firehose uses this value for padding calculations.

    " + "documentation":"

    The Hadoop Distributed File System (HDFS) block size. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and the minimum is 64 MiB. Firehose uses this value for padding calculations.

    " }, "PageSizeBytes":{ "shape":"ParquetPageSizeBytes", @@ -2418,7 +2453,7 @@ "documentation":"

    The processor parameters.

    " } }, - "documentation":"

    Describes a data processor.

    " + "documentation":"

    Describes a data processor.

    If you want to add a new line delimiter between records in objects that are delivered to Amazon S3, choose AppendDelimiterToRecord as a processor type. You don’t have to put a processor parameter when you select AppendDelimiterToRecord.

    " }, "ProcessorList":{ "type":"list", @@ -2458,7 +2493,8 @@ "BufferIntervalInSeconds", "SubRecordType", "Delimiter", - "CompressionFormat" + "CompressionFormat", + "DataMessageExtraction" ] }, "ProcessorParameterValue":{ @@ -2472,6 +2508,7 @@ "enum":[ "RecordDeAggregation", "Decompression", + "CloudWatchLogProcessing", "Lambda", "MetadataExtraction", "AppendDelimiterToRecord" @@ -2629,7 +2666,7 @@ }, "RetryOptions":{ "shape":"RedshiftRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

    " }, "S3Configuration":{ "shape":"S3DestinationConfiguration", @@ -2682,7 +2719,7 @@ }, "RetryOptions":{ "shape":"RedshiftRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

    " }, "S3DestinationDescription":{ "shape":"S3DestinationDescription", @@ -2732,7 +2769,7 @@ }, "RetryOptions":{ "shape":"RedshiftRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

    " }, "S3Update":{ "shape":"S3DestinationUpdate", @@ -2767,10 +2804,10 @@ "members":{ "DurationInSeconds":{ "shape":"RedshiftRetryDurationInSeconds", - "documentation":"

    The length of time during which Kinesis Data Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Kinesis Data Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value.

    " + "documentation":"

    The length of time during which Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value.

    " } }, - "documentation":"

    Configures retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon Redshift.

    " + "documentation":"

    Configures retry behavior in case Firehose is unable to deliver documents to Amazon Redshift.

    " }, "RedshiftS3BackupMode":{ "type":"string", @@ -2811,10 +2848,10 @@ "members":{ "DurationInSeconds":{ "shape":"RetryDurationInSeconds", - "documentation":"

    The period of time during which Kinesis Data Firehose retries to deliver data to the specified Amazon S3 prefix.

    " + "documentation":"

    The period of time during which Firehose retries to deliver data to the specified Amazon S3 prefix.

    " } }, - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver data to an Amazon S3 prefix.

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver data to an Amazon S3 prefix.

    " }, "RoleARN":{ "type":"string", @@ -2850,7 +2887,7 @@ }, "ErrorOutputPrefix":{ "shape":"ErrorOutputPrefix", - "documentation":"

    A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " + "documentation":"

    A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " }, "BufferingHints":{ "shape":"BufferingHints", @@ -2895,7 +2932,7 @@ }, "ErrorOutputPrefix":{ "shape":"ErrorOutputPrefix", - "documentation":"

    A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " + "documentation":"

    A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " }, "BufferingHints":{ "shape":"BufferingHints", @@ -2933,7 +2970,7 @@ }, "ErrorOutputPrefix":{ "shape":"ErrorOutputPrefix", - "documentation":"

    A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " + "documentation":"

    A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects.

    " }, "BufferingHints":{ "shape":"BufferingHints", @@ -2959,7 +2996,7 @@ "members":{ "RoleARN":{ "shape":"NonEmptyStringWithoutWhitespace", - "documentation":"

    The role that Kinesis Data Firehose can use to access Amazon Web Services Glue. This role must be in the same account you use for Kinesis Data Firehose. Cross-account roles aren't allowed.

    If the SchemaConfiguration request parameter is used as part of invoking the CreateDeliveryStream API, then the RoleARN property is required and its value must be specified.

    " + "documentation":"

    The role that Firehose can use to access Amazon Web Services Glue. This role must be in the same account you use for Firehose. Cross-account roles aren't allowed.

    If the SchemaConfiguration request parameter is used as part of invoking the CreateDeliveryStream API, then the RoleARN property is required and its value must be specified.

    " }, "CatalogId":{ "shape":"NonEmptyStringWithoutWhitespace", @@ -2979,10 +3016,10 @@ }, "VersionId":{ "shape":"NonEmptyStringWithoutWhitespace", - "documentation":"

    Specifies the table version for the output data schema. If you don't specify this version ID, or if you set it to LATEST, Kinesis Data Firehose uses the most recent version. This means that any updates to the table are automatically picked up.

    " + "documentation":"

    Specifies the table version for the output data schema. If you don't specify this version ID, or if you set it to LATEST, Firehose uses the most recent version. This means that any updates to the table are automatically picked up.

    " } }, - "documentation":"

    Specifies the schema to which you want Kinesis Data Firehose to configure your data before it writes it to Amazon S3. This parameter is required if Enabled is set to true.

    " + "documentation":"

    Specifies the schema to which you want Firehose to configure your data before it writes it to Amazon S3. This parameter is required if Enabled is set to true.

    " }, "SecurityGroupIdList":{ "type":"list", @@ -3002,7 +3039,7 @@ "documentation":"

    A serializer to use for converting data to the ORC format before storing it in Amazon S3. For more information, see Apache ORC.

    " } }, - "documentation":"

    The serializer that you want Kinesis Data Firehose to use to convert data to the target format before writing it to Amazon S3. Kinesis Data Firehose supports two types of serializers: the ORC SerDe and the Parquet SerDe.

    " + "documentation":"

    The serializer that you want Firehose to use to convert data to the target format before writing it to Amazon S3. Firehose supports two types of serializers: the ORC SerDe and the Parquet SerDe.

    " }, "ServiceUnavailableException":{ "type":"structure", @@ -3012,7 +3049,7 @@ "documentation":"

    A message that provides information about the error.

    " } }, - "documentation":"

    The service is unavailable. Back off and retry the operation. If you continue to see the exception, throughput limits for the delivery stream may have been exceeded. For more information about limits and how to request an increase, see Amazon Kinesis Data Firehose Limits.

    ", + "documentation":"

    The service is unavailable. Back off and retry the operation. If you continue to see the exception, throughput limits for the delivery stream may have been exceeded. For more information about limits and how to request an increase, see Amazon Firehose Limits.

    ", "exception":true, "fault":true }, @@ -3117,7 +3154,7 @@ }, "RetryOptions":{ "shape":"SnowflakeRetryOptions", - "documentation":"

    The time period where Kinesis Data Firehose will retry sending data to the chosen HTTP endpoint.

    " + "documentation":"

    The time period where Firehose will retry sending data to the chosen HTTP endpoint.

    " }, "S3BackupMode":{ "shape":"SnowflakeS3BackupMode", @@ -3178,7 +3215,7 @@ }, "RetryOptions":{ "shape":"SnowflakeRetryOptions", - "documentation":"

    The time period where Kinesis Data Firehose will retry sending data to the chosen HTTP endpoint.

    " + "documentation":"

    The time period where Firehose will retry sending data to the chosen HTTP endpoint.

    " }, "S3BackupMode":{ "shape":"SnowflakeS3BackupMode", @@ -3243,7 +3280,7 @@ }, "RetryOptions":{ "shape":"SnowflakeRetryOptions", - "documentation":"

    Specify how long Kinesis Data Firehose retries sending data to the New Relic HTTP endpoint. After sending data, Kinesis Data Firehose first waits for an acknowledgment from the HTTP endpoint. If an error occurs or the acknowledgment doesn’t arrive within the acknowledgment timeout period, Kinesis Data Firehose starts the retry duration counter. It keeps retrying until the retry duration expires. After that, Kinesis Data Firehose considers it a data delivery failure and backs up the data to your Amazon S3 bucket. Every time that Kinesis Data Firehose sends data to the HTTP endpoint (either the initial attempt or a retry), it restarts the acknowledgement timeout counter and waits for an acknowledgement from the HTTP endpoint. Even if the retry duration expires, Kinesis Data Firehose still waits for the acknowledgment until it receives it or the acknowledgement timeout period is reached. If the acknowledgment times out, Kinesis Data Firehose determines whether there's time left in the retry counter. If there is time left, it retries again and repeats the logic until it receives an acknowledgment or determines that the retry time has expired. If you don't want Kinesis Data Firehose to retry sending data, set this value to 0.

    " + "documentation":"

    Specify how long Firehose retries sending data to the New Relic HTTP endpoint. After sending data, Firehose first waits for an acknowledgment from the HTTP endpoint. If an error occurs or the acknowledgment doesn’t arrive within the acknowledgment timeout period, Firehose starts the retry duration counter. It keeps retrying until the retry duration expires. After that, Firehose considers it a data delivery failure and backs up the data to your Amazon S3 bucket. Every time that Firehose sends data to the HTTP endpoint (either the initial attempt or a retry), it restarts the acknowledgement timeout counter and waits for an acknowledgement from the HTTP endpoint. Even if the retry duration expires, Firehose still waits for the acknowledgment until it receives it or the acknowledgement timeout period is reached. If the acknowledgment times out, Firehose determines whether there's time left in the retry counter. If there is time left, it retries again and repeats the logic until it receives an acknowledgment or determines that the retry time has expired. If you don't want Firehose to retry sending data, set this value to 0.

    " }, "S3BackupMode":{ "shape":"SnowflakeS3BackupMode", @@ -3289,10 +3326,10 @@ "members":{ "DurationInSeconds":{ "shape":"SnowflakeRetryDurationInSeconds", - "documentation":"

    the time period where Kinesis Data Firehose will retry sending data to the chosen HTTP endpoint.

    " + "documentation":"

    the time period where Firehose will retry sending data to the chosen HTTP endpoint.

    " } }, - "documentation":"

    Specify how long Kinesis Data Firehose retries sending data to the New Relic HTTP endpoint. After sending data, Kinesis Data Firehose first waits for an acknowledgment from the HTTP endpoint. If an error occurs or the acknowledgment doesn’t arrive within the acknowledgment timeout period, Kinesis Data Firehose starts the retry duration counter. It keeps retrying until the retry duration expires. After that, Kinesis Data Firehose considers it a data delivery failure and backs up the data to your Amazon S3 bucket. Every time that Kinesis Data Firehose sends data to the HTTP endpoint (either the initial attempt or a retry), it restarts the acknowledgement timeout counter and waits for an acknowledgement from the HTTP endpoint. Even if the retry duration expires, Kinesis Data Firehose still waits for the acknowledgment until it receives it or the acknowledgement timeout period is reached. If the acknowledgment times out, Kinesis Data Firehose determines whether there's time left in the retry counter. If there is time left, it retries again and repeats the logic until it receives an acknowledgment or determines that the retry time has expired. If you don't want Kinesis Data Firehose to retry sending data, set this value to 0.

    " + "documentation":"

    Specify how long Firehose retries sending data to the New Relic HTTP endpoint. After sending data, Firehose first waits for an acknowledgment from the HTTP endpoint. If an error occurs or the acknowledgment doesn’t arrive within the acknowledgment timeout period, Firehose starts the retry duration counter. It keeps retrying until the retry duration expires. After that, Firehose considers it a data delivery failure and backs up the data to your Amazon S3 bucket. Every time that Firehose sends data to the HTTP endpoint (either the initial attempt or a retry), it restarts the acknowledgement timeout counter and waits for an acknowledgement from the HTTP endpoint. Even if the retry duration expires, Firehose still waits for the acknowledgment until it receives it or the acknowledgement timeout period is reached. If the acknowledgment times out, Firehose determines whether there's time left in the retry counter. If there is time left, it retries again and repeats the logic until it receives an acknowledgment or determines that the retry time has expired. If you don't want Firehose to retry sending data, set this value to 0.

    " }, "SnowflakeRole":{ "type":"string", @@ -3362,7 +3399,7 @@ "documentation":"

    The configuration description for the Amazon MSK cluster to be used as the source for a delivery stream.

    " } }, - "documentation":"

    Details about a Kinesis data stream used as the source for a Kinesis Data Firehose delivery stream.

    " + "documentation":"

    Details about a Kinesis data stream used as the source for a Firehose delivery stream.

    " }, "SplunkBufferingHints":{ "type":"structure", @@ -3399,7 +3436,7 @@ "members":{ "HECEndpoint":{ "shape":"HECEndpoint", - "documentation":"

    The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends your data.

    " + "documentation":"

    The HTTP Event Collector (HEC) endpoint to which Firehose sends your data.

    " }, "HECEndpointType":{ "shape":"HECEndpointType", @@ -3411,15 +3448,15 @@ }, "HECAcknowledgmentTimeoutInSeconds":{ "shape":"HECAcknowledgmentTimeoutInSeconds", - "documentation":"

    The amount of time that Kinesis Data Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period, Kinesis Data Firehose either tries to send the data again or considers it an error, based on your retry settings.

    " + "documentation":"

    The amount of time that Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period, Firehose either tries to send the data again or considers it an error, based on your retry settings.

    " }, "RetryOptions":{ "shape":"SplunkRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver data to Splunk, or if it doesn't receive an acknowledgment of receipt from Splunk.

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver data to Splunk, or if it doesn't receive an acknowledgment of receipt from Splunk.

    " }, "S3BackupMode":{ "shape":"SplunkS3BackupMode", - "documentation":"

    Defines how documents should be delivered to Amazon S3. When set to FailedEventsOnly, Kinesis Data Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllEvents, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. The default value is FailedEventsOnly.

    You can update this backup mode from FailedEventsOnly to AllEvents. You can't update it from AllEvents to FailedEventsOnly.

    " + "documentation":"

    Defines how documents should be delivered to Amazon S3. When set to FailedEventsOnly, Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllEvents, Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. The default value is FailedEventsOnly.

    You can update this backup mode from FailedEventsOnly to AllEvents. You can't update it from AllEvents to FailedEventsOnly.

    " }, "S3Configuration":{ "shape":"S3DestinationConfiguration", @@ -3445,7 +3482,7 @@ "members":{ "HECEndpoint":{ "shape":"HECEndpoint", - "documentation":"

    The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends your data.

    " + "documentation":"

    The HTTP Event Collector (HEC) endpoint to which Firehose sends your data.

    " }, "HECEndpointType":{ "shape":"HECEndpointType", @@ -3457,15 +3494,15 @@ }, "HECAcknowledgmentTimeoutInSeconds":{ "shape":"HECAcknowledgmentTimeoutInSeconds", - "documentation":"

    The amount of time that Kinesis Data Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period, Kinesis Data Firehose either tries to send the data again or considers it an error, based on your retry settings.

    " + "documentation":"

    The amount of time that Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period, Firehose either tries to send the data again or considers it an error, based on your retry settings.

    " }, "RetryOptions":{ "shape":"SplunkRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.

    " }, "S3BackupMode":{ "shape":"SplunkS3BackupMode", - "documentation":"

    Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Data Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllDocuments, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is FailedDocumentsOnly.

    " + "documentation":"

    Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllDocuments, Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is FailedDocumentsOnly.

    " }, "S3DestinationDescription":{ "shape":"S3DestinationDescription", @@ -3491,7 +3528,7 @@ "members":{ "HECEndpoint":{ "shape":"HECEndpoint", - "documentation":"

    The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends your data.

    " + "documentation":"

    The HTTP Event Collector (HEC) endpoint to which Firehose sends your data.

    " }, "HECEndpointType":{ "shape":"HECEndpointType", @@ -3503,15 +3540,15 @@ }, "HECAcknowledgmentTimeoutInSeconds":{ "shape":"HECAcknowledgmentTimeoutInSeconds", - "documentation":"

    The amount of time that Kinesis Data Firehose waits to receive an acknowledgment from Splunk after it sends data. At the end of the timeout period, Kinesis Data Firehose either tries to send the data again or considers it an error, based on your retry settings.

    " + "documentation":"

    The amount of time that Firehose waits to receive an acknowledgment from Splunk after it sends data. At the end of the timeout period, Firehose either tries to send the data again or considers it an error, based on your retry settings.

    " }, "RetryOptions":{ "shape":"SplunkRetryOptions", - "documentation":"

    The retry behavior in case Kinesis Data Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.

    " + "documentation":"

    The retry behavior in case Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.

    " }, "S3BackupMode":{ "shape":"SplunkS3BackupMode", - "documentation":"

    Specifies how you want Kinesis Data Firehose to back up documents to Amazon S3. When set to FailedDocumentsOnly, Kinesis Data Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllEvents, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. The default value is FailedEventsOnly.

    You can update this backup mode from FailedEventsOnly to AllEvents. You can't update it from AllEvents to FailedEventsOnly.

    " + "documentation":"

    Specifies how you want Firehose to back up documents to Amazon S3. When set to FailedDocumentsOnly, Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllEvents, Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. The default value is FailedEventsOnly.

    You can update this backup mode from FailedEventsOnly to AllEvents. You can't update it from AllEvents to FailedEventsOnly.

    " }, "S3Update":{ "shape":"S3DestinationUpdate", @@ -3542,10 +3579,10 @@ "members":{ "DurationInSeconds":{ "shape":"SplunkRetryDurationInSeconds", - "documentation":"

    The total amount of time that Kinesis Data Firehose spends on retries. This duration starts after the initial attempt to send data to Splunk fails. It doesn't include the periods during which Kinesis Data Firehose waits for acknowledgment from Splunk after each attempt.

    " + "documentation":"

    The total amount of time that Firehose spends on retries. This duration starts after the initial attempt to send data to Splunk fails. It doesn't include the periods during which Firehose waits for acknowledgment from Splunk after each attempt.

    " } }, - "documentation":"

    Configures retry behavior in case Kinesis Data Firehose is unable to deliver documents to Splunk, or if it doesn't receive an acknowledgment from Splunk.

    " + "documentation":"

    Configures retry behavior in case Firehose is unable to deliver documents to Splunk, or if it doesn't receive an acknowledgment from Splunk.

    " }, "SplunkS3BackupMode":{ "type":"string", @@ -3765,15 +3802,15 @@ "members":{ "SubnetIds":{ "shape":"SubnetIdList", - "documentation":"

    The IDs of the subnets that you want Kinesis Data Firehose to use to create ENIs in the VPC of the Amazon ES destination. Make sure that the routing tables and inbound and outbound rules allow traffic to flow from the subnets whose IDs are specified here to the subnets that have the destination Amazon ES endpoints. Kinesis Data Firehose creates at least one ENI in each of the subnets that are specified here. Do not delete or modify these ENIs.

    The number of ENIs that Kinesis Data Firehose creates in the subnets specified here scales up and down automatically based on throughput. To enable Kinesis Data Firehose to scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To help you calculate the quota you need, assume that Kinesis Data Firehose can create up to three ENIs for this delivery stream for each of the subnets specified here. For more information about ENI quota, see Network Interfaces in the Amazon VPC Quotas topic.

    " + "documentation":"

    The IDs of the subnets that you want Firehose to use to create ENIs in the VPC of the Amazon ES destination. Make sure that the routing tables and inbound and outbound rules allow traffic to flow from the subnets whose IDs are specified here to the subnets that have the destination Amazon ES endpoints. Firehose creates at least one ENI in each of the subnets that are specified here. Do not delete or modify these ENIs.

    The number of ENIs that Firehose creates in the subnets specified here scales up and down automatically based on throughput. To enable Firehose to scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To help you calculate the quota you need, assume that Firehose can create up to three ENIs for this delivery stream for each of the subnets specified here. For more information about ENI quota, see Network Interfaces in the Amazon VPC Quotas topic.

    " }, "RoleARN":{ "shape":"RoleARN", - "documentation":"

    The ARN of the IAM role that you want the delivery stream to use to create endpoints in the destination VPC. You can use your existing Kinesis Data Firehose delivery role or you can specify a new role. In either case, make sure that the role trusts the Kinesis Data Firehose service principal and that it grants the following permissions:

    • ec2:DescribeVpcs

    • ec2:DescribeVpcAttribute

    • ec2:DescribeSubnets

    • ec2:DescribeSecurityGroups

    • ec2:DescribeNetworkInterfaces

    • ec2:CreateNetworkInterface

    • ec2:CreateNetworkInterfacePermission

    • ec2:DeleteNetworkInterface

    If you revoke these permissions after you create the delivery stream, Kinesis Data Firehose can't scale out by creating more ENIs when necessary. You might therefore see a degradation in performance.

    " + "documentation":"

    The ARN of the IAM role that you want the delivery stream to use to create endpoints in the destination VPC. You can use your existing Firehose delivery role or you can specify a new role. In either case, make sure that the role trusts the Firehose service principal and that it grants the following permissions:

    • ec2:DescribeVpcs

    • ec2:DescribeVpcAttribute

    • ec2:DescribeSubnets

    • ec2:DescribeSecurityGroups

    • ec2:DescribeNetworkInterfaces

    • ec2:CreateNetworkInterface

    • ec2:CreateNetworkInterfacePermission

    • ec2:DeleteNetworkInterface

    When you specify subnets for delivering data to the destination in a private VPC, make sure you have enough number of free IP addresses in chosen subnets. If there is no available free IP address in a specified subnet, Firehose cannot create or add ENIs for the data delivery in the private VPC, and the delivery will be degraded or fail.

    " }, "SecurityGroupIds":{ "shape":"SecurityGroupIdList", - "documentation":"

    The IDs of the security groups that you want Kinesis Data Firehose to use when it creates ENIs in the VPC of the Amazon ES destination. You can use the same security group that the Amazon ES domain uses or different ones. If you specify different security groups here, ensure that they allow outbound HTTPS traffic to the Amazon ES domain's security group. Also ensure that the Amazon ES domain's security group allows HTTPS traffic from the security groups specified here. If you use the same security group for both your delivery stream and the Amazon ES domain, make sure the security group inbound rule allows HTTPS traffic. For more information about security group rules, see Security group rules in the Amazon VPC documentation.

    " + "documentation":"

    The IDs of the security groups that you want Firehose to use when it creates ENIs in the VPC of the Amazon ES destination. You can use the same security group that the Amazon ES domain uses or different ones. If you specify different security groups here, ensure that they allow outbound HTTPS traffic to the Amazon ES domain's security group. Also ensure that the Amazon ES domain's security group allows HTTPS traffic from the security groups specified here. If you use the same security group for both your delivery stream and the Amazon ES domain, make sure the security group inbound rule allows HTTPS traffic. For more information about security group rules, see Security group rules in the Amazon VPC documentation.

    " } }, "documentation":"

    The details of the VPC of the Amazon OpenSearch or Amazon OpenSearch Serverless destination.

    " @@ -3789,15 +3826,15 @@ "members":{ "SubnetIds":{ "shape":"SubnetIdList", - "documentation":"

    The IDs of the subnets that Kinesis Data Firehose uses to create ENIs in the VPC of the Amazon ES destination. Make sure that the routing tables and inbound and outbound rules allow traffic to flow from the subnets whose IDs are specified here to the subnets that have the destination Amazon ES endpoints. Kinesis Data Firehose creates at least one ENI in each of the subnets that are specified here. Do not delete or modify these ENIs.

    The number of ENIs that Kinesis Data Firehose creates in the subnets specified here scales up and down automatically based on throughput. To enable Kinesis Data Firehose to scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To help you calculate the quota you need, assume that Kinesis Data Firehose can create up to three ENIs for this delivery stream for each of the subnets specified here. For more information about ENI quota, see Network Interfaces in the Amazon VPC Quotas topic.

    " + "documentation":"

    The IDs of the subnets that Firehose uses to create ENIs in the VPC of the Amazon ES destination. Make sure that the routing tables and inbound and outbound rules allow traffic to flow from the subnets whose IDs are specified here to the subnets that have the destination Amazon ES endpoints. Firehose creates at least one ENI in each of the subnets that are specified here. Do not delete or modify these ENIs.

    The number of ENIs that Firehose creates in the subnets specified here scales up and down automatically based on throughput. To enable Firehose to scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To help you calculate the quota you need, assume that Firehose can create up to three ENIs for this delivery stream for each of the subnets specified here. For more information about ENI quota, see Network Interfaces in the Amazon VPC Quotas topic.

    " }, "RoleARN":{ "shape":"RoleARN", - "documentation":"

    The ARN of the IAM role that the delivery stream uses to create endpoints in the destination VPC. You can use your existing Kinesis Data Firehose delivery role or you can specify a new role. In either case, make sure that the role trusts the Kinesis Data Firehose service principal and that it grants the following permissions:

    • ec2:DescribeVpcs

    • ec2:DescribeVpcAttribute

    • ec2:DescribeSubnets

    • ec2:DescribeSecurityGroups

    • ec2:DescribeNetworkInterfaces

    • ec2:CreateNetworkInterface

    • ec2:CreateNetworkInterfacePermission

    • ec2:DeleteNetworkInterface

    If you revoke these permissions after you create the delivery stream, Kinesis Data Firehose can't scale out by creating more ENIs when necessary. You might therefore see a degradation in performance.

    " + "documentation":"

    The ARN of the IAM role that the delivery stream uses to create endpoints in the destination VPC. You can use your existing Firehose delivery role or you can specify a new role. In either case, make sure that the role trusts the Firehose service principal and that it grants the following permissions:

    • ec2:DescribeVpcs

    • ec2:DescribeVpcAttribute

    • ec2:DescribeSubnets

    • ec2:DescribeSecurityGroups

    • ec2:DescribeNetworkInterfaces

    • ec2:CreateNetworkInterface

    • ec2:CreateNetworkInterfacePermission

    • ec2:DeleteNetworkInterface

    If you revoke these permissions after you create the delivery stream, Firehose can't scale out by creating more ENIs when necessary. You might therefore see a degradation in performance.

    " }, "SecurityGroupIds":{ "shape":"SecurityGroupIdList", - "documentation":"

    The IDs of the security groups that Kinesis Data Firehose uses when it creates ENIs in the VPC of the Amazon ES destination. You can use the same security group that the Amazon ES domain uses or different ones. If you specify different security groups, ensure that they allow outbound HTTPS traffic to the Amazon ES domain's security group. Also ensure that the Amazon ES domain's security group allows HTTPS traffic from the security groups specified here. If you use the same security group for both your delivery stream and the Amazon ES domain, make sure the security group inbound rule allows HTTPS traffic. For more information about security group rules, see Security group rules in the Amazon VPC documentation.

    " + "documentation":"

    The IDs of the security groups that Firehose uses when it creates ENIs in the VPC of the Amazon ES destination. You can use the same security group that the Amazon ES domain uses or different ones. If you specify different security groups, ensure that they allow outbound HTTPS traffic to the Amazon ES domain's security group. Also ensure that the Amazon ES domain's security group allows HTTPS traffic from the security groups specified here. If you use the same security group for both your delivery stream and the Amazon ES domain, make sure the security group inbound rule allows HTTPS traffic. For more information about security group rules, see Security group rules in the Amazon VPC documentation.

    " }, "VpcId":{ "shape":"NonEmptyStringWithoutWhitespace", @@ -3807,5 +3844,5 @@ "documentation":"

    The details of the VPC of the Amazon ES destination.

    " } }, - "documentation":"Amazon Kinesis Data Firehose API Reference

    Amazon Kinesis Data Firehose is a fully managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon OpenSearch Service, Amazon Redshift, Splunk, and various other supportd destinations.

    " + "documentation":"Amazon Data Firehose

    Amazon Data Firehose is a fully managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon OpenSearch Service, Amazon Redshift, Splunk, and various other supportd destinations.

    " } diff --git a/services/fis/pom.xml b/services/fis/pom.xml index 8814a3406232..ff03de79b747 100644 --- a/services/fis/pom.xml +++ b/services/fis/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT fis AWS Java SDK :: Services :: Fis diff --git a/services/fis/src/main/resources/codegen-resources/customization.config b/services/fis/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/fis/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/fms/pom.xml b/services/fms/pom.xml index cb762e075b9c..b7c4bffc1b61 100644 --- a/services/fms/pom.xml +++ b/services/fms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT fms AWS Java SDK :: Services :: FMS diff --git a/services/fms/src/main/resources/codegen-resources/customization.config b/services/fms/src/main/resources/codegen-resources/customization.config index f5fe1526e9c4..c32b30944e6c 100644 --- a/services/fms/src/main/resources/codegen-resources/customization.config +++ b/services/fms/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,11 @@ { - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "getAdminAccount", "getNotificationChannel", "listMemberAccounts", "listPolicies" - ] -} \ No newline at end of file + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/forecast/pom.xml b/services/forecast/pom.xml index 89cda6aa70be..2afb0c6ba28d 100644 --- a/services/forecast/pom.xml +++ b/services/forecast/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT forecast AWS Java SDK :: Services :: Forecast diff --git a/services/forecast/src/main/resources/codegen-resources/customization.config b/services/forecast/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/forecast/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/forecastquery/pom.xml b/services/forecastquery/pom.xml index b56f16a96550..7c3f4b673479 100644 --- a/services/forecastquery/pom.xml +++ b/services/forecastquery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT forecastquery AWS Java SDK :: Services :: Forecastquery diff --git a/services/forecastquery/src/main/resources/codegen-resources/customization.config b/services/forecastquery/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/forecastquery/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/frauddetector/pom.xml b/services/frauddetector/pom.xml index 372b10f0aaab..c8e775e477be 100644 --- a/services/frauddetector/pom.xml +++ b/services/frauddetector/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT frauddetector AWS Java SDK :: Services :: FraudDetector diff --git a/services/frauddetector/src/main/resources/codegen-resources/customization.config b/services/frauddetector/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/frauddetector/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/freetier/pom.xml b/services/freetier/pom.xml index d6d998a6abf2..510f3717492b 100644 --- a/services/freetier/pom.xml +++ b/services/freetier/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT freetier AWS Java SDK :: Services :: Free Tier diff --git a/services/freetier/src/main/resources/codegen-resources/customization.config b/services/freetier/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/freetier/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/fsx/pom.xml b/services/fsx/pom.xml index 55695e070fbd..1c813f43c100 100644 --- a/services/fsx/pom.xml +++ b/services/fsx/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT fsx AWS Java SDK :: Services :: FSx diff --git a/services/fsx/src/main/resources/codegen-resources/customization.config b/services/fsx/src/main/resources/codegen-resources/customization.config index 82d8fc43e6cc..8c410a31bb94 100644 --- a/services/fsx/src/main/resources/codegen-resources/customization.config +++ b/services/fsx/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeBackups", "describeFileSystems" - ] + ], + "useSraAuth": true } diff --git a/services/gamelift/pom.xml b/services/gamelift/pom.xml index e0514f07daac..405541710fc7 100644 --- a/services/gamelift/pom.xml +++ b/services/gamelift/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT gamelift AWS Java SDK :: Services :: AWS GameLift diff --git a/services/gamelift/src/main/resources/codegen-resources/customization.tmp b/services/gamelift/src/main/resources/codegen-resources/customization.tmp new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/services/glacier/pom.xml b/services/glacier/pom.xml index aceec4a90429..527efc90f1e8 100644 --- a/services/glacier/pom.xml +++ b/services/glacier/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT glacier AWS Java SDK :: Services :: Amazon Glacier diff --git a/services/globalaccelerator/pom.xml b/services/globalaccelerator/pom.xml index ccf5457c0b4f..f81e91ddc224 100644 --- a/services/globalaccelerator/pom.xml +++ b/services/globalaccelerator/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT globalaccelerator AWS Java SDK :: Services :: Global Accelerator diff --git a/services/globalaccelerator/src/main/resources/codegen-resources/customization.config b/services/globalaccelerator/src/main/resources/codegen-resources/customization.config index 52f3ddd37a79..9bb479e1baaf 100644 --- a/services/globalaccelerator/src/main/resources/codegen-resources/customization.config +++ b/services/globalaccelerator/src/main/resources/codegen-resources/customization.config @@ -1,9 +1,10 @@ { - "verifiedSimpleMethods": [ - "listAccelerators" - ], - "defaultSimpleMethodTestRegion": "US_WEST_2", - "excludedSimpleMethods": [ - "describeAcceleratorAttributes" - ] + "verifiedSimpleMethods": [ + "listAccelerators" + ], + "defaultSimpleMethodTestRegion": "US_WEST_2", + "excludedSimpleMethods": [ + "describeAcceleratorAttributes" + ], + "useSraAuth": true } diff --git a/services/glue/pom.xml b/services/glue/pom.xml index 65bd8519d068..5cb2cd2981ed 100644 --- a/services/glue/pom.xml +++ b/services/glue/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 glue diff --git a/services/glue/src/main/resources/codegen-resources/customization.config b/services/glue/src/main/resources/codegen-resources/customization.config index e5d2b586984e..329f3c921761 100644 --- a/services/glue/src/main/resources/codegen-resources/customization.config +++ b/services/glue/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,8 @@ { - "excludedSimpleMethods" : ["*"] + "excludedSimpleMethods": [ + "*" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/glue/src/main/resources/codegen-resources/service-2.json b/services/glue/src/main/resources/codegen-resources/service-2.json index f54b2c0981e8..216c93ce9865 100644 --- a/services/glue/src/main/resources/codegen-resources/service-2.json +++ b/services/glue/src/main/resources/codegen-resources/service-2.json @@ -5074,7 +5074,8 @@ "type":"string", "enum":[ "DISABLED", - "SSE-KMS" + "SSE-KMS", + "SSE-KMS-WITH-SERVICE-ROLE" ] }, "CatalogEntries":{ @@ -6273,7 +6274,7 @@ }, "ConnectionProperties":{ "shape":"ConnectionProperties", - "documentation":"

    These key-value pairs define parameters for the connection:

    • HOST - The host URI: either the fully qualified domain name (FQDN) or the IPv4 address of the database host.

    • PORT - The port number, between 1024 and 65535, of the port on which the database host is listening for database connections.

    • USER_NAME - The name under which to log in to the database. The value string for USER_NAME is \"USERNAME\".

    • PASSWORD - A password, if one is used, for the user name.

    • ENCRYPTED_PASSWORD - When you enable connection password protection by setting ConnectionPasswordEncryption in the Data Catalog encryption settings, this field stores the encrypted password.

    • JDBC_DRIVER_JAR_URI - The Amazon Simple Storage Service (Amazon S3) path of the JAR file that contains the JDBC driver to use.

    • JDBC_DRIVER_CLASS_NAME - The class name of the JDBC driver to use.

    • JDBC_ENGINE - The name of the JDBC engine to use.

    • JDBC_ENGINE_VERSION - The version of the JDBC engine to use.

    • CONFIG_FILES - (Reserved for future use.)

    • INSTANCE_ID - The instance ID to use.

    • JDBC_CONNECTION_URL - The URL for connecting to a JDBC data source.

    • JDBC_ENFORCE_SSL - A Boolean string (true, false) specifying whether Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client. The default is false.

    • CUSTOM_JDBC_CERT - An Amazon S3 location specifying the customer's root certificate. Glue uses this root certificate to validate the customer’s certificate when connecting to the customer database. Glue only handles X.509 certificates. The certificate provided must be DER-encoded and supplied in Base64 encoding PEM format.

    • SKIP_CUSTOM_JDBC_CERT_VALIDATION - By default, this is false. Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA, SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length must be at least 2048. You can set the value of this property to true to skip Glue’s validation of the customer certificate.

    • CUSTOM_JDBC_CERT_STRING - A custom JDBC certificate string which is used for domain match or distinguished name match to prevent a man-in-the-middle attack. In Oracle database, this is used as the SSL_SERVER_CERT_DN; in Microsoft SQL Server, this is used as the hostNameInCertificate.

    • CONNECTION_URL - The URL for connecting to a general (non-JDBC) data source.

    • SECRET_ID - The secret ID used for the secret manager of credentials.

    • CONNECTOR_URL - The connector URL for a MARKETPLACE or CUSTOM connection.

    • CONNECTOR_TYPE - The connector type for a MARKETPLACE or CUSTOM connection.

    • CONNECTOR_CLASS_NAME - The connector class name for a MARKETPLACE or CUSTOM connection.

    • KAFKA_BOOTSTRAP_SERVERS - A comma-separated list of host and port pairs that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka client will connect to and bootstrap itself.

    • KAFKA_SSL_ENABLED - Whether to enable or disable SSL on an Apache Kafka connection. Default value is \"true\".

    • KAFKA_CUSTOM_CERT - The Amazon S3 URL for the private CA cert file (.pem format). The default is an empty string.

    • KAFKA_SKIP_CUSTOM_CERT_VALIDATION - Whether to skip the validation of the CA cert file or not. Glue validates for three algorithms: SHA256withRSA, SHA384withRSA and SHA512withRSA. Default value is \"false\".

    • KAFKA_CLIENT_KEYSTORE - The Amazon S3 location of the client keystore file for Kafka client side authentication (Optional).

    • KAFKA_CLIENT_KEYSTORE_PASSWORD - The password to access the provided keystore (Optional).

    • KAFKA_CLIENT_KEY_PASSWORD - A keystore can consist of multiple keys, so this is the password to access the client key to be used with the Kafka server side key (Optional).

    • ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD - The encrypted version of the Kafka client keystore password (if the user has the Glue encrypt passwords setting selected).

    • ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD - The encrypted version of the Kafka client key password (if the user has the Glue encrypt passwords setting selected).

    • KAFKA_SASL_MECHANISM - \"SCRAM-SHA-512\", \"GSSAPI\", or \"AWS_MSK_IAM\". These are the supported SASL Mechanisms.

    • KAFKA_SASL_SCRAM_USERNAME - A plaintext username used to authenticate with the \"SCRAM-SHA-512\" mechanism.

    • KAFKA_SASL_SCRAM_PASSWORD - A plaintext password used to authenticate with the \"SCRAM-SHA-512\" mechanism.

    • ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD - The encrypted version of the Kafka SASL SCRAM password (if the user has the Glue encrypt passwords setting selected).

    • KAFKA_SASL_SCRAM_SECRETS_ARN - The Amazon Resource Name of a secret in Amazon Web Services Secrets Manager.

    • KAFKA_SASL_GSSAPI_KEYTAB - The S3 location of a Kerberos keytab file. A keytab stores long-term keys for one or more principals. For more information, see MIT Kerberos Documentation: Keytab.

    • KAFKA_SASL_GSSAPI_KRB5_CONF - The S3 location of a Kerberos krb5.conf file. A krb5.conf stores Kerberos configuration information, such as the location of the KDC server. For more information, see MIT Kerberos Documentation: krb5.conf.

    • KAFKA_SASL_GSSAPI_SERVICE - The Kerberos service name, as set with sasl.kerberos.service.name in your Kafka Configuration.

    • KAFKA_SASL_GSSAPI_PRINCIPAL - The name of the Kerberos princial used by Glue. For more information, see Kafka Documentation: Configuring Kafka Brokers.

    " + "documentation":"

    These key-value pairs define parameters for the connection:

    • HOST - The host URI: either the fully qualified domain name (FQDN) or the IPv4 address of the database host.

    • PORT - The port number, between 1024 and 65535, of the port on which the database host is listening for database connections.

    • USER_NAME - The name under which to log in to the database. The value string for USER_NAME is \"USERNAME\".

    • PASSWORD - A password, if one is used, for the user name.

    • ENCRYPTED_PASSWORD - When you enable connection password protection by setting ConnectionPasswordEncryption in the Data Catalog encryption settings, this field stores the encrypted password.

    • JDBC_DRIVER_JAR_URI - The Amazon Simple Storage Service (Amazon S3) path of the JAR file that contains the JDBC driver to use.

    • JDBC_DRIVER_CLASS_NAME - The class name of the JDBC driver to use.

    • JDBC_ENGINE - The name of the JDBC engine to use.

    • JDBC_ENGINE_VERSION - The version of the JDBC engine to use.

    • CONFIG_FILES - (Reserved for future use.)

    • INSTANCE_ID - The instance ID to use.

    • JDBC_CONNECTION_URL - The URL for connecting to a JDBC data source.

    • JDBC_ENFORCE_SSL - A Boolean string (true, false) specifying whether Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client. The default is false.

    • CUSTOM_JDBC_CERT - An Amazon S3 location specifying the customer's root certificate. Glue uses this root certificate to validate the customer’s certificate when connecting to the customer database. Glue only handles X.509 certificates. The certificate provided must be DER-encoded and supplied in Base64 encoding PEM format.

    • SKIP_CUSTOM_JDBC_CERT_VALIDATION - By default, this is false. Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA, SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length must be at least 2048. You can set the value of this property to true to skip Glue’s validation of the customer certificate.

    • CUSTOM_JDBC_CERT_STRING - A custom JDBC certificate string which is used for domain match or distinguished name match to prevent a man-in-the-middle attack. In Oracle database, this is used as the SSL_SERVER_CERT_DN; in Microsoft SQL Server, this is used as the hostNameInCertificate.

    • CONNECTION_URL - The URL for connecting to a general (non-JDBC) data source.

    • SECRET_ID - The secret ID used for the secret manager of credentials.

    • CONNECTOR_URL - The connector URL for a MARKETPLACE or CUSTOM connection.

    • CONNECTOR_TYPE - The connector type for a MARKETPLACE or CUSTOM connection.

    • CONNECTOR_CLASS_NAME - The connector class name for a MARKETPLACE or CUSTOM connection.

    • KAFKA_BOOTSTRAP_SERVERS - A comma-separated list of host and port pairs that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka client will connect to and bootstrap itself.

    • KAFKA_SSL_ENABLED - Whether to enable or disable SSL on an Apache Kafka connection. Default value is \"true\".

    • KAFKA_CUSTOM_CERT - The Amazon S3 URL for the private CA cert file (.pem format). The default is an empty string.

    • KAFKA_SKIP_CUSTOM_CERT_VALIDATION - Whether to skip the validation of the CA cert file or not. Glue validates for three algorithms: SHA256withRSA, SHA384withRSA and SHA512withRSA. Default value is \"false\".

    • KAFKA_CLIENT_KEYSTORE - The Amazon S3 location of the client keystore file for Kafka client side authentication (Optional).

    • KAFKA_CLIENT_KEYSTORE_PASSWORD - The password to access the provided keystore (Optional).

    • KAFKA_CLIENT_KEY_PASSWORD - A keystore can consist of multiple keys, so this is the password to access the client key to be used with the Kafka server side key (Optional).

    • ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD - The encrypted version of the Kafka client keystore password (if the user has the Glue encrypt passwords setting selected).

    • ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD - The encrypted version of the Kafka client key password (if the user has the Glue encrypt passwords setting selected).

    • KAFKA_SASL_MECHANISM - \"SCRAM-SHA-512\", \"GSSAPI\", \"AWS_MSK_IAM\", or \"PLAIN\". These are the supported SASL Mechanisms.

    • KAFKA_SASL_PLAIN_USERNAME - A plaintext username used to authenticate with the \"PLAIN\" mechanism.

    • KAFKA_SASL_PLAIN_PASSWORD - A plaintext password used to authenticate with the \"PLAIN\" mechanism.

    • ENCRYPTED_KAFKA_SASL_PLAIN_PASSWORD - The encrypted version of the Kafka SASL PLAIN password (if the user has the Glue encrypt passwords setting selected).

    • KAFKA_SASL_SCRAM_USERNAME - A plaintext username used to authenticate with the \"SCRAM-SHA-512\" mechanism.

    • KAFKA_SASL_SCRAM_PASSWORD - A plaintext password used to authenticate with the \"SCRAM-SHA-512\" mechanism.

    • ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD - The encrypted version of the Kafka SASL SCRAM password (if the user has the Glue encrypt passwords setting selected).

    • KAFKA_SASL_SCRAM_SECRETS_ARN - The Amazon Resource Name of a secret in Amazon Web Services Secrets Manager.

    • KAFKA_SASL_GSSAPI_KEYTAB - The S3 location of a Kerberos keytab file. A keytab stores long-term keys for one or more principals. For more information, see MIT Kerberos Documentation: Keytab.

    • KAFKA_SASL_GSSAPI_KRB5_CONF - The S3 location of a Kerberos krb5.conf file. A krb5.conf stores Kerberos configuration information, such as the location of the KDC server. For more information, see MIT Kerberos Documentation: krb5.conf.

    • KAFKA_SASL_GSSAPI_SERVICE - The Kerberos service name, as set with sasl.kerberos.service.name in your Kafka Configuration.

    • KAFKA_SASL_GSSAPI_PRINCIPAL - The name of the Kerberos princial used by Glue. For more information, see Kafka Documentation: Configuring Kafka Brokers.

    " }, "PhysicalConnectionRequirements":{ "shape":"PhysicalConnectionRequirements", @@ -6390,6 +6391,9 @@ "CONNECTOR_TYPE", "CONNECTOR_CLASS_NAME", "KAFKA_SASL_MECHANISM", + "KAFKA_SASL_PLAIN_USERNAME", + "KAFKA_SASL_PLAIN_PASSWORD", + "ENCRYPTED_KAFKA_SASL_PLAIN_PASSWORD", "KAFKA_SASL_SCRAM_USERNAME", "KAFKA_SASL_SCRAM_PASSWORD", "KAFKA_SASL_SCRAM_SECRETS_ARN", @@ -10185,6 +10189,10 @@ "SseAwsKmsKeyId":{ "shape":"NameString", "documentation":"

    The ID of the KMS key to use for encryption at rest.

    " + }, + "CatalogEncryptionServiceRole":{ + "shape":"IAMRoleArn", + "documentation":"

    The role that Glue assumes to encrypt and decrypt the Data Catalog objects on the caller's behalf.

    " } }, "documentation":"

    Specifies the encryption-at-rest configuration for the Data Catalog.

    " @@ -11705,7 +11713,7 @@ "documentation":"

    A continuation token, if this is a continuation call.

    " }, "MaxResults":{ - "shape":"PageSize", + "shape":"OrchestrationPageSize200", "documentation":"

    The maximum size of the response.

    " } } @@ -12840,7 +12848,7 @@ "documentation":"

    The name of the job to retrieve triggers for. The trigger that can start this job is returned, and if there is no such trigger, all triggers are returned.

    " }, "MaxResults":{ - "shape":"PageSize", + "shape":"OrchestrationPageSize200", "documentation":"

    The maximum size of the response.

    " } } @@ -13549,6 +13557,10 @@ "type":"list", "member":{"shape":"HudiTarget"} }, + "IAMRoleArn":{ + "type":"string", + "pattern":"^arn:aws(-(cn|us-gov|iso(-[bef])?))?:iam::[0-9]{12}:role/.+" + }, "IcebergInput":{ "type":"structure", "required":["MetadataOperation"], @@ -14114,7 +14126,7 @@ }, "Runtime":{ "shape":"RuntimeNameString", - "documentation":"

    In Ray jobs, Runtime is used to specify the versions of Ray, Python and additional libraries available in your environment. This field is not used in other job types. For supported runtime environment values, see Working with Ray jobs in the Glue Developer Guide.

    " + "documentation":"

    In Ray jobs, Runtime is used to specify the versions of Ray, Python and additional libraries available in your environment. This field is not used in other job types. For supported runtime environment values, see Supported Ray runtime environments in the Glue Developer Guide.

    " } }, "documentation":"

    Specifies code that runs when a job is run.

    " @@ -14776,7 +14788,7 @@ "documentation":"

    A continuation token, if this is a continuation request.

    " }, "MaxResults":{ - "shape":"PageSize", + "shape":"OrchestrationPageSize25", "documentation":"

    The maximum size of a list to return.

    " }, "Tags":{ @@ -15372,7 +15384,7 @@ "documentation":"

    The name of the job for which to retrieve triggers. The trigger that can start this job is returned. If there is no such trigger, all triggers are returned.

    " }, "MaxResults":{ - "shape":"PageSize", + "shape":"OrchestrationPageSize200", "documentation":"

    The maximum size of a list to return.

    " }, "Tags":{ @@ -15402,7 +15414,7 @@ "documentation":"

    A continuation token, if this is a continuation request.

    " }, "MaxResults":{ - "shape":"PageSize", + "shape":"OrchestrationPageSize25", "documentation":"

    The maximum size of a list to return.

    " } } @@ -16247,6 +16259,18 @@ "min":1, "pattern":"[\\.\\-_A-Za-z0-9]+" }, + "OrchestrationPageSize200":{ + "type":"integer", + "box":true, + "max":200, + "min":1 + }, + "OrchestrationPageSize25":{ + "type":"integer", + "box":true, + "max":25, + "min":1 + }, "OrchestrationRoleArn":{ "type":"string", "max":2048, diff --git a/services/grafana/pom.xml b/services/grafana/pom.xml index 722701978583..ec1b6cdfa8d3 100644 --- a/services/grafana/pom.xml +++ b/services/grafana/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT grafana AWS Java SDK :: Services :: Grafana diff --git a/services/grafana/src/main/resources/codegen-resources/customization.config b/services/grafana/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/grafana/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/greengrass/pom.xml b/services/greengrass/pom.xml index 3d11e3f9d558..12c3c704e009 100644 --- a/services/greengrass/pom.xml +++ b/services/greengrass/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT greengrass AWS Java SDK :: Services :: AWS Greengrass diff --git a/services/greengrass/src/main/resources/codegen-resources/customization.config b/services/greengrass/src/main/resources/codegen-resources/customization.config index 85d0fe29ba96..3079b4158ca8 100644 --- a/services/greengrass/src/main/resources/codegen-resources/customization.config +++ b/services/greengrass/src/main/resources/codegen-resources/customization.config @@ -1,27 +1,28 @@ { - "verifiedSimpleMethods": [ - "disassociateServiceRoleFromAccount", - "getServiceRoleForAccount", - "listBulkDeployments", - "listConnectorDefinitions", - "listCoreDefinitions", - "listDeviceDefinitions", - "listFunctionDefinitions", - "listGroups", - "listLoggerDefinitions", - "listResourceDefinitions", - "listSubscriptionDefinitions" - ], - "excludedSimpleMethods": [ - "associateServiceRoleToAccount", - "createCoreDefinition", - "createConnectorDefinition", - "createDeviceDefinition", - "createFunctionDefinition", - "createGroup", - "createLoggerDefinition", - "createSubscriptionDefinition", - "createResourceDefinition", - "createSoftwareUpdateJob" - ] + "verifiedSimpleMethods": [ + "disassociateServiceRoleFromAccount", + "getServiceRoleForAccount", + "listBulkDeployments", + "listConnectorDefinitions", + "listCoreDefinitions", + "listDeviceDefinitions", + "listFunctionDefinitions", + "listGroups", + "listLoggerDefinitions", + "listResourceDefinitions", + "listSubscriptionDefinitions" + ], + "excludedSimpleMethods": [ + "associateServiceRoleToAccount", + "createCoreDefinition", + "createConnectorDefinition", + "createDeviceDefinition", + "createFunctionDefinition", + "createGroup", + "createLoggerDefinition", + "createSubscriptionDefinition", + "createResourceDefinition", + "createSoftwareUpdateJob" + ], + "useSraAuth": true } diff --git a/services/greengrassv2/pom.xml b/services/greengrassv2/pom.xml index ba7e96c19738..74b6bcec5231 100644 --- a/services/greengrassv2/pom.xml +++ b/services/greengrassv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT greengrassv2 AWS Java SDK :: Services :: Greengrass V2 diff --git a/services/greengrassv2/src/main/resources/codegen-resources/customization.config b/services/greengrassv2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/greengrassv2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/groundstation/pom.xml b/services/groundstation/pom.xml index 8f6ffe2314cc..6f592be01c9b 100644 --- a/services/groundstation/pom.xml +++ b/services/groundstation/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT groundstation AWS Java SDK :: Services :: GroundStation diff --git a/services/groundstation/src/main/resources/codegen-resources/customization.config b/services/groundstation/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/groundstation/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/guardduty/pom.xml b/services/guardduty/pom.xml index ac2e4a104844..f2204d24e4f0 100644 --- a/services/guardduty/pom.xml +++ b/services/guardduty/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 guardduty diff --git a/services/guardduty/src/main/resources/codegen-resources/customization.config b/services/guardduty/src/main/resources/codegen-resources/customization.config index 3d541f6b5b27..b8cc21cfc356 100644 --- a/services/guardduty/src/main/resources/codegen-resources/customization.config +++ b/services/guardduty/src/main/resources/codegen-resources/customization.config @@ -1,12 +1,13 @@ { - "verifiedSimpleMethods": [ - "getInvitationsCount", - "listDetectors", - "listInvitations" - ], - "excludedSimpleMethods": [ - "createDetector", - "declineInvitations", - "deleteInvitations" - ] + "verifiedSimpleMethods": [ + "getInvitationsCount", + "listDetectors", + "listInvitations" + ], + "excludedSimpleMethods": [ + "createDetector", + "declineInvitations", + "deleteInvitations" + ], + "useSraAuth": true } diff --git a/services/guardduty/src/main/resources/codegen-resources/service-2.json b/services/guardduty/src/main/resources/codegen-resources/service-2.json index f4392f7fa2ee..508e0a24169c 100644 --- a/services/guardduty/src/main/resources/codegen-resources/service-2.json +++ b/services/guardduty/src/main/resources/codegen-resources/service-2.json @@ -494,7 +494,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

    Lists Amazon GuardDuty findings statistics for the specified detector ID.

    " + "documentation":"

    Lists Amazon GuardDuty findings statistics for the specified detector ID.

    There might be regional differences because some flags might not be available in all the Regions where GuardDuty is currently supported. For more information, see Regions and endpoints.

    " }, "GetIPSet":{ "name":"GetIPSet", @@ -720,7 +720,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

    Lists Amazon GuardDuty findings for the specified detector ID.

    " + "documentation":"

    Lists GuardDuty findings for the specified detector ID.

    There might be regional differences because some flags might not be available in all the Regions where GuardDuty is currently supported. For more information, see Regions and endpoints.

    " }, "ListIPSets":{ "name":"ListIPSets", @@ -934,7 +934,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

    Updates the Amazon GuardDuty detector specified by the detectorId.

    There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

    " + "documentation":"

    Updates the GuardDuty detector specified by the detectorId.

    There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

    " }, "UpdateFilter":{ "name":"UpdateFilter", @@ -3567,7 +3567,8 @@ "Email":{ "type":"string", "max":64, - "min":1 + "min":1, + "sensitive":true }, "EnableOrganizationAdminAccountRequest":{ "type":"structure", @@ -5686,7 +5687,7 @@ "type":"structure", "members":{ "IpAddressV4":{ - "shape":"String", + "shape":"SensitiveString", "documentation":"

    The IPv4 local address of the connection.

    ", "locationName":"ipAddressV4" } @@ -6089,7 +6090,7 @@ "locationName":"privateDnsName" }, "PrivateIpAddress":{ - "shape":"String", + "shape":"SensitiveString", "documentation":"

    The private IP address of the EC2 instance.

    ", "locationName":"privateIpAddress" }, @@ -6658,7 +6659,7 @@ "locationName":"privateDnsName" }, "PrivateIpAddress":{ - "shape":"String", + "shape":"SensitiveString", "documentation":"

    The private IP address of the EC2 instance.

    ", "locationName":"privateIpAddress" } @@ -6916,7 +6917,7 @@ "locationName":"geoLocation" }, "IpAddressV4":{ - "shape":"String", + "shape":"SensitiveString", "documentation":"

    The IPv4 remote address of the connection.

    ", "locationName":"ipAddressV4" }, @@ -7568,6 +7569,10 @@ "type":"list", "member":{"shape":"SecurityGroup"} }, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, "Service":{ "type":"structure", "members":{ diff --git a/services/health/pom.xml b/services/health/pom.xml index 6e7c6fa26fac..155f49966056 100644 --- a/services/health/pom.xml +++ b/services/health/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT health AWS Java SDK :: Services :: AWS Health APIs and Notifications diff --git a/services/health/src/main/resources/codegen-resources/customization.config b/services/health/src/main/resources/codegen-resources/customization.config index e7e0e53e4a7b..c4ce29f26381 100644 --- a/services/health/src/main/resources/codegen-resources/customization.config +++ b/services/health/src/main/resources/codegen-resources/customization.config @@ -1,7 +1,10 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeEvents", "describeEntityAggregates", "describeEventTypes" - ] -} \ No newline at end of file + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/healthlake/pom.xml b/services/healthlake/pom.xml index ec0b125a5141..7da6d09c7782 100644 --- a/services/healthlake/pom.xml +++ b/services/healthlake/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT healthlake AWS Java SDK :: Services :: Health Lake diff --git a/services/healthlake/src/main/resources/codegen-resources/customization.config b/services/healthlake/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/healthlake/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/healthlake/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/healthlake/src/main/resources/codegen-resources/endpoint-rule-set.json index 52c8404b6c90..b06ae2be7c17 100644 --- a/services/healthlake/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/healthlake/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/healthlake/src/main/resources/codegen-resources/service-2.json b/services/healthlake/src/main/resources/codegen-resources/service-2.json index ce4e920381f3..bfc582a26178 100644 --- a/services/healthlake/src/main/resources/codegen-resources/service-2.json +++ b/services/healthlake/src/main/resources/codegen-resources/service-2.json @@ -546,7 +546,7 @@ "members":{ "ImportJobProperties":{ "shape":"ImportJobProperties", - "documentation":"

    The properties of the Import job request, including the ID, ARN, name, and the status of the job.

    " + "documentation":"

    The properties of the Import job request, including the ID, ARN, name, status of the job, and the progress report of the job.

    " } } }, @@ -613,6 +613,8 @@ "type":"string", "enum":["R4"] }, + "GenericDouble":{"type":"double"}, + "GenericLong":{"type":"long"}, "IamRoleArn":{ "type":"string", "max":2048, @@ -681,6 +683,10 @@ "documentation":"

    The input data configuration that was supplied when the Import job was created.

    " }, "JobOutputDataConfig":{"shape":"OutputDataConfig"}, + "JobProgressReport":{ + "shape":"JobProgressReport", + "documentation":"

    Displays the progress of the import job, including total resources scanned, total resources ingested, and total size of data ingested.

    " + }, "DataAccessRoleArn":{ "shape":"IamRoleArn", "documentation":"

    The Amazon Resource Name (ARN) that gives AWS HealthLake access to your input data.

    " @@ -690,7 +696,7 @@ "documentation":"

    An explanation of any errors that may have occurred during the FHIR import job.

    " } }, - "documentation":"

    Displays the properties of the import job, including the ID, Arn, Name, and the status of the data store.

    " + "documentation":"

    Displays the properties of the import job, including the ID, Arn, Name, the status of the job, and the progress report of the job.

    " }, "ImportJobPropertiesList":{ "type":"list", @@ -728,6 +734,44 @@ "min":1, "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" }, + "JobProgressReport":{ + "type":"structure", + "members":{ + "TotalNumberOfScannedFiles":{ + "shape":"GenericLong", + "documentation":"

    The number of files scanned from input S3 bucket.

    " + }, + "TotalSizeOfScannedFilesInMB":{ + "shape":"GenericDouble", + "documentation":"

    The size (in MB) of the files scanned from the input S3 bucket.

    " + }, + "TotalNumberOfImportedFiles":{ + "shape":"GenericLong", + "documentation":"

    The number of files imported so far.

    " + }, + "TotalNumberOfResourcesScanned":{ + "shape":"GenericLong", + "documentation":"

    The number of resources scanned from the input S3 bucket.

    " + }, + "TotalNumberOfResourcesImported":{ + "shape":"GenericLong", + "documentation":"

    The number of resources imported so far.

    " + }, + "TotalNumberOfResourcesWithCustomerError":{ + "shape":"GenericLong", + "documentation":"

    The number of resources that failed due to customer error.

    " + }, + "TotalNumberOfFilesReadWithCustomerError":{ + "shape":"GenericLong", + "documentation":"

    The number of files that failed to be read from the input S3 bucket due to customer error.

    " + }, + "Throughput":{ + "shape":"GenericDouble", + "documentation":"

    The throughput (in MB/sec) of the import job.

    " + } + }, + "documentation":"

    The progress report of an import job.

    " + }, "JobStatus":{ "type":"string", "enum":[ @@ -882,7 +926,7 @@ "members":{ "ImportJobPropertiesList":{ "shape":"ImportJobPropertiesList", - "documentation":"

    The properties of a listed FHIR import jobs, including the ID, ARN, name, and the status of the job.

    " + "documentation":"

    The properties of a listed FHIR import jobs, including the ID, ARN, name, the status of the job, and the progress report of the job.

    " }, "NextToken":{ "shape":"NextToken", diff --git a/services/honeycode/pom.xml b/services/honeycode/pom.xml index ea24f75206ce..2461a6176d73 100644 --- a/services/honeycode/pom.xml +++ b/services/honeycode/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT honeycode AWS Java SDK :: Services :: Honeycode diff --git a/services/honeycode/src/main/resources/codegen-resources/customization.config b/services/honeycode/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/honeycode/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/iam/pom.xml b/services/iam/pom.xml index 7160ab5ad639..d074afcd0d53 100644 --- a/services/iam/pom.xml +++ b/services/iam/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iam AWS Java SDK :: Services :: AWS IAM diff --git a/services/iam/src/main/resources/codegen-resources/customization.config b/services/iam/src/main/resources/codegen-resources/customization.config index f73e03152d6c..6216df814396 100644 --- a/services/iam/src/main/resources/codegen-resources/customization.config +++ b/services/iam/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true, "verifiedSimpleMethods": [ "createAccessKey", "deleteAccountPasswordPolicy", diff --git a/services/identitystore/pom.xml b/services/identitystore/pom.xml index cfd002e5c817..b671c07b810f 100644 --- a/services/identitystore/pom.xml +++ b/services/identitystore/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT identitystore AWS Java SDK :: Services :: Identitystore diff --git a/services/identitystore/src/main/resources/codegen-resources/customization.config b/services/identitystore/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/identitystore/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/imagebuilder/pom.xml b/services/imagebuilder/pom.xml index 5e2ccdf41f57..7f9a388de2ce 100644 --- a/services/imagebuilder/pom.xml +++ b/services/imagebuilder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT imagebuilder AWS Java SDK :: Services :: Imagebuilder diff --git a/services/imagebuilder/src/main/resources/codegen-resources/customization.config b/services/imagebuilder/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/imagebuilder/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/inspector/pom.xml b/services/inspector/pom.xml index b920c0e76f9e..c17838451322 100644 --- a/services/inspector/pom.xml +++ b/services/inspector/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT inspector AWS Java SDK :: Services :: Amazon Inspector Service diff --git a/services/inspector/src/main/resources/codegen-resources/customization.config b/services/inspector/src/main/resources/codegen-resources/customization.config index 9be5e5c24056..a5ed1fc1833c 100644 --- a/services/inspector/src/main/resources/codegen-resources/customization.config +++ b/services/inspector/src/main/resources/codegen-resources/customization.config @@ -1,58 +1,61 @@ { - "verifiedSimpleMethods": [ - "describeCrossAccountAccessRole", - "listAssessmentRuns", - "listAssessmentTargets", - "listAssessmentTemplates", - "listEventSubscriptions", - "listFindings", - "listRulesPackages" - ], - "shapeModifiers": { - "AccessDeniedException": { - "modify": [ - { - "errorCode": { - "emitPropertyName": "inspectorErrorCode" - } + "verifiedSimpleMethods": [ + "describeCrossAccountAccessRole", + "listAssessmentRuns", + "listAssessmentTargets", + "listAssessmentTemplates", + "listEventSubscriptions", + "listFindings", + "listRulesPackages" + ], + "shapeModifiers": { + "AccessDeniedException": { + "modify": [ + { + "errorCode": { + "emitPropertyName": "inspectorErrorCode" + } + } + ] + }, + "InvalidCrossAccountRoleException": { + "modify": [ + { + "errorCode": { + "emitPropertyName": "inspectorErrorCode" + } + } + ] + }, + "InvalidInputException": { + "modify": [ + { + "errorCode": { + "emitPropertyName": "inspectorErrorCode" + } + } + ] + }, + "LimitExceededException": { + "modify": [ + { + "errorCode": { + "emitPropertyName": "inspectorErrorCode" + } + } + ] + }, + "NoSuchEntityException": { + "modify": [ + { + "errorCode": { + "emitPropertyName": "inspectorErrorCode" + } + } + ] } - ] }, - "InvalidCrossAccountRoleException": { - "modify": [ - { - "errorCode": { - "emitPropertyName": "inspectorErrorCode" - } - } - ] - }, - "InvalidInputException": { - "modify": [ - { - "errorCode": { - "emitPropertyName": "inspectorErrorCode" - } - } - ] - }, - "LimitExceededException": { - "modify": [ - { - "errorCode": { - "emitPropertyName": "inspectorErrorCode" - } - } - ] - }, - "NoSuchEntityException": { - "modify": [ - { - "errorCode": { - "emitPropertyName": "inspectorErrorCode" - } - } - ] - } - } + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/inspector2/pom.xml b/services/inspector2/pom.xml index d8717db470ed..84baf6e0de7d 100644 --- a/services/inspector2/pom.xml +++ b/services/inspector2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT inspector2 AWS Java SDK :: Services :: Inspector2 diff --git a/services/inspector2/src/main/resources/codegen-resources/customization.config b/services/inspector2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/inspector2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/inspector2/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/inspector2/src/main/resources/codegen-resources/endpoint-rule-set.json index a8d6cdbbc6f8..1d9d6c07b56f 100644 --- a/services/inspector2/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/inspector2/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/inspector2/src/main/resources/codegen-resources/paginators-1.json b/services/inspector2/src/main/resources/codegen-resources/paginators-1.json index f6aaa6d4d0ae..f3abea9ff99e 100644 --- a/services/inspector2/src/main/resources/codegen-resources/paginators-1.json +++ b/services/inspector2/src/main/resources/codegen-resources/paginators-1.json @@ -1,11 +1,41 @@ { "pagination": { + "GetCisScanResultDetails": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "scanResultDetails" + }, "ListAccountPermissions": { "input_token": "nextToken", "output_token": "nextToken", "limit_key": "maxResults", "result_key": "permissions" }, + "ListCisScanConfigurations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "scanConfigurations" + }, + "ListCisScanResultsAggregatedByChecks": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "checkAggregations" + }, + "ListCisScanResultsAggregatedByTargetResource": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "targetResourceAggregations" + }, + "ListCisScans": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "scans" + }, "ListCoverage": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/inspector2/src/main/resources/codegen-resources/service-2.json b/services/inspector2/src/main/resources/codegen-resources/service-2.json index 915adc197a24..57ee20125ae4 100644 --- a/services/inspector2/src/main/resources/codegen-resources/service-2.json +++ b/services/inspector2/src/main/resources/codegen-resources/service-2.json @@ -170,6 +170,23 @@ "documentation":"

    Cancels a software bill of materials (SBOM) report.

    ", "idempotent":true }, + "CreateCisScanConfiguration":{ + "name":"CreateCisScanConfiguration", + "http":{ + "method":"POST", + "requestUri":"/cis/scan-configuration/create", + "responseCode":200 + }, + "input":{"shape":"CreateCisScanConfigurationRequest"}, + "output":{"shape":"CreateCisScanConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Creates a CIS scan configuration.

    " + }, "CreateFilter":{ "name":"CreateFilter", "http":{ @@ -226,6 +243,24 @@ "documentation":"

    Creates a software bill of materials (SBOM) report.

    ", "idempotent":true }, + "DeleteCisScanConfiguration":{ + "name":"DeleteCisScanConfiguration", + "http":{ + "method":"POST", + "requestUri":"/cis/scan-configuration/delete", + "responseCode":200 + }, + "input":{"shape":"DeleteCisScanConfigurationRequest"}, + "output":{"shape":"DeleteCisScanConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes a CIS scan configuration.

    " + }, "DeleteFilter":{ "name":"DeleteFilter", "http":{ @@ -352,6 +387,40 @@ ], "documentation":"

    Enables the Amazon Inspector delegated administrator for your Organizations organization.

    " }, + "GetCisScanReport":{ + "name":"GetCisScanReport", + "http":{ + "method":"POST", + "requestUri":"/cis/scan/report/get", + "responseCode":200 + }, + "input":{"shape":"GetCisScanReportRequest"}, + "output":{"shape":"GetCisScanReportResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves a CIS scan report.

    " + }, + "GetCisScanResultDetails":{ + "name":"GetCisScanResultDetails", + "http":{ + "method":"POST", + "requestUri":"/cis/scan-result/details/get", + "responseCode":200 + }, + "input":{"shape":"GetCisScanResultDetailsRequest"}, + "output":{"shape":"GetCisScanResultDetailsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves CIS scan result details.

    " + }, "GetConfiguration":{ "name":"GetConfiguration", "http":{ @@ -493,6 +562,74 @@ ], "documentation":"

    Lists the permissions an account has to configure Amazon Inspector.

    " }, + "ListCisScanConfigurations":{ + "name":"ListCisScanConfigurations", + "http":{ + "method":"POST", + "requestUri":"/cis/scan-configuration/list", + "responseCode":200 + }, + "input":{"shape":"ListCisScanConfigurationsRequest"}, + "output":{"shape":"ListCisScanConfigurationsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists CIS scan configurations.

    " + }, + "ListCisScanResultsAggregatedByChecks":{ + "name":"ListCisScanResultsAggregatedByChecks", + "http":{ + "method":"POST", + "requestUri":"/cis/scan-result/check/list", + "responseCode":200 + }, + "input":{"shape":"ListCisScanResultsAggregatedByChecksRequest"}, + "output":{"shape":"ListCisScanResultsAggregatedByChecksResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists scan results aggregated by checks.

    " + }, + "ListCisScanResultsAggregatedByTargetResource":{ + "name":"ListCisScanResultsAggregatedByTargetResource", + "http":{ + "method":"POST", + "requestUri":"/cis/scan-result/resource/list", + "responseCode":200 + }, + "input":{"shape":"ListCisScanResultsAggregatedByTargetResourceRequest"}, + "output":{"shape":"ListCisScanResultsAggregatedByTargetResourceResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists scan results aggregated by a target resource.

    " + }, + "ListCisScans":{ + "name":"ListCisScans", + "http":{ + "method":"POST", + "requestUri":"/cis/scan/list", + "responseCode":200 + }, + "input":{"shape":"ListCisScansRequest"}, + "output":{"shape":"ListCisScansResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Returns a CIS scan list.

    " + }, "ListCoverage":{ "name":"ListCoverage", "http":{ @@ -678,6 +815,82 @@ ], "documentation":"

    Lists Amazon Inspector coverage details for a specific vulnerability.

    " }, + "SendCisSessionHealth":{ + "name":"SendCisSessionHealth", + "http":{ + "method":"PUT", + "requestUri":"/cissession/health/send", + "responseCode":200 + }, + "input":{"shape":"SendCisSessionHealthRequest"}, + "output":{"shape":"SendCisSessionHealthResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Sends a CIS session health. This API is used by the Amazon Inspector SSM plugin to communicate with the Amazon Inspector service. The Amazon Inspector SSM plugin calls this API to start a CIS scan session for the scan ID supplied by the service.

    ", + "idempotent":true + }, + "SendCisSessionTelemetry":{ + "name":"SendCisSessionTelemetry", + "http":{ + "method":"PUT", + "requestUri":"/cissession/telemetry/send", + "responseCode":200 + }, + "input":{"shape":"SendCisSessionTelemetryRequest"}, + "output":{"shape":"SendCisSessionTelemetryResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Sends a CIS session telemetry. This API is used by the Amazon Inspector SSM plugin to communicate with the Amazon Inspector service. The Amazon Inspector SSM plugin calls this API to start a CIS scan session for the scan ID supplied by the service.

    ", + "idempotent":true + }, + "StartCisSession":{ + "name":"StartCisSession", + "http":{ + "method":"PUT", + "requestUri":"/cissession/start", + "responseCode":200 + }, + "input":{"shape":"StartCisSessionRequest"}, + "output":{"shape":"StartCisSessionResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Starts a CIS session. This API is used by the Amazon Inspector SSM plugin to communicate with the Amazon Inspector service. The Amazon Inspector SSM plugin calls this API to start a CIS scan session for the scan ID supplied by the service.

    ", + "idempotent":true + }, + "StopCisSession":{ + "name":"StopCisSession", + "http":{ + "method":"PUT", + "requestUri":"/cissession/stop", + "responseCode":200 + }, + "input":{"shape":"StopCisSessionRequest"}, + "output":{"shape":"StopCisSessionResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Stops a CIS session. This API is used by the Amazon Inspector SSM plugin to communicate with the Amazon Inspector service. The Amazon Inspector SSM plugin calls this API to start a CIS scan session for the scan ID supplied by the service.

    ", + "idempotent":true + }, "TagResource":{ "name":"TagResource", "http":{ @@ -714,6 +927,24 @@ ], "documentation":"

    Removes tags from a resource.

    " }, + "UpdateCisScanConfiguration":{ + "name":"UpdateCisScanConfiguration", + "http":{ + "method":"POST", + "requestUri":"/cis/scan-configuration/update", + "responseCode":200 + }, + "input":{"shape":"UpdateCisScanConfigurationRequest"}, + "output":{"shape":"UpdateCisScanConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Updates a CIS scan configuration.

    " + }, "UpdateConfiguration":{ "name":"UpdateConfiguration", "http":{ @@ -764,7 +995,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Updates an encryption key. A ResourceNotFoundException means that an AWS owned key is being used for encryption.

    ", + "documentation":"

    Updates an encryption key. A ResourceNotFoundException means that an Amazon Web Services owned key is being used for encryption.

    ", "idempotent":true }, "UpdateFilter":{ @@ -899,6 +1130,12 @@ "min":12, "pattern":"^\\d{12}$" }, + "AccountIdFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, "AccountIdSet":{ "type":"list", "member":{"shape":"AccountId"}, @@ -984,11 +1221,11 @@ }, "lambdaFunctionAggregation":{ "shape":"LambdaFunctionAggregation", - "documentation":"

    Returns an object with findings aggregated by AWS Lambda function.

    " + "documentation":"

    Returns an object with findings aggregated by Amazon Web Services Lambda function.

    " }, "lambdaLayerAggregation":{ "shape":"LambdaLayerAggregation", - "documentation":"

    Returns an object with findings aggregated by AWS Lambda layer.

    " + "documentation":"

    Returns an object with findings aggregated by Amazon Web Services Lambda layer.

    " }, "packageAggregation":{ "shape":"PackageAggregation", @@ -1043,11 +1280,11 @@ }, "lambdaFunctionAggregation":{ "shape":"LambdaFunctionAggregationResponse", - "documentation":"

    An aggregation of findings by AWS Lambda function.

    " + "documentation":"

    An aggregation of findings by Amazon Web Services Lambda function.

    " }, "lambdaLayerAggregation":{ "shape":"LambdaLayerAggregationResponse", - "documentation":"

    An aggregation of findings by AWS Lambda layer.

    " + "documentation":"

    An aggregation of findings by Amazon Web Services Lambda layer.

    " }, "packageAggregation":{ "shape":"PackageAggregationResponse", @@ -1216,11 +1453,11 @@ }, "lambda":{ "shape":"Boolean", - "documentation":"

    Represents whether AWS Lambda standard scans are automatically enabled for new members of your Amazon Inspector organization.

    " + "documentation":"

    Represents whether Amazon Web Services Lambda standard scans are automatically enabled for new members of your Amazon Inspector organization.

    " }, "lambdaCode":{ "shape":"Boolean", - "documentation":"

    Represents whether AWS Lambda code scans are automatically enabled for new members of your Amazon Inspector organization.

     </p> 
    " + "documentation":"

    Represents whether Lambda code scans are automatically enabled for new members of your Amazon Inspector organization.

     </p> 
    " } }, "documentation":"

    Represents which scan types are automatically enabled for new members of your Amazon Inspector organization.

    " @@ -1403,19 +1640,19 @@ "members":{ "architectures":{ "shape":"ArchitectureList", - "documentation":"

    The instruction set architecture that the AWS Lambda function supports. Architecture is a string array with one of the valid values. The default architecture value is x86_64.

    " + "documentation":"

    The instruction set architecture that the Amazon Web Services Lambda function supports. Architecture is a string array with one of the valid values. The default architecture value is x86_64.

    " }, "codeSha256":{ "shape":"NonEmptyString", - "documentation":"

    The SHA256 hash of the AWS Lambda function's deployment package.

    " + "documentation":"

    The SHA256 hash of the Amazon Web Services Lambda function's deployment package.

    " }, "executionRoleArn":{ "shape":"ExecutionRoleArn", - "documentation":"

    The AWS Lambda function's execution role.

    " + "documentation":"

    The Amazon Web Services Lambda function's execution role.

    " }, "functionName":{ "shape":"FunctionName", - "documentation":"

    The name of the AWS Lambda function.

    " + "documentation":"

    The name of the Amazon Web Services Lambda function.

    " }, "lastModifiedAt":{ "shape":"Timestamp", @@ -1423,7 +1660,7 @@ }, "layers":{ "shape":"LayerList", - "documentation":"

    The AWS Lambda function's layers. A Lambda function can have up to five layers.

    " + "documentation":"

    The Amazon Web Services Lambda function's layers. A Lambda function can have up to five layers.

    " }, "packageType":{ "shape":"PackageType", @@ -1431,18 +1668,18 @@ }, "runtime":{ "shape":"Runtime", - "documentation":"

    The runtime environment for the AWS Lambda function.

    " + "documentation":"

    The runtime environment for the Amazon Web Services Lambda function.

    " }, "version":{ "shape":"Version", - "documentation":"

    The version of the AWS Lambda function.

    " + "documentation":"

    The version of the Amazon Web Services Lambda function.

    " }, "vpcConfig":{ "shape":"LambdaVpcConfig", - "documentation":"

    The AWS Lambda function's networking configuration.

    " + "documentation":"

    The Amazon Web Services Lambda function's networking configuration.

    " } }, - "documentation":"

    A summary of information about the AWS Lambda function.

    " + "documentation":"

    A summary of information about the Amazon Web Services Lambda function.

    " }, "BadRequestException":{ "type":"structure", @@ -1610,6 +1847,16 @@ } } }, + "BenchmarkProfile":{ + "type":"string", + "max":128, + "min":0 + }, + "BenchmarkVersion":{ + "type":"string", + "max":8, + "min":0 + }, "Boolean":{ "type":"boolean", "box":true @@ -1651,7 +1898,808 @@ "shape":"ReportId", "documentation":"

    The report ID of the canceled SBOM export.

    " } - } + } + }, + "CheckCount":{ + "type":"integer", + "max":65536, + "min":0 + }, + "CheckIdFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, + "CisAccountIdList":{ + "type":"list", + "member":{"shape":"AccountId"}, + "max":10000, + "min":1 + }, + "CisCheckAggregation":{ + "type":"structure", + "required":["scanArn"], + "members":{ + "accountId":{ + "shape":"AccountId", + "documentation":"

    The account ID for the CIS check.

    " + }, + "checkDescription":{ + "shape":"String", + "documentation":"

    The description for the CIS check.

    " + }, + "checkId":{ + "shape":"String", + "documentation":"

    The check ID for the CIS check.

    " + }, + "level":{ + "shape":"CisSecurityLevel", + "documentation":"

    The CIS check level.

    " + }, + "platform":{ + "shape":"String", + "documentation":"

    The CIS check platform.

    " + }, + "scanArn":{ + "shape":"CisScanArn", + "documentation":"

    The scan ARN for the CIS check scan ARN.

    " + }, + "statusCounts":{ + "shape":"StatusCounts", + "documentation":"

    The CIS check status counts.

    " + }, + "title":{ + "shape":"String", + "documentation":"

    The CIS check title.

    " + } + }, + "documentation":"

    A CIS check.

    " + }, + "CisCheckAggregationList":{ + "type":"list", + "member":{"shape":"CisCheckAggregation"}, + "max":1000, + "min":1 + }, + "CisDateFilter":{ + "type":"structure", + "members":{ + "earliestScanStartTime":{ + "shape":"Timestamp", + "documentation":"

    The CIS date filter's earliest scan start time.

    " + }, + "latestScanStartTime":{ + "shape":"Timestamp", + "documentation":"

    The CIS date filter's latest scan start time.

    " + } + }, + "documentation":"

    The CIS date filter.

    " + }, + "CisFindingArn":{ + "type":"string", + "pattern":"^arn:aws(-gov|-cn)?:inspector2:[-.a-z0-9]{0,20}:\\d{12}:owner/\\d{12}/cis-finding/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" + }, + "CisFindingArnFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, + "CisFindingStatus":{ + "type":"string", + "enum":[ + "PASSED", + "FAILED", + "SKIPPED" + ] + }, + "CisFindingStatusComparison":{ + "type":"string", + "enum":["EQUALS"] + }, + "CisFindingStatusFilter":{ + "type":"structure", + "required":[ + "comparison", + "value" + ], + "members":{ + "comparison":{ + "shape":"CisFindingStatusComparison", + "documentation":"

    The comparison value of the CIS finding status filter.

    " + }, + "value":{ + "shape":"CisFindingStatus", + "documentation":"

    The value of the CIS finding status filter.

    " + } + }, + "documentation":"

    The CIS finding status filter.

    " + }, + "CisFindingStatusFilterList":{ + "type":"list", + "member":{"shape":"CisFindingStatusFilter"}, + "max":10, + "min":1 + }, + "CisNumberFilter":{ + "type":"structure", + "members":{ + "lowerInclusive":{ + "shape":"Integer", + "documentation":"

    The CIS number filter's lower inclusive.

    " + }, + "upperInclusive":{ + "shape":"Integer", + "documentation":"

    The CIS number filter's upper inclusive.

    " + } + }, + "documentation":"

    The CIS number filter.

    " + }, + "CisNumberFilterList":{ + "type":"list", + "member":{"shape":"CisNumberFilter"}, + "max":10, + "min":1 + }, + "CisOwnerId":{ + "type":"string", + "pattern":"^\\d{12}|o-[a-z0-9]{10,32}$" + }, + "CisReportStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "FAILED", + "IN_PROGRESS" + ] + }, + "CisResultStatus":{ + "type":"string", + "enum":[ + "PASSED", + "FAILED", + "SKIPPED" + ] + }, + "CisResultStatusComparison":{ + "type":"string", + "enum":["EQUALS"] + }, + "CisResultStatusFilter":{ + "type":"structure", + "required":[ + "comparison", + "value" + ], + "members":{ + "comparison":{ + "shape":"CisResultStatusComparison", + "documentation":"

    The comparison value of the CIS result status filter.

    " + }, + "value":{ + "shape":"CisResultStatus", + "documentation":"

    The value of the CIS result status filter.

    " + } + }, + "documentation":"

    The CIS result status filter.

    " + }, + "CisResultStatusFilterList":{ + "type":"list", + "member":{"shape":"CisResultStatusFilter"}, + "max":10, + "min":1 + }, + "CisRuleDetails":{ + "type":"blob", + "max":1000, + "min":0 + }, + "CisRuleStatus":{ + "type":"string", + "enum":[ + "FAILED", + "PASSED", + "NOT_EVALUATED", + "INFORMATIONAL", + "UNKNOWN", + "NOT_APPLICABLE", + "ERROR" + ] + }, + "CisScan":{ + "type":"structure", + "required":[ + "scanArn", + "scanConfigurationArn" + ], + "members":{ + "failedChecks":{ + "shape":"Integer", + "documentation":"

    The CIS scan's failed checks.

    " + }, + "scanArn":{ + "shape":"CisScanArn", + "documentation":"

    The CIS scan's ARN.

    " + }, + "scanConfigurationArn":{ + "shape":"CisScanConfigurationArn", + "documentation":"

    The CIS scan's configuration ARN.

    " + }, + "scanDate":{ + "shape":"Timestamp", + "documentation":"

    The CIS scan's date.

    " + }, + "scanName":{ + "shape":"CisScanName", + "documentation":"

    The the name of the scan configuration that's associated with this scan.

    " + }, + "scheduledBy":{ + "shape":"String", + "documentation":"

    The account or organization that schedules the CIS scan.

    " + }, + "securityLevel":{ + "shape":"CisSecurityLevel", + "documentation":"

    The security level for the CIS scan. Security level refers to the Benchmark levels that CIS assigns to a profile.

    " + }, + "status":{ + "shape":"CisScanStatus", + "documentation":"

    The CIS scan's status.

    " + }, + "targets":{ + "shape":"CisTargets", + "documentation":"

    The CIS scan's targets.

    " + }, + "totalChecks":{ + "shape":"Integer", + "documentation":"

    The CIS scan's total checks.

    " + } + }, + "documentation":"

    The CIS scan.

    " + }, + "CisScanArn":{ + "type":"string", + "pattern":"^arn:aws(-us-gov|-cn)?:inspector2:[-.a-z0-9]{0,20}:\\d{12}:owner/(\\d{12}|o-[a-z0-9]{10,32})/cis-scan/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" + }, + "CisScanArnFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, + "CisScanConfiguration":{ + "type":"structure", + "required":["scanConfigurationArn"], + "members":{ + "ownerId":{ + "shape":"CisOwnerId", + "documentation":"

    The CIS scan configuration's owner ID.

    " + }, + "scanConfigurationArn":{ + "shape":"CisScanConfigurationArn", + "documentation":"

    The CIS scan configuration's scan configuration ARN.

    " + }, + "scanName":{ + "shape":"CisScanName", + "documentation":"

    The name of the CIS scan configuration.

    " + }, + "schedule":{ + "shape":"Schedule", + "documentation":"

    The CIS scan configuration's schedule.

    " + }, + "securityLevel":{ + "shape":"CisSecurityLevel", + "documentation":"

    The CIS scan configuration's security level.

    " + }, + "tags":{ + "shape":"CisTagMap", + "documentation":"

    The CIS scan configuration's tags.

    " + }, + "targets":{ + "shape":"CisTargets", + "documentation":"

    The CIS scan configuration's targets.

    " + } + }, + "documentation":"

    The CIS scan configuration.

    " + }, + "CisScanConfigurationArn":{ + "type":"string", + "pattern":"^arn:aws(-us-gov|-cn)?:inspector2:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:owner/(o-[a-z0-9]+|[0-9]{12})/cis-configuration/[0-9a-fA-F-]+$" + }, + "CisScanConfigurationArnFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, + "CisScanConfigurationList":{ + "type":"list", + "member":{"shape":"CisScanConfiguration"}, + "max":100, + "min":0 + }, + "CisScanConfigurationsSortBy":{ + "type":"string", + "enum":[ + "SCAN_NAME", + "SCAN_CONFIGURATION_ARN" + ] + }, + "CisScanDateFilterList":{ + "type":"list", + "member":{"shape":"CisDateFilter"}, + "max":1, + "min":1 + }, + "CisScanList":{ + "type":"list", + "member":{"shape":"CisScan"}, + "max":50, + "min":0 + }, + "CisScanName":{ + "type":"string", + "max":128, + "min":1 + }, + "CisScanNameFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, + "CisScanResultDetails":{ + "type":"structure", + "required":["scanArn"], + "members":{ + "accountId":{ + "shape":"AccountId", + "documentation":"

    The CIS scan result details' account ID.

    " + }, + "checkDescription":{ + "shape":"String", + "documentation":"

    The account ID that's associated with the CIS scan result details.

    " + }, + "checkId":{ + "shape":"String", + "documentation":"

    The CIS scan result details' check ID.

    " + }, + "findingArn":{ + "shape":"CisFindingArn", + "documentation":"

    The CIS scan result details' finding ARN.

    " + }, + "level":{ + "shape":"CisSecurityLevel", + "documentation":"

    The CIS scan result details' level.

    " + }, + "platform":{ + "shape":"String", + "documentation":"

    The CIS scan result details' platform.

    " + }, + "remediation":{ + "shape":"String", + "documentation":"

    The CIS scan result details' remediation.

    " + }, + "scanArn":{ + "shape":"CisScanArn", + "documentation":"

    The CIS scan result details' scan ARN.

    " + }, + "status":{ + "shape":"CisFindingStatus", + "documentation":"

    The CIS scan result details' status.

    " + }, + "statusReason":{ + "shape":"String", + "documentation":"

    The CIS scan result details' status reason.

    " + }, + "targetResourceId":{ + "shape":"ResourceId", + "documentation":"

    The CIS scan result details' target resource ID.

    " + }, + "title":{ + "shape":"String", + "documentation":"

    The CIS scan result details' title.

    " + } + }, + "documentation":"

    The CIS scan result details.

    " + }, + "CisScanResultDetailsFilterCriteria":{ + "type":"structure", + "members":{ + "checkIdFilters":{ + "shape":"CheckIdFilterList", + "documentation":"

    The criteria's check ID filters.

    " + }, + "findingArnFilters":{ + "shape":"CisFindingArnFilterList", + "documentation":"

    The criteria's finding ARN filters.

    " + }, + "findingStatusFilters":{ + "shape":"CisFindingStatusFilterList", + "documentation":"

    The criteria's finding status filters.

    " + }, + "securityLevelFilters":{ + "shape":"CisSecurityLevelFilterList", + "documentation":"

    The criteria's security level filters. . Security level refers to the Benchmark levels that CIS assigns to a profile.

    " + }, + "titleFilters":{ + "shape":"TitleFilterList", + "documentation":"

    The criteria's title filters.

    " + } + }, + "documentation":"

    The CIS scan result details filter criteria.

    " + }, + "CisScanResultDetailsList":{ + "type":"list", + "member":{"shape":"CisScanResultDetails"}, + "max":1000, + "min":1 + }, + "CisScanResultDetailsSortBy":{ + "type":"string", + "enum":[ + "CHECK_ID", + "STATUS" + ] + }, + "CisScanResultsAggregatedByChecksFilterCriteria":{ + "type":"structure", + "members":{ + "accountIdFilters":{ + "shape":"OneAccountIdFilterList", + "documentation":"

    The criteria's account ID filters.

    " + }, + "checkIdFilters":{ + "shape":"CheckIdFilterList", + "documentation":"

    The criteria's check ID filters.

    " + }, + "failedResourcesFilters":{ + "shape":"CisNumberFilterList", + "documentation":"

    The criteria's failed resources filters.

    " + }, + "platformFilters":{ + "shape":"PlatformFilterList", + "documentation":"

    The criteria's platform filters.

    " + }, + "securityLevelFilters":{ + "shape":"CisSecurityLevelFilterList", + "documentation":"

    The criteria's security level filters.

    " + }, + "titleFilters":{ + "shape":"TitleFilterList", + "documentation":"

    The criteria's title filters.

    " + } + }, + "documentation":"

    The scan results aggregated by checks filter criteria.

    " + }, + "CisScanResultsAggregatedByChecksSortBy":{ + "type":"string", + "enum":[ + "CHECK_ID", + "TITLE", + "PLATFORM", + "FAILED_COUNTS", + "SECURITY_LEVEL" + ] + }, + "CisScanResultsAggregatedByTargetResourceFilterCriteria":{ + "type":"structure", + "members":{ + "accountIdFilters":{ + "shape":"AccountIdFilterList", + "documentation":"

    The criteria's account ID filters.

    " + }, + "checkIdFilters":{ + "shape":"CheckIdFilterList", + "documentation":"

    The criteria's check ID filters.

    " + }, + "failedChecksFilters":{ + "shape":"CisNumberFilterList", + "documentation":"

    The criteria's failed checks filters.

    " + }, + "platformFilters":{ + "shape":"PlatformFilterList", + "documentation":"

    The criteria's platform filters.

    " + }, + "statusFilters":{ + "shape":"CisResultStatusFilterList", + "documentation":"

    The criteria's status filter.

    " + }, + "targetResourceIdFilters":{ + "shape":"ResourceIdFilterList", + "documentation":"

    The criteria's target resource ID filters.

    " + }, + "targetResourceTagFilters":{ + "shape":"ResourceTagFilterList", + "documentation":"

    The criteria's target resource tag filters.

    " + }, + "targetStatusFilters":{ + "shape":"TargetStatusFilterList", + "documentation":"

    The criteria's target status filters.

    " + }, + "targetStatusReasonFilters":{ + "shape":"TargetStatusReasonFilterList", + "documentation":"

    The criteria's target status reason filters.

    " + } + }, + "documentation":"

    The scan results aggregated by target resource filter criteria.

    " + }, + "CisScanResultsAggregatedByTargetResourceSortBy":{ + "type":"string", + "enum":[ + "RESOURCE_ID", + "FAILED_COUNTS", + "ACCOUNT_ID", + "PLATFORM", + "TARGET_STATUS", + "TARGET_STATUS_REASON" + ] + }, + "CisScanResultsMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "CisScanStatus":{ + "type":"string", + "enum":[ + "FAILED", + "COMPLETED", + "CANCELLED", + "IN_PROGRESS" + ] + }, + "CisScanStatusComparison":{ + "type":"string", + "enum":["EQUALS"] + }, + "CisScanStatusFilter":{ + "type":"structure", + "required":[ + "comparison", + "value" + ], + "members":{ + "comparison":{ + "shape":"CisScanStatusComparison", + "documentation":"

    The filter comparison value.

    " + }, + "value":{ + "shape":"CisScanStatus", + "documentation":"

    The filter value.

    " + } + }, + "documentation":"

    The CIS scan status filter.

    " + }, + "CisScanStatusFilterList":{ + "type":"list", + "member":{"shape":"CisScanStatusFilter"}, + "max":10, + "min":1 + }, + "CisScheduledByFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, + "CisSecurityLevel":{ + "type":"string", + "enum":[ + "LEVEL_1", + "LEVEL_2" + ] + }, + "CisSecurityLevelComparison":{ + "type":"string", + "enum":["EQUALS"] + }, + "CisSecurityLevelFilter":{ + "type":"structure", + "required":[ + "comparison", + "value" + ], + "members":{ + "comparison":{ + "shape":"CisSecurityLevelComparison", + "documentation":"

    The CIS security filter comparison value.

    " + }, + "value":{ + "shape":"CisSecurityLevel", + "documentation":"

    The CIS security filter value.

    " + } + }, + "documentation":"

    The CIS security level filter. Security level refers to the Benchmark levels that CIS assigns to a profile.

    " + }, + "CisSecurityLevelFilterList":{ + "type":"list", + "member":{"shape":"CisSecurityLevelFilter"}, + "max":10, + "min":1 + }, + "CisSessionMessage":{ + "type":"structure", + "required":[ + "cisRuleDetails", + "ruleId", + "status" + ], + "members":{ + "cisRuleDetails":{ + "shape":"CisRuleDetails", + "documentation":"

    The CIS rule details for the CIS session message.

    " + }, + "ruleId":{ + "shape":"RuleId", + "documentation":"

    The rule ID for the CIS session message.

    " + }, + "status":{ + "shape":"CisRuleStatus", + "documentation":"

    The status of the CIS session message.

    " + } + }, + "documentation":"

    The CIS session message.

    " + }, + "CisSessionMessages":{ + "type":"list", + "member":{"shape":"CisSessionMessage"}, + "max":150, + "min":1 + }, + "CisSortOrder":{ + "type":"string", + "enum":[ + "ASC", + "DESC" + ] + }, + "CisStringComparison":{ + "type":"string", + "enum":[ + "EQUALS", + "PREFIX", + "NOT_EQUALS" + ] + }, + "CisStringFilter":{ + "type":"structure", + "required":[ + "comparison", + "value" + ], + "members":{ + "comparison":{ + "shape":"CisStringComparison", + "documentation":"

    The comparison value of the CIS string filter.

    " + }, + "value":{ + "shape":"String", + "documentation":"

    The value of the CIS string filter.

    " + } + }, + "documentation":"

    The CIS string filter.

    " + }, + "CisTagMap":{ + "type":"map", + "key":{"shape":"MapKey"}, + "value":{"shape":"MapValue"} + }, + "CisTargetResourceAggregation":{ + "type":"structure", + "required":["scanArn"], + "members":{ + "accountId":{ + "shape":"AccountId", + "documentation":"

    The account ID for the CIS target resource.

    " + }, + "platform":{ + "shape":"String", + "documentation":"

    The platform for the CIS target resource.

    " + }, + "scanArn":{ + "shape":"CisScanArn", + "documentation":"

    The scan ARN for the CIS target resource.

    " + }, + "statusCounts":{ + "shape":"StatusCounts", + "documentation":"

    The target resource status counts.

    " + }, + "targetResourceId":{ + "shape":"ResourceId", + "documentation":"

    The ID of the target resource.

    " + }, + "targetResourceTags":{ + "shape":"TargetResourceTags", + "documentation":"

    The tag for the target resource.

    " + }, + "targetStatus":{ + "shape":"CisTargetStatus", + "documentation":"

    The status of the target resource.

    " + }, + "targetStatusReason":{ + "shape":"CisTargetStatusReason", + "documentation":"

    The reason for the target resource.

    " + } + }, + "documentation":"

    The CIS target resource aggregation.

    " + }, + "CisTargetResourceAggregationList":{ + "type":"list", + "member":{"shape":"CisTargetResourceAggregation"}, + "max":1000, + "min":1 + }, + "CisTargetStatus":{ + "type":"string", + "enum":[ + "TIMED_OUT", + "CANCELLED", + "COMPLETED" + ] + }, + "CisTargetStatusComparison":{ + "type":"string", + "enum":["EQUALS"] + }, + "CisTargetStatusFilter":{ + "type":"structure", + "required":[ + "comparison", + "value" + ], + "members":{ + "comparison":{ + "shape":"CisTargetStatusComparison", + "documentation":"

    The comparison value of the CIS target status filter.

    " + }, + "value":{ + "shape":"CisTargetStatus", + "documentation":"

    The value of the CIS target status filter.

    " + } + }, + "documentation":"

    The CIS target status filter.

    " + }, + "CisTargetStatusReason":{ + "type":"string", + "enum":[ + "SCAN_IN_PROGRESS", + "UNSUPPORTED_OS", + "SSM_UNMANAGED" + ] + }, + "CisTargetStatusReasonFilter":{ + "type":"structure", + "required":[ + "comparison", + "value" + ], + "members":{ + "comparison":{ + "shape":"CisTargetStatusComparison", + "documentation":"

    The comparison value of the CIS target status reason filter.

    " + }, + "value":{ + "shape":"CisTargetStatusReason", + "documentation":"

    The value of the CIS target status reason filter.

    " + } + }, + "documentation":"

    The CIS target status reason filter.

    " + }, + "CisTargets":{ + "type":"structure", + "members":{ + "accountIds":{ + "shape":"CisAccountIdList", + "documentation":"

    The CIS target account ids.

    " + }, + "targetResourceTags":{ + "shape":"TargetResourceTags", + "documentation":"

    The CIS target resource tags.

    " + } + }, + "documentation":"

    The CIS targets.

    " }, "CisaAction":{ "type":"string", @@ -1851,6 +2899,24 @@ }, "Component":{"type":"string"}, "ComponentType":{"type":"string"}, + "ComputePlatform":{ + "type":"structure", + "members":{ + "product":{ + "shape":"Product", + "documentation":"

    The compute platform product.

    " + }, + "vendor":{ + "shape":"Vendor", + "documentation":"

    The compute platform vendor.

    " + }, + "version":{ + "shape":"PlatformVersion", + "documentation":"

    The compute platform version.

    " + } + }, + "documentation":"

    A compute platform.

    " + }, "ConflictException":{ "type":"structure", "required":[ @@ -1935,17 +3001,21 @@ "shape":"CoverageStringFilterList", "documentation":"

    The Amazon ECR repository name to filter on.

    " }, + "imagePulledAt":{ + "shape":"CoverageDateFilterList", + "documentation":"

    The date an image was last pulled at.

    " + }, "lambdaFunctionName":{ "shape":"CoverageStringFilterList", - "documentation":"

    Returns coverage statistics for AWS Lambda functions filtered by function names.

    " + "documentation":"

    Returns coverage statistics for Amazon Web Services Lambda functions filtered by function names.

    " }, "lambdaFunctionRuntime":{ "shape":"CoverageStringFilterList", - "documentation":"

    Returns coverage statistics for AWS Lambda functions filtered by runtime.

    " + "documentation":"

    Returns coverage statistics for Amazon Web Services Lambda functions filtered by runtime.

    " }, "lambdaFunctionTags":{ "shape":"CoverageMapFilterList", - "documentation":"

    Returns coverage statistics for AWS Lambda functions filtered by tag.

    " + "documentation":"

    Returns coverage statistics for Amazon Web Services Lambda functions filtered by tag.

    " }, "lastScannedAt":{ "shape":"CoverageDateFilterList", @@ -1957,7 +3027,7 @@ }, "resourceType":{ "shape":"CoverageStringFilterList", - "documentation":"

    An array of Amazon Web Services resource types to return coverage statistics for. The values can be AWS_EC2_INSTANCE, AWS_LAMBDA_FUNCTION or AWS_ECR_REPOSITORY.

    " + "documentation":"

    An array of Amazon Web Services resource types to return coverage statistics for. The values can be AWS_EC2_INSTANCE, AWS_LAMBDA_FUNCTION, AWS_ECR_CONTAINER_IMAGE, AWS_ECR_REPOSITORY or AWS_ACCOUNT.

    " }, "scanStatusCode":{ "shape":"CoverageStringFilterList", @@ -2095,6 +3165,64 @@ "type":"list", "member":{"shape":"CoveredResource"} }, + "CreateCisScanConfigurationRequest":{ + "type":"structure", + "required":[ + "scanName", + "schedule", + "securityLevel", + "targets" + ], + "members":{ + "scanName":{ + "shape":"CisScanName", + "documentation":"

    The scan name for the CIS scan configuration.

    " + }, + "schedule":{ + "shape":"Schedule", + "documentation":"

    The schedule for the CIS scan configuration.

    " + }, + "securityLevel":{ + "shape":"CisSecurityLevel", + "documentation":"

    The security level for the CIS scan configuration. Security level refers to the Benchmark levels that CIS assigns to a profile.

    " + }, + "tags":{ + "shape":"CisTagMap", + "documentation":"

    The tags for the CIS scan configuration.

    " + }, + "targets":{ + "shape":"CreateCisTargets", + "documentation":"

    The targets for the CIS scan configuration.

    " + } + } + }, + "CreateCisScanConfigurationResponse":{ + "type":"structure", + "members":{ + "scanConfigurationArn":{ + "shape":"CisScanConfigurationArn", + "documentation":"

    The scan configuration ARN for the CIS scan configuration.

    " + } + } + }, + "CreateCisTargets":{ + "type":"structure", + "required":[ + "accountIds", + "targetResourceTags" + ], + "members":{ + "accountIds":{ + "shape":"TargetAccountList", + "documentation":"

    The CIS target account ids.

    " + }, + "targetResourceTags":{ + "shape":"TargetResourceTags", + "documentation":"

    The CIS target resource tags.

    " + } + }, + "documentation":"

    Creates CIS targets.

    " + }, "CreateFilterRequest":{ "type":"structure", "required":[ @@ -2343,6 +3471,17 @@ "member":{"shape":"Cwe"}, "min":0 }, + "DailySchedule":{ + "type":"structure", + "required":["startTime"], + "members":{ + "startTime":{ + "shape":"Time", + "documentation":"

    The schedule start time.

    " + } + }, + "documentation":"

    A daily schedule.

    " + }, "DateFilter":{ "type":"structure", "members":{ @@ -2364,6 +3503,24 @@ "min":1 }, "DateTimeTimestamp":{"type":"timestamp"}, + "Day":{ + "type":"string", + "enum":[ + "SUN", + "MON", + "TUE", + "WED", + "THU", + "FRI", + "SAT" + ] + }, + "DaysList":{ + "type":"list", + "member":{"shape":"Day"}, + "max":7, + "min":1 + }, "DelegatedAdmin":{ "type":"structure", "members":{ @@ -2405,6 +3562,26 @@ "DISABLE_IN_PROGRESS" ] }, + "DeleteCisScanConfigurationRequest":{ + "type":"structure", + "required":["scanConfigurationArn"], + "members":{ + "scanConfigurationArn":{ + "shape":"CisScanConfigurationArn", + "documentation":"

    The ARN of the CIS scan configuration.

    " + } + } + }, + "DeleteCisScanConfigurationResponse":{ + "type":"structure", + "required":["scanConfigurationArn"], + "members":{ + "scanConfigurationArn":{ + "shape":"CisScanConfigurationArn", + "documentation":"

    The ARN of the CIS scan configuration.

    " + } + } + }, "DeleteFilterRequest":{ "type":"structure", "required":["arn"], @@ -2668,9 +3845,13 @@ "type":"structure", "required":["rescanDuration"], "members":{ + "pullDateRescanDuration":{ + "shape":"EcrPullDateRescanDuration", + "documentation":"

    The rescan duration configured for image pull date.

    " + }, "rescanDuration":{ "shape":"EcrRescanDuration", - "documentation":"

    The ECR automated re-scan duration defines how long an ECR image will be actively scanned by Amazon Inspector. When the number of days since an image was last pushed exceeds the automated re-scan duration the monitoring state of that image becomes inactive and all associated findings are scheduled for closure.

    " + "documentation":"

    The rescan duration configured for image push date.

    " } }, "documentation":"

    Details about the ECR automated re-scan duration setting for your environment.

    " @@ -2680,7 +3861,7 @@ "members":{ "rescanDurationState":{ "shape":"EcrRescanDurationState", - "documentation":"

    An object that contains details about the state of the ECR automated re-scan setting.

    " + "documentation":"

    An object that contains details about the state of the ECR re-scan settings.

    " } }, "documentation":"

    Details about the state of the ECR scans for your environment.

    " @@ -2688,6 +3869,10 @@ "EcrContainerImageMetadata":{ "type":"structure", "members":{ + "imagePulledAt":{ + "shape":"DateTimeTimestamp", + "documentation":"

    The date an image was last pulled at.

    " + }, "tags":{ "shape":"TagList", "documentation":"

    Tags associated with the Amazon ECR image metadata.

    " @@ -2695,6 +3880,16 @@ }, "documentation":"

    Information on the Amazon ECR image metadata associated with a finding.

    " }, + "EcrPullDateRescanDuration":{ + "type":"string", + "enum":[ + "DAYS_14", + "DAYS_30", + "DAYS_60", + "DAYS_90", + "DAYS_180" + ] + }, "EcrRepositoryMetadata":{ "type":"structure", "members":{ @@ -2714,15 +3909,22 @@ "enum":[ "LIFETIME", "DAYS_30", - "DAYS_180" + "DAYS_180", + "DAYS_14", + "DAYS_60", + "DAYS_90" ] }, "EcrRescanDurationState":{ "type":"structure", "members":{ + "pullDateRescanDuration":{ + "shape":"EcrPullDateRescanDuration", + "documentation":"

    The rescan duration configured for image pull date.

    " + }, "rescanDuration":{ "shape":"EcrRescanDuration", - "documentation":"

    The ECR automated re-scan duration defines how long an ECR image will be actively scanned by Amazon Inspector. When the number of days since an image was last pushed exceeds the automated re-scan duration the monitoring state of that image becomes inactive and all associated findings are scheduled for closure.

    " + "documentation":"

    The rescan duration configured for image push date.

     </p> 
    " }, "status":{ "shape":"EcrRescanDurationStatus", @@ -2733,7 +3935,7 @@ "documentation":"

    A timestamp representing when the last time the ECR scan duration setting was changed.

    " } }, - "documentation":"

    Details about the state of any changes to the ECR automated re-scan duration setting.

    " + "documentation":"

    Details about the state of your ECR re-scan duration settings. The ECR re-scan duration defines how long an ECR image will be actively scanned by Amazon Inspector. When the number of days since an image was last pushed exceeds the duration configured for image pull date, and the duration configured for image pull date, the monitoring state of that image becomes inactive and all associated findings are scheduled for closure.

    " }, "EcrRescanDurationStatus":{ "type":"string", @@ -3146,7 +4348,7 @@ }, "exploitAvailable":{ "shape":"StringFilterList", - "documentation":"

    Filters the list of AWS Lambda findings by the availability of exploits.

    " + "documentation":"

    Filters the list of Amazon Web Services Lambda findings by the availability of exploits.

    " }, "findingArn":{ "shape":"StringFilterList", @@ -3174,23 +4376,23 @@ }, "lambdaFunctionExecutionRoleArn":{ "shape":"StringFilterList", - "documentation":"

    Filters the list of AWS Lambda functions by execution role.

    " + "documentation":"

    Filters the list of Amazon Web Services Lambda functions by execution role.

    " }, "lambdaFunctionLastModifiedAt":{ "shape":"DateFilterList", - "documentation":"

    Filters the list of AWS Lambda functions by the date and time that a user last updated the configuration, in ISO 8601 format

    " + "documentation":"

    Filters the list of Amazon Web Services Lambda functions by the date and time that a user last updated the configuration, in ISO 8601 format

    " }, "lambdaFunctionLayers":{ "shape":"StringFilterList", - "documentation":"

    Filters the list of AWS Lambda functions by the function's layers. A Lambda function can have up to five layers.

    " + "documentation":"

    Filters the list of Amazon Web Services Lambda functions by the function's layers. A Lambda function can have up to five layers.

    " }, "lambdaFunctionName":{ "shape":"StringFilterList", - "documentation":"

    Filters the list of AWS Lambda functions by the name of the function.

    " + "documentation":"

    Filters the list of Amazon Web Services Lambda functions by the name of the function.

    " }, "lambdaFunctionRuntime":{ "shape":"StringFilterList", - "documentation":"

    Filters the list of AWS Lambda functions by the runtime environment for the Lambda function.

    " + "documentation":"

    Filters the list of Amazon Web Services Lambda functions by the runtime environment for the Lambda function.

    " }, "lastObservedAt":{ "shape":"DateFilterList", @@ -3658,6 +4860,94 @@ "type":"string", "pattern":"^[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$" }, + "GetCisScanReportRequest":{ + "type":"structure", + "required":["scanArn"], + "members":{ + "scanArn":{ + "shape":"CisScanArn", + "documentation":"

    The scan ARN.

    " + }, + "targetAccounts":{ + "shape":"ReportTargetAccounts", + "documentation":"

    The target accounts.

    " + } + } + }, + "GetCisScanReportResponse":{ + "type":"structure", + "members":{ + "status":{ + "shape":"CisReportStatus", + "documentation":"

    The status.

    " + }, + "url":{ + "shape":"String", + "documentation":"

    The URL where the CIS scan report PDF can be downloaded.

    " + } + } + }, + "GetCisScanResultDetailsMaxResults":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "GetCisScanResultDetailsRequest":{ + "type":"structure", + "required":[ + "accountId", + "scanArn", + "targetResourceId" + ], + "members":{ + "accountId":{ + "shape":"AccountId", + "documentation":"

    The account ID.

    " + }, + "filterCriteria":{ + "shape":"CisScanResultDetailsFilterCriteria", + "documentation":"

    The filter criteria.

    " + }, + "maxResults":{ + "shape":"GetCisScanResultDetailsMaxResults", + "documentation":"

    The maximum number of CIS scan result details to be returned in a single page of results.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + }, + "scanArn":{ + "shape":"CisScanArn", + "documentation":"

    The scan ARN.

    " + }, + "sortBy":{ + "shape":"CisScanResultDetailsSortBy", + "documentation":"

    The sort by order.

    " + }, + "sortOrder":{ + "shape":"CisSortOrder", + "documentation":"

    The sort order.

    " + }, + "targetResourceId":{ + "shape":"ResourceId", + "documentation":"

    The target resource ID.

    " + } + } + }, + "GetCisScanResultDetailsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + }, + "scanResultDetails":{ + "shape":"CisScanResultDetailsList", + "documentation":"

    The scan result details.

    " + } + } + }, "GetConfigurationRequest":{ "type":"structure", "members":{ @@ -3986,7 +5276,7 @@ "members":{ "functionNames":{ "shape":"StringFilterList", - "documentation":"

    The AWS Lambda function names to include in the aggregation results.

    " + "documentation":"

    The Amazon Web Services Lambda function names to include in the aggregation results.

    " }, "functionTags":{ "shape":"MapFilterList", @@ -3998,7 +5288,7 @@ }, "runtimes":{ "shape":"StringFilterList", - "documentation":"

    Returns findings aggregated by AWS Lambda function runtime environments.

    " + "documentation":"

    Returns findings aggregated by Amazon Web Services Lambda function runtime environments.

    " }, "sortBy":{ "shape":"LambdaFunctionSortBy", @@ -4009,7 +5299,7 @@ "documentation":"

    The order to use for sorting the results.

    " } }, - "documentation":"

    The details that define a findings aggregation based on AWS Lambda functions.

    " + "documentation":"

    The details that define a findings aggregation based on Amazon Web Services Lambda functions.

    " }, "LambdaFunctionAggregationResponse":{ "type":"structure", @@ -4017,11 +5307,11 @@ "members":{ "accountId":{ "shape":"AccountId", - "documentation":"

    The ID of the AWS account that owns the AWS Lambda function.

    " + "documentation":"

    The ID of the Amazon Web Services account that owns the Amazon Web Services Lambda function.

    " }, "functionName":{ "shape":"String", - "documentation":"

    The AWS Lambda function names included in the aggregation results.

    " + "documentation":"

    The Amazon Web Services Lambda function names included in the aggregation results.

    " }, "lambdaTags":{ "shape":"TagMap", @@ -4029,7 +5319,7 @@ }, "lastModifiedAt":{ "shape":"DateTimeTimestamp", - "documentation":"

    The date that the AWS Lambda function included in the aggregation results was last changed.

    " + "documentation":"

    The date that the Amazon Web Services Lambda function included in the aggregation results was last changed.

    " }, "resourceId":{ "shape":"NonEmptyString", @@ -4041,7 +5331,7 @@ }, "severityCounts":{"shape":"SeverityCounts"} }, - "documentation":"

    A response that contains the results of an AWS Lambda function finding aggregation.

    " + "documentation":"

    A response that contains the results of an Amazon Web Services Lambda function finding aggregation.

    " }, "LambdaFunctionMetadata":{ "type":"structure", @@ -4052,18 +5342,18 @@ }, "functionTags":{ "shape":"TagMap", - "documentation":"

    The resource tags on an AWS Lambda function.

    " + "documentation":"

    The resource tags on an Amazon Web Services Lambda function.

    " }, "layers":{ "shape":"LambdaLayerList", - "documentation":"

    The layers for an AWS Lambda function. A Lambda function can have up to five layers.

    " + "documentation":"

    The layers for an Amazon Web Services Lambda function. A Lambda function can have up to five layers.

    " }, "runtime":{ "shape":"Runtime", - "documentation":"

    An AWS Lambda function's runtime.

    " + "documentation":"

    An Amazon Web Services Lambda function's runtime.

    " } }, - "documentation":"

    The AWS Lambda function metadata.

    " + "documentation":"

    The Amazon Web Services Lambda function metadata.

    " }, "LambdaFunctionSortBy":{ "type":"string", @@ -4078,15 +5368,15 @@ "members":{ "functionNames":{ "shape":"StringFilterList", - "documentation":"

    The names of the AWS Lambda functions associated with the layers.

    " + "documentation":"

    The names of the Amazon Web Services Lambda functions associated with the layers.

    " }, "layerArns":{ "shape":"StringFilterList", - "documentation":"

    The Amazon Resource Name (ARN) of the AWS Lambda function layer.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the Amazon Web Services Lambda function layer.

    " }, "resourceIds":{ "shape":"StringFilterList", - "documentation":"

    The resource IDs for the AWS Lambda function layers.

    " + "documentation":"

    The resource IDs for the Amazon Web Services Lambda function layers.

    " }, "sortBy":{ "shape":"LambdaLayerSortBy", @@ -4097,7 +5387,7 @@ "documentation":"

    The order to use for sorting the results.

    " } }, - "documentation":"

    The details that define a findings aggregation based on an AWS Lambda function's layers.

    " + "documentation":"

    The details that define a findings aggregation based on an Amazon Web Services Lambda function's layers.

    " }, "LambdaLayerAggregationResponse":{ "type":"structure", @@ -4110,23 +5400,23 @@ "members":{ "accountId":{ "shape":"AccountId", - "documentation":"

    The account ID of the AWS Lambda function layer.

    " + "documentation":"

    The account ID of the Amazon Web Services Lambda function layer.

    " }, "functionName":{ "shape":"NonEmptyString", - "documentation":"

    The names of the AWS Lambda functions associated with the layers.

    " + "documentation":"

    The names of the Amazon Web Services Lambda functions associated with the layers.

    " }, "layerArn":{ "shape":"NonEmptyString", - "documentation":"

    The Amazon Resource Name (ARN) of the AWS Lambda function layer.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the Amazon Web Services Lambda function layer.

    " }, "resourceId":{ "shape":"NonEmptyString", - "documentation":"

    The Resource ID of the AWS Lambda function layer.

    " + "documentation":"

    The Resource ID of the Amazon Web Services Lambda function layer.

    " }, "severityCounts":{"shape":"SeverityCounts"} }, - "documentation":"

    A response that contains the results of an AWS Lambda function layer finding aggregation.

    " + "documentation":"

    A response that contains the results of an Amazon Web Services Lambda function layer finding aggregation.

    " }, "LambdaLayerArn":{ "type":"string", @@ -4151,7 +5441,7 @@ "members":{ "securityGroupIds":{ "shape":"SecurityGroupIdList", - "documentation":"

    The VPC security groups and subnets that are attached to an AWS Lambda function. For more information, see VPC Settings.

    " + "documentation":"

    The VPC security groups and subnets that are attached to an Amazon Web Services Lambda function. For more information, see VPC Settings.

    " }, "subnetIds":{ "shape":"SubnetIdList", @@ -4162,7 +5452,7 @@ "documentation":"

    The ID of the VPC.

    " } }, - "documentation":"

    The VPC security groups and subnets that are attached to an AWS Lambda function. For more information, see VPC Settings.

    " + "documentation":"

    The VPC security groups and subnets that are attached to an Amazon Web Services Lambda function. For more information, see VPC Settings.

    " }, "LastSeen":{"type":"timestamp"}, "LayerList":{ @@ -4208,6 +5498,264 @@ } } }, + "ListCisScanConfigurationsFilterCriteria":{ + "type":"structure", + "members":{ + "scanConfigurationArnFilters":{ + "shape":"CisScanConfigurationArnFilterList", + "documentation":"

    The list of scan configuration ARN filters.

    " + }, + "scanNameFilters":{ + "shape":"CisScanNameFilterList", + "documentation":"

    The list of scan name filters.

    " + }, + "targetResourceTagFilters":{ + "shape":"ResourceTagFilterList", + "documentation":"

    The list of target resource tag filters.

    " + } + }, + "documentation":"

    A list of CIS scan configurations filter criteria.

    " + }, + "ListCisScanConfigurationsMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListCisScanConfigurationsRequest":{ + "type":"structure", + "members":{ + "filterCriteria":{ + "shape":"ListCisScanConfigurationsFilterCriteria", + "documentation":"

    The CIS scan configuration filter criteria.

    " + }, + "maxResults":{ + "shape":"ListCisScanConfigurationsMaxResults", + "documentation":"

    The maximum number of CIS scan configurations to be returned in a single page of results.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + }, + "sortBy":{ + "shape":"CisScanConfigurationsSortBy", + "documentation":"

    The CIS scan configuration sort by order.

    " + }, + "sortOrder":{ + "shape":"CisSortOrder", + "documentation":"

    The CIS scan configuration sort order order.

    " + } + } + }, + "ListCisScanConfigurationsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + }, + "scanConfigurations":{ + "shape":"CisScanConfigurationList", + "documentation":"

    The CIS scan configuration scan configurations.

    " + } + } + }, + "ListCisScanResultsAggregatedByChecksRequest":{ + "type":"structure", + "required":["scanArn"], + "members":{ + "filterCriteria":{ + "shape":"CisScanResultsAggregatedByChecksFilterCriteria", + "documentation":"

    The filter criteria.

    " + }, + "maxResults":{ + "shape":"CisScanResultsMaxResults", + "documentation":"

    The maximum number of scan results aggregated by checks to be returned in a single page of results.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + }, + "scanArn":{ + "shape":"CisScanArn", + "documentation":"

    The scan ARN.

    " + }, + "sortBy":{ + "shape":"CisScanResultsAggregatedByChecksSortBy", + "documentation":"

    The sort by order.

    " + }, + "sortOrder":{ + "shape":"CisSortOrder", + "documentation":"

    The sort order.

    " + } + } + }, + "ListCisScanResultsAggregatedByChecksResponse":{ + "type":"structure", + "members":{ + "checkAggregations":{ + "shape":"CisCheckAggregationList", + "documentation":"

    The check aggregations.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + } + } + }, + "ListCisScanResultsAggregatedByTargetResourceRequest":{ + "type":"structure", + "required":["scanArn"], + "members":{ + "filterCriteria":{ + "shape":"CisScanResultsAggregatedByTargetResourceFilterCriteria", + "documentation":"

    The filter criteria.

    " + }, + "maxResults":{ + "shape":"CisScanResultsMaxResults", + "documentation":"

    The maximum number of scan results aggregated by a target resource to be returned in a single page of results.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + }, + "scanArn":{ + "shape":"CisScanArn", + "documentation":"

    The scan ARN.

    " + }, + "sortBy":{ + "shape":"CisScanResultsAggregatedByTargetResourceSortBy", + "documentation":"

    The sort by order.

    " + }, + "sortOrder":{ + "shape":"CisSortOrder", + "documentation":"

    The sort order.

    " + } + } + }, + "ListCisScanResultsAggregatedByTargetResourceResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + }, + "targetResourceAggregations":{ + "shape":"CisTargetResourceAggregationList", + "documentation":"

    The resource aggregations.

    " + } + } + }, + "ListCisScansDetailLevel":{ + "type":"string", + "enum":[ + "ORGANIZATION", + "MEMBER" + ] + }, + "ListCisScansFilterCriteria":{ + "type":"structure", + "members":{ + "failedChecksFilters":{ + "shape":"CisNumberFilterList", + "documentation":"

    The list of failed checks filters.

    " + }, + "scanArnFilters":{ + "shape":"CisScanArnFilterList", + "documentation":"

    The list of scan ARN filters.

    " + }, + "scanAtFilters":{ + "shape":"CisScanDateFilterList", + "documentation":"

    The list of scan at filters.

    " + }, + "scanConfigurationArnFilters":{ + "shape":"CisScanConfigurationArnFilterList", + "documentation":"

    The list of scan configuration ARN filters.

    " + }, + "scanNameFilters":{ + "shape":"CisScanNameFilterList", + "documentation":"

    The list of scan name filters.

    " + }, + "scanStatusFilters":{ + "shape":"CisScanStatusFilterList", + "documentation":"

    The list of scan status filters.

    " + }, + "scheduledByFilters":{ + "shape":"CisScheduledByFilterList", + "documentation":"

    The list of scheduled by filters.

    " + }, + "targetAccountIdFilters":{ + "shape":"AccountIdFilterList", + "documentation":"

    The list of target account ID filters.

    " + }, + "targetResourceIdFilters":{ + "shape":"ResourceIdFilterList", + "documentation":"

    The list of target resource ID filters.

    " + }, + "targetResourceTagFilters":{ + "shape":"ResourceTagFilterList", + "documentation":"

    The list of target resource tag filters.

    " + } + }, + "documentation":"

    A list of CIS scans filter criteria.

    " + }, + "ListCisScansMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListCisScansRequest":{ + "type":"structure", + "members":{ + "detailLevel":{ + "shape":"ListCisScansDetailLevel", + "documentation":"

    The detail applied to the CIS scan.

    " + }, + "filterCriteria":{ + "shape":"ListCisScansFilterCriteria", + "documentation":"

    The CIS scan filter criteria.

    " + }, + "maxResults":{ + "shape":"ListCisScansMaxResults", + "documentation":"

    The maximum number of results to be returned.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + }, + "sortBy":{ + "shape":"ListCisScansSortBy", + "documentation":"

    The CIS scans sort by order.

    " + }, + "sortOrder":{ + "shape":"CisSortOrder", + "documentation":"

    The CIS scans sort order.

    " + } + } + }, + "ListCisScansResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The pagination token from a previous request that's used to retrieve the next page of results.

    " + }, + "scans":{ + "shape":"CisScanList", + "documentation":"

    The CIS scans.

    " + } + } + }, + "ListCisScansSortBy":{ + "type":"string", + "enum":[ + "STATUS", + "SCHEDULED_BY", + "SCAN_START_DATE", + "FAILED_CHECKS" + ] + }, "ListCoverageMaxResults":{ "type":"integer", "box":true, @@ -4670,6 +6218,24 @@ "type":"double", "min":0 }, + "MonthlySchedule":{ + "type":"structure", + "required":[ + "day", + "startTime" + ], + "members":{ + "day":{ + "shape":"Day", + "documentation":"

    The monthly schedule's day.

    " + }, + "startTime":{ + "shape":"Time", + "documentation":"

    The monthly schedule's start time.

    " + } + }, + "documentation":"

    A monthly schedule.

    " + }, "NetworkPath":{ "type":"structure", "members":{ @@ -4743,6 +6309,18 @@ "max":10, "min":1 }, + "OneAccountIdFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":1, + "min":1 + }, + "OneTimeSchedule":{ + "type":"structure", + "members":{ + }, + "documentation":"

    A one time schedule.

    " + }, "Operation":{ "type":"string", "enum":[ @@ -4981,6 +6559,17 @@ "max":1024, "min":1 }, + "PlatformFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, + "PlatformVersion":{ + "type":"string", + "max":8, + "min":0 + }, "Port":{ "type":"integer", "box":true, @@ -5025,6 +6614,16 @@ "max":10, "min":1 }, + "Product":{ + "type":"string", + "max":32, + "min":0 + }, + "Reason":{ + "type":"string", + "max":1024, + "min":0 + }, "Recommendation":{ "type":"structure", "members":{ @@ -5093,6 +6692,12 @@ "type":"string", "pattern":"\\b[a-f0-9]{8}\\b-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-\\b[a-f0-9]{12}\\b" }, + "ReportTargetAccounts":{ + "type":"list", + "member":{"shape":"AccountId"}, + "max":1, + "min":0 + }, "ReportingErrorCode":{ "type":"string", "enum":[ @@ -5223,7 +6828,7 @@ }, "awsLambdaFunction":{ "shape":"AwsLambdaFunctionDetails", - "documentation":"

    A summary of the information about an AWS Lambda function affected by a finding.

    " + "documentation":"

    A summary of the information about an Amazon Web Services Lambda function affected by a finding.

    " } }, "documentation":"

    Contains details about the resource involved in the finding.

    " @@ -5249,11 +6854,11 @@ }, "lambdaFunctionName":{ "shape":"ResourceStringFilterList", - "documentation":"

    The AWS Lambda function name used as resource filter criteria.

    " + "documentation":"

    The Amazon Web Services Lambda function name used as resource filter criteria.

    " }, "lambdaFunctionTags":{ "shape":"ResourceMapFilterList", - "documentation":"

    The AWS Lambda function tags used as resource filter criteria.

    " + "documentation":"

    The Amazon Web Services Lambda function tags used as resource filter criteria.

    " }, "resourceId":{ "shape":"ResourceStringFilterList", @@ -5272,6 +6877,12 @@ "min":10, "pattern":"(^arn:.*:ecr:.*:\\d{12}:repository\\/(?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*(\\/sha256:[a-z0-9]{64})?$)|(^i-([a-z0-9]{8}|[a-z0-9]{17}|\\\\*)$|(^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$))" }, + "ResourceIdFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, "ResourceList":{ "type":"list", "member":{"shape":"Resource"}, @@ -5340,7 +6951,7 @@ }, "lambdaFunction":{ "shape":"LambdaFunctionMetadata", - "documentation":"

    An object that contains metadata details for an AWS Lambda function.

    " + "documentation":"

    An object that contains metadata details for an Amazon Web Services Lambda function.

    " } }, "documentation":"

    An object that contains details about the metadata for an Amazon ECR resource.

    " @@ -5391,7 +7002,7 @@ }, "lambda":{ "shape":"Status", - "documentation":"

    The status of Amazon Inspector scanning for AWS Lambda function.

    " + "documentation":"

    The status of Amazon Inspector scanning for Amazon Web Services Lambda function.

    " }, "lambdaCode":{ "shape":"Status", @@ -5436,6 +7047,12 @@ "max":1024, "min":1 }, + "ResourceTagFilterList":{ + "type":"list", + "member":{"shape":"TagFilter"}, + "max":10, + "min":1 + }, "ResourceType":{ "type":"string", "enum":[ @@ -5449,6 +7066,11 @@ "type":"integer", "box":true }, + "RuleId":{ + "type":"string", + "max":500, + "min":1 + }, "Runtime":{ "type":"string", "enum":[ @@ -5538,6 +7160,29 @@ "CODE" ] }, + "Schedule":{ + "type":"structure", + "members":{ + "daily":{ + "shape":"DailySchedule", + "documentation":"

    The schedule's daily.

    " + }, + "monthly":{ + "shape":"MonthlySchedule", + "documentation":"

    The schedule's monthly.

    " + }, + "oneTime":{ + "shape":"OneTimeSchedule", + "documentation":"

    The schedule's one time.

    " + }, + "weekly":{ + "shape":"WeeklySchedule", + "documentation":"

    The schedule's weekly.

    " + } + }, + "documentation":"

    A schedule.

    ", + "union":true + }, "SearchVulnerabilitiesFilterCriteria":{ "type":"structure", "required":["vulnerabilityIds"], @@ -5587,6 +7232,55 @@ "max":5, "min":0 }, + "SendCisSessionHealthRequest":{ + "type":"structure", + "required":[ + "scanJobId", + "sessionToken" + ], + "members":{ + "scanJobId":{ + "shape":"UUID", + "documentation":"

    A unique identifier for the scan job.

    " + }, + "sessionToken":{ + "shape":"UUID", + "documentation":"

    The unique token that identifies the CIS session.

    " + } + } + }, + "SendCisSessionHealthResponse":{ + "type":"structure", + "members":{ + } + }, + "SendCisSessionTelemetryRequest":{ + "type":"structure", + "required":[ + "messages", + "scanJobId", + "sessionToken" + ], + "members":{ + "messages":{ + "shape":"CisSessionMessages", + "documentation":"

    The CIS session telemetry messages.

    " + }, + "scanJobId":{ + "shape":"UUID", + "documentation":"

    A unique identifier for the scan job.

    " + }, + "sessionToken":{ + "shape":"UUID", + "documentation":"

    The unique token that identifies the CIS session.

    " + } + } + }, + "SendCisSessionTelemetryResponse":{ + "type":"structure", + "members":{ + } + }, "Service":{ "type":"string", "enum":[ @@ -5701,6 +7395,39 @@ "min":71, "pattern":"^sha256:[a-z0-9]{64}$" }, + "StartCisSessionMessage":{ + "type":"structure", + "required":["sessionToken"], + "members":{ + "sessionToken":{ + "shape":"UUID", + "documentation":"

    The unique token that identifies the CIS session.

    " + } + }, + "documentation":"

    The start CIS session message.

    " + }, + "StartCisSessionRequest":{ + "type":"structure", + "required":[ + "message", + "scanJobId" + ], + "members":{ + "message":{ + "shape":"StartCisSessionMessage", + "documentation":"

    The start CIS session message.

    " + }, + "scanJobId":{ + "shape":"UUID", + "documentation":"

    A unique identifier for the scan job.

    " + } + } + }, + "StartCisSessionResponse":{ + "type":"structure", + "members":{ + } + }, "State":{ "type":"structure", "required":[ @@ -5735,6 +7462,24 @@ "SUSPENDED" ] }, + "StatusCounts":{ + "type":"structure", + "members":{ + "failed":{ + "shape":"Integer", + "documentation":"

    The number of checks that failed.

    " + }, + "passed":{ + "shape":"Integer", + "documentation":"

    The number of checks that passed.

    " + }, + "skipped":{ + "shape":"Integer", + "documentation":"

    The number of checks that were skipped.

    " + } + }, + "documentation":"

    The status counts.

    " + }, "Step":{ "type":"structure", "required":[ @@ -5759,6 +7504,114 @@ "max":30, "min":1 }, + "StopCisMessageProgress":{ + "type":"structure", + "members":{ + "errorChecks":{ + "shape":"CheckCount", + "documentation":"

    The progress' error checks.

    " + }, + "failedChecks":{ + "shape":"CheckCount", + "documentation":"

    The progress' failed checks.

    " + }, + "informationalChecks":{ + "shape":"CheckCount", + "documentation":"

    The progress' informational checks.

    " + }, + "notApplicableChecks":{ + "shape":"CheckCount", + "documentation":"

    The progress' not applicable checks.

    " + }, + "notEvaluatedChecks":{ + "shape":"CheckCount", + "documentation":"

    The progress' not evaluated checks.

    " + }, + "successfulChecks":{ + "shape":"CheckCount", + "documentation":"

    The progress' successful checks.

    " + }, + "totalChecks":{ + "shape":"CheckCount", + "documentation":"

    The progress' total checks.

    " + }, + "unknownChecks":{ + "shape":"CheckCount", + "documentation":"

    The progress' unknown checks.

    " + } + }, + "documentation":"

    The stop CIS message progress.

    " + }, + "StopCisSessionMessage":{ + "type":"structure", + "required":[ + "progress", + "status" + ], + "members":{ + "benchmarkProfile":{ + "shape":"BenchmarkProfile", + "documentation":"

    The message benchmark profile.

    " + }, + "benchmarkVersion":{ + "shape":"BenchmarkVersion", + "documentation":"

    The message benchmark version.

    " + }, + "computePlatform":{ + "shape":"ComputePlatform", + "documentation":"

    The message compute platform.

    " + }, + "progress":{ + "shape":"StopCisMessageProgress", + "documentation":"

    The progress of the message.

    " + }, + "reason":{ + "shape":"Reason", + "documentation":"

    The reason for the message.

    " + }, + "status":{ + "shape":"StopCisSessionStatus", + "documentation":"

    The status of the message.

    " + } + }, + "documentation":"

    The stop CIS session message.

    " + }, + "StopCisSessionRequest":{ + "type":"structure", + "required":[ + "message", + "scanJobId", + "sessionToken" + ], + "members":{ + "message":{ + "shape":"StopCisSessionMessage", + "documentation":"

    The stop CIS session message.

    " + }, + "scanJobId":{ + "shape":"UUID", + "documentation":"

    A unique identifier for the scan job.

    " + }, + "sessionToken":{ + "shape":"UUID", + "documentation":"

    The unique token that identifies the CIS session.

    " + } + } + }, + "StopCisSessionResponse":{ + "type":"structure", + "members":{ + } + }, + "StopCisSessionStatus":{ + "type":"string", + "enum":[ + "SUCCESS", + "FAILED", + "INTERRUPTED", + "UNSUPPORTED_OS" + ] + }, "String":{"type":"string"}, "StringComparison":{ "type":"string", @@ -5841,6 +7694,33 @@ "max":5, "min":1 }, + "TagComparison":{ + "type":"string", + "enum":["EQUALS"] + }, + "TagFilter":{ + "type":"structure", + "required":[ + "comparison", + "key", + "value" + ], + "members":{ + "comparison":{ + "shape":"TagComparison", + "documentation":"

    The tag filter comparison value.

    " + }, + "key":{ + "shape":"NonEmptyString", + "documentation":"

    The tag filter key.

    " + }, + "value":{ + "shape":"NonEmptyString", + "documentation":"

    The tag filter value.

    " + } + }, + "documentation":"

    The tag filter.

    " + }, "TagKey":{ "type":"string", "max":128, @@ -5886,11 +7766,46 @@ "members":{ } }, + "TagValueList":{ + "type":"list", + "member":{"shape":"String"}, + "max":5, + "min":1 + }, "Target":{ "type":"string", "max":50, "min":0 }, + "TargetAccount":{ + "type":"string", + "pattern":"^\\d{12}|ALL_ACCOUNTS|SELF$" + }, + "TargetAccountList":{ + "type":"list", + "member":{"shape":"TargetAccount"}, + "max":10000, + "min":1 + }, + "TargetResourceTags":{ + "type":"map", + "key":{"shape":"NonEmptyString"}, + "value":{"shape":"TagValueList"}, + "max":5, + "min":1 + }, + "TargetStatusFilterList":{ + "type":"list", + "member":{"shape":"CisTargetStatusFilter"}, + "max":10, + "min":1 + }, + "TargetStatusReasonFilterList":{ + "type":"list", + "member":{"shape":"CisTargetStatusReasonFilter"}, + "max":10, + "min":1 + }, "Targets":{ "type":"list", "member":{"shape":"Target"}, @@ -5916,7 +7831,34 @@ "exception":true, "retryable":{"throttling":true} }, + "Time":{ + "type":"structure", + "required":[ + "timeOfDay", + "timezone" + ], + "members":{ + "timeOfDay":{ + "shape":"TimeOfDay", + "documentation":"

    The time of day in 24-hour format (00:00).

    " + }, + "timezone":{ + "shape":"Timezone", + "documentation":"

    The timezone.

    " + } + }, + "documentation":"

    The time.

    " + }, + "TimeOfDay":{ + "type":"string", + "pattern":"^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$" + }, "Timestamp":{"type":"timestamp"}, + "Timezone":{ + "type":"string", + "max":50, + "min":1 + }, "TitleAggregation":{ "type":"structure", "members":{ @@ -5970,6 +7912,12 @@ }, "documentation":"

    A response that contains details on the results of a finding aggregation by title.

    " }, + "TitleFilterList":{ + "type":"list", + "member":{"shape":"CisStringFilter"}, + "max":10, + "min":1 + }, "TitleSortBy":{ "type":"string", "enum":[ @@ -5996,6 +7944,10 @@ "member":{"shape":"Ttp"}, "min":0 }, + "UUID":{ + "type":"string", + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -6022,6 +7974,56 @@ "members":{ } }, + "UpdateCisScanConfigurationRequest":{ + "type":"structure", + "required":["scanConfigurationArn"], + "members":{ + "scanConfigurationArn":{ + "shape":"CisScanConfigurationArn", + "documentation":"

    The CIS scan configuration ARN.

    " + }, + "scanName":{ + "shape":"CisScanName", + "documentation":"

    The scan name for the CIS scan configuration.

    " + }, + "schedule":{ + "shape":"Schedule", + "documentation":"

    The schedule for the CIS scan configuration.

    " + }, + "securityLevel":{ + "shape":"CisSecurityLevel", + "documentation":"

    The security level for the CIS scan configuration. Security level refers to the Benchmark levels that CIS assigns to a profile.

    " + }, + "targets":{ + "shape":"UpdateCisTargets", + "documentation":"

    The targets for the CIS scan configuration.

    " + } + } + }, + "UpdateCisScanConfigurationResponse":{ + "type":"structure", + "required":["scanConfigurationArn"], + "members":{ + "scanConfigurationArn":{ + "shape":"CisScanConfigurationArn", + "documentation":"

    The CIS scan configuration ARN.

    " + } + } + }, + "UpdateCisTargets":{ + "type":"structure", + "members":{ + "accountIds":{ + "shape":"TargetAccountList", + "documentation":"

    The target account ids.

    " + }, + "targetResourceTags":{ + "shape":"TargetResourceTags", + "documentation":"

    The target resource tags.

    " + } + }, + "documentation":"

    Updates CIS targets.

    " + }, "UpdateConfigurationRequest":{ "type":"structure", "required":["ecrConfiguration"], @@ -6295,6 +8297,11 @@ "OTHER" ] }, + "Vendor":{ + "type":"string", + "max":16, + "min":0 + }, "VendorCreatedAt":{"type":"timestamp"}, "VendorSeverity":{ "type":"string", @@ -6470,7 +8477,7 @@ }, "sourceLambdaLayerArn":{ "shape":"LambdaLayerArn", - "documentation":"

    The Amazon Resource Number (ARN) of the AWS Lambda function affected by a finding.

    " + "documentation":"

    The Amazon Resource Number (ARN) of the Amazon Web Services Lambda function affected by a finding.

    " }, "sourceLayerHash":{ "shape":"SourceLayerHash", @@ -6491,6 +8498,24 @@ "type":"string", "max":1024, "min":1 + }, + "WeeklySchedule":{ + "type":"structure", + "required":[ + "days", + "startTime" + ], + "members":{ + "days":{ + "shape":"DaysList", + "documentation":"

    The weekly schedule's days.

    " + }, + "startTime":{ + "shape":"Time", + "documentation":"

    The weekly schedule's start time.

    " + } + }, + "documentation":"

    A weekly schedule.

    " } }, "documentation":"

    Amazon Inspector is a vulnerability discovery service that automates continuous scanning for security vulnerabilities within your Amazon EC2, Amazon ECR, and Amazon Web Services Lambda environments.

    " diff --git a/services/inspectorscan/pom.xml b/services/inspectorscan/pom.xml index ac3829cdead0..884203091f94 100644 --- a/services/inspectorscan/pom.xml +++ b/services/inspectorscan/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT inspectorscan AWS Java SDK :: Services :: Inspector Scan diff --git a/services/inspectorscan/src/main/resources/codegen-resources/customization.config b/services/inspectorscan/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/inspectorscan/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/internetmonitor/pom.xml b/services/internetmonitor/pom.xml index 37901c07a885..7698cae5ac2a 100644 --- a/services/internetmonitor/pom.xml +++ b/services/internetmonitor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT internetmonitor AWS Java SDK :: Services :: Internet Monitor diff --git a/services/internetmonitor/src/main/resources/codegen-resources/customization.config b/services/internetmonitor/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/internetmonitor/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/internetmonitor/src/main/resources/codegen-resources/service-2.json b/services/internetmonitor/src/main/resources/codegen-resources/service-2.json index e9b36550b4d4..a9c688187e2e 100644 --- a/services/internetmonitor/src/main/resources/codegen-resources/service-2.json +++ b/services/internetmonitor/src/main/resources/codegen-resources/service-2.json @@ -843,6 +843,10 @@ "InternetHealth":{ "shape":"InternetHealth", "documentation":"

    The calculated health at a specific location.

    " + }, + "Ipv4Prefixes":{ + "shape":"Ipv4PrefixList", + "documentation":"

    The IPv4 prefixes at the client location that was impacted by the health event.

    " } }, "documentation":"

    Information about a location impacted by a health event in Amazon CloudWatch Internet Monitor.

    Geographic regions are hierarchically categorized into country, subdivision, metro and city geographic granularities. The geographic region is identified based on the IP address used at the client locations.

    " @@ -897,6 +901,10 @@ }, "documentation":"

    Publish internet measurements to an Amazon S3 bucket in addition to CloudWatch Logs.

    " }, + "Ipv4PrefixList":{ + "type":"list", + "member":{"shape":"String"} + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -1036,7 +1044,7 @@ }, "MinTrafficImpact":{ "shape":"Percentage", - "documentation":"

    The minimum percentage of overall traffic for an application that must be impacted by an issue before Internet Monitor creates an event when a threshold is crossed for a local health score.

    If you don't set a minimum traffic impact threshold, the default value is 0.01%.

    " + "documentation":"

    The minimum percentage of overall traffic for an application that must be impacted by an issue before Internet Monitor creates an event when a threshold is crossed for a local health score.

    If you don't set a minimum traffic impact threshold, the default value is 0.1%.

    " } }, "documentation":"

    A complex type with the configuration information that determines the threshold and other conditions for when Internet Monitor creates a health event for a local performance or availability issue, when scores cross a threshold for one or more city-networks.

    Defines the percentages, for performance scores or availability scores, that are the local thresholds for when Amazon CloudWatch Internet Monitor creates a health event. Also defines whether a local threshold is enabled or disabled, and the minimum percentage of overall traffic that must be impacted by an issue before Internet Monitor creates an event when a threshold is crossed for a local health score.

    If you don't set a local health event threshold, the default value is 60%.

    For more information, see Change health event thresholds in the Internet Monitor section of the CloudWatch User Guide.

    " @@ -1356,7 +1364,7 @@ }, "QueryType":{ "shape":"QueryType", - "documentation":"

    The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface:

    • MEASUREMENTS: TBD definition

    • TOP_LOCATIONS: TBD definition

    • TOP_LOCATION_DETAILS: TBD definition

    For lists of the fields returned with each query type and more information about how each type of query is performed, see Using the Amazon CloudWatch Internet Monitor query interface in the Amazon CloudWatch Internet Monitor User Guide.

    " + "documentation":"

    The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface:

    • MEASUREMENTS: Provides availability score, performance score, total traffic, and round-trip times, at 5 minute intervals.

    • TOP_LOCATIONS: Provides availability score, performance score, total traffic, and time to first byte (TTFB) information, for the top location and ASN combinations that you're monitoring, by traffic volume.

    • TOP_LOCATION_DETAILS: Provides TTFB for Amazon CloudFront, your current configuration, and the best performing EC2 configuration, at 1 hour intervals.

    For lists of the fields returned with each query type and more information about how each type of query is performed, see Using the Amazon CloudWatch Internet Monitor query interface in the Amazon CloudWatch Internet Monitor User Guide.

    " }, "FilterParameters":{ "shape":"FilterParameters", diff --git a/services/iot/pom.xml b/services/iot/pom.xml index 28a3300b5728..7c29e6c6b026 100644 --- a/services/iot/pom.xml +++ b/services/iot/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iot AWS Java SDK :: Services :: AWS IoT diff --git a/services/iot/src/main/resources/codegen-resources/customization.config b/services/iot/src/main/resources/codegen-resources/customization.config index bc16e09001e9..346279451f9f 100644 --- a/services/iot/src/main/resources/codegen-resources/customization.config +++ b/services/iot/src/main/resources/codegen-resources/customization.config @@ -1,58 +1,60 @@ { - "verifiedSimpleMethods": [ - "createKeysAndCertificate", - "deleteRegistrationCode", - "getLoggingOptions", - "clearDefaultAuthorizer", - "deleteAccountAuditConfiguration", - "describeAccountAuditConfiguration", - "describeEndpoint", - "describeEventConfigurations", - "getIndexingConfiguration", - "getRegistrationCode", - "listActiveViolations", - "listAuthorizers", - "listBillingGroups", - "listCACertificates", - "listCertificates", - "listIndices", - "listJobs", - "listOTAUpdates", - "listOutgoingCertificates", - "listPolicies", - "listRoleAliases", - "listScheduledAudits", - "listSecurityProfiles", - "listStreams", - "listThingGroups", - "listThingRegistrationTasks", - "listThingTypes", - "listThings", - "listTopicRules" - ], - "excludedSimpleMethods": [ - "addThingToThingGroup", - "removeThingFromThingGroup", - "setV2LoggingOptions", - "updateAccountAuditConfiguration", - "updateEventConfigurations", - "updateIndexingConfiguration", - "updateThingGroupsForThing", - "describeDefaultAuthorizer", - "getEffectivePolicies", - "getV2LoggingOptions", - "listAuditFindings", - "listV2LoggingLevels" - ], - "deprecatedOperations": [ - "AttachPrincipalPolicy", - "DetachPrincipalPolicy", - "ListPolicyPrincipals", - "ListPrincipalPolicies" - ], - "shapeModifiers": { - "AssetPropertyVariant": { - "union": true - } - } + "verifiedSimpleMethods": [ + "createKeysAndCertificate", + "deleteRegistrationCode", + "getLoggingOptions", + "clearDefaultAuthorizer", + "deleteAccountAuditConfiguration", + "describeAccountAuditConfiguration", + "describeEndpoint", + "describeEventConfigurations", + "getIndexingConfiguration", + "getRegistrationCode", + "listActiveViolations", + "listAuthorizers", + "listBillingGroups", + "listCACertificates", + "listCertificates", + "listIndices", + "listJobs", + "listOTAUpdates", + "listOutgoingCertificates", + "listPolicies", + "listRoleAliases", + "listScheduledAudits", + "listSecurityProfiles", + "listStreams", + "listThingGroups", + "listThingRegistrationTasks", + "listThingTypes", + "listThings", + "listTopicRules" + ], + "excludedSimpleMethods": [ + "addThingToThingGroup", + "removeThingFromThingGroup", + "setV2LoggingOptions", + "updateAccountAuditConfiguration", + "updateEventConfigurations", + "updateIndexingConfiguration", + "updateThingGroupsForThing", + "describeDefaultAuthorizer", + "getEffectivePolicies", + "getV2LoggingOptions", + "listAuditFindings", + "listV2LoggingLevels" + ], + "deprecatedOperations": [ + "AttachPrincipalPolicy", + "DetachPrincipalPolicy", + "ListPolicyPrincipals", + "ListPrincipalPolicies" + ], + "shapeModifiers": { + "AssetPropertyVariant": { + "union": true + } + }, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true } diff --git a/services/iot/src/main/resources/codegen-resources/service-2.json b/services/iot/src/main/resources/codegen-resources/service-2.json index 030dc586dc0c..9a6d1ee3b810 100644 --- a/services/iot/src/main/resources/codegen-resources/service-2.json +++ b/services/iot/src/main/resources/codegen-resources/service-2.json @@ -1714,7 +1714,7 @@ {"shape":"UnauthorizedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Returns a unique endpoint specific to the Amazon Web Services account making the call.

    Requires permission to access the DescribeEndpoint action.

    " + "documentation":"

    Returns or creates a unique endpoint specific to the Amazon Web Services account making the call.

    The first time DescribeEndpoint is called, an endpoint is created. All subsequent calls to DescribeEndpoint return the same endpoint.

    Requires permission to access the DescribeEndpoint action.

    " }, "DescribeEventConfigurations":{ "name":"DescribeEventConfigurations", @@ -2382,7 +2382,7 @@ {"shape":"InternalFailureException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

    Gets a registration code used to register a CA certificate with IoT.

    Requires permission to access the GetRegistrationCode action.

    " + "documentation":"

    Gets a registration code used to register a CA certificate with IoT.

    IoT will create a registration code as part of this API call if the registration code doesn't exist or has been deleted. If you already have a registration code, this API call will return the same registration code.

    Requires permission to access the GetRegistrationCode action.

    " }, "GetStatistics":{ "name":"GetStatistics", @@ -7011,6 +7011,10 @@ "tlsConfig":{ "shape":"TlsConfig", "documentation":"

    An object that specifies the TLS configuration for a domain.

    " + }, + "serverCertificateConfig":{ + "shape":"ServerCertificateConfig", + "documentation":"

    The server certificate configuration.

    " } } }, @@ -9486,6 +9490,10 @@ "tlsConfig":{ "shape":"TlsConfig", "documentation":"

    An object that specifies the TLS configuration for a domain.

    " + }, + "serverCertificateConfig":{ + "shape":"ServerCertificateConfig", + "documentation":"

    The server certificate configuration.

    " } } }, @@ -10910,6 +10918,7 @@ }, "documentation":"

    Parameters used when defining a mitigation action that enable Amazon Web Services IoT Core logging.

    " }, + "EnableOCSPCheck":{"type":"boolean"}, "EnableTopicRuleRequest":{ "type":"structure", "required":["ruleName"], @@ -17621,6 +17630,16 @@ "max":1, "min":0 }, + "ServerCertificateConfig":{ + "type":"structure", + "members":{ + "enableOCSPCheck":{ + "shape":"EnableOCSPCheck", + "documentation":"

    A Boolean value that indicates whether Online Certificate Status Protocol (OCSP) server certificate check is enabled or not.

    For more information, see Configuring OCSP server-certificate stapling in domain configuration from Amazon Web Services IoT Core Developer Guide.

    " + } + }, + "documentation":"

    The server certificate configuration.

    " + }, "ServerCertificateStatus":{ "type":"string", "enum":[ @@ -19819,6 +19838,10 @@ "tlsConfig":{ "shape":"TlsConfig", "documentation":"

    An object that specifies the TLS configuration for a domain.

    " + }, + "serverCertificateConfig":{ + "shape":"ServerCertificateConfig", + "documentation":"

    The server certificate configuration.

    " } } }, diff --git a/services/iot1clickdevices/pom.xml b/services/iot1clickdevices/pom.xml index c347827cc04f..6d33523c577c 100644 --- a/services/iot1clickdevices/pom.xml +++ b/services/iot1clickdevices/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iot1clickdevices AWS Java SDK :: Services :: IoT 1Click Devices Service diff --git a/services/iot1clickdevices/src/main/resources/codegen-resources/customization.config b/services/iot1clickdevices/src/main/resources/codegen-resources/customization.config index b947f5dbc959..1ebeddff05aa 100644 --- a/services/iot1clickdevices/src/main/resources/codegen-resources/customization.config +++ b/services/iot1clickdevices/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "listDevices" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/iot1clickprojects/pom.xml b/services/iot1clickprojects/pom.xml index c4487ca0e952..940bc169dab8 100644 --- a/services/iot1clickprojects/pom.xml +++ b/services/iot1clickprojects/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iot1clickprojects AWS Java SDK :: Services :: IoT 1Click Projects diff --git a/services/iot1clickprojects/src/main/resources/codegen-resources/customization.config b/services/iot1clickprojects/src/main/resources/codegen-resources/customization.config index 02276c8007f4..9e90ae569912 100644 --- a/services/iot1clickprojects/src/main/resources/codegen-resources/customization.config +++ b/services/iot1clickprojects/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listProjects" - ] + ], + "useSraAuth": true } diff --git a/services/iotanalytics/pom.xml b/services/iotanalytics/pom.xml index 5a7eb61f235f..a92d560dd95a 100644 --- a/services/iotanalytics/pom.xml +++ b/services/iotanalytics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotanalytics AWS Java SDK :: Services :: IoTAnalytics diff --git a/services/iotanalytics/src/main/resources/codegen-resources/customization.config b/services/iotanalytics/src/main/resources/codegen-resources/customization.config index ba5ea64efd7f..95ca60bc3262 100644 --- a/services/iotanalytics/src/main/resources/codegen-resources/customization.config +++ b/services/iotanalytics/src/main/resources/codegen-resources/customization.config @@ -1,16 +1,19 @@ { - "verifiedSimpleMethods": [ - "listChannels", - "listDatasets", - "listDatastores", - "listPipelines" - ], - "excludedSimpleMethods": [ - "describeLoggingOptions" - ], - "shapeModifiers": { - "DatastoreStorage": { - "union": true - } - } + "verifiedSimpleMethods": [ + "listChannels", + "listDatasets", + "listDatastores", + "listPipelines" + ], + "excludedSimpleMethods": [ + "describeLoggingOptions" + ], + "shapeModifiers": { + "DatastoreStorage": { + "union": true + } + }, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/iotdataplane/pom.xml b/services/iotdataplane/pom.xml index 1f4bf0da0511..bd155ea4a3d1 100644 --- a/services/iotdataplane/pom.xml +++ b/services/iotdataplane/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotdataplane AWS Java SDK :: Services :: AWS IoT Data Plane diff --git a/services/iotdataplane/src/main/resources/codegen-resources/customization.config b/services/iotdataplane/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/iotdataplane/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/iotdeviceadvisor/pom.xml b/services/iotdeviceadvisor/pom.xml index d3e9f5efbbc1..405a403a0af5 100644 --- a/services/iotdeviceadvisor/pom.xml +++ b/services/iotdeviceadvisor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotdeviceadvisor AWS Java SDK :: Services :: Iot Device Advisor diff --git a/services/iotdeviceadvisor/src/main/resources/codegen-resources/customization.config b/services/iotdeviceadvisor/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/iotdeviceadvisor/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/iotevents/pom.xml b/services/iotevents/pom.xml index bf780a9c84c2..0351217fc01a 100644 --- a/services/iotevents/pom.xml +++ b/services/iotevents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotevents AWS Java SDK :: Services :: IoT Events diff --git a/services/iotevents/src/main/resources/codegen-resources/customization.config b/services/iotevents/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/iotevents/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/iotevents/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/iotevents/src/main/resources/codegen-resources/endpoint-rule-set.json index 678f9935ed15..62cd33544a10 100644 --- a/services/iotevents/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/iotevents/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/iotevents/src/main/resources/codegen-resources/service-2.json b/services/iotevents/src/main/resources/codegen-resources/service-2.json index 419c705db8c3..ef139def34e4 100644 --- a/services/iotevents/src/main/resources/codegen-resources/service-2.json +++ b/services/iotevents/src/main/resources/codegen-resources/service-2.json @@ -590,7 +590,7 @@ "AlarmModelArn":{"type":"string"}, "AlarmModelDescription":{ "type":"string", - "max":128 + "max":1024 }, "AlarmModelName":{ "type":"string", @@ -1356,7 +1356,7 @@ }, "DetectorModelDescription":{ "type":"string", - "max":128 + "max":1024 }, "DetectorModelName":{ "type":"string", @@ -1738,7 +1738,7 @@ }, "InputDescription":{ "type":"string", - "max":128 + "max":1024 }, "InputIdentifier":{ "type":"structure", diff --git a/services/ioteventsdata/pom.xml b/services/ioteventsdata/pom.xml index dbfb49251247..7b0c0ece37e4 100644 --- a/services/ioteventsdata/pom.xml +++ b/services/ioteventsdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ioteventsdata AWS Java SDK :: Services :: IoT Events Data diff --git a/services/ioteventsdata/src/main/resources/codegen-resources/customization.config b/services/ioteventsdata/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/ioteventsdata/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/iotfleethub/pom.xml b/services/iotfleethub/pom.xml index 21a0caebbfc4..da9273520535 100644 --- a/services/iotfleethub/pom.xml +++ b/services/iotfleethub/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotfleethub AWS Java SDK :: Services :: Io T Fleet Hub diff --git a/services/iotfleethub/src/main/resources/codegen-resources/customization.config b/services/iotfleethub/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/iotfleethub/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/iotfleetwise/pom.xml b/services/iotfleetwise/pom.xml index fc59f157a710..dd49fd91909e 100644 --- a/services/iotfleetwise/pom.xml +++ b/services/iotfleetwise/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotfleetwise AWS Java SDK :: Services :: Io T Fleet Wise diff --git a/services/iotfleetwise/src/main/resources/codegen-resources/customization.config b/services/iotfleetwise/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/iotfleetwise/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/iotjobsdataplane/pom.xml b/services/iotjobsdataplane/pom.xml index d4e323c31a0d..e8c956c050f6 100644 --- a/services/iotjobsdataplane/pom.xml +++ b/services/iotjobsdataplane/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotjobsdataplane AWS Java SDK :: Services :: IoT Jobs Data Plane diff --git a/services/iotjobsdataplane/src/main/resources/codegen-resources/customization.config b/services/iotjobsdataplane/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/iotjobsdataplane/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/iotroborunner/pom.xml b/services/iotroborunner/pom.xml index 4e266951fc44..0d78306f2f7e 100644 --- a/services/iotroborunner/pom.xml +++ b/services/iotroborunner/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotroborunner AWS Java SDK :: Services :: IoT Robo Runner diff --git a/services/iotroborunner/src/main/resources/codegen-resources/customization.config b/services/iotroborunner/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/iotroborunner/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/iotsecuretunneling/pom.xml b/services/iotsecuretunneling/pom.xml index f8c9065e394f..6ecbf8dcb504 100644 --- a/services/iotsecuretunneling/pom.xml +++ b/services/iotsecuretunneling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotsecuretunneling AWS Java SDK :: Services :: IoTSecureTunneling diff --git a/services/iotsecuretunneling/src/main/resources/codegen-resources/customization.config b/services/iotsecuretunneling/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/iotsecuretunneling/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/iotsitewise/pom.xml b/services/iotsitewise/pom.xml index a0988973dda8..9e7bfcf0b884 100644 --- a/services/iotsitewise/pom.xml +++ b/services/iotsitewise/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotsitewise AWS Java SDK :: Services :: Io T Site Wise diff --git a/services/iotsitewise/src/main/resources/codegen-resources/customization.config b/services/iotsitewise/src/main/resources/codegen-resources/customization.config index 0e729acd0371..47a49338406e 100644 --- a/services/iotsitewise/src/main/resources/codegen-resources/customization.config +++ b/services/iotsitewise/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,4 @@ { - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true } diff --git a/services/iotthingsgraph/pom.xml b/services/iotthingsgraph/pom.xml index 434cd8635e6e..2da581200c47 100644 --- a/services/iotthingsgraph/pom.xml +++ b/services/iotthingsgraph/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotthingsgraph AWS Java SDK :: Services :: IoTThingsGraph diff --git a/services/iotthingsgraph/src/main/resources/codegen-resources/customization.config b/services/iotthingsgraph/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/iotthingsgraph/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/iottwinmaker/pom.xml b/services/iottwinmaker/pom.xml index a76fd08573a9..32144bee9f3f 100644 --- a/services/iottwinmaker/pom.xml +++ b/services/iottwinmaker/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iottwinmaker AWS Java SDK :: Services :: Io T Twin Maker diff --git a/services/iottwinmaker/src/main/resources/codegen-resources/customization.config b/services/iottwinmaker/src/main/resources/codegen-resources/customization.config index 0e729acd0371..2a734ae11b2b 100644 --- a/services/iottwinmaker/src/main/resources/codegen-resources/customization.config +++ b/services/iottwinmaker/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/iotwireless/pom.xml b/services/iotwireless/pom.xml index b8069242e8f1..6a36cb1f8045 100644 --- a/services/iotwireless/pom.xml +++ b/services/iotwireless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT iotwireless AWS Java SDK :: Services :: IoT Wireless diff --git a/services/iotwireless/src/main/resources/codegen-resources/customization.config b/services/iotwireless/src/main/resources/codegen-resources/customization.config index 21b15d9542cb..264e5580c35d 100644 --- a/services/iotwireless/src/main/resources/codegen-resources/customization.config +++ b/services/iotwireless/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "underscoresInNameBehavior": "ALLOW" + "underscoresInNameBehavior": "ALLOW", + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/ivs/pom.xml b/services/ivs/pom.xml index 4b61fbfeb39e..9141152a9f80 100644 --- a/services/ivs/pom.xml +++ b/services/ivs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ivs AWS Java SDK :: Services :: Ivs diff --git a/services/ivs/src/main/resources/codegen-resources/customization.config b/services/ivs/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/ivs/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/ivs/src/main/resources/codegen-resources/paginators-1.json b/services/ivs/src/main/resources/codegen-resources/paginators-1.json index e6daa888614e..e7b77607cc61 100644 --- a/services/ivs/src/main/resources/codegen-resources/paginators-1.json +++ b/services/ivs/src/main/resources/codegen-resources/paginators-1.json @@ -10,6 +10,11 @@ "output_token": "nextToken", "limit_key": "maxResults" }, + "ListPlaybackRestrictionPolicies": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, "ListRecordingConfigurations": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/ivs/src/main/resources/codegen-resources/service-2.json b/services/ivs/src/main/resources/codegen-resources/service-2.json index a3d77d7a0ce5..8787c389406a 100644 --- a/services/ivs/src/main/resources/codegen-resources/service-2.json +++ b/services/ivs/src/main/resources/codegen-resources/service-2.json @@ -70,6 +70,24 @@ ], "documentation":"

    Creates a new channel and an associated stream key to start streaming.

    " }, + "CreatePlaybackRestrictionPolicy":{ + "name":"CreatePlaybackRestrictionPolicy", + "http":{ + "method":"POST", + "requestUri":"/CreatePlaybackRestrictionPolicy", + "responseCode":200 + }, + "input":{"shape":"CreatePlaybackRestrictionPolicyRequest"}, + "output":{"shape":"CreatePlaybackRestrictionPolicyResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"PendingVerification"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

    Creates a new playback restriction policy, for constraining playback by countries and/or origins.

    " + }, "CreateRecordingConfiguration":{ "name":"CreateRecordingConfiguration", "http":{ @@ -141,6 +159,23 @@ ], "documentation":"

    Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s privateKey. For more information, see Setting Up Private Channels in the Amazon IVS User Guide.

    " }, + "DeletePlaybackRestrictionPolicy":{ + "name":"DeletePlaybackRestrictionPolicy", + "http":{ + "method":"POST", + "requestUri":"/DeletePlaybackRestrictionPolicy", + "responseCode":204 + }, + "input":{"shape":"DeletePlaybackRestrictionPolicyRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"PendingVerification"}, + {"shape":"ConflictException"} + ], + "documentation":"

    Deletes the specified playback restriction policy.

    " + }, "DeleteRecordingConfiguration":{ "name":"DeleteRecordingConfiguration", "http":{ @@ -206,6 +241,23 @@ ], "documentation":"

    Gets a specified playback authorization key pair and returns the arn and fingerprint. The privateKey held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels. For more information, see Setting Up Private Channels in the Amazon IVS User Guide.

    " }, + "GetPlaybackRestrictionPolicy":{ + "name":"GetPlaybackRestrictionPolicy", + "http":{ + "method":"POST", + "requestUri":"/GetPlaybackRestrictionPolicy", + "responseCode":200 + }, + "input":{"shape":"GetPlaybackRestrictionPolicyRequest"}, + "output":{"shape":"GetPlaybackRestrictionPolicyResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"PendingVerification"} + ], + "documentation":"

    Gets the specified playback restriction policy.

    " + }, "GetRecordingConfiguration":{ "name":"GetRecordingConfiguration", "http":{ @@ -321,6 +373,23 @@ ], "documentation":"

    Gets summary information about playback key pairs. For more information, see Setting Up Private Channels in the Amazon IVS User Guide.

    " }, + "ListPlaybackRestrictionPolicies":{ + "name":"ListPlaybackRestrictionPolicies", + "http":{ + "method":"POST", + "requestUri":"/ListPlaybackRestrictionPolicies", + "responseCode":200 + }, + "input":{"shape":"ListPlaybackRestrictionPoliciesRequest"}, + "output":{"shape":"ListPlaybackRestrictionPoliciesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"PendingVerification"}, + {"shape":"ConflictException"} + ], + "documentation":"

    Gets summary information about playback restriction policies.

    " + }, "ListRecordingConfigurations":{ "name":"ListRecordingConfigurations", "http":{ @@ -504,6 +573,24 @@ {"shape":"ConflictException"} ], "documentation":"

    Updates a channel's configuration. Live channels cannot be updated. You must stop the ongoing stream, update the channel, and restart the stream for the changes to take effect.

    " + }, + "UpdatePlaybackRestrictionPolicy":{ + "name":"UpdatePlaybackRestrictionPolicy", + "http":{ + "method":"POST", + "requestUri":"/UpdatePlaybackRestrictionPolicy", + "responseCode":200 + }, + "input":{"shape":"UpdatePlaybackRestrictionPolicyRequest"}, + "output":{"shape":"UpdatePlaybackRestrictionPolicyResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"PendingVerification"}, + {"shape":"ConflictException"} + ], + "documentation":"

    Updates a specified playback restriction policy.

    " } }, "shapes":{ @@ -711,12 +798,16 @@ }, "latencyMode":{ "shape":"ChannelLatencyMode", - "documentation":"

    Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

    " + "documentation":"

    Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW.

    " }, "name":{ "shape":"ChannelName", "documentation":"

    Channel name.

    " }, + "playbackRestrictionPolicyArn":{ + "shape":"ChannelPlaybackRestrictionPolicyArn", + "documentation":"

    Playback-restriction-policy ARN. A valid ARN value here both specifies the ARN and enables playback restriction. Default: \"\" (empty string, no playback restriction policy is applied).

    " + }, "playbackUrl":{ "shape":"PlaybackURL", "documentation":"

    Channel playback URL.

    " @@ -727,7 +818,7 @@ }, "recordingConfigurationArn":{ "shape":"ChannelRecordingConfigurationArn", - "documentation":"

    Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: \"\" (empty string, recording is disabled).

    " + "documentation":"

    Recording-configuration ARN. A valid ARN value here both specifies the ARN and enables recording. Default: \"\" (empty string, recording is disabled).

    " }, "tags":{ "shape":"Tags", @@ -784,6 +875,12 @@ }, "exception":true }, + "ChannelPlaybackRestrictionPolicyArn":{ + "type":"string", + "max":128, + "min":0, + "pattern":"^$|^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-restriction-policy/[a-zA-Z0-9-]+$" + }, "ChannelRecordingConfigurationArn":{ "type":"string", "max":128, @@ -807,19 +904,23 @@ }, "latencyMode":{ "shape":"ChannelLatencyMode", - "documentation":"

    Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

    " + "documentation":"

    Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW.

    " }, "name":{ "shape":"ChannelName", "documentation":"

    Channel name.

    " }, + "playbackRestrictionPolicyArn":{ + "shape":"ChannelPlaybackRestrictionPolicyArn", + "documentation":"

    Playback-restriction-policy ARN. A valid ARN value here both specifies the ARN and enables playback restriction. Default: \"\" (empty string, no playback restriction policy is applied).

    " + }, "preset":{ "shape":"TranscodePreset", "documentation":"

    Optional transcode preset for the channel. This is selectable only for ADVANCED_HD and ADVANCED_SD channel types. For those channel types, the default preset is HIGHER_BANDWIDTH_DELIVERY. For other channel types (BASIC and STANDARD), preset is the empty string (\"\").

    " }, "recordingConfigurationArn":{ "shape":"ChannelRecordingConfigurationArn", - "documentation":"

    Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: \"\" (empty string, recording is disabled).

    " + "documentation":"

    Recording-configuration ARN. A valid ARN value here both specifies the ARN and enables recording. Default: \"\" (empty string, recording is disabled).

    " }, "tags":{ "shape":"Tags", @@ -873,19 +974,23 @@ }, "latencyMode":{ "shape":"ChannelLatencyMode", - "documentation":"

    Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.) Default: LOW.

    " + "documentation":"

    Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW.

    " }, "name":{ "shape":"ChannelName", "documentation":"

    Channel name.

    " }, + "playbackRestrictionPolicyArn":{ + "shape":"ChannelPlaybackRestrictionPolicyArn", + "documentation":"

    Playback-restriction-policy ARN. A valid ARN value here both specifies the ARN and enables playback restriction. Default: \"\" (empty string, no playback restriction policy is applied).

    " + }, "preset":{ "shape":"TranscodePreset", "documentation":"

    Optional transcode preset for the channel. This is selectable only for ADVANCED_HD and ADVANCED_SD channel types. For those channel types, the default preset is HIGHER_BANDWIDTH_DELIVERY. For other channel types (BASIC and STANDARD), preset is the empty string (\"\").

    " }, "recordingConfigurationArn":{ "shape":"ChannelRecordingConfigurationArn", - "documentation":"

    Recording-configuration ARN. Default: \"\" (empty string, recording is disabled).

    " + "documentation":"

    Recording-configuration ARN. A valid ARN value here both specifies the ARN and enables recording. Default: \"\" (empty string, recording is disabled).

    " }, "tags":{ "shape":"Tags", @@ -910,6 +1015,40 @@ } } }, + "CreatePlaybackRestrictionPolicyRequest":{ + "type":"structure", + "members":{ + "allowedCountries":{ + "shape":"PlaybackRestrictionPolicyAllowedCountryList", + "documentation":"

    A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array).

    " + }, + "allowedOrigins":{ + "shape":"PlaybackRestrictionPolicyAllowedOriginList", + "documentation":"

    A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin. Default: All origins (an empty array).

    " + }, + "enableStrictOriginEnforcement":{ + "shape":"PlaybackRestrictionPolicyEnableStrictOriginEnforcement", + "documentation":"

    Whether channel playback is constrained by origin site. Default: false.

    " + }, + "name":{ + "shape":"PlaybackRestrictionPolicyName", + "documentation":"

    Playback-restriction-policy name. The value does not need to be unique.

    " + }, + "tags":{ + "shape":"Tags", + "documentation":"

    Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

    " + } + } + }, + "CreatePlaybackRestrictionPolicyResponse":{ + "type":"structure", + "members":{ + "playbackRestrictionPolicy":{ + "shape":"PlaybackRestrictionPolicy", + "documentation":"

    " + } + } + }, "CreateRecordingConfigurationRequest":{ "type":"structure", "required":["destinationConfiguration"], @@ -997,6 +1136,16 @@ "members":{ } }, + "DeletePlaybackRestrictionPolicyRequest":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{ + "shape":"PlaybackRestrictionPolicyArn", + "documentation":"

    ARN of the playback restriction policy to be deleted.

    " + } + } + }, "DeleteRecordingConfigurationRequest":{ "type":"structure", "required":["arn"], @@ -1065,6 +1214,25 @@ } } }, + "GetPlaybackRestrictionPolicyRequest":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{ + "shape":"PlaybackRestrictionPolicyArn", + "documentation":"

    ARN of the playback restriction policy to be returned.

    " + } + } + }, + "GetPlaybackRestrictionPolicyResponse":{ + "type":"structure", + "members":{ + "playbackRestrictionPolicy":{ + "shape":"PlaybackRestrictionPolicy", + "documentation":"

    " + } + } + }, "GetRecordingConfigurationRequest":{ "type":"structure", "required":["arn"], @@ -1210,6 +1378,10 @@ "shape":"ChannelName", "documentation":"

    Filters the channel list to match the specified name.

    " }, + "filterByPlaybackRestrictionPolicyArn":{ + "shape":"ChannelPlaybackRestrictionPolicyArn", + "documentation":"

    Filters the channel list to match the specified policy.

    " + }, "filterByRecordingConfigurationArn":{ "shape":"ChannelRecordingConfigurationArn", "documentation":"

    Filters the channel list to match the specified recording-configuration ARN.

    " @@ -1265,6 +1437,33 @@ } } }, + "ListPlaybackRestrictionPoliciesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxPlaybackRestrictionPolicyResults", + "documentation":"

    Maximum number of policies to return. Default: 1.

    " + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The first policy to retrieve. This is used for pagination; see the nextToken response field.

    " + } + } + }, + "ListPlaybackRestrictionPoliciesResponse":{ + "type":"structure", + "required":["playbackRestrictionPolicies"], + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    If there are more channels than maxResults, use nextToken in the request to get the next set.

    " + }, + "playbackRestrictionPolicies":{ + "shape":"PlaybackRestrictionPolicyList", + "documentation":"

    List of the matching policies.

    " + } + } + }, "ListRecordingConfigurationsRequest":{ "type":"structure", "members":{ @@ -1421,6 +1620,12 @@ "max":100, "min":1 }, + "MaxPlaybackRestrictionPolicyResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "MaxRecordingConfigurationResults":{ "type":"integer", "box":true, @@ -1518,6 +1723,114 @@ "documentation":"

    Summary information about a playback key pair.

    " }, "PlaybackPublicKeyMaterial":{"type":"string"}, + "PlaybackRestrictionPolicy":{ + "type":"structure", + "required":[ + "allowedCountries", + "allowedOrigins", + "arn" + ], + "members":{ + "allowedCountries":{ + "shape":"PlaybackRestrictionPolicyAllowedCountryList", + "documentation":"

    A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array).

    " + }, + "allowedOrigins":{ + "shape":"PlaybackRestrictionPolicyAllowedOriginList", + "documentation":"

    A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin. Default: All origins (an empty array).

    " + }, + "arn":{ + "shape":"PlaybackRestrictionPolicyArn", + "documentation":"

    Playback-restriction-policy ARN

    " + }, + "enableStrictOriginEnforcement":{ + "shape":"PlaybackRestrictionPolicyEnableStrictOriginEnforcement", + "documentation":"

    Whether channel playback is constrained by origin site. Default: false.

    " + }, + "name":{ + "shape":"PlaybackRestrictionPolicyName", + "documentation":"

    Playback-restriction-policy name. The value does not need to be unique.

    " + }, + "tags":{ + "shape":"Tags", + "documentation":"

    Tags attached to the resource. Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

    " + } + }, + "documentation":"

    An object representing a policy to constrain playback by country and/or origin sites.

    " + }, + "PlaybackRestrictionPolicyAllowedCountry":{ + "type":"string", + "max":2, + "min":2 + }, + "PlaybackRestrictionPolicyAllowedCountryList":{ + "type":"list", + "member":{"shape":"PlaybackRestrictionPolicyAllowedCountry"} + }, + "PlaybackRestrictionPolicyAllowedOrigin":{ + "type":"string", + "max":128, + "min":0 + }, + "PlaybackRestrictionPolicyAllowedOriginList":{ + "type":"list", + "member":{"shape":"PlaybackRestrictionPolicyAllowedOrigin"} + }, + "PlaybackRestrictionPolicyArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-restriction-policy/[a-zA-Z0-9-]+$" + }, + "PlaybackRestrictionPolicyEnableStrictOriginEnforcement":{ + "type":"boolean", + "box":true + }, + "PlaybackRestrictionPolicyList":{ + "type":"list", + "member":{"shape":"PlaybackRestrictionPolicySummary"} + }, + "PlaybackRestrictionPolicyName":{ + "type":"string", + "max":128, + "min":0, + "pattern":"^[a-zA-Z0-9-_]*$" + }, + "PlaybackRestrictionPolicySummary":{ + "type":"structure", + "required":[ + "allowedCountries", + "allowedOrigins", + "arn" + ], + "members":{ + "allowedCountries":{ + "shape":"PlaybackRestrictionPolicyAllowedCountryList", + "documentation":"

    A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array).

    " + }, + "allowedOrigins":{ + "shape":"PlaybackRestrictionPolicyAllowedOriginList", + "documentation":"

    A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin. Default: All origins (an empty array).

    " + }, + "arn":{ + "shape":"PlaybackRestrictionPolicyArn", + "documentation":"

    Playback-restriction-policy ARN

    " + }, + "enableStrictOriginEnforcement":{ + "shape":"PlaybackRestrictionPolicyEnableStrictOriginEnforcement", + "documentation":"

    Whether channel playback is constrained by origin site. Default: false.

    " + }, + "name":{ + "shape":"PlaybackRestrictionPolicyName", + "documentation":"

    Playback-restriction-policy name. The value does not need to be unique.

    " + }, + "tags":{ + "shape":"Tags", + "documentation":"

    Tags attached to the resource. Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

    " + } + }, + "documentation":"

    Summary information about a PlaybackRestrictionPolicy.

    " + }, "PlaybackURL":{"type":"string"}, "PutMetadataRequest":{ "type":"structure", @@ -2182,7 +2495,7 @@ }, "tagKeys":{ "shape":"TagKeyList", - "documentation":"

    Array of tags to be removed. Array of maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

    ", + "documentation":"

    Array of tags to be removed. Array of maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

    ", "location":"querystring", "locationName":"tagKeys" } @@ -2211,19 +2524,23 @@ }, "latencyMode":{ "shape":"ChannelLatencyMode", - "documentation":"

    Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

    " + "documentation":"

    Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers.

    " }, "name":{ "shape":"ChannelName", "documentation":"

    Channel name.

    " }, + "playbackRestrictionPolicyArn":{ + "shape":"ChannelPlaybackRestrictionPolicyArn", + "documentation":"

    Playback-restriction-policy ARN. A valid ARN value here both specifies the ARN and enables playback restriction. If this is set to an empty string, playback restriction policy is disabled.

    " + }, "preset":{ "shape":"TranscodePreset", "documentation":"

    Optional transcode preset for the channel. This is selectable only for ADVANCED_HD and ADVANCED_SD channel types. For those channel types, the default preset is HIGHER_BANDWIDTH_DELIVERY. For other channel types (BASIC and STANDARD), preset is the empty string (\"\").

    " }, "recordingConfigurationArn":{ "shape":"ChannelRecordingConfigurationArn", - "documentation":"

    Recording-configuration ARN. If this is set to an empty string, recording is disabled. A value other than an empty string indicates that recording is enabled

    " + "documentation":"

    Recording-configuration ARN. A valid ARN value here both specifies the ARN and enables recording. If this is set to an empty string, recording is disabled.

    " }, "type":{ "shape":"ChannelType", @@ -2234,7 +2551,45 @@ "UpdateChannelResponse":{ "type":"structure", "members":{ - "channel":{"shape":"Channel"} + "channel":{ + "shape":"Channel", + "documentation":"

    Object specifying the updated channel.

    " + } + } + }, + "UpdatePlaybackRestrictionPolicyRequest":{ + "type":"structure", + "required":["arn"], + "members":{ + "allowedCountries":{ + "shape":"PlaybackRestrictionPolicyAllowedCountryList", + "documentation":"

    A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array).

    " + }, + "allowedOrigins":{ + "shape":"PlaybackRestrictionPolicyAllowedOriginList", + "documentation":"

    A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin. Default: All origins (an empty array).

    " + }, + "arn":{ + "shape":"PlaybackRestrictionPolicyArn", + "documentation":"

    ARN of the playback-restriction-policy to be updated.

    " + }, + "enableStrictOriginEnforcement":{ + "shape":"PlaybackRestrictionPolicyEnableStrictOriginEnforcement", + "documentation":"

    Whether channel playback is constrained by origin site. Default: false.

    " + }, + "name":{ + "shape":"PlaybackRestrictionPolicyName", + "documentation":"

    Playback-restriction-policy name. The value does not need to be unique.

    " + } + } + }, + "UpdatePlaybackRestrictionPolicyResponse":{ + "type":"structure", + "members":{ + "playbackRestrictionPolicy":{ + "shape":"PlaybackRestrictionPolicy", + "documentation":"

    Object specifying the updated policy.

    " + } } }, "ValidationException":{ @@ -2302,5 +2657,5 @@ "errorCode":{"type":"string"}, "errorMessage":{"type":"string"} }, - "documentation":"

    Introduction

    The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an Amazon Web Services EventBridge event stream for responses. JSON is used for both requests and responses, including errors.

    The API is an Amazon Web Services regional service. For a list of supported regions and Amazon IVS HTTPS service endpoints, see the Amazon IVS page in the Amazon Web Services General Reference.

    All API request parameters and URLs are case sensitive.

    For a summary of notable documentation changes in each release, see Document History.

    Allowed Header Values

    • Accept: application/json

    • Accept-Encoding: gzip, deflate

    • Content-Type: application/json

    Resources

    The following resources contain information about your IVS live stream (see Getting Started with Amazon IVS):

    • Channel — Stores configuration data related to your live stream. You first create a channel and then use the channel’s stream key to start your live stream. See the Channel endpoints for more information.

    • Stream key — An identifier assigned by Amazon IVS when you create a channel, which is then used to authorize streaming. See the StreamKey endpoints for more information. Treat the stream key like a secret, since it allows anyone to stream to the channel.

    • Playback key pair — Video playback may be restricted using playback-authorization tokens, which use public-key encryption. A playback key pair is the public-private pair of keys used to sign and validate the playback-authorization token. See the PlaybackKeyPair endpoints for more information.

    • Recording configuration — Stores configuration related to recording a live stream and where to store the recorded content. Multiple channels can reference the same recording configuration. See the Recording Configuration endpoints for more information.

    Tagging

    A tag is a metadata label that you assign to an Amazon Web Services resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature to label a particular video category. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

    Tags can help you identify and organize your Amazon Web Services resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).

    The Amazon IVS API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resources support tagging: Channels, Stream Keys, Playback Key Pairs, and Recording Configurations.

    At most 50 tags can be applied to a resource.

    Authentication versus Authorization

    Note the differences between these concepts:

    • Authentication is about verifying identity. You need to be authenticated to sign Amazon IVS API requests.

    • Authorization is about granting permissions. Your IAM roles need to have permissions for Amazon IVS API requests. In addition, authorization is needed to view Amazon IVS private channels. (Private channels are channels that are enabled for \"playback authorization.\")

    Authentication

    All Amazon IVS API requests must be authenticated with a signature. The Amazon Web Services Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS API directly, it’s your responsibility to sign the requests.

    You generate a signature using valid Amazon Web Services credentials that have permission to perform the requested action. For example, you must sign PutMetadata requests with a signature generated from a user account that has the ivs:PutMetadata permission.

    For more information:

    Amazon Resource Names (ARNs)

    ARNs uniquely identify AWS resources. An ARN is required when you need to specify a resource unambiguously across all of AWS, such as in IAM policies and API calls. For more information, see Amazon Resource Names in the AWS General Reference.

    Channel Endpoints

    • CreateChannel — Creates a new channel and an associated stream key to start streaming.

    • GetChannel — Gets the channel configuration for the specified channel ARN.

    • BatchGetChannel — Performs GetChannel on multiple ARNs simultaneously.

    • ListChannels — Gets summary information about all channels in your account, in the Amazon Web Services region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 Conflict Exception).

    • UpdateChannel — Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.

    • DeleteChannel — Deletes the specified channel.

    StreamKey Endpoints

    • CreateStreamKey — Creates a stream key, used to initiate a stream, for the specified channel ARN.

    • GetStreamKey — Gets stream key information for the specified ARN.

    • BatchGetStreamKey — Performs GetStreamKey on multiple ARNs simultaneously.

    • ListStreamKeys — Gets summary information about stream keys for the specified channel.

    • DeleteStreamKey — Deletes the stream key for the specified ARN, so it can no longer be used to stream.

    Stream Endpoints

    • GetStream — Gets information about the active (live) stream on a specified channel.

    • GetStreamSession — Gets metadata on a specified stream.

    • ListStreams — Gets summary information about live streams in your account, in the Amazon Web Services region where the API request is processed.

    • ListStreamSessions — Gets a summary of current and previous streams for a specified channel in your account, in the AWS region where the API request is processed.

    • StopStream — Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with DeleteStreamKey to prevent further streaming to a channel.

    • PutMetadata — Inserts metadata into the active stream of the specified channel. At most 5 requests per second per channel are allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) At most 155 requests per second per account are allowed.

    Private Channel Endpoints

    For more information, see Setting Up Private Channels in the Amazon IVS User Guide.

    • ImportPlaybackKeyPair — Imports the public portion of a new key pair and returns its arn and fingerprint. The privateKey can then be used to generate viewer authorization tokens, to grant viewers access to private channels (channels enabled for playback authorization).

    • GetPlaybackKeyPair — Gets a specified playback authorization key pair and returns the arn and fingerprint. The privateKey held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels.

    • ListPlaybackKeyPairs — Gets summary information about playback key pairs.

    • DeletePlaybackKeyPair — Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s privateKey.

    • StartViewerSessionRevocation — Starts the process of revoking the viewer session associated with a specified channel ARN and viewer ID. Optionally, you can provide a version to revoke viewer sessions less than and including that version.

    • BatchStartViewerSessionRevocation — Performs StartViewerSessionRevocation on multiple channel ARN and viewer ID pairs simultaneously.

    RecordingConfiguration Endpoints

    Amazon Web Services Tags Endpoints

    • TagResource — Adds or updates tags for the Amazon Web Services resource with the specified ARN.

    • UntagResource — Removes tags from the resource with the specified ARN.

    • ListTagsForResource — Gets information about Amazon Web Services tags for the specified ARN.

    " + "documentation":"

    Introduction

    The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an Amazon Web Services EventBridge event stream for responses. JSON is used for both requests and responses, including errors.

    The API is an Amazon Web Services regional service. For a list of supported regions and Amazon IVS HTTPS service endpoints, see the Amazon IVS page in the Amazon Web Services General Reference.

    All API request parameters and URLs are case sensitive.

    For a summary of notable documentation changes in each release, see Document History.

    Allowed Header Values

    • Accept: application/json

    • Accept-Encoding: gzip, deflate

    • Content-Type: application/json

    Resources

    The following resources contain information about your IVS live stream (see Getting Started with Amazon IVS):

    • Channel — Stores configuration data related to your live stream. You first create a channel and then use the channel’s stream key to start your live stream. See the Channel endpoints for more information.

    • Stream key — An identifier assigned by Amazon IVS when you create a channel, which is then used to authorize streaming. See the StreamKey endpoints for more information. Treat the stream key like a secret, since it allows anyone to stream to the channel.

    • Playback key pair — Video playback may be restricted using playback-authorization tokens, which use public-key encryption. A playback key pair is the public-private pair of keys used to sign and validate the playback-authorization token. See the PlaybackKeyPair endpoints for more information.

    • Recording configuration — Stores configuration related to recording a live stream and where to store the recorded content. Multiple channels can reference the same recording configuration. See the Recording Configuration endpoints for more information.

    • Playback restriction policy — Restricts playback by countries and/or origin sites. See the Playback Restriction Policy endpoints for more information.

    Tagging

    A tag is a metadata label that you assign to an Amazon Web Services resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature to label a particular video category. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

    Tags can help you identify and organize your Amazon Web Services resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).

    The Amazon IVS API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resources support tagging: Channels, Stream Keys, Playback Key Pairs, and Recording Configurations.

    At most 50 tags can be applied to a resource.

    Authentication versus Authorization

    Note the differences between these concepts:

    • Authentication is about verifying identity. You need to be authenticated to sign Amazon IVS API requests.

    • Authorization is about granting permissions. Your IAM roles need to have permissions for Amazon IVS API requests. In addition, authorization is needed to view Amazon IVS private channels. (Private channels are channels that are enabled for \"playback authorization.\")

    Authentication

    All Amazon IVS API requests must be authenticated with a signature. The Amazon Web Services Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS API directly, it’s your responsibility to sign the requests.

    You generate a signature using valid Amazon Web Services credentials that have permission to perform the requested action. For example, you must sign PutMetadata requests with a signature generated from a user account that has the ivs:PutMetadata permission.

    For more information:

    Amazon Resource Names (ARNs)

    ARNs uniquely identify AWS resources. An ARN is required when you need to specify a resource unambiguously across all of AWS, such as in IAM policies and API calls. For more information, see Amazon Resource Names in the AWS General Reference.

    Channel Endpoints

    • CreateChannel — Creates a new channel and an associated stream key to start streaming.

    • GetChannel — Gets the channel configuration for the specified channel ARN.

    • BatchGetChannel — Performs GetChannel on multiple ARNs simultaneously.

    • ListChannels — Gets summary information about all channels in your account, in the Amazon Web Services region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 Conflict Exception).

    • UpdateChannel — Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.

    • DeleteChannel — Deletes the specified channel.

    Playback Restriction Policy Endpoints

    Private Channel Endpoints

    For more information, see Setting Up Private Channels in the Amazon IVS User Guide.

    • ImportPlaybackKeyPair — Imports the public portion of a new key pair and returns its arn and fingerprint. The privateKey can then be used to generate viewer authorization tokens, to grant viewers access to private channels (channels enabled for playback authorization).

    • GetPlaybackKeyPair — Gets a specified playback authorization key pair and returns the arn and fingerprint. The privateKey held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels.

    • ListPlaybackKeyPairs — Gets summary information about playback key pairs.

    • DeletePlaybackKeyPair — Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s privateKey.

    • StartViewerSessionRevocation — Starts the process of revoking the viewer session associated with a specified channel ARN and viewer ID. Optionally, you can provide a version to revoke viewer sessions less than and including that version.

    • BatchStartViewerSessionRevocation — Performs StartViewerSessionRevocation on multiple channel ARN and viewer ID pairs simultaneously.

    RecordingConfiguration Endpoints

    Stream Endpoints

    • GetStream — Gets information about the active (live) stream on a specified channel.

    • GetStreamSession — Gets metadata on a specified stream.

    • ListStreams — Gets summary information about live streams in your account, in the Amazon Web Services region where the API request is processed.

    • ListStreamSessions — Gets a summary of current and previous streams for a specified channel in your account, in the AWS region where the API request is processed.

    • StopStream — Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with DeleteStreamKey to prevent further streaming to a channel.

    • PutMetadata — Inserts metadata into the active stream of the specified channel. At most 5 requests per second per channel are allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) At most 155 requests per second per account are allowed.

    StreamKey Endpoints

    • CreateStreamKey — Creates a stream key, used to initiate a stream, for the specified channel ARN.

    • GetStreamKey — Gets stream key information for the specified ARN.

    • BatchGetStreamKey — Performs GetStreamKey on multiple ARNs simultaneously.

    • ListStreamKeys — Gets summary information about stream keys for the specified channel.

    • DeleteStreamKey — Deletes the stream key for the specified ARN, so it can no longer be used to stream.

    Amazon Web Services Tags Endpoints

    • TagResource — Adds or updates tags for the Amazon Web Services resource with the specified ARN.

    • UntagResource — Removes tags from the resource with the specified ARN.

    • ListTagsForResource — Gets information about Amazon Web Services tags for the specified ARN.

    " } diff --git a/services/ivschat/pom.xml b/services/ivschat/pom.xml index 85502ab1756c..8a413ad49cf9 100644 --- a/services/ivschat/pom.xml +++ b/services/ivschat/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ivschat AWS Java SDK :: Services :: Ivschat diff --git a/services/ivschat/src/main/resources/codegen-resources/customization.config b/services/ivschat/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/ivschat/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/ivsrealtime/pom.xml b/services/ivsrealtime/pom.xml index e45e0d632740..bb6056b1808e 100644 --- a/services/ivsrealtime/pom.xml +++ b/services/ivsrealtime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ivsrealtime AWS Java SDK :: Services :: IVS Real Time diff --git a/services/ivsrealtime/src/main/resources/codegen-resources/customization.config b/services/ivsrealtime/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/ivsrealtime/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/kafka/pom.xml b/services/kafka/pom.xml index 010edfa149cd..5cbcc3c3506d 100644 --- a/services/kafka/pom.xml +++ b/services/kafka/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kafka AWS Java SDK :: Services :: Kafka diff --git a/services/kafka/src/main/resources/codegen-resources/customization.config b/services/kafka/src/main/resources/codegen-resources/customization.config index 511e32d39570..6a19a2f5c394 100644 --- a/services/kafka/src/main/resources/codegen-resources/customization.config +++ b/services/kafka/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listClusters" - ] + ], + "useSraAuth": true } diff --git a/services/kafkaconnect/pom.xml b/services/kafkaconnect/pom.xml index 2bf3d4be0941..787ce044f54d 100644 --- a/services/kafkaconnect/pom.xml +++ b/services/kafkaconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kafkaconnect AWS Java SDK :: Services :: Kafka Connect diff --git a/services/kafkaconnect/src/main/resources/codegen-resources/customization.config b/services/kafkaconnect/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/kafkaconnect/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/kafkaconnect/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/kafkaconnect/src/main/resources/codegen-resources/endpoint-rule-set.json index c5b90d3def0f..545020b141cb 100644 --- a/services/kafkaconnect/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/kafkaconnect/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/kafkaconnect/src/main/resources/codegen-resources/service-2.json b/services/kafkaconnect/src/main/resources/codegen-resources/service-2.json index 4ffaad6a1c31..8cf60705cd85 100644 --- a/services/kafkaconnect/src/main/resources/codegen-resources/service-2.json +++ b/services/kafkaconnect/src/main/resources/codegen-resources/service-2.json @@ -32,7 +32,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

    Creates a connector using the specified properties.

    " + "documentation":"

    Creates a connector using the specified properties.

    " }, "CreateCustomPlugin":{ "name":"CreateCustomPlugin", @@ -118,6 +118,27 @@ "documentation":"

    Deletes a custom plugin.

    ", "idempotent":true }, + "DeleteWorkerConfiguration":{ + "name":"DeleteWorkerConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/v1/worker-configurations/{workerConfigurationArn}", + "responseCode":200 + }, + "input":{"shape":"DeleteWorkerConfigurationRequest"}, + "output":{"shape":"DeleteWorkerConfigurationResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

    Deletes the specified worker configuration.

    ", + "idempotent":true + }, "DescribeConnector":{ "name":"DescribeConnector", "http":{ @@ -218,6 +239,26 @@ ], "documentation":"

    Returns a list of all of the custom plugins in this account and Region.

    " }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/v1/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

    Lists all the tags attached to the specified resource.

    " + }, "ListWorkerConfigurations":{ "name":"ListWorkerConfigurations", "http":{ @@ -238,6 +279,49 @@ ], "documentation":"

    Returns a list of all of the worker configurations in this account and Region.

    " }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/v1/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

    Attaches tags to the specified resource.

    ", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/v1/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

    Removes tags from the specified resource.

    ", + "idempotent":true + }, "UpdateConnector":{ "name":"UpdateConnector", "http":{ @@ -606,12 +690,16 @@ }, "plugins":{ "shape":"__listOfPlugin", - "documentation":"

    Specifies which plugins to use for the connector.

    " + "documentation":"

    Amazon MSK Connect does not currently support specifying multiple plugins as a list. To use more than one plugin for your connector, you can create a single custom plugin using a ZIP file that bundles multiple plugins together.

    Specifies which plugin to use for the connector. You must specify a single-element list containing one customPlugin object.

    " }, "serviceExecutionRoleArn":{ "shape":"__string", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role used by the connector to access the Amazon Web Services resources that it needs. The types of resources depends on the logic of the connector. For example, a connector that has Amazon S3 as a destination must have permissions that allow it to write to the S3 destination bucket.

    " }, + "tags":{ + "shape":"Tags", + "documentation":"

    The tags you want to attach to the connector.

    " + }, "workerConfiguration":{ "shape":"WorkerConfiguration", "documentation":"

    Specifies which worker configuration to use with the connector.

    " @@ -658,6 +746,10 @@ "name":{ "shape":"__stringMin1Max128", "documentation":"

    The name of the custom plugin.

    " + }, + "tags":{ + "shape":"Tags", + "documentation":"

    The tags you want to attach to the custom plugin.

    " } } }, @@ -700,6 +792,10 @@ "propertiesFileContent":{ "shape":"__sensitiveString", "documentation":"

    Base64 encoded contents of connect-distributed.properties file.

    " + }, + "tags":{ + "shape":"Tags", + "documentation":"

    The tags you want to attach to the worker configuration.

    " } } }, @@ -721,6 +817,10 @@ "workerConfigurationArn":{ "shape":"__string", "documentation":"

    The Amazon Resource Name (ARN) that Amazon assigned to the worker configuration.

    " + }, + "workerConfigurationState":{ + "shape":"WorkerConfigurationState", + "documentation":"

    The state of the worker configuration.

    " } } }, @@ -740,7 +840,7 @@ "documentation":"

    The revision of the custom plugin.

    " } }, - "documentation":"

    A plugin is an AWS resource that contains the code that defines a connector's logic.

    " + "documentation":"

    A plugin is an Amazon Web Services resource that contains the code that defines a connector's logic.

    " }, "CustomPluginContentType":{ "type":"string", @@ -925,6 +1025,31 @@ } } }, + "DeleteWorkerConfigurationRequest":{ + "type":"structure", + "required":["workerConfigurationArn"], + "members":{ + "workerConfigurationArn":{ + "shape":"__string", + "documentation":"

    The Amazon Resource Name (ARN) of the worker configuration that you want to delete.

    ", + "location":"uri", + "locationName":"workerConfigurationArn" + } + } + }, + "DeleteWorkerConfigurationResponse":{ + "type":"structure", + "members":{ + "workerConfigurationArn":{ + "shape":"__string", + "documentation":"

    The Amazon Resource Name (ARN) of the worker configuration that you requested to delete.

    " + }, + "workerConfigurationState":{ + "shape":"WorkerConfigurationState", + "documentation":"

    The state of the worker configuration.

    " + } + } + }, "DescribeConnectorRequest":{ "type":"structure", "required":["connectorArn"], @@ -1089,6 +1214,10 @@ "workerConfigurationArn":{ "shape":"__string", "documentation":"

    The Amazon Resource Name (ARN) of the custom configuration.

    " + }, + "workerConfigurationState":{ + "shape":"WorkerConfigurationState", + "documentation":"

    The state of the worker configuration.

    " } } }, @@ -1265,6 +1394,12 @@ "location":"querystring", "locationName":"maxResults" }, + "namePrefix":{ + "shape":"__string", + "documentation":"

    Lists custom plugin names that start with the specified text string.

    ", + "location":"querystring", + "locationName":"namePrefix" + }, "nextToken":{ "shape":"__string", "documentation":"

    If the response of a ListCustomPlugins operation is truncated, it will include a NextToken. Send this NextToken in a subsequent request to continue listing from where the previous operation left off.

    ", @@ -1286,6 +1421,27 @@ } } }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"__string", + "documentation":"

    The Amazon Resource Name (ARN) of the resource for which you want to list all attached tags.

    ", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"Tags", + "documentation":"

    Lists the tags attached to the specified resource in the corresponding request.

    " + } + } + }, "ListWorkerConfigurationsRequest":{ "type":"structure", "members":{ @@ -1295,6 +1451,12 @@ "location":"querystring", "locationName":"maxResults" }, + "namePrefix":{ + "shape":"__string", + "documentation":"

    Lists worker configuration names that start with the specified text string.

    ", + "location":"querystring", + "locationName":"namePrefix" + }, "nextToken":{ "shape":"__string", "documentation":"

    If the response of a ListWorkerConfigurations operation is truncated, it will include a NextToken. Send this NextToken in a subsequent request to continue listing from where the previous operation left off.

    ", @@ -1363,7 +1525,7 @@ "documentation":"

    Details about a custom plugin.

    " } }, - "documentation":"

    A plugin is an AWS resource that contains the code that defines your connector logic.

    " + "documentation":"

    A plugin is an Amazon Web Services resource that contains the code that defines your connector logic.

    " }, "PluginDescription":{ "type":"structure", @@ -1590,6 +1752,53 @@ }, "documentation":"

    Details about the state of a resource.

    " }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"__string", + "documentation":"

    The Amazon Resource Name (ARN) of the resource to which you want to attach tags.

    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"Tags", + "documentation":"

    The tags that you want to attach to the resource.

    " + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "Tags":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":0 + }, "TooManyRequestsException":{ "type":"structure", "members":{ @@ -1614,6 +1823,32 @@ }, "exception":true }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"__string", + "documentation":"

    The Amazon Resource Name (ARN) of the resource from which you want to remove tags.

    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

    The keys of the tags that you want to remove from the resource.

    ", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateConnectorRequest":{ "type":"structure", "required":[ @@ -1754,6 +1989,13 @@ }, "documentation":"

    The summary of a worker configuration revision.

    " }, + "WorkerConfigurationState":{ + "type":"string", + "enum":[ + "ACTIVE", + "DELETING" + ] + }, "WorkerConfigurationSummary":{ "type":"structure", "members":{ @@ -1776,6 +2018,10 @@ "workerConfigurationArn":{ "shape":"__string", "documentation":"

    The Amazon Resource Name (ARN) of the worker configuration.

    " + }, + "workerConfigurationState":{ + "shape":"WorkerConfigurationState", + "documentation":"

    The state of the worker configuration.

    " } }, "documentation":"

    The summary of a worker configuration.

    " diff --git a/services/kendra/pom.xml b/services/kendra/pom.xml index e430e6fc7417..8b5ec35ec7e2 100644 --- a/services/kendra/pom.xml +++ b/services/kendra/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kendra AWS Java SDK :: Services :: Kendra diff --git a/services/kendra/src/main/resources/codegen-resources/customization.config b/services/kendra/src/main/resources/codegen-resources/customization.config index 7ed8659b00ff..d12615185183 100644 --- a/services/kendra/src/main/resources/codegen-resources/customization.config +++ b/services/kendra/src/main/resources/codegen-resources/customization.config @@ -1,7 +1,8 @@ { - "shapeModifiers": { - "DocumentAttributeValue": { - "union": true - } - } -} \ No newline at end of file + "shapeModifiers": { + "DocumentAttributeValue": { + "union": true + } + }, + "useSraAuth": true +} diff --git a/services/kendraranking/pom.xml b/services/kendraranking/pom.xml index faf4f22c7baf..524e428cf118 100644 --- a/services/kendraranking/pom.xml +++ b/services/kendraranking/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kendraranking AWS Java SDK :: Services :: Kendra Ranking diff --git a/services/kendraranking/src/main/resources/codegen-resources/customization.config b/services/kendraranking/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/kendraranking/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/keyspaces/pom.xml b/services/keyspaces/pom.xml index c48e97ab2cc8..279e73691a9e 100644 --- a/services/keyspaces/pom.xml +++ b/services/keyspaces/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT keyspaces AWS Java SDK :: Services :: Keyspaces diff --git a/services/keyspaces/src/main/resources/codegen-resources/customization.config b/services/keyspaces/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/keyspaces/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/keyspaces/src/main/resources/codegen-resources/service-2.json b/services/keyspaces/src/main/resources/codegen-resources/service-2.json index d5d1903d7b03..087dfd7c3ce7 100644 --- a/services/keyspaces/src/main/resources/codegen-resources/service-2.json +++ b/services/keyspaces/src/main/resources/codegen-resources/service-2.json @@ -133,7 +133,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

    Returns auto scaling related settings of the specified table in JSON format. If the table is a multi-Region table, the Amazon Web Services Region specific auto scaling settings of the table are included.

    Amazon Keyspaces auto scaling helps you provision throughput capacity for variable workloads efficiently by increasing and decreasing your table's read and write capacity automatically in response to application traffic. For more information, see Managing throughput capacity automatically with Amazon Keyspaces auto scaling in the Amazon Keyspaces Developer Guide.

    " + "documentation":"

    Returns auto scaling related settings of the specified table in JSON format. If the table is a multi-Region table, the Amazon Web Services Region specific auto scaling settings of the table are included.

    Amazon Keyspaces auto scaling helps you provision throughput capacity for variable workloads efficiently by increasing and decreasing your table's read and write capacity automatically in response to application traffic. For more information, see Managing throughput capacity automatically with Amazon Keyspaces auto scaling in the Amazon Keyspaces Developer Guide.

    GetTableAutoScalingSettings can't be used as an action in an IAM policy.

    To define permissions for GetTableAutoScalingSettings, you must allow the following two actions in the IAM policy statement's Action element:

    • application-autoscaling:DescribeScalableTargets

    • application-autoscaling:DescribeScalingPolicies

    " }, "ListKeyspaces":{ "name":"ListKeyspaces", @@ -306,7 +306,7 @@ "documentation":"

    Amazon Keyspaces supports the target tracking auto scaling policy. With this policy, Amazon Keyspaces auto scaling ensures that the table's ratio of consumed to provisioned capacity stays at or near the target value that you specify. You define the target value as a percentage between 20 and 90.

    " } }, - "documentation":"

    The optional auto scaling settings for a table with provisioned throughput capacity.

    To turn on auto scaling for a table in throughputMode:PROVISIONED, you must specify the following parameters.

    Configure the minimum and maximum units for write and read capacity. The auto scaling policy ensures that capacity never goes below the minimum or above the maximum range.

    • minimumUnits: The minimum level of throughput the table should always be ready to support. The value must be between 1 and the max throughput per second quota for your account (40,000 by default).

    • maximumUnits: The maximum level of throughput the table should always be ready to support. The value must be between 1 and the max throughput per second quota for your account (40,000 by default).

    • scalingPolicy: Amazon Keyspaces supports the target tracking scaling policy. The auto scaling target is the provisioned read and write capacity of the table.

      • targetTrackingScalingPolicyConfiguration: To define the target tracking policy, you must define the target value.

        • targetValue: The target utilization rate of the table. Amazon Keyspaces auto scaling ensures that the ratio of consumed capacity to provisioned capacity stays at or near this value. You define targetValue as a percentage. A double between 20 and 90. (Required)

        • disableScaleIn: A boolean that specifies if scale-in is disabled or enabled for the table. This parameter is disabled by default. To turn on scale-in, set the boolean value to FALSE. This means that capacity for a table can be automatically scaled down on your behalf. (Optional)

        • scaleInCooldown: A cooldown period in seconds between scaling activities that lets the table stabilize before another scale in activity starts. If no value is provided, the default is 0. (Optional)

        • scaleOutCooldown: A cooldown period in seconds between scaling activities that lets the table stabilize before another scale out activity starts. If no value is provided, the default is 0. (Optional)

    For more information, see Managing throughput capacity automatically with Amazon Keyspaces auto scaling in the Amazon Keyspaces Developer Guide.

    " + "documentation":"

    The optional auto scaling settings for a table with provisioned throughput capacity.

    To turn on auto scaling for a table in throughputMode:PROVISIONED, you must specify the following parameters.

    Configure the minimum and maximum capacity units. The auto scaling policy ensures that capacity never goes below the minimum or above the maximum range.

    • minimumUnits: The minimum level of throughput the table should always be ready to support. The value must be between 1 and the max throughput per second quota for your account (40,000 by default).

    • maximumUnits: The maximum level of throughput the table should always be ready to support. The value must be between 1 and the max throughput per second quota for your account (40,000 by default).

    • scalingPolicy: Amazon Keyspaces supports the target tracking scaling policy. The auto scaling target is the provisioned capacity of the table.

      • targetTrackingScalingPolicyConfiguration: To define the target tracking policy, you must define the target value.

        • targetValue: The target utilization rate of the table. Amazon Keyspaces auto scaling ensures that the ratio of consumed capacity to provisioned capacity stays at or near this value. You define targetValue as a percentage. A double between 20 and 90. (Required)

        • disableScaleIn: A boolean that specifies if scale-in is disabled or enabled for the table. This parameter is disabled by default. To turn on scale-in, set the boolean value to FALSE. This means that capacity for a table can be automatically scaled down on your behalf. (Optional)

        • scaleInCooldown: A cooldown period in seconds between scaling activities that lets the table stabilize before another scale in activity starts. If no value is provided, the default is 0. (Optional)

        • scaleOutCooldown: A cooldown period in seconds between scaling activities that lets the table stabilize before another scale out activity starts. If no value is provided, the default is 0. (Optional)

    For more information, see Managing throughput capacity automatically with Amazon Keyspaces auto scaling in the Amazon Keyspaces Developer Guide.

    " }, "AutoScalingSpecification":{ "type":"structure", @@ -320,7 +320,7 @@ "documentation":"

    The auto scaling settings for the table's read capacity.

    " } }, - "documentation":"

    The optional auto scaling settings for read and write capacity of a table in provisioned capacity mode.

    " + "documentation":"

    The optional auto scaling capacity settings for a table in provisioned capacity mode.

    " }, "BooleanObject":{"type":"boolean"}, "CapacitySpecification":{ diff --git a/services/kinesis/pom.xml b/services/kinesis/pom.xml index fb62ba6ce509..fac027523056 100644 --- a/services/kinesis/pom.xml +++ b/services/kinesis/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kinesis AWS Java SDK :: Services :: Amazon Kinesis diff --git a/services/kinesis/src/main/resources/codegen-resources/customization.config b/services/kinesis/src/main/resources/codegen-resources/customization.config index 74c0393d4b51..1fcadd135ee6 100644 --- a/services/kinesis/src/main/resources/codegen-resources/customization.config +++ b/services/kinesis/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true, "verifiedSimpleMethods": [ "describeLimits", "listStreams" diff --git a/services/kinesisanalytics/pom.xml b/services/kinesisanalytics/pom.xml index 10526bfca5d1..5dcf0a52f2e2 100644 --- a/services/kinesisanalytics/pom.xml +++ b/services/kinesisanalytics/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kinesisanalytics AWS Java SDK :: Services :: Amazon Kinesis Analytics diff --git a/services/kinesisanalytics/src/main/resources/codegen-resources/customization.config b/services/kinesisanalytics/src/main/resources/codegen-resources/customization.config index d1bf750d26b9..b7fb9dbb3649 100644 --- a/services/kinesisanalytics/src/main/resources/codegen-resources/customization.config +++ b/services/kinesisanalytics/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "verifiedSimpleMethods": [ - "listApplications" - ], - "excludedSimpleMethods": [ - "discoverInputSchema" - ] + "verifiedSimpleMethods": [ + "listApplications" + ], + "excludedSimpleMethods": [ + "discoverInputSchema" + ], + "useSraAuth": true } diff --git a/services/kinesisanalyticsv2/pom.xml b/services/kinesisanalyticsv2/pom.xml index 6eddcf9effbc..fd23d2dd7bb6 100644 --- a/services/kinesisanalyticsv2/pom.xml +++ b/services/kinesisanalyticsv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kinesisanalyticsv2 AWS Java SDK :: Services :: Kinesis Analytics V2 diff --git a/services/kinesisanalyticsv2/src/main/resources/codegen-resources/customization.config b/services/kinesisanalyticsv2/src/main/resources/codegen-resources/customization.config index e5484b499613..4e0a8b7807c2 100644 --- a/services/kinesisanalyticsv2/src/main/resources/codegen-resources/customization.config +++ b/services/kinesisanalyticsv2/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listApplications" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/kinesisvideo/pom.xml b/services/kinesisvideo/pom.xml index 48c1afce6781..890471af9efe 100644 --- a/services/kinesisvideo/pom.xml +++ b/services/kinesisvideo/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 kinesisvideo diff --git a/services/kinesisvideo/src/main/resources/codegen-resources/customization.config b/services/kinesisvideo/src/main/resources/codegen-resources/customization.config index e0972ef57fee..ce1196a6b637 100644 --- a/services/kinesisvideo/src/main/resources/codegen-resources/customization.config +++ b/services/kinesisvideo/src/main/resources/codegen-resources/customization.config @@ -1,9 +1,12 @@ { - "verifiedSimpleMethods": [ - "listStreams" - ], - "excludedSimpleMethods": [ - "listTagsForStream", - "describeStream" - ] + "verifiedSimpleMethods": [ + "listStreams" + ], + "excludedSimpleMethods": [ + "listTagsForStream", + "describeStream" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/kinesisvideo/src/main/resources/codegen-resources/service-2.json b/services/kinesisvideo/src/main/resources/codegen-resources/service-2.json index aa6afa6a3d54..597f5c6d956e 100644 --- a/services/kinesisvideo/src/main/resources/codegen-resources/service-2.json +++ b/services/kinesisvideo/src/main/resources/codegen-resources/service-2.json @@ -1630,7 +1630,7 @@ }, "NextToken":{ "type":"string", - "max":512, + "max":1024, "min":0, "pattern":"[a-zA-Z0-9+/=]*" }, diff --git a/services/kinesisvideoarchivedmedia/pom.xml b/services/kinesisvideoarchivedmedia/pom.xml index 95be604651e8..ada653fc6fcf 100644 --- a/services/kinesisvideoarchivedmedia/pom.xml +++ b/services/kinesisvideoarchivedmedia/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kinesisvideoarchivedmedia AWS Java SDK :: Services :: Kinesis Video Archived Media diff --git a/services/kinesisvideoarchivedmedia/src/main/resources/codegen-resources/customization.config b/services/kinesisvideoarchivedmedia/src/main/resources/codegen-resources/customization.config index 232ca942ec4a..3157f328291c 100644 --- a/services/kinesisvideoarchivedmedia/src/main/resources/codegen-resources/customization.config +++ b/services/kinesisvideoarchivedmedia/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "getHLSStreamingSessionURL" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/kinesisvideomedia/pom.xml b/services/kinesisvideomedia/pom.xml index d480be09ea63..4b5276140a5e 100644 --- a/services/kinesisvideomedia/pom.xml +++ b/services/kinesisvideomedia/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kinesisvideomedia AWS Java SDK :: Services :: Kinesis Video Media diff --git a/services/kinesisvideomedia/src/main/resources/codegen-resources/customization.config b/services/kinesisvideomedia/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/kinesisvideomedia/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/kinesisvideosignaling/pom.xml b/services/kinesisvideosignaling/pom.xml index cc7c6b944daa..8889330e743f 100644 --- a/services/kinesisvideosignaling/pom.xml +++ b/services/kinesisvideosignaling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kinesisvideosignaling AWS Java SDK :: Services :: Kinesis Video Signaling diff --git a/services/kinesisvideosignaling/src/main/resources/codegen-resources/customization.config b/services/kinesisvideosignaling/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/kinesisvideosignaling/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/kinesisvideowebrtcstorage/pom.xml b/services/kinesisvideowebrtcstorage/pom.xml index c6f42171d71a..8de2865707cb 100644 --- a/services/kinesisvideowebrtcstorage/pom.xml +++ b/services/kinesisvideowebrtcstorage/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kinesisvideowebrtcstorage AWS Java SDK :: Services :: Kinesis Video Web RTC Storage diff --git a/services/kinesisvideowebrtcstorage/src/main/resources/codegen-resources/customization.config b/services/kinesisvideowebrtcstorage/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/kinesisvideowebrtcstorage/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/kms/pom.xml b/services/kms/pom.xml index c99230b6ee24..c35c7d0cef62 100644 --- a/services/kms/pom.xml +++ b/services/kms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT kms AWS Java SDK :: Services :: AWS KMS diff --git a/services/kms/src/main/resources/codegen-resources/customization.config b/services/kms/src/main/resources/codegen-resources/customization.config index 08a4b4db7d13..1613295056f3 100644 --- a/services/kms/src/main/resources/codegen-resources/customization.config +++ b/services/kms/src/main/resources/codegen-resources/customization.config @@ -1,10 +1,13 @@ { - "verifiedSimpleMethods": [ - "createKey", - "generateRandom", - "retireGrant", - "describeCustomKeyStores", - "listAliases", - "listKeys" - ] + "verifiedSimpleMethods": [ + "createKey", + "generateRandom", + "retireGrant", + "describeCustomKeyStores", + "listAliases", + "listKeys" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/lakeformation/pom.xml b/services/lakeformation/pom.xml index 2cbd5547b47d..392ec6f994de 100644 --- a/services/lakeformation/pom.xml +++ b/services/lakeformation/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lakeformation AWS Java SDK :: Services :: LakeFormation diff --git a/services/lakeformation/src/main/resources/codegen-resources/customization.config b/services/lakeformation/src/main/resources/codegen-resources/customization.config index 0e729acd0371..2a734ae11b2b 100644 --- a/services/lakeformation/src/main/resources/codegen-resources/customization.config +++ b/services/lakeformation/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/lambda/pom.xml b/services/lambda/pom.xml index 5fceca5cc8d8..47ec7ee6ae6d 100644 --- a/services/lambda/pom.xml +++ b/services/lambda/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lambda AWS Java SDK :: Services :: AWS Lambda diff --git a/services/lambda/src/main/resources/codegen-resources/customization.config b/services/lambda/src/main/resources/codegen-resources/customization.config index 086be986b9f8..e50db6323c51 100644 --- a/services/lambda/src/main/resources/codegen-resources/customization.config +++ b/services/lambda/src/main/resources/codegen-resources/customization.config @@ -1,11 +1,12 @@ { - "verifiedSimpleMethods": [ - "getAccountSettings", - "listEventSourceMappings", - "listFunctions", - "listLayers" - ], - "deprecatedOperations": [ - "InvokeAsync" - ] + "verifiedSimpleMethods": [ + "getAccountSettings", + "listEventSourceMappings", + "listFunctions", + "listLayers" + ], + "deprecatedOperations": [ + "InvokeAsync" + ], + "useSraAuth": true } diff --git a/services/lambda/src/main/resources/codegen-resources/service-2.json b/services/lambda/src/main/resources/codegen-resources/service-2.json index 0e37c74942cd..abbac4f91e67 100644 --- a/services/lambda/src/main/resources/codegen-resources/service-2.json +++ b/services/lambda/src/main/resources/codegen-resources/service-2.json @@ -637,7 +637,7 @@ {"shape":"InvalidRuntimeException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

    For asynchronous function invocation, use Invoke.

    Invokes a function asynchronously.

    ", + "documentation":"

    For asynchronous function invocation, use Invoke.

    Invokes a function asynchronously.

    If you do use the InvokeAsync action, note that it doesn't support the use of X-Ray active tracing. Trace ID is not propagated to the function, even if X-Ray active tracing is turned on.

    ", "deprecated":true }, "InvokeWithResponseStream":{ @@ -1742,7 +1742,7 @@ "members":{ "EventSourceArn":{ "shape":"Arn", - "documentation":"

    The Amazon Resource Name (ARN) of the event source.

    • Amazon Kinesis – The ARN of the data stream or a stream consumer.

    • Amazon DynamoDB Streams – The ARN of the stream.

    • Amazon Simple Queue Service – The ARN of the queue.

    • Amazon Managed Streaming for Apache Kafka – The ARN of the cluster.

    • Amazon MQ – The ARN of the broker.

    • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the event source.

    • Amazon Kinesis – The ARN of the data stream or a stream consumer.

    • Amazon DynamoDB Streams – The ARN of the stream.

    • Amazon Simple Queue Service – The ARN of the queue.

    • Amazon Managed Streaming for Apache Kafka – The ARN of the cluster or the ARN of the VPC connection (for cross-account event source mappings).

    • Amazon MQ – The ARN of the broker.

    • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    " }, "FunctionName":{ "shape":"FunctionName", @@ -1778,7 +1778,7 @@ }, "DestinationConfig":{ "shape":"DestinationConfig", - "documentation":"

    (Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard Amazon SNS topic destination for discarded records.

    " + "documentation":"

    (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Kafka only) A configuration object that specifies the destination of an event after Lambda processes it.

    " }, "MaximumRecordAgeInSeconds":{ "shape":"MaximumRecordAgeInSeconds", @@ -1928,7 +1928,7 @@ }, "EphemeralStorage":{ "shape":"EphemeralStorage", - "documentation":"

    The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB.

    " + "documentation":"

    The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

    " }, "SnapStart":{ "shape":"SnapStart", @@ -2405,7 +2405,7 @@ "documentation":"

    The size of the function's /tmp directory.

    " } }, - "documentation":"

    The size of the function's /tmp directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.

    " + "documentation":"

    The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

    " }, "EphemeralStorageSize":{ "type":"integer", @@ -2469,7 +2469,7 @@ }, "DestinationConfig":{ "shape":"DestinationConfig", - "documentation":"

    (Kinesis and DynamoDB Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.

    " + "documentation":"

    (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it.

    " }, "Topics":{ "shape":"Topics", @@ -2792,7 +2792,7 @@ }, "EphemeralStorage":{ "shape":"EphemeralStorage", - "documentation":"

    The size of the function’s /tmp directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.

    " + "documentation":"

    The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

    " }, "SnapStart":{ "shape":"SnapStartResponse", @@ -3574,7 +3574,7 @@ }, "ClientContext":{ "shape":"String", - "documentation":"

    Up to 3,583 bytes of base64-encoded data about the invoking client to pass to the function in the context object.

    ", + "documentation":"

    Up to 3,583 bytes of base64-encoded data about the invoking client to pass to the function in the context object. Lambda passes the ClientContext object to your function for synchronous invocations only.

    ", "location":"header", "locationName":"X-Amz-Client-Context" }, @@ -4113,7 +4113,7 @@ "members":{ "EventSourceArn":{ "shape":"Arn", - "documentation":"

    The Amazon Resource Name (ARN) of the event source.

    • Amazon Kinesis – The ARN of the data stream or a stream consumer.

    • Amazon DynamoDB Streams – The ARN of the stream.

    • Amazon Simple Queue Service – The ARN of the queue.

    • Amazon Managed Streaming for Apache Kafka – The ARN of the cluster.

    • Amazon MQ – The ARN of the broker.

    • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    ", + "documentation":"

    The Amazon Resource Name (ARN) of the event source.

    • Amazon Kinesis – The ARN of the data stream or a stream consumer.

    • Amazon DynamoDB Streams – The ARN of the stream.

    • Amazon Simple Queue Service – The ARN of the queue.

    • Amazon Managed Streaming for Apache Kafka – The ARN of the cluster or the ARN of the VPC connection (for cross-account event source mappings).

    • Amazon MQ – The ARN of the broker.

    • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    ", "location":"querystring", "locationName":"EventSourceArn" }, @@ -4311,7 +4311,7 @@ "members":{ "CompatibleRuntime":{ "shape":"Runtime", - "documentation":"

    A runtime identifier. For example, go1.x.

    The following list includes deprecated runtimes. For more information, see Runtime deprecation policy.

    ", + "documentation":"

    A runtime identifier. For example, java21.

    The following list includes deprecated runtimes. For more information, see Runtime deprecation policy.

    ", "location":"querystring", "locationName":"CompatibleRuntime" }, @@ -4359,7 +4359,7 @@ "members":{ "CompatibleRuntime":{ "shape":"Runtime", - "documentation":"

    A runtime identifier. For example, go1.x.

    The following list includes deprecated runtimes. For more information, see Runtime deprecation policy.

    ", + "documentation":"

    A runtime identifier. For example, java21.

    The following list includes deprecated runtimes. For more information, see Runtime deprecation policy.

    ", "location":"querystring", "locationName":"CompatibleRuntime" }, @@ -4525,11 +4525,11 @@ }, "ApplicationLogLevel":{ "shape":"ApplicationLogLevel", - "documentation":"

    Set this property to filter the application logs for your function that Lambda sends to CloudWatch. Lambda only sends application logs at the selected level and lower.

    " + "documentation":"

    Set this property to filter the application logs for your function that Lambda sends to CloudWatch. Lambda only sends application logs at the selected level of detail and lower, where TRACE is the highest level and FATAL is the lowest.

    " }, "SystemLogLevel":{ "shape":"SystemLogLevel", - "documentation":"

    Set this property to filter the system logs for your function that Lambda sends to CloudWatch. Lambda only sends system logs at the selected level and lower.

    " + "documentation":"

    Set this property to filter the system logs for your function that Lambda sends to CloudWatch. Lambda only sends system logs at the selected level of detail and lower, where DEBUG is the highest level and WARN is the lowest.

    " }, "LogGroup":{ "shape":"LogGroup", @@ -4639,7 +4639,7 @@ "members":{ "Destination":{ "shape":"DestinationArn", - "documentation":"

    The Amazon Resource Name (ARN) of the destination resource.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the destination resource.

    To retain records of asynchronous invocations, you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination.

    To retain records of failed invocations from Kinesis and DynamoDB event sources, you can configure an Amazon SNS topic or Amazon SQS queue as the destination.

    To retain records of failed invocations from self-managed Kafka or Amazon MSK, you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.

    " } }, "documentation":"

    A destination for events that failed processing.

    " @@ -5275,6 +5275,7 @@ "dotnetcore2.1", "dotnetcore3.1", "dotnet6", + "dotnet8", "nodejs4.3-edge", "go1.x", "ruby2.5", @@ -5830,7 +5831,7 @@ }, "DestinationConfig":{ "shape":"DestinationConfig", - "documentation":"

    (Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard Amazon SNS topic destination for discarded records.

    " + "documentation":"

    (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Kafka only) A configuration object that specifies the destination of an event after Lambda processes it.

    " }, "MaximumRecordAgeInSeconds":{ "shape":"MaximumRecordAgeInSeconds", @@ -5990,7 +5991,7 @@ }, "EphemeralStorage":{ "shape":"EphemeralStorage", - "documentation":"

    The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB.

    " + "documentation":"

    The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

    " }, "SnapStart":{ "shape":"SnapStart", diff --git a/services/launchwizard/pom.xml b/services/launchwizard/pom.xml index 3f524a5d4dfe..8c71e6ef3804 100644 --- a/services/launchwizard/pom.xml +++ b/services/launchwizard/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT launchwizard AWS Java SDK :: Services :: Launch Wizard diff --git a/services/launchwizard/src/main/resources/codegen-resources/customization.config b/services/launchwizard/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/launchwizard/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/lexmodelbuilding/pom.xml b/services/lexmodelbuilding/pom.xml index 78d0569c3f4e..9d820ac60634 100644 --- a/services/lexmodelbuilding/pom.xml +++ b/services/lexmodelbuilding/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lexmodelbuilding AWS Java SDK :: Services :: Amazon Lex Model Building diff --git a/services/lexmodelbuilding/src/main/resources/codegen-resources/customization.config b/services/lexmodelbuilding/src/main/resources/codegen-resources/customization.config index dbba0de5c204..fd371bc6811d 100644 --- a/services/lexmodelbuilding/src/main/resources/codegen-resources/customization.config +++ b/services/lexmodelbuilding/src/main/resources/codegen-resources/customization.config @@ -1,9 +1,10 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "getBots", "getBuiltinIntents", "getBuiltinSlotTypes", "getIntents", "getSlotTypes" - ] + ], + "useSraAuth": true } diff --git a/services/lexmodelsv2/pom.xml b/services/lexmodelsv2/pom.xml index a4be39dc91bd..a78510f8818a 100644 --- a/services/lexmodelsv2/pom.xml +++ b/services/lexmodelsv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lexmodelsv2 AWS Java SDK :: Services :: Lex Models V2 diff --git a/services/lexmodelsv2/src/main/resources/codegen-resources/customization.config b/services/lexmodelsv2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/lexmodelsv2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/lexmodelsv2/src/main/resources/codegen-resources/paginators-1.json b/services/lexmodelsv2/src/main/resources/codegen-resources/paginators-1.json index 3ccc0d6b5e2e..73893bc54ad0 100644 --- a/services/lexmodelsv2/src/main/resources/codegen-resources/paginators-1.json +++ b/services/lexmodelsv2/src/main/resources/codegen-resources/paginators-1.json @@ -5,6 +5,11 @@ "output_token": "nextToken", "limit_key": "maxResults" }, + "ListBotAliasReplicas": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, "ListBotAliases": { "input_token": "nextToken", "output_token": "nextToken", @@ -25,6 +30,11 @@ "output_token": "nextToken", "limit_key": "maxResults" }, + "ListBotVersionReplicas": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, "ListBotVersions": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/lexmodelsv2/src/main/resources/codegen-resources/service-2.json b/services/lexmodelsv2/src/main/resources/codegen-resources/service-2.json index 37a10e5a4d47..c55e824971f8 100644 --- a/services/lexmodelsv2/src/main/resources/codegen-resources/service-2.json +++ b/services/lexmodelsv2/src/main/resources/codegen-resources/service-2.json @@ -143,6 +143,25 @@ ], "documentation":"

    Creates a locale in the bot. The locale contains the intents and slot types that the bot uses in conversations with users in the specified language and locale. You must add a locale to a bot before you can add intents and slot types to the bot.

    " }, + "CreateBotReplica":{ + "name":"CreateBotReplica", + "http":{ + "method":"PUT", + "requestUri":"/bots/{botId}/replicas/", + "responseCode":202 + }, + "input":{"shape":"CreateBotReplicaRequest"}, + "output":{"shape":"CreateBotReplicaResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"PreconditionFailedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Action to create a replication of the source bot in the secondary region.

    " + }, "CreateBotVersion":{ "name":"CreateBotVersion", "http":{ @@ -371,6 +390,25 @@ ], "documentation":"

    Removes a locale from a bot.

    When you delete a locale, all intents, slots, and slot types defined for the locale are also deleted.

    " }, + "DeleteBotReplica":{ + "name":"DeleteBotReplica", + "http":{ + "method":"DELETE", + "requestUri":"/bots/{botId}/replicas/{replicaRegion}/", + "responseCode":202 + }, + "input":{"shape":"DeleteBotReplicaRequest"}, + "output":{"shape":"DeleteBotReplicaResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"PreconditionFailedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    The action to delete the replicated bot in the secondary region.

    " + }, "DeleteBotVersion":{ "name":"DeleteBotVersion", "http":{ @@ -639,6 +677,24 @@ ], "documentation":"

    Provides metadata information about a bot recommendation. This information will enable you to get a description on the request inputs, to download associated transcripts after processing is complete, and to download intents and slot-types generated by the bot recommendation.

    " }, + "DescribeBotReplica":{ + "name":"DescribeBotReplica", + "http":{ + "method":"GET", + "requestUri":"/bots/{botId}/replicas/{replicaRegion}/", + "responseCode":200 + }, + "input":{"shape":"DescribeBotReplicaRequest"}, + "output":{"shape":"DescribeBotReplicaResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Monitors the bot replication status through the UI console.

    " + }, "DescribeBotResourceGeneration":{ "name":"DescribeBotResourceGeneration", "http":{ @@ -924,6 +980,23 @@ ], "documentation":"

    Provides a list of utterances that users have sent to the bot.

    Utterances are aggregated by the text of the utterance. For example, all instances where customers used the phrase \"I want to order pizza\" are aggregated into the same line in the response.

    You can see both detected utterances and missed utterances. A detected utterance is where the bot properly recognized the utterance and activated the associated intent. A missed utterance was not recognized by the bot and didn't activate an intent.

    Utterances can be aggregated for a bot alias or for a bot version, but not both at the same time.

    Utterances statistics are not generated under the following conditions:

    • The childDirected field was set to true when the bot was created.

    • You are using slot obfuscation with one or more slots.

    • You opted out of participating in improving Amazon Lex.

    " }, + "ListBotAliasReplicas":{ + "name":"ListBotAliasReplicas", + "http":{ + "method":"POST", + "requestUri":"/bots/{botId}/replicas/{replicaRegion}/botaliases/", + "responseCode":200 + }, + "input":{"shape":"ListBotAliasReplicasRequest"}, + "output":{"shape":"ListBotAliasReplicasResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    The action to list the replicated bots created from the source bot alias.

    " + }, "ListBotAliases":{ "name":"ListBotAliases", "http":{ @@ -975,6 +1048,23 @@ ], "documentation":"

    Get a list of bot recommendations that meet the specified criteria.

    " }, + "ListBotReplicas":{ + "name":"ListBotReplicas", + "http":{ + "method":"POST", + "requestUri":"/bots/{botId}/replicas/", + "responseCode":200 + }, + "input":{"shape":"ListBotReplicasRequest"}, + "output":{"shape":"ListBotReplicasResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    The action to list the replicated bots.

    " + }, "ListBotResourceGenerations":{ "name":"ListBotResourceGenerations", "http":{ @@ -992,6 +1082,23 @@ ], "documentation":"

    Lists the generation requests made for a bot locale.

    " }, + "ListBotVersionReplicas":{ + "name":"ListBotVersionReplicas", + "http":{ + "method":"POST", + "requestUri":"/bots/{botId}/replicas/{replicaRegion}/botversions/", + "responseCode":200 + }, + "input":{"shape":"ListBotVersionReplicasRequest"}, + "output":{"shape":"ListBotVersionReplicasResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Contains information about all the versions replication statuses applicable for Global Resiliency.

    " + }, "ListBotVersions":{ "name":"ListBotVersions", "http":{ @@ -3258,6 +3365,51 @@ "min":1, "pattern":"^(\\bAmazonLexTestAlias\\b|[0-9a-zA-Z][_-]?)+$" }, + "BotAliasReplicaSummary":{ + "type":"structure", + "members":{ + "botAliasId":{ + "shape":"BotAliasId", + "documentation":"

    The bot alias ID for all the alias bot replications.

    " + }, + "botAliasReplicationStatus":{ + "shape":"BotAliasReplicationStatus", + "documentation":"

    The replication statuses for all the alias bot replications.

    " + }, + "botVersion":{ + "shape":"BotVersion", + "documentation":"

    The bot version for all the alias bot replications.

    " + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

    The creation time and date for all the alias bot replications.

    " + }, + "lastUpdatedDateTime":{ + "shape":"Timestamp", + "documentation":"

    The last time and date updated for all the alias bot replications.

    " + }, + "failureReasons":{ + "shape":"FailureReasons", + "documentation":"

    The reasons for failure for the aliases bot replications.

    " + } + }, + "documentation":"

    Contains information about all the aliases replication statuses applicable for global resiliency.

    " + }, + "BotAliasReplicaSummaryList":{ + "type":"list", + "member":{"shape":"BotAliasReplicaSummary"} + }, + "BotAliasReplicationStatus":{ + "type":"string", + "documentation":"

    The status of the operation to replicate the bot alias. Values: Creating, Updating, Available, Deleting, Failed.

    ", + "enum":[ + "Creating", + "Updating", + "Available", + "Deleting", + "Failed" + ] + }, "BotAliasStatus":{ "type":"string", "enum":[ @@ -3721,6 +3873,42 @@ "type":"list", "member":{"shape":"BotRecommendationSummary"} }, + "BotReplicaStatus":{ + "type":"string", + "documentation":"

    The status of the operation to replicate the bot. Values: Enabling, Enabled, Deleting, Failed.

    ", + "enum":[ + "Enabling", + "Enabled", + "Deleting", + "Failed" + ] + }, + "BotReplicaSummary":{ + "type":"structure", + "members":{ + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The replica region used in the replication statuses summary.

    " + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

    The creation time and date for the replicated bots.

    " + }, + "botReplicaStatus":{ + "shape":"BotReplicaStatus", + "documentation":"

    The operation status for the replicated bot applicable.

    " + }, + "failureReasons":{ + "shape":"FailureReasons", + "documentation":"

    The reasons for the failure for the replicated bot.

    " + } + }, + "documentation":"

    Contains summary information about all the replication statuses applicable for global resiliency.

    " + }, + "BotReplicaSummaryList":{ + "type":"list", + "member":{"shape":"BotReplicaSummary"} + }, "BotSortAttribute":{ "type":"string", "enum":["BotName"] @@ -3824,6 +4012,64 @@ "value":{"shape":"BotVersionLocaleDetails"}, "min":1 }, + "BotVersionReplicaSortAttribute":{ + "type":"string", + "enum":["BotVersion"] + }, + "BotVersionReplicaSortBy":{ + "type":"structure", + "required":[ + "attribute", + "order" + ], + "members":{ + "attribute":{ + "shape":"BotVersionReplicaSortAttribute", + "documentation":"

    The attribute of the sort category for the version replicated bots.

    " + }, + "order":{ + "shape":"SortOrder", + "documentation":"

    The order of the sort category for the version replicated bots.

    " + } + }, + "documentation":"

    The sort category for the version replicated bots.

    " + }, + "BotVersionReplicaSummary":{ + "type":"structure", + "members":{ + "botVersion":{ + "shape":"BotVersion", + "documentation":"

    The bot version for the summary information for all the version replication statuses.

    " + }, + "botVersionReplicationStatus":{ + "shape":"BotVersionReplicationStatus", + "documentation":"

    The version replication status for all the replicated bots.

    " + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

    The creation date and time of the replication status for all the replicated bots.

    " + }, + "failureReasons":{ + "shape":"FailureReasons", + "documentation":"

    The reasons for replication failure for all the replicated bots.

    " + } + }, + "documentation":"

    Contains summary information for all the version replication statuses applicable for Global resiliency.

    " + }, + "BotVersionReplicaSummaryList":{ + "type":"list", + "member":{"shape":"BotVersionReplicaSummary"} + }, + "BotVersionReplicationStatus":{ + "type":"string", + "documentation":"

    The status of the operation to replicate the bot version. Values: Creating, Available, Deleting, Failed.

    ", + "enum":[ + "Creating", + "Available", + "Deleting", + "Failed" + ] + }, "BotVersionSortAttribute":{ "type":"string", "enum":["BotVersion"] @@ -4609,6 +4855,50 @@ "generativeAISettings":{"shape":"GenerativeAISettings"} } }, + "CreateBotReplicaRequest":{ + "type":"structure", + "required":[ + "botId", + "replicaRegion" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The request for the unique bot ID of the source bot to be replicated in the secondary region.

    ", + "location":"uri", + "locationName":"botId" + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The request for the secondary region that will be used in the replication of the source bot.

    " + } + } + }, + "CreateBotReplicaResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The unique bot ID of the replicated bot generated.

    " + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The region of the replicated bot generated.

    " + }, + "sourceRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The source region for the source bot used for the replicated bot generated.

    " + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

    The creation date and time of the replicated bot generated.

    " + }, + "botReplicaStatus":{ + "shape":"BotReplicaStatus", + "documentation":"

    The operational status of the replicated bot generated.

    " + } + } + }, "CreateBotRequest":{ "type":"structure", "required":[ @@ -5620,6 +5910,44 @@ } } }, + "DeleteBotReplicaRequest":{ + "type":"structure", + "required":[ + "botId", + "replicaRegion" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The unique ID of the replicated bot to be deleted from the secondary region

    ", + "location":"uri", + "locationName":"botId" + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The secondary region of the replicated bot that will be deleted.

    ", + "location":"uri", + "locationName":"replicaRegion" + } + } + }, + "DeleteBotReplicaResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The unique bot ID of the replicated bot generated.

    " + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The region of the replicated bot generated.

    " + }, + "botReplicaStatus":{ + "shape":"BotReplicaStatus", + "documentation":"

    The operational status of the replicated bot generated.

    " + } + } + }, "DeleteBotRequest":{ "type":"structure", "required":["botId"], @@ -6290,6 +6618,56 @@ } } }, + "DescribeBotReplicaRequest":{ + "type":"structure", + "required":[ + "botId", + "replicaRegion" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The request for the unique bot ID of the replicated bot being monitored.

    ", + "location":"uri", + "locationName":"botId" + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The request for the region of the replicated bot being monitored.

    ", + "location":"uri", + "locationName":"replicaRegion" + } + } + }, + "DescribeBotReplicaResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The unique bot ID of the replicated bot being monitored.

    " + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The region of the replicated bot being monitored.

    " + }, + "sourceRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The source region of the replicated bot being monitored.

    " + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

    The creation date and time of the replicated bot being monitored.

    " + }, + "botReplicaStatus":{ + "shape":"BotReplicaStatus", + "documentation":"

    The operational status of the replicated bot being monitored.

    " + }, + "failureReasons":{ + "shape":"FailureReasons", + "documentation":"

    The failure reasons the bot being monitored failed to replicate.

    " + } + } + }, "DescribeBotRequest":{ "type":"structure", "required":["botId"], @@ -8629,6 +9007,60 @@ } } }, + "ListBotAliasReplicasRequest":{ + "type":"structure", + "required":[ + "botId", + "replicaRegion" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The request for the unique bot ID of the replicated bot created from the source bot alias.

    ", + "location":"uri", + "locationName":"botId" + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The request for the secondary region of the replicated bot created from the source bot alias.

    ", + "location":"uri", + "locationName":"replicaRegion" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The request for maximum results to list the replicated bots created from the source bot alias.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The request for the next token for the replicated bot created from the source bot alias.

    " + } + } + }, + "ListBotAliasReplicasResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The unique bot ID of the replicated bot created from the source bot alias.

    " + }, + "sourceRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The source region of the replicated bot created from the source bot alias.

    " + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The secondary region of the replicated bot created from the source bot alias.

    " + }, + "botAliasReplicaSummaries":{ + "shape":"BotAliasReplicaSummaryList", + "documentation":"

    The summary information of the replicated bot created from the source bot alias.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The next token for the replicated bots created from the source bot alias.

    " + } + } + }, "ListBotAliasesRequest":{ "type":"structure", "required":["botId"], @@ -8785,6 +9217,35 @@ } } }, + "ListBotReplicasRequest":{ + "type":"structure", + "required":["botId"], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The request for the unique bot IDs in the list of replicated bots.

    ", + "location":"uri", + "locationName":"botId" + } + } + }, + "ListBotReplicasResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    the unique bot IDs in the list of replicated bots.

    " + }, + "sourceRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The source region of the source bots in the list of replicated bots.

    " + }, + "botReplicaSummaries":{ + "shape":"BotReplicaSummaryList", + "documentation":"

    The summary details for the replicated bots.

    " + } + } + }, "ListBotResourceGenerationsRequest":{ "type":"structure", "required":[ @@ -8850,6 +9311,64 @@ } } }, + "ListBotVersionReplicasRequest":{ + "type":"structure", + "required":[ + "botId", + "replicaRegion" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The request for the unique ID in the list of replicated bots.

    ", + "location":"uri", + "locationName":"botId" + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The request for the region used in the list of replicated bots.

    ", + "location":"uri", + "locationName":"replicaRegion" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum results given in the list of replicated bots.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The next token given in the list of replicated bots.

    " + }, + "sortBy":{ + "shape":"BotVersionReplicaSortBy", + "documentation":"

    The requested sort category for the list of replicated bots.

    " + } + } + }, + "ListBotVersionReplicasResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

    The unique ID of the bots in the list of replicated bots.

    " + }, + "sourceRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The source region used for the bots in the list of replicated bots.

    " + }, + "replicaRegion":{ + "shape":"ReplicaRegion", + "documentation":"

    The region used for the replicated bots in the list of replicated bots.

    " + }, + "botVersionReplicaSummaries":{ + "shape":"BotVersionReplicaSummaryList", + "documentation":"

    The information summary used for the replicated bots in the list of replicated bots.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    The next token used for the replicated bots in the list of replicated bots.

    " + } + } + }, "ListBotVersionsRequest":{ "type":"structure", "required":["botId"], @@ -10599,6 +11118,12 @@ }, "documentation":"

    Specifies the time window that utterance statistics are returned for. The time window is always relative to the last time that the that utterances were aggregated. For example, if the ListAggregatedUtterances operation is called at 1600, the time window is set to 1 hour, and the last refresh time was 1530, only utterances made between 1430 and 1530 are returned.

    You can choose the time window that statistics should be returned for.

    • Hours - You can request utterance statistics for 1, 3, 6, 12, or 24 hour time windows. Statistics are refreshed every half hour for 1 hour time windows, and hourly for the other time windows.

    • Days - You can request utterance statistics for 3 days. Statistics are refreshed every 6 hours.

    • Weeks - You can see statistics for one or two weeks. Statistics are refreshed every 12 hours for one week time windows, and once per day for two week time windows.

    " }, + "ReplicaRegion":{ + "type":"string", + "documentation":"

    The region that contains the replicated bots. Minimum value = 2, maximum value = 25.

    ", + "max":25, + "min":2 + }, "ResourceCount":{"type":"integer"}, "ResourceNotFoundException":{ "type":"structure", diff --git a/services/lexruntime/pom.xml b/services/lexruntime/pom.xml index a229c069aa01..9555968cdd37 100644 --- a/services/lexruntime/pom.xml +++ b/services/lexruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lexruntime AWS Java SDK :: Services :: Amazon Lex Runtime diff --git a/services/lexruntime/src/main/resources/codegen-resources/customization.config b/services/lexruntime/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/lexruntime/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/lexruntimev2/pom.xml b/services/lexruntimev2/pom.xml index b178e78f42ae..089496c16544 100644 --- a/services/lexruntimev2/pom.xml +++ b/services/lexruntimev2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lexruntimev2 AWS Java SDK :: Services :: Lex Runtime V2 diff --git a/services/lexruntimev2/src/main/resources/codegen-resources/customization.config b/services/lexruntimev2/src/main/resources/codegen-resources/customization.config index 89f59320725a..a79457ef90ad 100644 --- a/services/lexruntimev2/src/main/resources/codegen-resources/customization.config +++ b/services/lexruntimev2/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "customServiceMetadata": {"contentType" : "application/json"} -} \ No newline at end of file + "customServiceMetadata": { + "contentType": "application/json" + }, + "useSraAuth": true +} diff --git a/services/licensemanager/pom.xml b/services/licensemanager/pom.xml index 6f610cf815bb..de9113acdeae 100644 --- a/services/licensemanager/pom.xml +++ b/services/licensemanager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT licensemanager AWS Java SDK :: Services :: License Manager diff --git a/services/licensemanager/src/main/resources/codegen-resources/customization.config b/services/licensemanager/src/main/resources/codegen-resources/customization.config index cb1971ffe74b..6f4bcc974d03 100644 --- a/services/licensemanager/src/main/resources/codegen-resources/customization.config +++ b/services/licensemanager/src/main/resources/codegen-resources/customization.config @@ -1,11 +1,14 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "getServiceSettings", "listLicenseConfigurations" ], - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "getServiceSettings", "listLicenseConfigurations", "listResourceInventory" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/licensemanagerlinuxsubscriptions/pom.xml b/services/licensemanagerlinuxsubscriptions/pom.xml index 473d59ae6b34..9d21fe9b8be2 100644 --- a/services/licensemanagerlinuxsubscriptions/pom.xml +++ b/services/licensemanagerlinuxsubscriptions/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT licensemanagerlinuxsubscriptions AWS Java SDK :: Services :: License Manager Linux Subscriptions diff --git a/services/licensemanagerlinuxsubscriptions/src/main/resources/codegen-resources/customization.config b/services/licensemanagerlinuxsubscriptions/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/licensemanagerlinuxsubscriptions/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/licensemanagerusersubscriptions/pom.xml b/services/licensemanagerusersubscriptions/pom.xml index 6e7face09859..34423b8a18fd 100644 --- a/services/licensemanagerusersubscriptions/pom.xml +++ b/services/licensemanagerusersubscriptions/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT licensemanagerusersubscriptions AWS Java SDK :: Services :: License Manager User Subscriptions diff --git a/services/licensemanagerusersubscriptions/src/main/resources/codegen-resources/customization.config b/services/licensemanagerusersubscriptions/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/licensemanagerusersubscriptions/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/lightsail/pom.xml b/services/lightsail/pom.xml index 7c024b2f5af4..51b9bdb9472d 100644 --- a/services/lightsail/pom.xml +++ b/services/lightsail/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lightsail AWS Java SDK :: Services :: Amazon Lightsail diff --git a/services/lightsail/src/main/resources/codegen-resources/customization.config b/services/lightsail/src/main/resources/codegen-resources/customization.config index fbd4a2999851..693ab42b80fb 100644 --- a/services/lightsail/src/main/resources/codegen-resources/customization.config +++ b/services/lightsail/src/main/resources/codegen-resources/customization.config @@ -1,27 +1,30 @@ { - "verifiedSimpleMethods": [ - "downloadDefaultKeyPair", - "isVpcPeered", - "peerVpc", - "unpeerVpc", - "getActiveNames", - "getBlueprints", - "getBundles", - "getCloudFormationStackRecords", - "getDiskSnapshots", - "getDisks", - "getDomains", - "getExportSnapshotRecords", - "getInstanceSnapshots", - "getInstances", - "getKeyPairs", - "getLoadBalancers", - "getOperations", - "getRegions", - "getRelationalDatabaseBlueprints", - "getRelationalDatabaseBundles", - "getRelationalDatabaseSnapshots", - "getRelationalDatabases", - "getStaticIps" - ] + "verifiedSimpleMethods": [ + "downloadDefaultKeyPair", + "isVpcPeered", + "peerVpc", + "unpeerVpc", + "getActiveNames", + "getBlueprints", + "getBundles", + "getCloudFormationStackRecords", + "getDiskSnapshots", + "getDisks", + "getDomains", + "getExportSnapshotRecords", + "getInstanceSnapshots", + "getInstances", + "getKeyPairs", + "getLoadBalancers", + "getOperations", + "getRegions", + "getRelationalDatabaseBlueprints", + "getRelationalDatabaseBundles", + "getRelationalDatabaseSnapshots", + "getRelationalDatabases", + "getStaticIps" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/lightsail/src/main/resources/codegen-resources/service-2.json b/services/lightsail/src/main/resources/codegen-resources/service-2.json index e3a459b53d63..5750921dd44c 100644 --- a/services/lightsail/src/main/resources/codegen-resources/service-2.json +++ b/services/lightsail/src/main/resources/codegen-resources/service-2.json @@ -3832,6 +3832,10 @@ "supportedAppCategories":{ "shape":"AppCategoryList", "documentation":"

    Virtual computer blueprints that are supported by a Lightsail for Research bundle.

    This parameter only applies to Lightsail for Research resources.

    " + }, + "publicIpv4AddressCount":{ + "shape":"integer", + "documentation":"

    An integer that indicates the public ipv4 address count included in the bundle, the value is either 0 or 1.

    " } }, "documentation":"

    Describes a bundle, which is a set of specs describing your virtual private server (or instance).

    " @@ -8849,6 +8853,10 @@ "shape":"IpAddress", "documentation":"

    The public IP address of the Amazon Lightsail instance.

    " }, + "ipv6Addresses":{ + "shape":"Ipv6AddressList", + "documentation":"

    The IPv6 address of the Amazon Lightsail instance.

    " + }, "password":{ "shape":"string", "documentation":"

    For RDP access, the password for your Amazon Lightsail instance. Password will be an empty string if the password for your new instance is not ready yet. When you create an instance, it can take up to 15 minutes for the instance to be ready.

    If you create an instance using any key pair other than the default (LightsailDefaultKeyPair), password will always be an empty string.

    If you change the Administrator password on the instance, Lightsail will continue to return the original password value. When accessing the instance using RDP, you need to manually enter the Administrator password after changing it from the default.

    " @@ -12348,6 +12356,10 @@ "caCertificateIdentifier":{ "shape":"string", "documentation":"

    Indicates the certificate that needs to be associated with the database.

    " + }, + "relationalDatabaseBlueprintId":{ + "shape":"string", + "documentation":"

    This parameter is used to update the major version of the database. Enter the blueprintId for the major version that you want to update to.

    Use the GetRelationalDatabaseBlueprints action to get a list of available blueprint IDs.

    " } } }, diff --git a/services/location/pom.xml b/services/location/pom.xml index 06041e4180aa..46e6cac82a73 100644 --- a/services/location/pom.xml +++ b/services/location/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT location AWS Java SDK :: Services :: Location diff --git a/services/location/src/main/resources/codegen-resources/customization.config b/services/location/src/main/resources/codegen-resources/customization.config index 0e729acd0371..2a734ae11b2b 100644 --- a/services/location/src/main/resources/codegen-resources/customization.config +++ b/services/location/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/lookoutequipment/pom.xml b/services/lookoutequipment/pom.xml index 3d7c76787a3d..e54e8cec2da7 100644 --- a/services/lookoutequipment/pom.xml +++ b/services/lookoutequipment/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lookoutequipment AWS Java SDK :: Services :: Lookout Equipment diff --git a/services/lookoutequipment/src/main/resources/codegen-resources/customization.config b/services/lookoutequipment/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/lookoutequipment/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/lookoutequipment/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/lookoutequipment/src/main/resources/codegen-resources/endpoint-rule-set.json index 00e0ece38711..e1ad53b092fb 100644 --- a/services/lookoutequipment/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/lookoutequipment/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/lookoutequipment/src/main/resources/codegen-resources/service-2.json b/services/lookoutequipment/src/main/resources/codegen-resources/service-2.json index 185149e6b3ff..396daf6fc2fe 100644 --- a/services/lookoutequipment/src/main/resources/codegen-resources/service-2.json +++ b/services/lookoutequipment/src/main/resources/codegen-resources/service-2.json @@ -1076,6 +1076,10 @@ "Status":{ "shape":"InferenceSchedulerStatus", "documentation":"

    Indicates the status of the CreateInferenceScheduler operation.

    " + }, + "ModelQuality":{ + "shape":"ModelQuality", + "documentation":"

    Provides a quality assessment for a model that uses labels. If Lookout for Equipment determines that the model quality is poor based on training metrics, the value is POOR_QUALITY_DETECTED. Otherwise, the value is QUALITY_THRESHOLD_MET.

    If the model is unlabeled, the model quality can't be assessed and the value of ModelQuality is CANNOT_DETERMINE_QUALITY. In this situation, you can get a model quality assessment by adding labels to the input dataset and retraining the model.

    For information about using labels with your models, see Understanding labeling.

    For information about improving the quality of a model, see Best practices with Amazon Lookout for Equipment.

    " } } }, @@ -1236,6 +1240,10 @@ "OffCondition":{ "shape":"OffCondition", "documentation":"

    Indicates that the asset associated with this sensor has been shut off. As long as this condition is met, Lookout for Equipment will not use data from this asset for training, evaluation, or inference.

    " + }, + "ModelDiagnosticsOutputConfiguration":{ + "shape":"ModelDiagnosticsOutputConfiguration", + "documentation":"

    The Amazon S3 location where you want Amazon Lookout for Equipment to save the pointwise model diagnostics. You must also specify the RoleArn request parameter.

    " } } }, @@ -1401,7 +1409,7 @@ "type":"string", "max":2048, "min":20, - "pattern":"arn:aws(-[^:]+)?:lookoutequipment:[a-zA-Z0-9\\-]*:[0-9]{12}:dataset\\/.+" + "pattern":"arn:aws(-[^:]+)?:lookoutequipment:[a-zA-Z0-9\\-]*:[0-9]{12}:dataset\\/[0-9a-zA-Z_-]{1,200}\\/.+" }, "DatasetIdentifier":{ "type":"string", @@ -1658,7 +1666,7 @@ }, "IngestedFilesSummary":{ "shape":"IngestedFilesSummary", - "documentation":"

    IngestedFilesSummary associated with the given dataset for the latest successful associated ingestion job id.

    " + "documentation":"

    IngestedFilesSummary associated with the given dataset for the latest successful associated ingestion job id.

    " }, "RoleArn":{ "shape":"IamRoleArn", @@ -2021,6 +2029,14 @@ "RetrainingSchedulerStatus":{ "shape":"RetrainingSchedulerStatus", "documentation":"

    Indicates the status of the retraining scheduler.

    " + }, + "ModelDiagnosticsOutputConfiguration":{ + "shape":"ModelDiagnosticsOutputConfiguration", + "documentation":"

    Configuration information for the model's pointwise model diagnostics.

    " + }, + "ModelQuality":{ + "shape":"ModelQuality", + "documentation":"

    Provides a quality assessment for a model that uses labels. If Lookout for Equipment determines that the model quality is poor based on training metrics, the value is POOR_QUALITY_DETECTED. Otherwise, the value is QUALITY_THRESHOLD_MET.

    If the model is unlabeled, the model quality can't be assessed and the value of ModelQuality is CANNOT_DETERMINE_QUALITY. In this situation, you can get a model quality assessment by adding labels to the input dataset and retraining the model.

    For information about using labels with your models, see Understanding labeling.

    For information about improving the quality of a model, see Best practices with Amazon Lookout for Equipment.

    " } } }, @@ -2165,6 +2181,18 @@ "AutoPromotionResultReason":{ "shape":"AutoPromotionResultReason", "documentation":"

    Indicates the reason for the AutoPromotionResult. For example, a model might not be promoted if its performance was worse than the active version, if there was an error during training, or if the retraining scheduler was using MANUAL promote mode. The model will be promoted in MANAGED promote mode if the performance is better than the previous model.

    " + }, + "ModelDiagnosticsOutputConfiguration":{ + "shape":"ModelDiagnosticsOutputConfiguration", + "documentation":"

    The Amazon S3 location where Amazon Lookout for Equipment saves the pointwise model diagnostics for the model version.

    " + }, + "ModelDiagnosticsResultsObject":{ + "shape":"S3Object", + "documentation":"

    The Amazon S3 output prefix for where Lookout for Equipment saves the pointwise model diagnostics for the model version.

    " + }, + "ModelQuality":{ + "shape":"ModelQuality", + "documentation":"

    Provides a quality assessment for a model that uses labels. If Lookout for Equipment determines that the model quality is poor based on training metrics, the value is POOR_QUALITY_DETECTED. Otherwise, the value is QUALITY_THRESHOLD_MET.

    If the model is unlabeled, the model quality can't be assessed and the value of ModelQuality is CANNOT_DETERMINE_QUALITY. In this situation, you can get a model quality assessment by adding labels to the input dataset and retraining the model.

    For information about using labels with your models, see Understanding labeling.

    For information about improving the quality of a model, see Best practices with Amazon Lookout for Equipment.

    " } } }, @@ -2766,7 +2794,7 @@ }, "SensorsWithShortDateRange":{ "shape":"SensorsWithShortDateRange", - "documentation":"

    Parameter that describes the total number of sensors that have a short date range of less than 90 days of data overall.

    " + "documentation":"

    Parameter that describes the total number of sensors that have a short date range of less than 14 days of data overall.

    " } }, "documentation":"

    Entity that comprises aggregated information on sensors having insufficient data.

    " @@ -3109,7 +3137,7 @@ }, "InferenceExecutionSummaries":{ "shape":"InferenceExecutionSummaries", - "documentation":"

    Provides an array of information about the individual inference executions returned from the ListInferenceExecutions operation, including model used, inference scheduler, data configuration, and so on.

    " + "documentation":"

    Provides an array of information about the individual inference executions returned from the ListInferenceExecutions operation, including model used, inference scheduler, data configuration, and so on.

    If you don't supply the InferenceSchedulerName request parameter, or if you supply the name of an inference scheduler that doesn't exist, ListInferenceExecutions returns an empty array in InferenceExecutionSummaries.

    " } } }, @@ -3187,7 +3215,7 @@ "members":{ "LabelGroupName":{ "shape":"LabelGroupName", - "documentation":"

    Retruns the name of the label group.

    " + "documentation":"

    Returns the name of the label group.

    " }, "IntervalStartTime":{ "shape":"Timestamp", @@ -3224,7 +3252,7 @@ }, "LabelSummaries":{ "shape":"LabelSummaries", - "documentation":"

    A summary of the items in the label group.

    " + "documentation":"

    A summary of the items in the label group.

    If you don't supply the LabelGroupName request parameter, or if you supply the name of a label group that doesn't exist, ListLabels returns an empty array in LabelSummaries.

    " } } }, @@ -3279,7 +3307,7 @@ }, "ModelVersionSummaries":{ "shape":"ModelVersionSummaries", - "documentation":"

    Provides information on the specified model version, including the created time, model and dataset ARNs, and status.

    " + "documentation":"

    Provides information on the specified model version, including the created time, model and dataset ARNs, and status.

    If you don't supply the ModelName request parameter, or if you supply the name of a model that doesn't exist, ListModelVersions returns an empty array in ModelVersionSummaries.

    " } } }, @@ -3458,6 +3486,36 @@ "min":20, "pattern":"arn:aws(-[^:]+)?:lookoutequipment:[a-zA-Z0-9\\-]*:[0-9]{12}:model\\/.+" }, + "ModelDiagnosticsOutputConfiguration":{ + "type":"structure", + "required":["S3OutputConfiguration"], + "members":{ + "S3OutputConfiguration":{ + "shape":"ModelDiagnosticsS3OutputConfiguration", + "documentation":"

    The Amazon S3 location for the pointwise model diagnostics.

    " + }, + "KmsKeyId":{ + "shape":"NameOrArn", + "documentation":"

    The Amazon Web Services Key Management Service (KMS) key identifier to encrypt the pointwise model diagnostics files.

    " + } + }, + "documentation":"

    Output configuration information for the pointwise model diagnostics for an Amazon Lookout for Equipment model.

    " + }, + "ModelDiagnosticsS3OutputConfiguration":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"S3Bucket", + "documentation":"

    The name of the Amazon S3 bucket where the pointwise model diagnostics are located. You must be the owner of the Amazon S3 bucket.

    " + }, + "Prefix":{ + "shape":"S3Prefix", + "documentation":"

    The Amazon S3 prefix for the location of the pointwise model diagnostics. The prefix specifies the folder and evaluation result file name. (bucket).

    When you call CreateModel or UpdateModel, specify the path within the bucket that you want Lookout for Equipment to save the model to. During training, Lookout for Equipment creates the model evaluation model as a compressed JSON file with the name model_diagnostics_results.json.gz.

    When you call DescribeModel or DescribeModelVersion, prefix contains the file path and filename of the model evaluation file.

    " + } + }, + "documentation":"

    The Amazon S3 location for the pointwise model diagnostics for an Amazon Lookout for Equipment model.

    " + }, "ModelMetrics":{ "type":"string", "max":50000, @@ -3476,6 +3534,14 @@ "MANUAL" ] }, + "ModelQuality":{ + "type":"string", + "enum":[ + "QUALITY_THRESHOLD_MET", + "CANNOT_DETERMINE_QUALITY", + "POOR_QUALITY_DETECTED" + ] + }, "ModelStatus":{ "type":"string", "enum":[ @@ -3543,6 +3609,11 @@ "RetrainingSchedulerStatus":{ "shape":"RetrainingSchedulerStatus", "documentation":"

    Indicates the status of the retraining scheduler.

    " + }, + "ModelDiagnosticsOutputConfiguration":{"shape":"ModelDiagnosticsOutputConfiguration"}, + "ModelQuality":{ + "shape":"ModelQuality", + "documentation":"

    Provides a quality assessment for a model that uses labels. If Lookout for Equipment determines that the model quality is poor based on training metrics, the value is POOR_QUALITY_DETECTED. Otherwise, the value is QUALITY_THRESHOLD_MET.

    If the model is unlabeled, the model quality can't be assessed and the value of ModelQuality is CANNOT_DETERMINE_QUALITY. In this situation, you can get a model quality assessment by adding labels to the input dataset and retraining the model.

    For information about using labels with your models, see Understanding labeling.

    For information about improving the quality of a model, see Best practices with Amazon Lookout for Equipment.

    " } }, "documentation":"

    Provides information about the specified machine learning model, including dataset and model names and ARNs, as well as status.

    " @@ -3555,7 +3626,7 @@ "type":"string", "max":2048, "min":20, - "pattern":"^arn:aws(-[^:]+)?:lookoutequipment:[a-zA-Z0-9\\-]*:[0-9]{12}:model\\/.+\\/.+\\/model-version\\/[0-9]{1,}$" + "pattern":"^arn:aws(-[^:]+)?:lookoutequipment:[a-zA-Z0-9\\-]*:[0-9]{12}:model\\/[0-9a-zA-Z_-]{1,200}\\/.+\\/model-version\\/[0-9]{1,}$" }, "ModelVersionSourceType":{ "type":"string", @@ -3609,6 +3680,10 @@ "SourceType":{ "shape":"ModelVersionSourceType", "documentation":"

    Indicates how this model version was generated.

    " + }, + "ModelQuality":{ + "shape":"ModelQuality", + "documentation":"

    Provides a quality assessment for a model that uses labels. If Lookout for Equipment determines that the model quality is poor based on training metrics, the value is POOR_QUALITY_DETECTED. Otherwise, the value is QUALITY_THRESHOLD_MET.

    If the model is unlabeled, the model quality can't be assessed and the value of ModelQuality is CANNOT_DETERMINE_QUALITY. In this situation, you can get a model quality assessment by adding labels to the input dataset and retraining the model.

    For information about improving the quality of a model, see Best practices with Amazon Lookout for Equipment.

    " } }, "documentation":"

    Contains information about the specific model version.

    " @@ -3888,7 +3963,7 @@ "members":{ "AffectedSensorCount":{ "shape":"Integer", - "documentation":"

    Indicates the number of sensors that have less than 90 days of data.

    " + "documentation":"

    Indicates the number of sensors that have less than 14 days of data.

    " } }, "documentation":"

    Entity that comprises information on sensors that have shorter date range.

    " @@ -4303,6 +4378,10 @@ "RoleArn":{ "shape":"IamRoleArn", "documentation":"

    The ARN of the model to update.

    " + }, + "ModelDiagnosticsOutputConfiguration":{ + "shape":"ModelDiagnosticsOutputConfiguration", + "documentation":"

    The Amazon S3 location where you want Amazon Lookout for Equipment to save the pointwise model diagnostics for the model. You must also specify the RoleArn request parameter.

    " } } }, diff --git a/services/lookoutmetrics/pom.xml b/services/lookoutmetrics/pom.xml index f106763fb137..611cf3eb6682 100644 --- a/services/lookoutmetrics/pom.xml +++ b/services/lookoutmetrics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lookoutmetrics AWS Java SDK :: Services :: Lookout Metrics diff --git a/services/lookoutmetrics/src/main/resources/codegen-resources/customization.config b/services/lookoutmetrics/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/lookoutmetrics/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/lookoutvision/pom.xml b/services/lookoutvision/pom.xml index ad383fa8059f..c2aa5a3c2182 100644 --- a/services/lookoutvision/pom.xml +++ b/services/lookoutvision/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT lookoutvision AWS Java SDK :: Services :: Lookout Vision diff --git a/services/lookoutvision/src/main/resources/codegen-resources/customization.config b/services/lookoutvision/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/lookoutvision/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/m2/pom.xml b/services/m2/pom.xml index 6a25b0877cda..3de8e8a54f41 100644 --- a/services/m2/pom.xml +++ b/services/m2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT m2 AWS Java SDK :: Services :: M2 diff --git a/services/m2/src/main/resources/codegen-resources/customization.config b/services/m2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/m2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/machinelearning/pom.xml b/services/machinelearning/pom.xml index 3e1a9d05634e..29a5e629b040 100644 --- a/services/machinelearning/pom.xml +++ b/services/machinelearning/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT machinelearning AWS Java SDK :: Services :: Amazon Machine Learning diff --git a/services/machinelearning/src/main/resources/codegen-resources/customization.config b/services/machinelearning/src/main/resources/codegen-resources/customization.config index 33e3f00bb93e..97cba1330fbb 100644 --- a/services/machinelearning/src/main/resources/codegen-resources/customization.config +++ b/services/machinelearning/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,5 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeBatchPredictions", "describeDataSources", "describeEvaluations", @@ -8,5 +8,6 @@ "interceptors": [ "software.amazon.awssdk.services.machinelearning.internal.PredictEndpointInterceptor", "software.amazon.awssdk.services.machinelearning.internal.RandomIdInterceptor" - ] + ], + "useSraAuth": true } diff --git a/services/macie2/pom.xml b/services/macie2/pom.xml index 8c68c3a595da..9e8d8c09f765 100644 --- a/services/macie2/pom.xml +++ b/services/macie2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT macie2 AWS Java SDK :: Services :: Macie2 diff --git a/services/macie2/src/main/resources/codegen-resources/customization.config b/services/macie2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/macie2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/managedblockchain/pom.xml b/services/managedblockchain/pom.xml index 9d2121ade013..6132f6ca10ee 100644 --- a/services/managedblockchain/pom.xml +++ b/services/managedblockchain/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT managedblockchain AWS Java SDK :: Services :: ManagedBlockchain diff --git a/services/managedblockchain/src/main/resources/codegen-resources/customization.config b/services/managedblockchain/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/managedblockchain/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/managedblockchainquery/pom.xml b/services/managedblockchainquery/pom.xml index 577aa5285525..0cfdd2280c3b 100644 --- a/services/managedblockchainquery/pom.xml +++ b/services/managedblockchainquery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT managedblockchainquery AWS Java SDK :: Services :: Managed Blockchain Query diff --git a/services/managedblockchainquery/src/main/resources/codegen-resources/customization.config b/services/managedblockchainquery/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/managedblockchainquery/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/managedblockchainquery/src/main/resources/codegen-resources/service-2.json b/services/managedblockchainquery/src/main/resources/codegen-resources/service-2.json index 079d0b26ad3b..2aed3aba3bc1 100644 --- a/services/managedblockchainquery/src/main/resources/codegen-resources/service-2.json +++ b/services/managedblockchainquery/src/main/resources/codegen-resources/service-2.json @@ -30,7 +30,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Gets the token balance for a batch of tokens by using the BatchGetTokenBalance action for every token in the request.

    Only the native tokens BTC,ETH, and the ERC-20, ERC-721, and ERC 1155 token standards are supported.

    " + "documentation":"

    Gets the token balance for a batch of tokens by using the BatchGetTokenBalance action for every token in the request.

    Only the native tokens BTC and ETH, and the ERC-20, ERC-721, and ERC 1155 token standards are supported.

    " }, "GetAssetContract":{ "name":"GetAssetContract", @@ -68,7 +68,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Gets the balance of a specific token, including native tokens, for a given address (wallet or contract) on the blockchain.

    Only the native tokens BTC,ETH, and the ERC-20, ERC-721, and ERC 1155 token standards are supported.

    " + "documentation":"

    Gets the balance of a specific token, including native tokens, for a given address (wallet or contract) on the blockchain.

    Only the native tokens BTC and ETH, and the ERC-20, ERC-721, and ERC 1155 token standards are supported.

    " }, "GetTransaction":{ "name":"GetTransaction", @@ -87,7 +87,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Get the details of a transaction.

    " + "documentation":"

    Gets the details of a transaction.

    This action will return transaction details for all transactions that are confirmed on the blockchain, even if they have not reached finality.

    " }, "ListAssetContracts":{ "name":"ListAssetContracts", @@ -141,7 +141,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    An array of TransactionEvent objects. Each object contains details about the transaction event.

    " + "documentation":"

    An array of TransactionEvent objects. Each object contains details about the transaction event.

    This action will return transaction details for all transactions that are confirmed on the blockchain, even if they have not reached finality.

    " }, "ListTransactions":{ "name":"ListTransactions", @@ -323,7 +323,26 @@ }, "ConfirmationStatus":{ "type":"string", - "enum":["FINAL"] + "enum":[ + "FINAL", + "NONFINAL" + ] + }, + "ConfirmationStatusFilter":{ + "type":"structure", + "required":["include"], + "members":{ + "include":{ + "shape":"ConfirmationStatusIncludeList", + "documentation":"

    The container to determine whether to list results that have only reached finality . Transactions that have reached finality are always part of the response.

    " + } + }, + "documentation":"

    The container for the ConfirmationStatusFilter that filters for the finality of the results.

    " + }, + "ConfirmationStatusIncludeList":{ + "type":"list", + "member":{"shape":"ConfirmationStatus"}, + "min":1 }, "ContractFilter":{ "type":"structure", @@ -545,7 +564,7 @@ }, "maxResults":{ "shape":"ListAssetContractsInputMaxResultsInteger", - "documentation":"

    The maximum number of contracts to list.

    " + "documentation":"

    The maximum number of contracts to list.

    Default:100

    Even if additional results can be retrieved, the request can return less results than maxResults or an empty array of results.

    To retrieve the next set of results, make another request with the returned nextToken value. The value of nextToken is null when there are no more results to return

    " } } }, @@ -587,7 +606,7 @@ }, "maxResults":{ "shape":"ListTokenBalancesInputMaxResultsInteger", - "documentation":"

    The maximum number of token balances to return.

    " + "documentation":"

    The maximum number of token balances to return.

    Default:100

    Even if additional results can be retrieved, the request can return less results than maxResults or an empty array of results.

    To retrieve the next set of results, make another request with the returned nextToken value. The value of nextToken is null when there are no more results to return

    " } } }, @@ -632,7 +651,7 @@ }, "maxResults":{ "shape":"ListTransactionEventsInputMaxResultsInteger", - "documentation":"

    The maximum number of transaction events to list.

    Even if additional results can be retrieved, the request can return less results than maxResults or an empty array of results.

    To retrieve the next set of results, make another request with the returned nextToken value. The value of nextToken is null when there are no more results to return

    " + "documentation":"

    The maximum number of transaction events to list.

    Default:100

    Even if additional results can be retrieved, the request can return less results than maxResults or an empty array of results.

    To retrieve the next set of results, make another request with the returned nextToken value. The value of nextToken is null when there are no more results to return

    " } } }, @@ -675,7 +694,7 @@ "toBlockchainInstant":{"shape":"BlockchainInstant"}, "sort":{ "shape":"ListTransactionsSort", - "documentation":"

    Sorts items in an ascending order if the first page starts at fromTime. Sorts items in a descending order if the first page starts at toTime.

    " + "documentation":"

    The order by which the results will be sorted. If ASCENNDING is selected, the results will be ordered by fromTime.

    " }, "nextToken":{ "shape":"NextToken", @@ -683,7 +702,11 @@ }, "maxResults":{ "shape":"ListTransactionsInputMaxResultsInteger", - "documentation":"

    The maximum number of transactions to list.

    Even if additional results can be retrieved, the request can return less results than maxResults or an empty array of results.

    To retrieve the next set of results, make another request with the returned nextToken value. The value of nextToken is null when there are no more results to return

    " + "documentation":"

    The maximum number of transactions to list.

    Default:100

    Even if additional results can be retrieved, the request can return less results than maxResults or an empty array of results.

    To retrieve the next set of results, make another request with the returned nextToken value. The value of nextToken is null when there are no more results to return

    " + }, + "confirmationStatusFilter":{ + "shape":"ConfirmationStatusFilter", + "documentation":"

    This filter is used to include transactions in the response that haven't reached finality . Transactions that have reached finiality are always part of the response.

    " } } }, @@ -797,13 +820,6 @@ "type":"string", "pattern":"(0x[A-Fa-f0-9]{64}|[A-Fa-f0-9]{64})" }, - "QueryTransactionStatus":{ - "type":"string", - "enum":[ - "FINAL", - "FAILED" - ] - }, "QuotaCode":{"type":"string"}, "ResourceId":{"type":"string"}, "ResourceNotFoundException":{ @@ -990,10 +1006,10 @@ }, "tokenId":{ "shape":"QueryTokenId", - "documentation":"

    The unique identifier of the token.

    You must specify this container with btc for the native BTC token, and eth for the native ETH token. For all other token types you must specify the tokenId in the 64 character hexadecimal tokenid format.

    " + "documentation":"

    The unique identifier of the token.

    For native tokens, use the 3 character abbreviation that best matches your token. For example, btc for Bitcoin, eth for Ether, etc. For all other token types you must specify the tokenId in the 64 character hexadecimal tokenid format.

    " } }, - "documentation":"

    The container for the identifier for the token including the unique token ID and its blockchain network.

    Only the native tokens BTC,ETH, and the ERC-20, ERC-721, and ERC 1155 token standards are supported.

    " + "documentation":"

    The container for the identifier for the token including the unique token ID and its blockchain network.

    Only the native tokens BTC and ETH, and the ERC-20, ERC-721, and ERC 1155 token standards are supported.

    " }, "Transaction":{ "type":"structure", @@ -1034,12 +1050,6 @@ "shape":"Long", "documentation":"

    The number of transactions in the block.

    " }, - "status":{ - "shape":"QueryTransactionStatus", - "documentation":"

    The status of the transaction.

    This property is deprecated. You must use the confirmationStatus and the executionStatus properties to determine if the status of the transaction is FINAL or FAILED.

    • Transactions with a status of FINAL will now have the confirmationStatus set to FINAL and the executionStatus set to SUCCEEDED.

    • Transactions with a status of FAILED will now have the confirmationStatus set to FINAL and the executionStatus set to FAILED.

    ", - "deprecated":true, - "deprecatedMessage":"The status field in the GetTransaction response is deprecated and is replaced with the confirmationStatus and executionStatus fields." - }, "to":{ "shape":"ChainAddress", "documentation":"

    The identifier of the transaction. It is generated whenever a transaction is verified and added to the blockchain.

    " @@ -1171,6 +1181,10 @@ "transactionTimestamp":{ "shape":"Timestamp", "documentation":"

    The time when the transaction occurred.

    " + }, + "confirmationStatus":{ + "shape":"ConfirmationStatus", + "documentation":"

    Specifies whether to list transactions that have not reached Finality.

    " } }, "documentation":"

    The container of the transaction output.

    " diff --git a/services/marketplaceagreement/pom.xml b/services/marketplaceagreement/pom.xml index b6912bf95cff..87fabe245e46 100644 --- a/services/marketplaceagreement/pom.xml +++ b/services/marketplaceagreement/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT marketplaceagreement AWS Java SDK :: Services :: Marketplace Agreement diff --git a/services/marketplaceagreement/src/main/resources/codegen-resources/customization.config b/services/marketplaceagreement/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/marketplaceagreement/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/marketplacecatalog/pom.xml b/services/marketplacecatalog/pom.xml index c9132e902991..3fc0b07b64a1 100644 --- a/services/marketplacecatalog/pom.xml +++ b/services/marketplacecatalog/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT marketplacecatalog AWS Java SDK :: Services :: Marketplace Catalog diff --git a/services/marketplacecatalog/src/main/resources/codegen-resources/customization.config b/services/marketplacecatalog/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/marketplacecatalog/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/marketplacecatalog/src/main/resources/codegen-resources/service-2.json b/services/marketplacecatalog/src/main/resources/codegen-resources/service-2.json index 7e346fbcd431..b34ecb89f1d0 100644 --- a/services/marketplacecatalog/src/main/resources/codegen-resources/service-2.json +++ b/services/marketplacecatalog/src/main/resources/codegen-resources/service-2.json @@ -27,7 +27,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

    Returns metadata and content for multiple entities.

    " + "documentation":"

    Returns metadata and content for multiple entities. This is the Batch version of the DescribeEntity API and uses the same IAM permission action as DescribeEntity API.

    " }, "CancelChangeSet":{ "name":"CancelChangeSet", @@ -296,7 +296,7 @@ "documentation":"

    The visibility of the AMI product.

    " } }, - "documentation":"

    Object containing all the filter fields for AMI products. Client can add a maximum of 8 filters in a single ListEntities request.

    " + "documentation":"

    Object containing all the filter fields for AMI products. Client can add only one wildcard filter and a maximum of 8 filters in a single ListEntities request.

    " }, "AmiProductLastModifiedDateFilter":{ "type":"structure", @@ -685,7 +685,7 @@ "documentation":"

    The visibility of the container product.

    " } }, - "documentation":"

    Object containing all the filter fields for container products. Client can add a maximum of 8 filters in a single ListEntities request.

    " + "documentation":"

    Object containing all the filter fields for container products. Client can add only one wildcard filter and a maximum of 8 filters in a single ListEntities request.

    " }, "ContainerProductLastModifiedDateFilter":{ "type":"structure", @@ -841,7 +841,7 @@ "documentation":"

    The last date on which the data product was modified.

    " } }, - "documentation":"

    Object containing all the filter fields for data products. Client can add a maximum of 8 filters in a single ListEntities request.

    " + "documentation":"

    Object containing all the filter fields for data products. Client can add only one wildcard filter and a maximum of 8 filters in a single ListEntities request.

    " }, "DataProductLastModifiedDateFilter":{ "type":"structure", @@ -1015,6 +1015,10 @@ "shape":"ChangeSetName", "documentation":"

    The optional name provided in the StartChangeSet request. If you do not provide a name, one is set by default.

    " }, + "Intent":{ + "shape":"Intent", + "documentation":"

    The optional intent provided in the StartChangeSet request. If you do not provide an intent, APPLY is set by default.

    " + }, "StartTime":{ "shape":"DateTimeISO8601", "documentation":"

    The date and time, in ISO 8601 format (2018-02-27T13:45:22Z), the request started.

    " @@ -1400,6 +1404,13 @@ "min":1, "pattern":"^[\\w\\-@]+$" }, + "Intent":{ + "type":"string", + "enum":[ + "VALIDATE", + "APPLY" + ] + }, "InternalServiceException":{ "type":"structure", "members":{ @@ -1674,7 +1685,7 @@ "documentation":"

    Allows filtering on the LastModifiedDate of an offer.

    " } }, - "documentation":"

    A filter for offers entity.

    " + "documentation":"

    Object containing all the filter fields for offers entity. Client can add only one wildcard filter and a maximum of 8 filters in a single ListEntities request.

    " }, "OfferLastModifiedDateFilter":{ "type":"structure", @@ -2069,7 +2080,7 @@ "documentation":"

    Allows filtering on the LastModifiedDate of a ResaleAuthorization.

    " } }, - "documentation":"

    A filter for ResaleAuthorization entity.

    " + "documentation":"

    Object containing all the filter fields for resale authorization entity. Client can add only one wildcard filter and a maximum of 8 filters in a single ListEntities request.

    " }, "ResaleAuthorizationLastModifiedDateFilter":{ "type":"structure", @@ -2541,7 +2552,7 @@ "documentation":"

    The last date on which the SaaS product was modified.

    " } }, - "documentation":"

    Object containing all the filter fields for SaaS products. Client can add a maximum of 8 filters in a single ListEntities request.

    " + "documentation":"

    Object containing all the filter fields for SaaS products. Client can add only one wildcard filter and a maximum of 8 filters in a single ListEntities request.

    " }, "SaaSProductLastModifiedDateFilter":{ "type":"structure", @@ -2719,6 +2730,10 @@ "ChangeSetTags":{ "shape":"TagList", "documentation":"

    A list of objects specifying each key name and value for the ChangeSetTags property.

    " + }, + "Intent":{ + "shape":"Intent", + "documentation":"

    The intent related to the request. The default is APPLY. To test your request before applying changes to your entities, use VALIDATE. This feature is currently available for adding versions to single-AMI products. For more information, see Add a new version.

    " } } }, diff --git a/services/marketplacecommerceanalytics/pom.xml b/services/marketplacecommerceanalytics/pom.xml index 2735cc39ea1c..7bdfa6762986 100644 --- a/services/marketplacecommerceanalytics/pom.xml +++ b/services/marketplacecommerceanalytics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT marketplacecommerceanalytics AWS Java SDK :: Services :: AWS Marketplace Commerce Analytics diff --git a/services/marketplacecommerceanalytics/src/main/resources/codegen-resources/customization.config b/services/marketplacecommerceanalytics/src/main/resources/codegen-resources/customization.config index 987b3b240013..e94a96493e32 100644 --- a/services/marketplacecommerceanalytics/src/main/resources/codegen-resources/customization.config +++ b/services/marketplacecommerceanalytics/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "renameShapes" : { - "MarketplaceCommerceAnalyticsException" : "MarketplaceCommerceAnalyticsServiceException" - } + "renameShapes": { + "MarketplaceCommerceAnalyticsException": "MarketplaceCommerceAnalyticsServiceException" + }, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/marketplacedeployment/pom.xml b/services/marketplacedeployment/pom.xml index 8d4d8b6a6f21..678159fbdcf5 100644 --- a/services/marketplacedeployment/pom.xml +++ b/services/marketplacedeployment/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT marketplacedeployment AWS Java SDK :: Services :: Marketplace Deployment diff --git a/services/marketplacedeployment/src/main/resources/codegen-resources/customization.config b/services/marketplacedeployment/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/marketplacedeployment/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/marketplaceentitlement/pom.xml b/services/marketplaceentitlement/pom.xml index 498023d0d3b7..b212ba472fc8 100644 --- a/services/marketplaceentitlement/pom.xml +++ b/services/marketplaceentitlement/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT marketplaceentitlement AWS Java SDK :: Services :: AWS Marketplace Entitlement diff --git a/services/marketplaceentitlement/src/main/resources/codegen-resources/customization.config b/services/marketplaceentitlement/src/main/resources/codegen-resources/customization.config index ed0091ae5efb..b8911ebcfc00 100644 --- a/services/marketplaceentitlement/src/main/resources/codegen-resources/customization.config +++ b/services/marketplaceentitlement/src/main/resources/codegen-resources/customization.config @@ -1,7 +1,8 @@ { - "shapeModifiers": { - "EntitlementValue": { - "union": true - } - } -} \ No newline at end of file + "shapeModifiers": { + "EntitlementValue": { + "union": true + } + }, + "useSraAuth": true +} diff --git a/services/marketplacemetering/pom.xml b/services/marketplacemetering/pom.xml index df2e54b5913d..0858b6d8bfe6 100644 --- a/services/marketplacemetering/pom.xml +++ b/services/marketplacemetering/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT marketplacemetering AWS Java SDK :: Services :: AWS Marketplace Metering Service diff --git a/services/marketplacemetering/src/main/resources/codegen-resources/customization.config b/services/marketplacemetering/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/marketplacemetering/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/mediaconnect/pom.xml b/services/mediaconnect/pom.xml index 3b9aa20cfa7b..e447163c2f35 100644 --- a/services/mediaconnect/pom.xml +++ b/services/mediaconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT mediaconnect AWS Java SDK :: Services :: MediaConnect diff --git a/services/mediaconnect/src/main/resources/codegen-resources/customization.config b/services/mediaconnect/src/main/resources/codegen-resources/customization.config index 1a1907a47709..0a6ccc26d9d4 100644 --- a/services/mediaconnect/src/main/resources/codegen-resources/customization.config +++ b/services/mediaconnect/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,9 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listEntitlements", "listFlows" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/mediaconvert/pom.xml b/services/mediaconvert/pom.xml index cd66e3d50bda..5687ffe4c98f 100644 --- a/services/mediaconvert/pom.xml +++ b/services/mediaconvert/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 mediaconvert diff --git a/services/mediaconvert/src/main/resources/codegen-resources/customization.config b/services/mediaconvert/src/main/resources/codegen-resources/customization.config index e5d2b586984e..329f3c921761 100644 --- a/services/mediaconvert/src/main/resources/codegen-resources/customization.config +++ b/services/mediaconvert/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,8 @@ { - "excludedSimpleMethods" : ["*"] + "excludedSimpleMethods": [ + "*" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/mediaconvert/src/main/resources/codegen-resources/service-2.json b/services/mediaconvert/src/main/resources/codegen-resources/service-2.json index 93dfe8f7fb5c..4970aa6d8124 100644 --- a/services/mediaconvert/src/main/resources/codegen-resources/service-2.json +++ b/services/mediaconvert/src/main/resources/codegen-resources/service-2.json @@ -461,7 +461,9 @@ "documentation": "ResourceInUseException" } ], - "documentation": "Send an request with an empty body to the regional API endpoint to get your account API endpoint." + "documentation": "Send an request with an empty body to the regional API endpoint to get your account API endpoint.", + "deprecated": true, + "deprecatedMessage": "DescribeEndpoints and account specific endpoints are no longer required. We recommend that you send your requests directly to the regional endpoint instead." }, "DisassociateCertificate": { "name": "DisassociateCertificate", @@ -1172,7 +1174,7 @@ }, "AacCodecProfile": { "type": "string", - "documentation": "Specify the AAC profile. For the widest player compatibility and where higher bitrates are acceptable: Keep the default profile, LC (AAC-LC) For improved audio performance at lower bitrates: Choose HEV1 or HEV2. HEV1 (AAC-HE v1) adds spectral band replication to improve speech audio at low bitrates. HEV2 (AAC-HE v2) adds parametric stereo, which optimizes for encoding stereo audio at very low bitrates.", + "documentation": "AAC Profile.", "enum": [ "LC", "HEV1", @@ -1192,7 +1194,7 @@ }, "AacRateControlMode": { "type": "string", - "documentation": "Specify the AAC rate control mode. For a constant bitrate: Choose CBR. Your AAC output bitrate will be equal to the value that you choose for Bitrate. For a variable bitrate: Choose VBR. Your AAC output bitrate will vary according to your audio content and the value that you choose for Bitrate quality.", + "documentation": "Rate Control Mode.", "enum": [ "CBR", "VBR" @@ -1222,7 +1224,7 @@ "CodecProfile": { "shape": "AacCodecProfile", "locationName": "codecProfile", - "documentation": "Specify the AAC profile. For the widest player compatibility and where higher bitrates are acceptable: Keep the default profile, LC (AAC-LC) For improved audio performance at lower bitrates: Choose HEV1 or HEV2. HEV1 (AAC-HE v1) adds spectral band replication to improve speech audio at low bitrates. HEV2 (AAC-HE v2) adds parametric stereo, which optimizes for encoding stereo audio at very low bitrates." + "documentation": "AAC Profile." }, "CodingMode": { "shape": "AacCodingMode", @@ -1232,7 +1234,7 @@ "RateControlMode": { "shape": "AacRateControlMode", "locationName": "rateControlMode", - "documentation": "Specify the AAC rate control mode. For a constant bitrate: Choose CBR. Your AAC output bitrate will be equal to the value that you choose for Bitrate. For a variable bitrate: Choose VBR. Your AAC output bitrate will vary according to your audio content and the value that you choose for Bitrate quality." + "documentation": "Rate Control Mode." }, "RawFormat": { "shape": "AacRawFormat", @@ -1242,7 +1244,7 @@ "SampleRate": { "shape": "__integerMin8000Max96000", "locationName": "sampleRate", - "documentation": "Specify the AAC sample rate in samples per second (Hz). Valid sample rates depend on the AAC profile and Coding mode that you select. For a list of supported sample rates, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/aac-support.html" + "documentation": "Specify the Sample rate in Hz. Valid sample rates depend on the Profile and Coding mode that you select. The following list shows valid sample rates for each Profile and Coding mode. * LC Profile, Coding mode 1.0, 2.0, and Receiver Mix: 8000, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 88200, 96000. * LC Profile, Coding mode 5.1: 32000, 44100, 48000, 96000. * HEV1 Profile, Coding mode 1.0 and Receiver Mix: 22050, 24000, 32000, 44100, 48000. * HEV1 Profile, Coding mode 2.0 and 5.1: 32000, 44100, 48000, 96000. * HEV2 Profile, Coding mode 2.0: 22050, 24000, 32000, 44100, 48000." }, "Specification": { "shape": "AacSpecification", @@ -1252,7 +1254,7 @@ "VbrQuality": { "shape": "AacVbrQuality", "locationName": "vbrQuality", - "documentation": "Specify the quality of your variable bitrate (VBR) AAC audio. For a list of approximate VBR bitrates, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/aac-support.html#aac_vbr" + "documentation": "VBR Quality Level - Only used if rate_control_mode is VBR." } }, "documentation": "Required when you set Codec to the value AAC. The service accepts one of two mutually exclusive groups of AAC settings--VBR and CBR. To select one of these modes, set the value of Bitrate control mode to \"VBR\" or \"CBR\". In VBR mode, you control the audio quality with the setting VBR quality. In CBR mode, you use the setting Bitrate. Defaults and valid values depend on the rate control mode." @@ -1267,7 +1269,7 @@ }, "AacVbrQuality": { "type": "string", - "documentation": "Specify the quality of your variable bitrate (VBR) AAC audio. For a list of approximate VBR bitrates, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/aac-support.html#aac_vbr", + "documentation": "VBR Quality Level - Only used if rate_control_mode is VBR.", "enum": [ "LOW", "MEDIUM_LOW", @@ -1775,7 +1777,7 @@ "documentation": "Settings related to audio encoding. The settings in this group vary depending on the value that you choose for your audio codec." }, "CustomLanguageCode": { - "shape": "__stringPatternAZaZ23AZaZ", + "shape": "__stringPatternAZaZ23AZaZ09", "locationName": "customLanguageCode", "documentation": "Specify the language for this audio output track. The service puts this language code into your output audio track when you set Language code control to Use configured. The service also uses your specified custom language code when you set Language code control to Follow input, but your input file doesn't specify a language code. For all outputs, you can use an ISO 639-2 or ISO 639-3 code. For streaming outputs, you can also use any other code in the full RFC-5646 specification. Streaming outputs are those that are in one of the following output groups: CMAF, DASH ISO, Apple HLS, or Microsoft Smooth Streaming." }, @@ -3500,13 +3502,6 @@ }, "documentation": "Custom 3D lut settings" }, - "ColorConversion3DLUTSettings": { - "type": "list", - "documentation": "Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs.", - "member": { - "shape": "ColorConversion3DLUTSetting" - } - }, "ColorCorrector": { "type": "structure", "members": { @@ -4373,7 +4368,9 @@ "enum": [ "DEFAULT", "GET_ONLY" - ] + ], + "deprecated": true, + "deprecatedMessage": "DescribeEndpoints and account specific endpoints are no longer required. We recommend that you send your requests directly to the regional endpoint instead." }, "DescribeEndpointsRequest": { "type": "structure", @@ -4394,7 +4391,9 @@ "documentation": "Use this string, provided with the response to a previous request, to request the next batch of endpoints." } }, - "documentation": "DescribeEndpointsRequest" + "documentation": "DescribeEndpointsRequest", + "deprecated": true, + "deprecatedMessage": "DescribeEndpoints and account specific endpoints are no longer required. We recommend that you send your requests directly to the regional endpoint instead." }, "DescribeEndpointsResponse": { "type": "structure", @@ -4409,7 +4408,9 @@ "locationName": "nextToken", "documentation": "Use this string to request the next batch of endpoints." } - } + }, + "deprecated": true, + "deprecatedMessage": "DescribeEndpoints and account specific endpoints are no longer required. We recommend that you send your requests directly to the regional endpoint instead." }, "DestinationSettings": { "type": "structure", @@ -8024,7 +8025,7 @@ "documentation": "Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails." }, "ColorConversion3DLUTSettings": { - "shape": "ColorConversion3DLUTSettings", + "shape": "__listOfColorConversion3DLUTSetting", "locationName": "colorConversion3DLUTSettings", "documentation": "Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs." }, @@ -8195,7 +8196,7 @@ "documentation": "Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails." }, "ColorConversion3DLUTSettings": { - "shape": "ColorConversion3DLUTSettings", + "shape": "__listOfColorConversion3DLUTSetting", "locationName": "colorConversion3DLUTSettings", "documentation": "Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs." }, @@ -11095,6 +11096,16 @@ "RemixSettings": { "type": "structure", "members": { + "AudioDescriptionAudioChannel": { + "shape": "__integerMin1Max64", + "locationName": "audioDescriptionAudioChannel", + "documentation": "Optionally specify the channel in your input that contains your audio description audio signal. MediaConvert mixes your audio signal across all output channels, while reducing their volume according to your data stream. When you specify an audio description audio channel, you must also specify an audio description data channel. For more information about audio description signals, see the BBC WHP 198 and 051 white papers." + }, + "AudioDescriptionDataChannel": { + "shape": "__integerMin1Max64", + "locationName": "audioDescriptionDataChannel", + "documentation": "Optionally specify the channel in your input that contains your audio description data stream. MediaConvert mixes your audio signal across all output channels, while reducing their volume according to your data stream. When you specify an audio description data channel, you must also specify an audio description audio channel. For more information about audio description signals, see the BBC WHP 198 and 051 white papers." + }, "ChannelMapping": { "shape": "ChannelMapping", "locationName": "channelMapping", @@ -13816,6 +13827,12 @@ "shape": "CmafAdditionalManifest" } }, + "__listOfColorConversion3DLUTSetting": { + "type": "list", + "member": { + "shape": "ColorConversion3DLUTSetting" + } + }, "__listOfDashAdditionalManifest": { "type": "list", "member": { @@ -14235,6 +14252,10 @@ "type": "string", "pattern": "^[A-Za-z]{2,3}(-[A-Za-z-]+)?$" }, + "__stringPatternAZaZ23AZaZ09": { + "type": "string", + "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9-]+)?$" + }, "__stringPatternArnAwsUsGovAcm": { "type": "string", "pattern": "^arn:aws(-us-gov)?:acm:" diff --git a/services/medialive/pom.xml b/services/medialive/pom.xml index fe7957b26251..8c69da7d5f4d 100644 --- a/services/medialive/pom.xml +++ b/services/medialive/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 medialive diff --git a/services/medialive/src/main/resources/codegen-resources/customization.config b/services/medialive/src/main/resources/codegen-resources/customization.config index 2b6d3476b2dd..b42851d8c4a8 100644 --- a/services/medialive/src/main/resources/codegen-resources/customization.config +++ b/services/medialive/src/main/resources/codegen-resources/customization.config @@ -1,14 +1,17 @@ { - "verifiedSimpleMethods": [ - "listChannels", - "listInputSecurityGroups", - "listInputs", - "listOfferings", - "listReservations" - ], - "excludedSimpleMethods": [ - "createChannel", - "createInput", - "createInputSecurityGroup" - ] + "verifiedSimpleMethods": [ + "listChannels", + "listInputSecurityGroups", + "listInputs", + "listOfferings", + "listReservations" + ], + "excludedSimpleMethods": [ + "createChannel", + "createInput", + "createInputSecurityGroup" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/medialive/src/main/resources/codegen-resources/service-2.json b/services/medialive/src/main/resources/codegen-resources/service-2.json index c5d8b4c8502e..2d5301abd8c2 100644 --- a/services/medialive/src/main/resources/codegen-resources/service-2.json +++ b/services/medialive/src/main/resources/codegen-resources/service-2.json @@ -3015,6 +3015,56 @@ } ], "documentation": "Update reservation." + }, + "RestartChannelPipelines": { + "name": "RestartChannelPipelines", + "http": { + "method": "POST", + "requestUri": "/prod/channels/{channelId}/restartChannelPipelines", + "responseCode": 200 + }, + "input": { + "shape": "RestartChannelPipelinesRequest" + }, + "output": { + "shape": "RestartChannelPipelinesResponse", + "documentation": "MediaLive successfully initiated the restart request." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The service can't process your request because of a problem in the request. Verify that the syntax is correct." + }, + { + "shape": "InternalServerErrorException", + "documentation": "Internal Service Error" + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have permissions for this action with the credentials that you sent." + }, + { + "shape": "BadGatewayException", + "documentation": "Bad Gateway Error" + }, + { + "shape": "NotFoundException", + "documentation": "The channel or pipeline you specified doesn't exist." + }, + { + "shape": "GatewayTimeoutException", + "documentation": "Gateway Timeout" + }, + { + "shape": "TooManyRequestsException", + "documentation": "Too many requests have been sent in too short of a time. The service limits the rate at which it will accept requests." + }, + { + "shape": "ConflictException", + "documentation": "The service could not complete your request because there is a conflict with the current state of the resource." + } + ], + "documentation": "Restart pipelines in one channel that is currently running." } }, "shapes": { @@ -4524,7 +4574,7 @@ "Accessibility": { "shape": "AccessibilityType", "locationName": "accessibility", - "documentation": "Indicates whether the caption track implements accessibility features such as written descriptions of spoken dialog, music, and sounds." + "documentation": "Indicates whether the caption track implements accessibility features such as written descriptions of spoken dialog, music, and sounds. This signaling is added to HLS output group and MediaPackage output group." }, "CaptionSelectorName": { "shape": "__string", @@ -4734,7 +4784,7 @@ }, "CdiInputResolution": { "type": "string", - "documentation": "Maximum CDI input resolution; SD is 480i and 576i up to 30 frames-per-second (fps), HD is 720p up to 60 fps / 1080i up to 30 fps, FHD is 1080p up to 60 fps, UHD is 2160p up to 60 fps\n", + "documentation": "Maximum CDI input resolution; SD is 480i and 576i up to 30 frames-per-second (fps), HD is 720p up to 60 fps / 1080i up to 30 fps, FHD is 1080p up to 60 fps, UHD is 2160p up to 60 fps", "enum": [ "SD", "HD", @@ -4774,7 +4824,7 @@ "Destinations": { "shape": "__listOfOutputDestination", "locationName": "destinations", - "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager.\n" + "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager." }, "EgressEndpoints": { "shape": "__listOfChannelEgressEndpoint", @@ -4919,7 +4969,7 @@ "Destinations": { "shape": "__listOfOutputDestination", "locationName": "destinations", - "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager.\n" + "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager." }, "EgressEndpoints": { "shape": "__listOfChannelEgressEndpoint", @@ -5119,7 +5169,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique request ID to be specified. This is needed to prevent retries from\ncreating multiple resources.\n", + "documentation": "Unique request ID to be specified. This is needed to prevent retries from\ncreating multiple resources.", "idempotencyToken": true }, "Reserved": { @@ -5195,7 +5245,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique request ID to be specified. This is needed to prevent retries from\ncreating multiple resources.\n", + "documentation": "Unique request ID to be specified. This is needed to prevent retries from\ncreating multiple resources.", "idempotencyToken": true }, "Reserved": { @@ -5263,7 +5313,7 @@ "MediaConnectFlows": { "shape": "__listOfMediaConnectFlowRequest", "locationName": "mediaConnectFlows", - "documentation": "A list of the MediaConnect Flows that you want to use in this input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues.\n" + "documentation": "A list of the MediaConnect Flows that you want to use in this input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues." }, "Name": { "shape": "__string", @@ -5273,7 +5323,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.\n", + "documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.", "idempotencyToken": true }, "RoleArn": { @@ -5284,7 +5334,7 @@ "Sources": { "shape": "__listOfInputSourceRequest", "locationName": "sources", - "documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty.\n" + "documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty." }, "Tags": { "shape": "Tags", @@ -5323,7 +5373,7 @@ "MediaConnectFlows": { "shape": "__listOfMediaConnectFlowRequest", "locationName": "mediaConnectFlows", - "documentation": "A list of the MediaConnect Flows that you want to use in this input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues.\n" + "documentation": "A list of the MediaConnect Flows that you want to use in this input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues." }, "Name": { "shape": "__string", @@ -5333,7 +5383,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.\n", + "documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.", "idempotencyToken": true }, "RoleArn": { @@ -5344,7 +5394,7 @@ "Sources": { "shape": "__listOfInputSourceRequest", "locationName": "sources", - "documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty.\n" + "documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty." }, "Tags": { "shape": "Tags", @@ -5439,7 +5489,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique request ID. This prevents retries from creating multiple\nresources.\n", + "documentation": "Unique request ID. This prevents retries from creating multiple\nresources.", "idempotencyToken": true }, "Tags": { @@ -5472,7 +5522,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique request ID. This prevents retries from creating multiple\nresources.\n", + "documentation": "Unique request ID. This prevents retries from creating multiple\nresources.", "idempotencyToken": true } }, @@ -5505,7 +5555,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique request ID. This prevents retries from creating multiple\nresources.\n", + "documentation": "Unique request ID. This prevents retries from creating multiple\nresources.", "idempotencyToken": true } }, @@ -5560,7 +5610,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique request ID. This prevents retries from creating multiple\nresources.\n", + "documentation": "Unique request ID. This prevents retries from creating multiple\nresources.", "idempotencyToken": true }, "Tags": { @@ -5605,7 +5655,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.\n", + "documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.", "idempotencyToken": true }, "Tags": { @@ -5628,7 +5678,7 @@ "RequestId": { "shape": "__string", "locationName": "requestId", - "documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.\n", + "documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.", "idempotencyToken": true }, "Tags": { @@ -5716,7 +5766,7 @@ "Destinations": { "shape": "__listOfOutputDestination", "locationName": "destinations", - "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager.\n" + "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager." }, "EgressEndpoints": { "shape": "__listOfChannelEgressEndpoint", @@ -6175,7 +6225,7 @@ "Destinations": { "shape": "__listOfOutputDestination", "locationName": "destinations", - "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager.\n" + "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager." }, "EgressEndpoints": { "shape": "__listOfChannelEgressEndpoint", @@ -6448,7 +6498,7 @@ "InputClass": { "shape": "InputClass", "locationName": "inputClass", - "documentation": "STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.\nSINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.\n" + "documentation": "STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.\nSINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input." }, "InputDevices": { "shape": "__listOfInputDeviceSettings", @@ -6463,7 +6513,7 @@ "InputSourceType": { "shape": "InputSourceType", "locationName": "inputSourceType", - "documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.\n" + "documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs." }, "MediaConnectFlows": { "shape": "__listOfMediaConnectFlow", @@ -9738,7 +9788,7 @@ "InputClass": { "shape": "InputClass", "locationName": "inputClass", - "documentation": "STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.\nSINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.\n" + "documentation": "STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.\nSINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input." }, "InputDevices": { "shape": "__listOfInputDeviceSettings", @@ -9753,7 +9803,7 @@ "InputSourceType": { "shape": "InputSourceType", "locationName": "inputSourceType", - "documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.\n" + "documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs." }, "MediaConnectFlows": { "shape": "__listOfMediaConnectFlow", @@ -9905,7 +9955,7 @@ "Ip": { "shape": "__string", "locationName": "ip", - "documentation": "The system-generated static IP address of endpoint.\nIt remains fixed for the lifetime of the input.\n" + "documentation": "The system-generated static IP address of endpoint.\nIt remains fixed for the lifetime of the input." }, "Port": { "shape": "__string", @@ -9915,7 +9965,7 @@ "Url": { "shape": "__string", "locationName": "url", - "documentation": "This represents the endpoint that the customer stream will be\npushed to.\n" + "documentation": "This represents the endpoint that the customer stream will be\npushed to." }, "Vpc": { "shape": "InputDestinationVpc", @@ -9930,7 +9980,7 @@ "StreamName": { "shape": "__string", "locationName": "streamName", - "documentation": "A unique name for the location the RTMP stream is being pushed\nto.\n" + "documentation": "A unique name for the location the RTMP stream is being pushed\nto." } }, "documentation": "Endpoint settings for a PUSH type input." @@ -9941,12 +9991,12 @@ "AvailabilityZone": { "shape": "__string", "locationName": "availabilityZone", - "documentation": "The availability zone of the Input destination.\n" + "documentation": "The availability zone of the Input destination." }, "NetworkInterfaceId": { "shape": "__string", "locationName": "networkInterfaceId", - "documentation": "The network interface ID of the Input destination in the VPC.\n" + "documentation": "The network interface ID of the Input destination in the VPC." } }, "documentation": "The properties for a VPC type input destination." @@ -10606,7 +10656,7 @@ }, "InputPreference": { "type": "string", - "documentation": "Input preference when deciding which input to make active when a previously failed input has recovered.\nIf \\\"EQUAL_INPUT_PREFERENCE\\\", then the active input will stay active as long as it is healthy.\nIf \\\"PRIMARY_INPUT_PREFERRED\\\", then always switch back to the primary input when it is healthy.\n", + "documentation": "Input preference when deciding which input to make active when a previously failed input has recovered.\nIf \\\"EQUAL_INPUT_PREFERENCE\\\", then the active input will stay active as long as it is healthy.\nIf \\\"PRIMARY_INPUT_PREFERRED\\\", then always switch back to the primary input when it is healthy.", "enum": [ "EQUAL_INPUT_PREFERENCE", "PRIMARY_INPUT_PREFERRED" @@ -10635,7 +10685,7 @@ }, "InputResolution": { "type": "string", - "documentation": "Input resolution based on lines of vertical resolution in the input; SD is less than 720 lines, HD is 720 to 1080 lines, UHD is greater than 1080 lines\n", + "documentation": "Input resolution based on lines of vertical resolution in the input; SD is less than 720 lines, HD is 720 to 1080 lines, UHD is greater than 1080 lines", "enum": [ "SD", "HD", @@ -10776,7 +10826,7 @@ "Url": { "shape": "__string", "locationName": "url", - "documentation": "This represents the customer's source URL where stream is\npulled from.\n" + "documentation": "This represents the customer's source URL where stream is\npulled from." }, "Username": { "shape": "__string", @@ -10805,7 +10855,7 @@ "Url": { "shape": "__string", "locationName": "url", - "documentation": "This represents the customer's source URL where stream is\npulled from.\n" + "documentation": "This represents the customer's source URL where stream is\npulled from." }, "Username": { "shape": "__string", @@ -10817,7 +10867,7 @@ }, "InputSourceType": { "type": "string", - "documentation": "There are two types of input sources, static and dynamic. If an input source is dynamic you can\nchange the source url of the input dynamically using an input switch action. Currently, two input types\nsupport a dynamic url at this time, MP4_FILE and TS_FILE. By default all input sources are static.\n", + "documentation": "There are two types of input sources, static and dynamic. If an input source is dynamic you can\nchange the source url of the input dynamically using an input switch action. Currently, two input types\nsupport a dynamic url at this time, MP4_FILE and TS_FILE. By default all input sources are static.", "enum": [ "STATIC", "DYNAMIC" @@ -10909,15 +10959,15 @@ "SecurityGroupIds": { "shape": "__listOf__string", "locationName": "securityGroupIds", - "documentation": "A list of up to 5 EC2 VPC security group IDs to attach to the Input VPC network interfaces.\nRequires subnetIds. If none are specified then the VPC default security group will be used.\n" + "documentation": "A list of up to 5 EC2 VPC security group IDs to attach to the Input VPC network interfaces.\nRequires subnetIds. If none are specified then the VPC default security group will be used." }, "SubnetIds": { "shape": "__listOf__string", "locationName": "subnetIds", - "documentation": "A list of 2 VPC subnet IDs from the same VPC.\nSubnet IDs must be mapped to two unique availability zones (AZ).\n" + "documentation": "A list of 2 VPC subnet IDs from the same VPC.\nSubnet IDs must be mapped to two unique availability zones (AZ)." } }, - "documentation": "Settings for a private VPC Input.\nWhen this property is specified, the input destination addresses will be created in a VPC rather than with public Internet addresses.\nThis property requires setting the roleArn property on Input creation.\nNot compatible with the inputSecurityGroups property.\n", + "documentation": "Settings for a private VPC Input.\nWhen this property is specified, the input destination addresses will be created in a VPC rather than with public Internet addresses.\nThis property requires setting the roleArn property on Input creation.\nNot compatible with the inputSecurityGroups property.", "required": [ "SubnetIds" ] @@ -11360,13 +11410,13 @@ "shape": "__string", "location": "querystring", "locationName": "channelClass", - "documentation": "Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'\n" + "documentation": "Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'" }, "ChannelConfiguration": { "shape": "__string", "location": "querystring", "locationName": "channelConfiguration", - "documentation": "Filter to offerings that match the configuration of an existing channel, e.g. '2345678' (a channel ID)\n" + "documentation": "Filter to offerings that match the configuration of an existing channel, e.g. '2345678' (a channel ID)" }, "Codec": { "shape": "__string", @@ -11389,7 +11439,7 @@ "shape": "__string", "location": "querystring", "locationName": "maximumBitrate", - "documentation": "Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'\n" + "documentation": "Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'" }, "MaximumFramerate": { "shape": "__string", @@ -11418,13 +11468,13 @@ "shape": "__string", "location": "querystring", "locationName": "specialFeature", - "documentation": "Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'\n" + "documentation": "Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'" }, "VideoQuality": { "shape": "__string", "location": "querystring", "locationName": "videoQuality", - "documentation": "Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'\n" + "documentation": "Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'" } }, "documentation": "Placeholder documentation for ListOfferingsRequest" @@ -11468,7 +11518,7 @@ "shape": "__string", "location": "querystring", "locationName": "channelClass", - "documentation": "Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'\n" + "documentation": "Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'" }, "Codec": { "shape": "__string", @@ -11485,7 +11535,7 @@ "shape": "__string", "location": "querystring", "locationName": "maximumBitrate", - "documentation": "Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'\n" + "documentation": "Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'" }, "MaximumFramerate": { "shape": "__string", @@ -11514,13 +11564,13 @@ "shape": "__string", "location": "querystring", "locationName": "specialFeature", - "documentation": "Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'\n" + "documentation": "Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'" }, "VideoQuality": { "shape": "__string", "location": "querystring", "locationName": "videoQuality", - "documentation": "Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'\n" + "documentation": "Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'" } }, "documentation": "Placeholder documentation for ListReservationsRequest" @@ -13639,7 +13689,7 @@ }, "PreferredChannelPipeline": { "type": "string", - "documentation": "Indicates which pipeline is preferred by the multiplex for program ingest.\nIf set to \\\"PIPELINE_0\\\" or \\\"PIPELINE_1\\\" and an unhealthy ingest causes the multiplex to switch to the non-preferred pipeline,\nit will switch back once that ingest is healthy again. If set to \\\"CURRENTLY_ACTIVE\\\",\nit will not switch back to the other pipeline based on it recovering to a healthy state,\nit will only switch if the active pipeline becomes unhealthy.\n", + "documentation": "Indicates which pipeline is preferred by the multiplex for program ingest.\nIf set to \\\"PIPELINE_0\\\" or \\\"PIPELINE_1\\\" and an unhealthy ingest causes the multiplex to switch to the non-preferred pipeline,\nit will switch back once that ingest is healthy again. If set to \\\"CURRENTLY_ACTIVE\\\",\nit will not switch back to the other pipeline based on it recovering to a healthy state,\nit will only switch if the active pipeline becomes unhealthy.", "enum": [ "CURRENTLY_ACTIVE", "PIPELINE_0", @@ -14017,7 +14067,7 @@ }, "ReservationResolution": { "type": "string", - "documentation": "Resolution based on lines of vertical resolution; SD is less than 720 lines, HD is 720 to 1080 lines, FHD is 1080 lines, UHD is greater than 1080 lines\n", + "documentation": "Resolution based on lines of vertical resolution; SD is less than 720 lines, HD is 720 to 1080 lines, FHD is 1080 lines, UHD is greater than 1080 lines", "enum": [ "SD", "HD", @@ -14919,7 +14969,7 @@ "Destinations": { "shape": "__listOfOutputDestination", "locationName": "destinations", - "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager.\n" + "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager." }, "EgressEndpoints": { "shape": "__listOfChannelEgressEndpoint", @@ -15335,7 +15385,7 @@ "Destinations": { "shape": "__listOfOutputDestination", "locationName": "destinations", - "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager.\n" + "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager." }, "EgressEndpoints": { "shape": "__listOfChannelEgressEndpoint", @@ -16223,7 +16273,7 @@ "MediaConnectFlows": { "shape": "__listOfMediaConnectFlowRequest", "locationName": "mediaConnectFlows", - "documentation": "A list of the MediaConnect Flow ARNs that you want to use as the source of the input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues.\n" + "documentation": "A list of the MediaConnect Flow ARNs that you want to use as the source of the input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues." }, "Name": { "shape": "__string", @@ -16238,7 +16288,7 @@ "Sources": { "shape": "__listOfInputSourceRequest", "locationName": "sources", - "documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty.\n" + "documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty." } }, "documentation": "Placeholder documentation for UpdateInput" @@ -16417,7 +16467,7 @@ "MediaConnectFlows": { "shape": "__listOfMediaConnectFlowRequest", "locationName": "mediaConnectFlows", - "documentation": "A list of the MediaConnect Flow ARNs that you want to use as the source of the input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues.\n" + "documentation": "A list of the MediaConnect Flow ARNs that you want to use as the source of the input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues." }, "Name": { "shape": "__string", @@ -16432,7 +16482,7 @@ "Sources": { "shape": "__listOfInputSourceRequest", "locationName": "sources", - "documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty.\n" + "documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty." } }, "documentation": "A request to update an input.", @@ -16901,20 +16951,20 @@ "PublicAddressAllocationIds": { "shape": "__listOf__string", "locationName": "publicAddressAllocationIds", - "documentation": "List of public address allocation ids to associate with ENIs that will be created in Output VPC.\nMust specify one for SINGLE_PIPELINE, two for STANDARD channels\n" + "documentation": "List of public address allocation ids to associate with ENIs that will be created in Output VPC.\nMust specify one for SINGLE_PIPELINE, two for STANDARD channels" }, "SecurityGroupIds": { "shape": "__listOf__string", "locationName": "securityGroupIds", - "documentation": "A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces.\nIf none are specified then the VPC default security group will be used\n" + "documentation": "A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces.\nIf none are specified then the VPC default security group will be used" }, "SubnetIds": { "shape": "__listOf__string", "locationName": "subnetIds", - "documentation": "A list of VPC subnet IDs from the same VPC.\nIf STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).\n" + "documentation": "A list of VPC subnet IDs from the same VPC.\nIf STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ)." } }, - "documentation": "The properties for a private VPC Output\nWhen this property is specified, the output egress addresses will be created in a user specified VPC\n", + "documentation": "The properties for a private VPC Output\nWhen this property is specified, the output egress addresses will be created in a user specified VPC", "required": [ "SubnetIds" ] @@ -16925,25 +16975,25 @@ "AvailabilityZones": { "shape": "__listOf__string", "locationName": "availabilityZones", - "documentation": "The Availability Zones where the vpc subnets are located.\nThe first Availability Zone applies to the first subnet in the list of subnets.\nThe second Availability Zone applies to the second subnet.\n" + "documentation": "The Availability Zones where the vpc subnets are located.\nThe first Availability Zone applies to the first subnet in the list of subnets.\nThe second Availability Zone applies to the second subnet." }, "NetworkInterfaceIds": { "shape": "__listOf__string", "locationName": "networkInterfaceIds", - "documentation": "A list of Elastic Network Interfaces created by MediaLive in the customer's VPC\n" + "documentation": "A list of Elastic Network Interfaces created by MediaLive in the customer's VPC" }, "SecurityGroupIds": { "shape": "__listOf__string", "locationName": "securityGroupIds", - "documentation": "A list of up EC2 VPC security group IDs attached to the Output VPC network interfaces.\n" + "documentation": "A list of up EC2 VPC security group IDs attached to the Output VPC network interfaces." }, "SubnetIds": { "shape": "__listOf__string", "locationName": "subnetIds", - "documentation": "A list of VPC subnet IDs from the same VPC.\nIf STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).\n" + "documentation": "A list of VPC subnet IDs from the same VPC.\nIf STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ)." } }, - "documentation": "The properties for a private VPC Output\n" + "documentation": "The properties for a private VPC Output" }, "WavCodingMode": { "type": "string", @@ -17944,6 +17994,140 @@ "shape": "InputDeviceUhdAudioChannelPairConfig" }, "documentation": "Placeholder documentation for __listOfInputDeviceUhdAudioChannelPairConfig" + }, + "ChannelPipelineIdToRestart": { + "type": "string", + "documentation": "Property of RestartChannelPipelinesRequest", + "enum": [ + "PIPELINE_0", + "PIPELINE_1" + ] + }, + "RestartChannelPipelinesRequest": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "location": "uri", + "locationName": "channelId", + "documentation": "ID of channel" + }, + "PipelineIds": { + "shape": "__listOfChannelPipelineIdToRestart", + "locationName": "pipelineIds", + "documentation": "An array of pipelines to restart in this channel. Format PIPELINE_0 or PIPELINE_1." + } + }, + "documentation": "Pipelines to restart.", + "required": [ + "ChannelId" + ] + }, + "RestartChannelPipelinesResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn", + "documentation": "The unique arn of the channel." + }, + "CdiInputSpecification": { + "shape": "CdiInputSpecification", + "locationName": "cdiInputSpecification", + "documentation": "Specification of CDI inputs for this channel" + }, + "ChannelClass": { + "shape": "ChannelClass", + "locationName": "channelClass", + "documentation": "The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline." + }, + "Destinations": { + "shape": "__listOfOutputDestination", + "locationName": "destinations", + "documentation": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager." + }, + "EgressEndpoints": { + "shape": "__listOfChannelEgressEndpoint", + "locationName": "egressEndpoints", + "documentation": "The endpoints where outgoing connections initiate from" + }, + "EncoderSettings": { + "shape": "EncoderSettings", + "locationName": "encoderSettings" + }, + "Id": { + "shape": "__string", + "locationName": "id", + "documentation": "The unique id of the channel." + }, + "InputAttachments": { + "shape": "__listOfInputAttachment", + "locationName": "inputAttachments", + "documentation": "List of input attachments for channel." + }, + "InputSpecification": { + "shape": "InputSpecification", + "locationName": "inputSpecification", + "documentation": "Specification of network and file inputs for this channel" + }, + "LogLevel": { + "shape": "LogLevel", + "locationName": "logLevel", + "documentation": "The log level being written to CloudWatch Logs." + }, + "Maintenance": { + "shape": "MaintenanceStatus", + "locationName": "maintenance", + "documentation": "Maintenance settings for this channel." + }, + "MaintenanceStatus": { + "shape": "__string", + "locationName": "maintenanceStatus", + "documentation": "The time in milliseconds by when the PVRE restart must occur." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the channel. (user-mutable)" + }, + "PipelineDetails": { + "shape": "__listOfPipelineDetail", + "locationName": "pipelineDetails", + "documentation": "Runtime details for the pipelines of a running channel." + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount", + "documentation": "The number of currently healthy pipelines." + }, + "RoleArn": { + "shape": "__string", + "locationName": "roleArn", + "documentation": "The Amazon Resource Name (ARN) of the role assumed when running the Channel." + }, + "State": { + "shape": "ChannelState", + "locationName": "state" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags", + "documentation": "A collection of key-value pairs." + }, + "Vpc": { + "shape": "VpcOutputSettingsDescription", + "locationName": "vpc", + "documentation": "Settings for VPC output" + } + }, + "documentation": "Placeholder documentation for RestartChannelPipelinesResponse" + }, + "__listOfChannelPipelineIdToRestart": { + "type": "list", + "member": { + "shape": "ChannelPipelineIdToRestart" + }, + "documentation": "Placeholder documentation for __listOfChannelPipelineIdToRestart" } }, "documentation": "API for AWS Elemental MediaLive" diff --git a/services/mediapackage/pom.xml b/services/mediapackage/pom.xml index a383972f0a27..c02719f8ac8c 100644 --- a/services/mediapackage/pom.xml +++ b/services/mediapackage/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 mediapackage diff --git a/services/mediapackage/src/main/resources/codegen-resources/customization.config b/services/mediapackage/src/main/resources/codegen-resources/customization.config index ee587bd61c35..e793d4196865 100644 --- a/services/mediapackage/src/main/resources/codegen-resources/customization.config +++ b/services/mediapackage/src/main/resources/codegen-resources/customization.config @@ -10,5 +10,8 @@ // Do not keep adding to this list. Require the service team to name enums like they're naming their shapes. "__AdTriggersElement": "AdTriggersElement", "__PeriodTriggersElement": "PeriodTriggersElement" - } + }, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/mediapackagev2/pom.xml b/services/mediapackagev2/pom.xml index 151f603a2706..362284cb859e 100644 --- a/services/mediapackagev2/pom.xml +++ b/services/mediapackagev2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT mediapackagev2 AWS Java SDK :: Services :: Media Package V2 diff --git a/services/mediapackagev2/src/main/resources/codegen-resources/customization.config b/services/mediapackagev2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/mediapackagev2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/mediapackagevod/pom.xml b/services/mediapackagevod/pom.xml index c4e91e522d17..196eecd98a30 100644 --- a/services/mediapackagevod/pom.xml +++ b/services/mediapackagevod/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT mediapackagevod AWS Java SDK :: Services :: MediaPackage Vod diff --git a/services/mediapackagevod/src/main/resources/codegen-resources/customization.tmp b/services/mediapackagevod/src/main/resources/codegen-resources/customization.tmp new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/services/mediastore/pom.xml b/services/mediastore/pom.xml index fcf16f79c148..89ca8fc754d2 100644 --- a/services/mediastore/pom.xml +++ b/services/mediastore/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 mediastore diff --git a/services/mediastore/src/main/resources/codegen-resources/customization.config b/services/mediastore/src/main/resources/codegen-resources/customization.config index 933304e140c4..d1807a180209 100644 --- a/services/mediastore/src/main/resources/codegen-resources/customization.config +++ b/services/mediastore/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "verifiedSimpleMethods": [ - "listContainers" - ], - "excludedSimpleMethods": [ - "describeContainer" - ] + "verifiedSimpleMethods": [ + "listContainers" + ], + "excludedSimpleMethods": [ + "describeContainer" + ], + "useSraAuth": true } diff --git a/services/mediastoredata/pom.xml b/services/mediastoredata/pom.xml index b836e3d3d7db..91da173708f0 100644 --- a/services/mediastoredata/pom.xml +++ b/services/mediastoredata/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 mediastoredata diff --git a/services/mediastoredata/src/main/resources/codegen-resources/customization.config b/services/mediastoredata/src/main/resources/codegen-resources/customization.config index 699e590c39cc..23574a93c2a5 100644 --- a/services/mediastoredata/src/main/resources/codegen-resources/customization.config +++ b/services/mediastoredata/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true, "excludedSimpleMethods" : [ "listItems" ] diff --git a/services/mediatailor/pom.xml b/services/mediatailor/pom.xml index 4f40bc9bf6f1..0855c624c8d9 100644 --- a/services/mediatailor/pom.xml +++ b/services/mediatailor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT mediatailor AWS Java SDK :: Services :: MediaTailor diff --git a/services/mediatailor/src/main/resources/codegen-resources/customization.config b/services/mediatailor/src/main/resources/codegen-resources/customization.config index 93637cd8ca26..636edbb7f1c5 100644 --- a/services/mediatailor/src/main/resources/codegen-resources/customization.config +++ b/services/mediatailor/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listPlaybackConfigurations" - ] + ], + "useSraAuth": true } diff --git a/services/mediatailor/src/main/resources/codegen-resources/service-2.json b/services/mediatailor/src/main/resources/codegen-resources/service-2.json index 6c2ce5019787..188556baa41f 100644 --- a/services/mediatailor/src/main/resources/codegen-resources/service-2.json +++ b/services/mediatailor/src/main/resources/codegen-resources/service-2.json @@ -555,6 +555,7 @@ }, "AdBreak":{ "type":"structure", + "required":["OffsetMillis"], "members":{ "AdBreakMetadata":{ "shape":"AdBreakMetadataList", diff --git a/services/medicalimaging/pom.xml b/services/medicalimaging/pom.xml index c082c54ddf22..bd97293c0c99 100644 --- a/services/medicalimaging/pom.xml +++ b/services/medicalimaging/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT medicalimaging AWS Java SDK :: Services :: Medical Imaging diff --git a/services/medicalimaging/src/main/resources/codegen-resources/customization.config b/services/medicalimaging/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/medicalimaging/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/memorydb/pom.xml b/services/memorydb/pom.xml index b4d8d022cd75..62eefc664488 100644 --- a/services/memorydb/pom.xml +++ b/services/memorydb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT memorydb AWS Java SDK :: Services :: Memory DB diff --git a/services/memorydb/src/main/resources/codegen-resources/customization.config b/services/memorydb/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/memorydb/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/mgn/pom.xml b/services/mgn/pom.xml index 5986e5f5ebd9..f48684762e48 100644 --- a/services/mgn/pom.xml +++ b/services/mgn/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT mgn AWS Java SDK :: Services :: Mgn diff --git a/services/mgn/src/main/resources/codegen-resources/customization.config b/services/mgn/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/mgn/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/migrationhub/pom.xml b/services/migrationhub/pom.xml index 91819b62004f..8b6f26fe5071 100644 --- a/services/migrationhub/pom.xml +++ b/services/migrationhub/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 migrationhub diff --git a/services/migrationhub/src/main/resources/codegen-resources/customization.config b/services/migrationhub/src/main/resources/codegen-resources/customization.config index e5d2b586984e..329f3c921761 100644 --- a/services/migrationhub/src/main/resources/codegen-resources/customization.config +++ b/services/migrationhub/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,8 @@ { - "excludedSimpleMethods" : ["*"] + "excludedSimpleMethods": [ + "*" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/migrationhubconfig/pom.xml b/services/migrationhubconfig/pom.xml index 22d2385f4b5a..96ec98493705 100644 --- a/services/migrationhubconfig/pom.xml +++ b/services/migrationhubconfig/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT migrationhubconfig AWS Java SDK :: Services :: MigrationHub Config diff --git a/services/migrationhubconfig/src/main/resources/codegen-resources/customization.config b/services/migrationhubconfig/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/migrationhubconfig/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/migrationhuborchestrator/pom.xml b/services/migrationhuborchestrator/pom.xml index a1be66711286..c43e77794a70 100644 --- a/services/migrationhuborchestrator/pom.xml +++ b/services/migrationhuborchestrator/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT migrationhuborchestrator AWS Java SDK :: Services :: Migration Hub Orchestrator diff --git a/services/migrationhuborchestrator/src/main/resources/codegen-resources/customization.config b/services/migrationhuborchestrator/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/migrationhuborchestrator/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/migrationhubrefactorspaces/pom.xml b/services/migrationhubrefactorspaces/pom.xml index 36799d0a40ad..6ffe04575ef0 100644 --- a/services/migrationhubrefactorspaces/pom.xml +++ b/services/migrationhubrefactorspaces/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT migrationhubrefactorspaces AWS Java SDK :: Services :: Migration Hub Refactor Spaces diff --git a/services/migrationhubrefactorspaces/src/main/resources/codegen-resources/customization.config b/services/migrationhubrefactorspaces/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/migrationhubrefactorspaces/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/migrationhubstrategy/pom.xml b/services/migrationhubstrategy/pom.xml index f1f82d9dfa92..be45f471cbb8 100644 --- a/services/migrationhubstrategy/pom.xml +++ b/services/migrationhubstrategy/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT migrationhubstrategy AWS Java SDK :: Services :: Migration Hub Strategy diff --git a/services/migrationhubstrategy/src/main/resources/codegen-resources/customization.config b/services/migrationhubstrategy/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/migrationhubstrategy/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/mobile/pom.xml b/services/mobile/pom.xml index 44c2b5a3a05b..35c29617b7fc 100644 --- a/services/mobile/pom.xml +++ b/services/mobile/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 mobile diff --git a/services/mobile/src/main/resources/codegen-resources/customization.config b/services/mobile/src/main/resources/codegen-resources/customization.config index 27d3c7e09b78..5b2dc39bb557 100644 --- a/services/mobile/src/main/resources/codegen-resources/customization.config +++ b/services/mobile/src/main/resources/codegen-resources/customization.config @@ -1,9 +1,10 @@ { - "verifiedSimpleMethods": [ - "listBundles", - "listProjects" - ], - "excludedSimpleMethods": [ - "createProject" - ] + "verifiedSimpleMethods": [ + "listBundles", + "listProjects" + ], + "excludedSimpleMethods": [ + "createProject" + ], + "useSraAuth": true } diff --git a/services/mq/pom.xml b/services/mq/pom.xml index 23390ff43619..d79c87735ad3 100644 --- a/services/mq/pom.xml +++ b/services/mq/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 mq diff --git a/services/mq/src/main/resources/codegen-resources/customization.config b/services/mq/src/main/resources/codegen-resources/customization.config index fd2da26cf900..0731a9aaff3d 100644 --- a/services/mq/src/main/resources/codegen-resources/customization.config +++ b/services/mq/src/main/resources/codegen-resources/customization.config @@ -1,10 +1,11 @@ { - "verifiedSimpleMethods": [ - "listBrokers", - "listConfigurations" - ], - "excludedSimpleMethods": [ - "createBroker", - "createConfiguration" - ] + "verifiedSimpleMethods": [ + "listBrokers", + "listConfigurations" + ], + "excludedSimpleMethods": [ + "createBroker", + "createConfiguration" + ], + "useSraAuth": true } diff --git a/services/mturk/pom.xml b/services/mturk/pom.xml index b0bbae575df7..b84d05d5dedf 100644 --- a/services/mturk/pom.xml +++ b/services/mturk/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT mturk AWS Java SDK :: Services :: Amazon Mechanical Turk Requester diff --git a/services/mturk/src/main/resources/codegen-resources/customization.config b/services/mturk/src/main/resources/codegen-resources/customization.config index 8d6cca6e6d53..50b4a712d9d6 100644 --- a/services/mturk/src/main/resources/codegen-resources/customization.config +++ b/services/mturk/src/main/resources/codegen-resources/customization.config @@ -1,10 +1,13 @@ { - "excludedSimpleMethods" : ["listBonusPayments"], - "verifiedSimpleMethods" : [ - "listWorkerBlocks", - "listReviewableHITs", - "getAccountBalance", - "listQualificationRequests", - "listHITs" - ] -} \ No newline at end of file + "excludedSimpleMethods": [ + "listBonusPayments" + ], + "verifiedSimpleMethods": [ + "listWorkerBlocks", + "listReviewableHITs", + "getAccountBalance", + "listQualificationRequests", + "listHITs" + ], + "useSraAuth": true +} diff --git a/services/mwaa/pom.xml b/services/mwaa/pom.xml index a0bc5180f286..962c838e7079 100644 --- a/services/mwaa/pom.xml +++ b/services/mwaa/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT mwaa AWS Java SDK :: Services :: MWAA diff --git a/services/mwaa/src/main/resources/codegen-resources/customization.config b/services/mwaa/src/main/resources/codegen-resources/customization.config index 0e729acd0371..2a734ae11b2b 100644 --- a/services/mwaa/src/main/resources/codegen-resources/customization.config +++ b/services/mwaa/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/mwaa/src/main/resources/codegen-resources/service-2.json b/services/mwaa/src/main/resources/codegen-resources/service-2.json index 7f7a4766d752..2cb679af3bb3 100644 --- a/services/mwaa/src/main/resources/codegen-resources/service-2.json +++ b/services/mwaa/src/main/resources/codegen-resources/service-2.json @@ -531,7 +531,7 @@ }, "KmsKey":{ "shape":"KmsKey", - "documentation":"

    The Amazon Web Services Key Management Service (KMS) encryption key used to encrypt the data in your environment.

    " + "documentation":"

    The KMS encryption key used to encrypt the data in your environment.

    " }, "LastUpdate":{ "shape":"LastUpdate", @@ -595,7 +595,7 @@ }, "Status":{ "shape":"EnvironmentStatus", - "documentation":"

    The status of the Amazon MWAA environment.

    Valid values:

    • CREATING - Indicates the request to create the environment is in progress.

    • CREATING_SNAPSHOT - Indicates the request to update environment details, or upgrade the environment version, is in progress and Amazon MWAA is creating a storage volume snapshot of the Amazon RDS database cluster associated with the environment. A database snapshot is a backup created at a specific point in time. Amazon MWAA uses snapshots to recover environment metadata if the process to update or upgrade an environment fails.

    • CREATE_FAILED - Indicates the request to create the environment failed, and the environment could not be created.

    • AVAILABLE - Indicates the request was successful and the environment is ready to use.

    • PENDING - Indicates the request was successful, but the process to create the environment is paused until you create the required VPC endpoints in your VPC. After you create the VPC endpoints, the process resumes.

    • UPDATING - Indicates the request to update the environment is in progress.

    • ROLLING_BACK - Indicates the request to update environment details, or upgrade the environment version, failed and Amazon MWAA is restoring the environment using the latest storage volume snapshot.

    • DELETING - Indicates the request to delete the environment is in progress.

    • DELETED - Indicates the request to delete the environment is complete, and the environment has been deleted.

    • UNAVAILABLE - Indicates the request failed, but the environment was unable to rollback and is not in a stable state.

    • UPDATE_FAILED - Indicates the request to update the environment failed, and the environment has rolled back successfully and is ready to use.

    We recommend reviewing our troubleshooting guide for a list of common errors and their solutions. For more information, see Amazon MWAA troubleshooting.

    " + "documentation":"

    The status of the Amazon MWAA environment.

    Valid values:

    • CREATING - Indicates the request to create the environment is in progress.

    • CREATING_SNAPSHOT - Indicates the request to update environment details, or upgrade the environment version, is in progress and Amazon MWAA is creating a storage volume snapshot of the Amazon RDS database cluster associated with the environment. A database snapshot is a backup created at a specific point in time. Amazon MWAA uses snapshots to recover environment metadata if the process to update or upgrade an environment fails.

    • CREATE_FAILED - Indicates the request to create the environment failed, and the environment could not be created.

    • AVAILABLE - Indicates the request was successful and the environment is ready to use.

    • PENDING - Indicates the request was successful, but the process to create the environment is paused until you create the required VPC endpoints in your VPC. After you create the VPC endpoints, the process resumes.

    • UPDATING - Indicates the request to update the environment is in progress.

    • ROLLING_BACK - Indicates the request to update environment details, or upgrade the environment version, failed and Amazon MWAA is restoring the environment using the latest storage volume snapshot.

    • DELETING - Indicates the request to delete the environment is in progress.

    • DELETED - Indicates the request to delete the environment is complete, and the environment has been deleted.

    • UNAVAILABLE - Indicates the request failed, but the environment did not return to its previous state and is not stable.

    • UPDATE_FAILED - Indicates the request to update the environment failed, and the environment was restored to its previous state successfully and is ready to use.

    • MAINTENANCE - Indicates that the environment is undergoing maintenance. Depending on the type of work Amazon MWAA is performing, your environment might become unavailable during this process. After all operations are done, your environment will return to its status prior to mainteneace operations.

    We recommend reviewing our troubleshooting guide for a list of common errors and their solutions. For more information, see Amazon MWAA troubleshooting.

    " }, "Tags":{ "shape":"TagMap", @@ -607,7 +607,7 @@ }, "WebserverUrl":{ "shape":"WebserverUrl", - "documentation":"

    The Apache Airflow Web server host name for the Amazon MWAA environment. For more information, see Accessing the Apache Airflow UI.

    " + "documentation":"

    The Apache Airflow web server host name for the Amazon MWAA environment. For more information, see Accessing the Apache Airflow UI.

    " }, "WebserverVpcEndpointService":{ "shape":"VpcEndpointServiceName", @@ -654,7 +654,8 @@ "UPDATE_FAILED", "ROLLING_BACK", "CREATING_SNAPSHOT", - "PENDING" + "PENDING", + "MAINTENANCE" ] }, "ErrorCode":{"type":"string"}, diff --git a/services/neptune/pom.xml b/services/neptune/pom.xml index d10d0d4d8bac..68dd44f0cf7b 100644 --- a/services/neptune/pom.xml +++ b/services/neptune/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT neptune AWS Java SDK :: Services :: Neptune @@ -56,11 +56,6 @@ aws-query-protocol ${awsjavasdk.version}
    - - software.amazon.awssdk - profiles - ${awsjavasdk.version} - software.amazon.awssdk http-auth-aws diff --git a/services/neptune/src/main/java/software/amazon/awssdk/services/neptune/internal/RdsPresignInterceptor.java b/services/neptune/src/main/java/software/amazon/awssdk/services/neptune/internal/RdsPresignInterceptor.java index caba12352862..07dd4567100c 100644 --- a/services/neptune/src/main/java/software/amazon/awssdk/services/neptune/internal/RdsPresignInterceptor.java +++ b/services/neptune/src/main/java/software/amazon/awssdk/services/neptune/internal/RdsPresignInterceptor.java @@ -15,21 +15,20 @@ package software.amazon.awssdk.services.neptune.internal; -import static software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute.AWS_CREDENTIALS; import static software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute.SELECTED_AUTH_SCHEME; import java.net.URI; import java.time.Clock; +import java.time.Duration; +import java.time.Instant; +import java.time.ZoneOffset; +import java.util.concurrent.CompletableFuture; import software.amazon.awssdk.annotations.SdkInternalApi; -import software.amazon.awssdk.auth.credentials.AwsCredentials; -import software.amazon.awssdk.auth.credentials.CredentialUtils; -import software.amazon.awssdk.auth.signer.Aws4Signer; -import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; -import software.amazon.awssdk.auth.signer.params.Aws4PresignerParams; import software.amazon.awssdk.awscore.AwsExecutionAttribute; import software.amazon.awssdk.awscore.endpoint.DefaultServiceEndpointBuilder; import software.amazon.awssdk.core.Protocol; import software.amazon.awssdk.core.SdkRequest; +import software.amazon.awssdk.core.SelectedAuthScheme; import software.amazon.awssdk.core.client.config.SdkClientConfiguration; import software.amazon.awssdk.core.client.config.SdkClientOption; import software.amazon.awssdk.core.exception.SdkClientException; @@ -40,7 +39,13 @@ import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpMethod; import software.amazon.awssdk.http.SdkHttpRequest; -import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.HttpSigner; +import software.amazon.awssdk.http.auth.spi.signer.SignRequest; +import software.amazon.awssdk.http.auth.spi.signer.SignedRequest; +import software.amazon.awssdk.identity.spi.Identity; import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.neptune.model.NeptuneRequest; @@ -80,49 +85,39 @@ public interface PresignableRequest { private final Class requestClassToPreSign; - private final Clock signingOverrideClock; + private final Clock signingClockOverride; protected RdsPresignInterceptor(Class requestClassToPreSign) { this(requestClassToPreSign, null); } - protected RdsPresignInterceptor(Class requestClassToPreSign, Clock signingOverrideClock) { + protected RdsPresignInterceptor(Class requestClassToPreSign, Clock signingClockOverride) { this.requestClassToPreSign = requestClassToPreSign; - this.signingOverrideClock = signingOverrideClock; + this.signingClockOverride = signingClockOverride; } @Override public final SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, - ExecutionAttributes executionAttributes) { + ExecutionAttributes executionAttributes) { SdkHttpRequest request = context.httpRequest(); - SdkRequest originalRequest = context.request(); - if (!requestClassToPreSign.isInstance(originalRequest)) { - return request; - } - - if (request.firstMatchingRawQueryParameter(PARAM_PRESIGNED_URL).isPresent()) { - return request; + PresignableRequest presignableRequest = toPresignableRequest(request, context); + if (presignableRequest == null) { + return request.toBuilder().removeQueryParameter(PARAM_SOURCE_REGION).build(); } - PresignableRequest presignableRequest = adaptRequest(requestClassToPreSign.cast(originalRequest)); - + SelectedAuthScheme selectedAuthScheme = executionAttributes.getAttribute(SELECTED_AUTH_SCHEME); String sourceRegion = presignableRequest.getSourceRegion(); - if (sourceRegion == null) { - return request; - } - - String destinationRegion = executionAttributes.getAttribute(AwsSignerExecutionAttribute.SIGNING_REGION).id(); - + String destinationRegion = selectedAuthScheme.authSchemeOption().signerProperty(AwsV4HttpSigner.REGION_NAME); URI endpoint = createEndpoint(sourceRegion, SERVICE_NAME, executionAttributes); SdkHttpFullRequest.Builder marshalledRequest = presignableRequest.marshall().toBuilder().uri(endpoint); SdkHttpFullRequest requestToPresign = - marshalledRequest.method(SdkHttpMethod.GET) - .putRawQueryParameter(PARAM_DESTINATION_REGION, destinationRegion) - .removeQueryParameter(PARAM_SOURCE_REGION) - .build(); + marshalledRequest.method(SdkHttpMethod.GET) + .putRawQueryParameter(PARAM_DESTINATION_REGION, destinationRegion) + .removeQueryParameter(PARAM_SOURCE_REGION) + .build(); - requestToPresign = presignRequest(requestToPresign, executionAttributes, sourceRegion); + requestToPresign = sraPresignRequest(executionAttributes, requestToPresign, sourceRegion); String presignedUrl = requestToPresign.getUri().toString(); @@ -141,48 +136,102 @@ public final SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, */ protected abstract PresignableRequest adaptRequest(T originalRequest); - private SdkHttpFullRequest presignRequest(SdkHttpFullRequest request, - ExecutionAttributes attributes, - String signingRegion) { + /** + * Converts the request to a PresignableRequest if possible. + */ + private PresignableRequest toPresignableRequest(SdkHttpRequest request, Context.ModifyHttpRequest context) { + SdkRequest originalRequest = context.request(); + if (!requestClassToPreSign.isInstance(originalRequest)) { + return null; + } + if (request.firstMatchingRawQueryParameter(PARAM_PRESIGNED_URL).isPresent()) { + return null; + } + PresignableRequest presignableRequest = adaptRequest(requestClassToPreSign.cast(originalRequest)); + String sourceRegion = presignableRequest.getSourceRegion(); + if (sourceRegion == null) { + return null; + } + return presignableRequest; + } + + /** + * Presign the provided HTTP request using SRA HttpSigner + */ + private SdkHttpFullRequest sraPresignRequest(ExecutionAttributes executionAttributes, SdkHttpFullRequest request, + String signingRegion) { + SelectedAuthScheme selectedAuthScheme = executionAttributes.getAttribute(SELECTED_AUTH_SCHEME); - Aws4Signer signer = Aws4Signer.create(); - Aws4PresignerParams presignerParams = Aws4PresignerParams.builder() - .signingRegion(Region.of(signingRegion)) - .signingName(SERVICE_NAME) - .signingClockOverride(signingOverrideClock) - .awsCredentials(resolveCredentials(attributes)) - .build(); - return signer.presign(request, presignerParams); + Instant signingInstant; + if (signingClockOverride != null) { + signingInstant = signingClockOverride.instant(); + } else { + signingInstant = Instant.now(); + } + // A fixed signing clock is used so that the current time used by the signing logic, as well as to + // determine expiration are the same. + Clock signingClock = Clock.fixed(signingInstant, ZoneOffset.UTC); + Duration expirationDuration = Duration.ofDays(7); + return doSraPresign(request, selectedAuthScheme, signingRegion, signingClock, expirationDuration); + } + + private SdkHttpFullRequest doSraPresign(SdkHttpFullRequest request, + SelectedAuthScheme selectedAuthScheme, + String signingRegion, + Clock signingClock, + Duration expirationDuration) { + CompletableFuture identityFuture = selectedAuthScheme.identity(); + T identity = CompletableFutureUtils.joinLikeSync(identityFuture); + + // Pre-signed URL puts auth info in query string, does not sign the payload, and has an expiry. + SignRequest.Builder signRequestBuilder = SignRequest + .builder(identity) + .putProperty(AwsV4FamilyHttpSigner.AUTH_LOCATION, AwsV4FamilyHttpSigner.AuthLocation.QUERY_STRING) + .putProperty(AwsV4FamilyHttpSigner.EXPIRATION_DURATION, expirationDuration) + .putProperty(HttpSigner.SIGNING_CLOCK, signingClock) + .request(request) + .payload(request.contentStreamProvider().orElse(null)); + AuthSchemeOption authSchemeOption = selectedAuthScheme.authSchemeOption(); + authSchemeOption.forEachSignerProperty(signRequestBuilder::putProperty); + // Override the region + signRequestBuilder.putProperty(AwsV4HttpSigner.REGION_NAME, signingRegion); + HttpSigner signer = selectedAuthScheme.signer(); + SignedRequest signedRequest = signer.sign(signRequestBuilder.build()); + return toSdkHttpFullRequest(signedRequest); } - private AwsCredentials resolveCredentials(ExecutionAttributes attributes) { - return attributes.getOptionalAttribute(SELECTED_AUTH_SCHEME) - .map(selectedAuthScheme -> selectedAuthScheme.identity()) - .map(identityFuture -> CompletableFutureUtils.joinLikeSync(identityFuture)) - .filter(identity -> identity instanceof AwsCredentialsIdentity) - .map(identity -> { - AwsCredentialsIdentity awsCredentialsIdentity = (AwsCredentialsIdentity) identity; - return CredentialUtils.toCredentials(awsCredentialsIdentity); - }).orElse(attributes.getAttribute(AWS_CREDENTIALS)); + private SdkHttpFullRequest toSdkHttpFullRequest(SignedRequest signedRequest) { + SdkHttpRequest request = signedRequest.request(); + + return SdkHttpFullRequest.builder() + .contentStreamProvider(signedRequest.payload().orElse(null)) + .protocol(request.protocol()) + .method(request.method()) + .host(request.host()) + .port(request.port()) + .encodedPath(request.encodedPath()) + .applyMutation(r -> request.forEachHeader(r::putHeader)) + .applyMutation(r -> request.forEachRawQueryParameter(r::putRawQueryParameter)) + .removeQueryParameter(PARAM_SOURCE_REGION) + .build(); } private URI createEndpoint(String regionName, String serviceName, ExecutionAttributes attributes) { Region region = Region.of(regionName); - if (region == null) { throw SdkClientException.builder() .message("{" + serviceName + ", " + regionName + "} was not " - + "found in region metadata. Update to latest version of SDK and try again.") + + "found in region metadata. Update to latest version of SDK and try again.") .build(); } return new DefaultServiceEndpointBuilder(SERVICE_NAME, Protocol.HTTPS.toString()) - .withRegion(region) - .withProfileFile(attributes.getAttribute(SdkExecutionAttribute.PROFILE_FILE_SUPPLIER)) - .withProfileName(attributes.getAttribute(SdkExecutionAttribute.PROFILE_NAME)) - .withDualstackEnabled(attributes.getAttribute(AwsExecutionAttribute.DUALSTACK_ENDPOINT_ENABLED)) - .withFipsEnabled(attributes.getAttribute(AwsExecutionAttribute.FIPS_ENDPOINT_ENABLED)) - .getServiceEndpoint(); + .withRegion(region) + .withProfileFile(attributes.getAttribute(SdkExecutionAttribute.PROFILE_FILE_SUPPLIER)) + .withProfileName(attributes.getAttribute(SdkExecutionAttribute.PROFILE_NAME)) + .withDualstackEnabled(attributes.getAttribute(AwsExecutionAttribute.DUALSTACK_ENDPOINT_ENABLED)) + .withFipsEnabled(attributes.getAttribute(AwsExecutionAttribute.FIPS_ENDPOINT_ENABLED)) + .getServiceEndpoint(); } } diff --git a/services/neptune/src/main/resources/codegen-resources/customization.config b/services/neptune/src/main/resources/codegen-resources/customization.config index 71ed6d26cabc..81fb791c4c8a 100644 --- a/services/neptune/src/main/resources/codegen-resources/customization.config +++ b/services/neptune/src/main/resources/codegen-resources/customization.config @@ -39,5 +39,8 @@ "interceptors": [ "software.amazon.awssdk.services.neptune.internal.CopyDbClusterSnapshotPresignInterceptor", "software.amazon.awssdk.services.neptune.internal.CreateDbClusterPresignInterceptor" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/neptune/src/test/java/software/amazon/awssdk/services/neptune/internal/PresignRequestHandlerTest.java b/services/neptune/src/test/java/software/amazon/awssdk/services/neptune/internal/PresignRequestHandlerTest.java index e0f083a4da88..e6058d6aa08b 100644 --- a/services/neptune/src/test/java/software/amazon/awssdk/services/neptune/internal/PresignRequestHandlerTest.java +++ b/services/neptune/src/test/java/software/amazon/awssdk/services/neptune/internal/PresignRequestHandlerTest.java @@ -15,173 +15,349 @@ package software.amazon.awssdk.services.neptune.internal; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.Mockito.when; +import java.io.IOException; +import java.io.UncheckedIOException; import java.net.URI; -import java.net.URISyntaxException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; import java.time.Clock; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.TimeZone; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; +import java.time.Instant; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; -import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; -import software.amazon.awssdk.awscore.endpoint.DefaultServiceEndpointBuilder; -import software.amazon.awssdk.core.Protocol; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.core.interceptor.Context; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; -import software.amazon.awssdk.core.interceptor.InterceptorContext; -import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute; import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpRequest; -import software.amazon.awssdk.profiles.ProfileFile; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.neptune.NeptuneClient; +import software.amazon.awssdk.services.neptune.NeptuneClientBuilder; +import software.amazon.awssdk.services.neptune.NeptuneServiceClientConfiguration; +import software.amazon.awssdk.services.neptune.auth.scheme.NeptuneAuthSchemeProvider; import software.amazon.awssdk.services.neptune.model.CopyDbClusterSnapshotRequest; -import software.amazon.awssdk.services.neptune.model.NeptuneRequest; -import software.amazon.awssdk.services.neptune.transform.CopyDbClusterSnapshotRequestMarshaller; +import software.amazon.awssdk.utils.IoUtils; +import software.amazon.awssdk.utils.Validate; + +/** + * Unit Tests for {@link software.amazon.awssdk.services.neptune.internal.RdsPresignInterceptor} + */ /** * Unit Tests for {@link RdsPresignInterceptor} */ -public class PresignRequestHandlerTest { - private static final AwsBasicCredentials CREDENTIALS = AwsBasicCredentials.create("foo", "bar"); - private static final Region DESTINATION_REGION = Region.of("us-west-2"); +class PresignRequestHandlerTest { + private static String TEST_KMS_KEY_ID = "arn:aws:kms:us-west-2:123456789012:key/" + + "11111111-2222-3333-4444-555555555555"; - private static final RdsPresignInterceptor presignInterceptor = new CopyDbClusterSnapshotPresignInterceptor(); - private final CopyDbClusterSnapshotRequestMarshaller marshaller = - new CopyDbClusterSnapshotRequestMarshaller(RdsPresignInterceptor.PROTOCOL_FACTORY); + @ParameterizedTest + @MethodSource("testCases") + public void testExpectations(TestCase testCase) { + // Arrange + CapturingInterceptor interceptor = new CapturingInterceptor(); + NeptuneClientBuilder clientBuilder = client(interceptor, testCase.signingClockOverride); + testCase.clientConfigure.accept(clientBuilder); + NeptuneClient client = clientBuilder.build(); - @Test - public void testSetsPresignedUrl() { - CopyDbClusterSnapshotRequest request = makeTestRequest(); - SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshallRequest(request)); + // Act + assertThatThrownBy(() -> testCase.clientConsumer.accept(client)) + .hasMessageContaining("boom!"); - assertNotNull(presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); - } + // Assert + SdkHttpFullRequest request = (SdkHttpFullRequest) interceptor.httpRequest(); + Map> rawQueryParameters = rawQueryParameters(request); - @Test - public void testComputesPresignedUrlCorrectlyForCopyDbClusterSnapshotRequest() { - // Note: test data was baselined by performing actual calls, with real - // credentials to RDS and checking that they succeeded. Then the - // request was recreated with all the same parameters but with test - // credentials. - final CopyDbClusterSnapshotRequest request = CopyDbClusterSnapshotRequest.builder() - .sourceDBClusterSnapshotIdentifier("arn:aws:rds:us-east-1:123456789012:snapshot:rds:test-instance-ss-2016-12-20-23-19") - .targetDBClusterSnapshotIdentifier("test-instance-ss-copy-2") - .sourceRegion("us-east-1") - .kmsKeyId("arn:aws:kms:us-west-2:123456789012:key/11111111-2222-3333-4444-555555555555") - .build(); - - Calendar c = new GregorianCalendar(); - c.setTimeZone(TimeZone.getTimeZone("UTC")); - // 20161221T180735Z - // Note: month is 0-based - c.set(2016, Calendar.DECEMBER, 21, 18, 7, 35); - - Clock signingDateOverride = Mockito.mock(Clock.class); - when(signingDateOverride.millis()).thenReturn(c.getTimeInMillis()); - - RdsPresignInterceptor interceptor = new CopyDbClusterSnapshotPresignInterceptor(signingDateOverride); - - SdkHttpRequest presignedRequest = modifyHttpRequest(interceptor, request, marshallRequest(request)); - - final String expectedPreSignedUrl = "https://rds.us-east-1.amazonaws.com?" + - "Action=CopyDBClusterSnapshot" + - "&Version=2014-10-31" + - "&SourceDBClusterSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-east-1%3A123456789012%3Asnapshot%3Ards%3Atest-instance-ss-2016-12-20-23-19" + - "&TargetDBClusterSnapshotIdentifier=test-instance-ss-copy-2" + - "&KmsKeyId=arn%3Aaws%3Akms%3Aus-west-2%3A123456789012%3Akey%2F11111111-2222-3333-4444-555555555555" + - "&DestinationRegion=us-west-2" + - "&X-Amz-Algorithm=AWS4-HMAC-SHA256" + - "&X-Amz-Date=20161221T180735Z" + - "&X-Amz-SignedHeaders=host" + - "&X-Amz-Expires=604800" + - "&X-Amz-Credential=foo%2F20161221%2Fus-east-1%2Frds%2Faws4_request" + - "&X-Amz-Signature=00822ebbba95e2e6ac09112aa85621fbef060a596e3e1480f9f4ac61493e9821"; - assertEquals(expectedPreSignedUrl, presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); - } + // The following params should not be included in the outgoing request + assertFalse(rawQueryParameters.containsKey("SourceRegion")); + assertFalse(rawQueryParameters.containsKey("DestinationRegion")); - @Test - public void testSkipsPresigningIfUrlSet() { - CopyDbClusterSnapshotRequest request = CopyDbClusterSnapshotRequest.builder() - .sourceRegion("us-west-2") - .preSignedUrl("PRESIGNED") - .build(); + if (testCase.shouldContainPreSignedUrl) { + List rawPresignedUrlValue = rawQueryParameters.get("PreSignedUrl"); + assertNotNull(rawPresignedUrlValue); + assertTrue(rawPresignedUrlValue.size() == 1); + String presignedUrl = rawPresignedUrlValue.get(0); + assertNotNull(presignedUrl); + // Validate that the URL can be parsed back + URI presignedUrlAsUri = URI.create(presignedUrl); + assertNotNull(presignedUrlAsUri); + if (testCase.expectedDestinationRegion != null) { + assertTrue(presignedUrl.contains("DestinationRegion=" + testCase.expectedDestinationRegion)); + } + if (testCase.expectedUri != null) { + assertEquals(normalize(URI.create(testCase.expectedUri)), normalize(presignedUrlAsUri)); + } + } else { + assertFalse(rawQueryParameters.containsKey("PreSignedUrl")); + } + } + public static List testCases() { + return Arrays.asList( + builder("CopyDbClusterSnapshot - Sets pre-signed URL when sourceRegion is set") + .clientConsumer(c -> c.copyDBClusterSnapshot(makeTestRequestBuilder() + .sourceRegion("us-east-1") + .build())) + .shouldContainPreSignedUrl(true) + .expectedDestinationRegion("us-east-1") + .build(), + builder("CopyDbClusterSnapshot - Doesn't set pre-signed URL when sourceRegion is NOT set") + .clientConsumer(c -> c.copyDBClusterSnapshot(makeTestRequestBuilder().build())) + .shouldContainPreSignedUrl(false) + .build(), + builder("CopyDbClusterSnapshot - Does not override pre-signed URL") + .clientConsumer(c -> c.copyDBClusterSnapshot( + makeTestRequestBuilder() + .sourceRegion("us-west-2") + .preSignedUrl("http://localhost?foo=bar") + .build())) + .shouldContainPreSignedUrl(true) + .expectedUri("http://localhost?foo=bar") + .build(), + builder("CopyDbClusterSnapshot - Fixed time") + .clientConfigure(c -> c.region(Region.US_WEST_2)) + .clientConsumer(c -> c.copyDBClusterSnapshot( + makeTestRequestBuilder() + .sourceRegion("us-east-1") + .build())) + .shouldContainPreSignedUrl(true) + .signingClockOverride(Clock.fixed(Instant.parse("2016-12-21T18:07:35.000Z"), ZoneId.of("UTC"))) + .expectedUri(fixedTimePresignedUrl()) + .build(), - SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshallRequest(request)); + builder("createDBCluster With SourceRegion Sends Presigned Url") + .clientConsumer(c -> c.createDBCluster(r -> r.kmsKeyId(TEST_KMS_KEY_ID) + .sourceRegion("us-west-2"))) + .shouldContainPreSignedUrl(true) + .expectedDestinationRegion("us-east-1") + .build(), + builder("createDBCluster Without SourceRegion Does NOT Send PresignedUrl") + .clientConsumer(c -> c.createDBCluster(r -> r.kmsKeyId(TEST_KMS_KEY_ID))) + .shouldContainPreSignedUrl(false) + .build() + ); + } - assertEquals("PRESIGNED", presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); + private static CopyDbClusterSnapshotRequest.Builder makeTestRequestBuilder() { + return CopyDbClusterSnapshotRequest + .builder() + .sourceDBClusterSnapshotIdentifier("arn:aws:rds:us-east-1:123456789012:snapshot:rds" + + ":test-instance-ss-2016-12-20-23-19") + .targetDBClusterSnapshotIdentifier("test-instance-ss-copy-2") + .kmsKeyId(TEST_KMS_KEY_ID); } - @Test - public void testSkipsPresigningIfSourceRegionNotSet() { - CopyDbClusterSnapshotRequest request = CopyDbClusterSnapshotRequest.builder().build(); + private static NeptuneClientBuilder client(CapturingInterceptor interceptor, Clock signingClockOverride) { + NeptuneClientBuilder builder = NeptuneClient + .builder() + .credentialsProvider( + StaticCredentialsProvider.create( + AwsBasicCredentials.create("foo", "bar"))) + .region(Region.US_EAST_1) + .addPlugin(c -> { + // Adds the capturing interceptor. + NeptuneServiceClientConfiguration.Builder config = + Validate.isInstanceOf(NeptuneServiceClientConfiguration.Builder.class, c, + "\uD83E\uDD14"); + config.overrideConfiguration(oc -> oc.addExecutionInterceptor(interceptor)); + }); - SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshallRequest(request)); + if (signingClockOverride != null) { + // Adds a auth scheme wrapper that handles the clock override + builder.addPlugin(c -> { + NeptuneServiceClientConfiguration.Builder config = + Validate.isInstanceOf(NeptuneServiceClientConfiguration.Builder.class, c, "\uD83E\uDD14"); + config.authSchemeProvider(clockOverridingAuthScheme(config.authSchemeProvider(), signingClockOverride)); + }); + } + return builder; + } - assertNull(presignedRequest.rawQueryParameters().get("PreSignedUrl")); + private static NeptuneAuthSchemeProvider clockOverridingAuthScheme(NeptuneAuthSchemeProvider source, + Clock signingClockOverride) { + return authSchemeParams -> { + List authSchemeOptions = source.resolveAuthScheme(authSchemeParams); + List result = new ArrayList<>(authSchemeOptions.size()); + for (AuthSchemeOption option : authSchemeOptions) { + if (option.schemeId().equals(AwsV4AuthScheme.SCHEME_ID)) { + option = option.toBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.SIGNING_CLOCK, signingClockOverride) + .build(); + } + result.add(option); + } + return result; + }; } - @Test - public void testParsesDestinationRegionfromRequestEndpoint() throws URISyntaxException { - CopyDbClusterSnapshotRequest request = CopyDbClusterSnapshotRequest.builder() - .sourceRegion("us-east-1") - .build(); - Region destination = Region.of("us-west-2"); - SdkHttpFullRequest marshalled = marshallRequest(request); + static String fixedTimePresignedUrl() { + return + "https://rds.us-east-1.amazonaws.com?" + + "Action=CopyDBClusterSnapshot" + + "&Version=2014-10-31" + + "&SourceDBClusterSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-east-1%3A123456789012" + + "%3Asnapshot%3Ards%3Atest-instance-ss-2016-12-20-23-19" + + "&TargetDBClusterSnapshotIdentifier=test-instance-ss-copy-2" + + "&KmsKeyId=arn%3Aaws%3Akms%3Aus-west-2%3A123456789012%3Akey%2F11111111-2222-3333" + + "-4444-555555555555" + + "&DestinationRegion=us-west-2" + + "&X-Amz-Algorithm=AWS4-HMAC-SHA256" + + "&X-Amz-Date=20161221T180735Z" + + "&X-Amz-SignedHeaders=host" + + "&X-Amz-Credential=foo%2F20161221%2Fus-east-1%2Frds%2Faws4_request" + + "&X-Amz-Expires=604800" + + "&X-Amz-Signature=00822ebbba95e2e6ac09112aa85621fbef060a596e3e1480f9f4ac61493e9821"; + } - final SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshalled); + private Map> rawQueryParameters(SdkHttpFullRequest request) { + // Retrieve back from the query parameters from the body, this is best-effort only. + try { + String decodedQueryParams = IoUtils.toUtf8String(request.contentStreamProvider().get().newStream()); + String[] keyValuePairs = decodedQueryParams.split("&"); + Map> result = new LinkedHashMap<>(); + for (String keyValuePair : keyValuePairs) { + String[] kvpParts = keyValuePair.split("=", 2); + String value = URLDecoder.decode(kvpParts.length > 1 ? kvpParts[1] : "", StandardCharsets.UTF_8.name()); + result.computeIfAbsent(kvpParts[0], x -> new ArrayList<>()).add(value); + } + return result; + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } - final URI presignedUrl = new URI(presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); - assertTrue(presignedUrl.toString().contains("DestinationRegion=" + destination.id())); + static TestCaseBuilder builder(String name) { + return new TestCaseBuilder() + .clientConfigure(c -> { + }) + .name(name); } - @Test - public void testSourceRegionRemovedFromOriginalRequest() { - CopyDbClusterSnapshotRequest request = makeTestRequest(); - SdkHttpFullRequest marshalled = marshallRequest(request); - SdkHttpRequest actual = modifyHttpRequest(presignInterceptor, request, marshalled); + private static String normalize(URI uri) { + String uriAsString = uri.toString(); + int queryStart = uriAsString.indexOf('?'); + if (queryStart == -1) { + return uriAsString; + } + String uriQueryPrefix = uriAsString.substring(0, queryStart); + String query = uri.getQuery(); + if (query == null) { + return uriAsString; + } + if (!query.isEmpty()) { + String[] queryParts = query.split("&"); + query = Arrays.stream(queryParts) + .sorted() + .collect(Collectors.joining("&")); - assertFalse(actual.rawQueryParameters().containsKey("SourceRegion")); + } + return uriQueryPrefix + "?" + query; } - private SdkHttpFullRequest marshallRequest(CopyDbClusterSnapshotRequest request) { - SdkHttpFullRequest.Builder marshalled = marshaller.marshall(request).toBuilder(); + static class TestCase { + private final String name; + private final Consumer clientConfigure; + private final Consumer clientConsumer; + private final Boolean shouldContainPreSignedUrl; + private final String expectedDestinationRegion; + private final Clock signingClockOverride; + private final String expectedUri; - URI endpoint = new DefaultServiceEndpointBuilder("rds", Protocol.HTTPS.toString()) - .withRegion(DESTINATION_REGION) - .getServiceEndpoint(); - return marshalled.uri(endpoint).build(); + TestCase(TestCaseBuilder builder) { + this.name = Validate.notNull(builder.name, "name"); + this.clientConsumer = Validate.notNull(builder.clientConsumer, "clientConsumer"); + this.clientConfigure = Validate.notNull(builder.clientConfigure, "clientConfigure"); + this.shouldContainPreSignedUrl = builder.shouldContainPreSignedUrl; + this.expectedDestinationRegion = builder.expectedDestinationRegion; + this.signingClockOverride = builder.signingClockOverride; + this.expectedUri = builder.expectedUri; + } } - private ExecutionAttributes executionAttributes() { - return new ExecutionAttributes().putAttribute(AwsSignerExecutionAttribute.AWS_CREDENTIALS, CREDENTIALS) - .putAttribute(AwsSignerExecutionAttribute.SIGNING_REGION, DESTINATION_REGION) - .putAttribute(SdkExecutionAttribute.PROFILE_FILE_SUPPLIER, - ProfileFile::defaultProfileFile) - .putAttribute(SdkExecutionAttribute.PROFILE_NAME, "default"); - } + static class TestCaseBuilder { + private String name; + private Consumer clientConfigure; + private Consumer clientConsumer; + private Boolean shouldContainPreSignedUrl; + private String expectedDestinationRegion; + private Clock signingClockOverride; + private String expectedUri; - private CopyDbClusterSnapshotRequest makeTestRequest() { - return CopyDbClusterSnapshotRequest.builder() - .sourceDBClusterSnapshotIdentifier("arn:aws:rds:us-east-1:123456789012:snapshot:rds:test-instance-ss-2016-12-20-23-19") - .targetDBClusterSnapshotIdentifier("test-instance-ss-copy-2") - .sourceRegion("us-east-1") - .kmsKeyId("arn:aws:kms:us-west-2:123456789012:key/11111111-2222-3333-4444-555555555555") - .build(); + private TestCaseBuilder name(String name) { + this.name = name; + return this; + } + + private TestCaseBuilder clientConfigure(Consumer clientConfigure) { + this.clientConfigure = clientConfigure; + return this; + } + + private TestCaseBuilder clientConsumer(Consumer clientConsumer) { + this.clientConsumer = clientConsumer; + return this; + } + + private TestCaseBuilder shouldContainPreSignedUrl(Boolean value) { + this.shouldContainPreSignedUrl = value; + return this; + } + + private TestCaseBuilder expectedDestinationRegion(String value) { + this.expectedDestinationRegion = value; + return this; + } + + public TestCaseBuilder signingClockOverride(Clock signingClockOverride) { + this.signingClockOverride = signingClockOverride; + return this; + } + + public TestCaseBuilder expectedUri(String expectedUri) { + this.expectedUri = expectedUri; + return this; + } + + public TestCase build() { + return new TestCase(this); + } } - private SdkHttpRequest modifyHttpRequest(ExecutionInterceptor interceptor, - NeptuneRequest request, - SdkHttpFullRequest httpRequest) { - InterceptorContext context = InterceptorContext.builder().request(request).httpRequest(httpRequest).build(); - return interceptor.modifyHttpRequest(context, executionAttributes()); + static class CapturingInterceptor implements ExecutionInterceptor { + private static final RuntimeException BOOM = new RuntimeException("boom!"); + private Context.BeforeTransmission context; + private ExecutionAttributes executionAttributes; + + @Override + public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { + this.context = context; + this.executionAttributes = executionAttributes; + throw BOOM; + } + + public ExecutionAttributes executionAttributes() { + return executionAttributes; + } + + public SdkHttpRequest httpRequest() { + return context.httpRequest(); + } } } diff --git a/services/neptunedata/pom.xml b/services/neptunedata/pom.xml index 623f0b3348a5..acdd636333eb 100644 --- a/services/neptunedata/pom.xml +++ b/services/neptunedata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT neptunedata AWS Java SDK :: Services :: Neptunedata diff --git a/services/neptunedata/src/main/resources/codegen-resources/customization.config b/services/neptunedata/src/main/resources/codegen-resources/customization.config index 1afec6c42d9f..ee5bd0ef80b2 100644 --- a/services/neptunedata/src/main/resources/codegen-resources/customization.config +++ b/services/neptunedata/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "customErrorCodeFieldName": "code" + "customErrorCodeFieldName": "code", + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/neptunegraph/pom.xml b/services/neptunegraph/pom.xml index fe9bb7f67df8..23242b2b373d 100644 --- a/services/neptunegraph/pom.xml +++ b/services/neptunegraph/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT neptunegraph AWS Java SDK :: Services :: Neptune Graph diff --git a/services/neptunegraph/src/main/resources/codegen-resources/customization.config b/services/neptunegraph/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/neptunegraph/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/neptunegraph/src/main/resources/codegen-resources/service-2.json b/services/neptunegraph/src/main/resources/codegen-resources/service-2.json index b81dcd685d03..35740ac3219f 100644 --- a/services/neptunegraph/src/main/resources/codegen-resources/service-2.json +++ b/services/neptunegraph/src/main/resources/codegen-resources/service-2.json @@ -30,11 +30,35 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

    Deletes the specified import task

    ", + "documentation":"

    Deletes the specified import task.

    ", "staticContextParams":{ "ApiType":{"value":"ControlPlane"} } }, + "CancelQuery":{ + "name":"CancelQuery", + "http":{ + "method":"DELETE", + "requestUri":"/queries/{queryId}", + "responseCode":200 + }, + "input":{"shape":"CancelQueryInput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Cancels a specified query.

    ", + "endpoint":{ + "hostPrefix":"{graphIdentifier}." + }, + "idempotent":true, + "staticContextParams":{ + "ApiType":{"value":"DataPlane"} + } + }, "CreateGraph":{ "name":"CreateGraph", "http":{ @@ -184,6 +208,31 @@ "ApiType":{"value":"ControlPlane"} } }, + "ExecuteQuery":{ + "name":"ExecuteQuery", + "http":{ + "method":"POST", + "requestUri":"/queries", + "responseCode":200 + }, + "input":{"shape":"ExecuteQueryInput"}, + "output":{"shape":"ExecuteQueryOutput"}, + "errors":[ + {"shape":"UnprocessableException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Execute an openCypher query. Currently, the SDK does not support parameterized queries. If you want to make a parameterized query call, you can use an HTTP request.

    When invoking this operation in a Neptune Analytics cluster, the IAM user or role making the request must have a policy attached that allows one of the following IAM actions in that cluster, depending on the query:

    • neptune-graph:ReadDataViaQuery

    • neptune-graph:WriteDataViaQuery

    • neptune-graph:DeleteDataViaQuery

    Non-parametrized queries are not considered for plan caching. You can force plan caching with planCache=enabled. The plan cache will be reused only for the same exact query. Slight variations in the query will not be able to reuse the query plan cache.

    ", + "endpoint":{ + "hostPrefix":"{graphIdentifier}." + }, + "staticContextParams":{ + "ApiType":{"value":"DataPlane"} + } + }, "GetGraph":{ "name":"GetGraph", "http":{ @@ -224,6 +273,30 @@ "ApiType":{"value":"ControlPlane"} } }, + "GetGraphSummary":{ + "name":"GetGraphSummary", + "http":{ + "method":"GET", + "requestUri":"/summary", + "responseCode":200 + }, + "input":{"shape":"GetGraphSummaryInput"}, + "output":{"shape":"GetGraphSummaryOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Gets a graph summary for a property graph.

    ", + "endpoint":{ + "hostPrefix":"{graphIdentifier}." + }, + "staticContextParams":{ + "ApiType":{"value":"DataPlane"} + } + }, "GetImportTask":{ "name":"GetImportTask", "http":{ @@ -264,6 +337,30 @@ "ApiType":{"value":"ControlPlane"} } }, + "GetQuery":{ + "name":"GetQuery", + "http":{ + "method":"GET", + "requestUri":"/queries/{queryId}", + "responseCode":200 + }, + "input":{"shape":"GetQueryInput"}, + "output":{"shape":"GetQueryOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Retrieves the status of a specified query.

    When invoking this operation in a Neptune Analytics cluster, the IAM user or role making the request must have the neptune-graph:GetQueryStatus IAM action attached.

    ", + "endpoint":{ + "hostPrefix":"{graphIdentifier}." + }, + "staticContextParams":{ + "ApiType":{"value":"DataPlane"} + } + }, "ListGraphSnapshots":{ "name":"ListGraphSnapshots", "http":{ @@ -343,6 +440,29 @@ "ApiType":{"value":"ControlPlane"} } }, + "ListQueries":{ + "name":"ListQueries", + "http":{ + "method":"GET", + "requestUri":"/queries", + "responseCode":200 + }, + "input":{"shape":"ListQueriesInput"}, + "output":{"shape":"ListQueriesOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists active openCypher queries.

    ", + "endpoint":{ + "hostPrefix":"{graphIdentifier}." + }, + "staticContextParams":{ + "ApiType":{"value":"DataPlane"} + } + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -471,6 +591,22 @@ } }, "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{ + "shape":"String", + "documentation":"

    A message describing the problem.

    " + } + }, + "documentation":"

    Raised in case of an authentication or authorization failure.

    ", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, "Arn":{ "type":"string", "max":1011, @@ -512,7 +648,7 @@ }, "source":{ "shape":"String", - "documentation":"

    A URL identifying to the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot

    " + "documentation":"

    A URL identifying to the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot.

    " }, "format":{ "shape":"Format", @@ -528,6 +664,28 @@ } } }, + "CancelQueryInput":{ + "type":"structure", + "required":[ + "graphIdentifier", + "queryId" + ], + "members":{ + "graphIdentifier":{ + "shape":"GraphIdentifier", + "documentation":"

    The unique identifier of the Neptune Analytics graph.

    ", + "hostLabel":true, + "location":"header", + "locationName":"graphIdentifier" + }, + "queryId":{ + "shape":"String", + "documentation":"

    The unique identifier of the query to cancel.

    ", + "location":"uri", + "locationName":"queryId" + } + } + }, "ConflictException":{ "type":"structure", "required":["message"], @@ -569,7 +727,7 @@ }, "publicConnectivity":{ "shape":"Boolean", - "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs IAM authenticated. (true to enable, or false to disable.

    " + "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs is IAM authenticated. (true to enable, or false to disable.

    " }, "kmsKeyIdentifier":{ "shape":"KmsKeyArn", @@ -581,7 +739,7 @@ }, "replicaCount":{ "shape":"ReplicaCount", - "documentation":"

    The number of replicas in other AZs. Min =0, Max = 2, Default =1

    " + "documentation":"

    The number of replicas in other AZs. Min =0, Max = 2, Default = 1.

    " }, "deletionProtection":{ "shape":"Boolean", @@ -635,7 +793,7 @@ }, "publicConnectivity":{ "shape":"Boolean", - "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs IAM authenticated.

    " + "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs is IAM authenticated.

    " }, "vectorSearchConfiguration":{ "shape":"VectorSearchConfiguration", @@ -740,7 +898,7 @@ }, "publicConnectivity":{ "shape":"Boolean", - "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs IAM authenticated. (true to enable, or false to disable.

    " + "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs is IAM authenticated. (true to enable, or false to disable).

    " }, "kmsKeyIdentifier":{ "shape":"KmsKeyArn", @@ -1062,6 +1220,104 @@ } } }, + "Document":{ + "type":"structure", + "members":{ + }, + "document":true + }, + "DocumentValuedMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"Document"} + }, + "EdgeLabels":{ + "type":"list", + "member":{"shape":"String"} + }, + "EdgeProperties":{ + "type":"list", + "member":{"shape":"String"} + }, + "EdgeStructure":{ + "type":"structure", + "members":{ + "count":{ + "shape":"Long", + "documentation":"

    The number of instances of the edge in the graph.

    " + }, + "edgeProperties":{ + "shape":"EdgeProperties", + "documentation":"

    A list of the properties associated with the edge.

    " + } + }, + "documentation":"

    Contains information about an edge in a Neptune Analytics graph.

    " + }, + "EdgeStructures":{ + "type":"list", + "member":{"shape":"EdgeStructure"} + }, + "ExecuteQueryInput":{ + "type":"structure", + "required":[ + "graphIdentifier", + "queryString", + "language" + ], + "members":{ + "graphIdentifier":{ + "shape":"GraphIdentifier", + "documentation":"

    The unique identifier of the Neptune Analytics graph.

    ", + "hostLabel":true, + "location":"header", + "locationName":"graphIdentifier" + }, + "queryString":{ + "shape":"String", + "documentation":"

    The query string to be executed.

    ", + "locationName":"query" + }, + "language":{ + "shape":"QueryLanguage", + "documentation":"

    The query language the query is written in. Currently only openCypher is supported.

    " + }, + "parameters":{ + "shape":"DocumentValuedMap", + "documentation":"

    The data parameters the query can use in JSON format. For example: {\"name\": \"john\", \"age\": 20}. (optional)

    " + }, + "planCache":{ + "shape":"PlanCacheType", + "documentation":"

    Query plan cache is a feature that saves the query plan and reuses it on successive executions of the same query. This reduces query latency, and works for both READ and UPDATE queries. The plan cache is an LRU cache with a 5 minute TTL and a capacity of 1000.

    " + }, + "explainMode":{ + "shape":"ExplainMode", + "documentation":"

    The explain mode parameter returns a query explain instead of the actual query results. A query explain can be used to gather insights about the query execution such as planning decisions, time spent on each operator, solutions flowing etc.

    ", + "locationName":"explain" + }, + "queryTimeoutMilliseconds":{ + "shape":"Integer", + "documentation":"

    Specifies the query timeout duration, in milliseconds. (optional)

    " + } + } + }, + "ExecuteQueryOutput":{ + "type":"structure", + "required":["payload"], + "members":{ + "payload":{ + "shape":"QueryResponseBlob", + "documentation":"

    The query results.

    " + } + }, + "payload":"payload" + }, + "ExplainMode":{ + "type":"string", + "enum":[ + "STATIC", + "DETAILS" + ] + }, "Format":{ "type":"string", "enum":[ @@ -1198,6 +1454,42 @@ } } }, + "GetGraphSummaryInput":{ + "type":"structure", + "required":["graphIdentifier"], + "members":{ + "graphIdentifier":{ + "shape":"GraphIdentifier", + "documentation":"

    The unique identifier of the Neptune Analytics graph.

    ", + "hostLabel":true, + "location":"header", + "locationName":"graphIdentifier" + }, + "mode":{ + "shape":"GraphSummaryMode", + "documentation":"

    The summary mode can take one of two values: basic (the default), and detailed.

    ", + "location":"querystring", + "locationName":"mode" + } + } + }, + "GetGraphSummaryOutput":{ + "type":"structure", + "members":{ + "version":{ + "shape":"String", + "documentation":"

    Display the version of this tool.

    " + }, + "lastStatisticsComputationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The timestamp, in ISO 8601 format, of the time at which Neptune Analytics last computed statistics.

    " + }, + "graphSummary":{ + "shape":"GraphDataSummary", + "documentation":"

    The graph summary.

    " + } + } + }, "GetImportTaskInput":{ "type":"structure", "required":["taskIdentifier"], @@ -1308,6 +1600,115 @@ } } }, + "GetQueryInput":{ + "type":"structure", + "required":[ + "graphIdentifier", + "queryId" + ], + "members":{ + "graphIdentifier":{ + "shape":"GraphIdentifier", + "documentation":"

    The unique identifier of the Neptune Analytics graph.

    ", + "hostLabel":true, + "location":"header", + "locationName":"graphIdentifier" + }, + "queryId":{ + "shape":"String", + "documentation":"

    The ID of the query in question.

    ", + "location":"uri", + "locationName":"queryId" + } + } + }, + "GetQueryOutput":{ + "type":"structure", + "members":{ + "id":{ + "shape":"String", + "documentation":"

    The ID of the query in question.

    " + }, + "queryString":{ + "shape":"String", + "documentation":"

    The query in question.

    " + }, + "waited":{ + "shape":"Integer", + "documentation":"

    Indicates how long the query waited, in milliseconds.

    " + }, + "elapsed":{ + "shape":"Integer", + "documentation":"

    The number of milliseconds the query has been running.

    " + }, + "state":{ + "shape":"QueryState", + "documentation":"

    State of the query.

    " + } + } + }, + "GraphDataSummary":{ + "type":"structure", + "members":{ + "numNodes":{ + "shape":"Long", + "documentation":"

    The number of nodes in the graph.

    " + }, + "numEdges":{ + "shape":"Long", + "documentation":"

    The number of edges in the graph.

    " + }, + "numNodeLabels":{ + "shape":"Long", + "documentation":"

    The number of distinct node labels in the graph.

    " + }, + "numEdgeLabels":{ + "shape":"Long", + "documentation":"

    The number of unique edge labels in the graph.

    " + }, + "nodeLabels":{ + "shape":"NodeLabels", + "documentation":"

    A list of distinct node labels in the graph.

    " + }, + "edgeLabels":{ + "shape":"EdgeLabels", + "documentation":"

    A list of the edge labels in the graph.

    " + }, + "numNodeProperties":{ + "shape":"Long", + "documentation":"

    The number of distinct node properties in the graph.

    " + }, + "numEdgeProperties":{ + "shape":"Long", + "documentation":"

    The number of edge properties in the graph.

    " + }, + "nodeProperties":{ + "shape":"LongValuedMapList", + "documentation":"

    A list of the distinct node properties in the graph, along with the count of nodes where each property is used.

    " + }, + "edgeProperties":{ + "shape":"LongValuedMapList", + "documentation":"

    A list of the distinct edge properties in the graph, along with the count of edges where each property is used.

    " + }, + "totalNodePropertyValues":{ + "shape":"Long", + "documentation":"

    The total number of usages of all node properties.

    " + }, + "totalEdgePropertyValues":{ + "shape":"Long", + "documentation":"

    The total number of usages of all edge properties.

    " + }, + "nodeStructures":{ + "shape":"NodeStructures", + "documentation":"

    This field is only present when the requested mode is DETAILED. It contains a list of node structures.

    " + }, + "edgeStructures":{ + "shape":"EdgeStructures", + "documentation":"

    This field is only present when the requested mode is DETAILED. It contains a list of edge structures.

    " + } + }, + "documentation":"

    Summary information about the graph.

    " + }, "GraphId":{ "type":"string", "pattern":"g-[a-z0-9]{10}" @@ -1432,6 +1833,13 @@ "type":"list", "member":{"shape":"GraphSummary"} }, + "GraphSummaryMode":{ + "type":"string", + "enum":[ + "BASIC", + "DETAILED" + ] + }, "ImportOptions":{ "type":"structure", "members":{ @@ -1707,6 +2115,44 @@ } } }, + "ListQueriesInput":{ + "type":"structure", + "required":[ + "graphIdentifier", + "maxResults" + ], + "members":{ + "graphIdentifier":{ + "shape":"GraphIdentifier", + "documentation":"

    The unique identifier of the Neptune Analytics graph.

    ", + "hostLabel":true, + "location":"header", + "locationName":"graphIdentifier" + }, + "maxResults":{ + "shape":"Integer", + "documentation":"

    The maximum number of results to be fetched by the API.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "state":{ + "shape":"QueryStateInput", + "documentation":"

    Filtered list of queries based on state.

    ", + "location":"querystring", + "locationName":"state" + } + } + }, + "ListQueriesOutput":{ + "type":"structure", + "required":["queries"], + "members":{ + "queries":{ + "shape":"QuerySummaryList", + "documentation":"

    A list of current openCypher queries.

    " + } + } + }, "ListTagsForResourceInput":{ "type":"structure", "required":["resourceArn"], @@ -1732,6 +2178,15 @@ "type":"long", "box":true }, + "LongValuedMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"Long"} + }, + "LongValuedMapList":{ + "type":"list", + "member":{"shape":"LongValuedMap"} + }, "MaxResults":{ "type":"integer", "box":true, @@ -1759,7 +2214,7 @@ }, "preserveEdgeIds":{ "shape":"Boolean", - "documentation":"

    Neptune Analytics currently does not support user defined edge ids. The edge ids are not imported by default. They are imported if preserveEdgeIds is set to true, and ids are stored as properties on the relationships with the property name neptuneEdgeId.

    " + "documentation":"

    Neptune Analytics currently does not support user defined edge ids. The edge ids are not imported by default. They are imported if preserveEdgeIds is set to true, and ids are stored as properties on the relationships with the property name neptuneEdgeId.

    " } }, "documentation":"

    Options for how to import Neptune data.

    " @@ -1774,11 +2229,53 @@ "max":1024, "min":1 }, + "NodeLabels":{ + "type":"list", + "member":{"shape":"String"} + }, + "NodeProperties":{ + "type":"list", + "member":{"shape":"String"} + }, + "NodeStructure":{ + "type":"structure", + "members":{ + "count":{ + "shape":"Long", + "documentation":"

    The number of instances of this node.

    " + }, + "nodeProperties":{ + "shape":"NodeProperties", + "documentation":"

    Properties associated with this node.

    " + }, + "distinctOutgoingEdgeLabels":{ + "shape":"OutgoingEdgeLabels", + "documentation":"

    The outgoing edge labels associated with this node.

    " + } + }, + "documentation":"

    Information about a node.

    " + }, + "NodeStructures":{ + "type":"list", + "member":{"shape":"NodeStructure"} + }, + "OutgoingEdgeLabels":{ + "type":"list", + "member":{"shape":"String"} + }, "PaginationToken":{ "type":"string", "max":8192, "min":1 }, + "PlanCacheType":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED", + "AUTO" + ] + }, "PrivateGraphEndpointStatus":{ "type":"string", "enum":[ @@ -1825,6 +2322,61 @@ "max":24576, "min":128 }, + "QueryLanguage":{ + "type":"string", + "enum":["OPEN_CYPHER"] + }, + "QueryResponseBlob":{ + "type":"blob", + "streaming":true + }, + "QueryState":{ + "type":"string", + "enum":[ + "RUNNING", + "WAITING", + "CANCELLING" + ] + }, + "QueryStateInput":{ + "type":"string", + "enum":[ + "ALL", + "RUNNING", + "WAITING", + "CANCELLING" + ] + }, + "QuerySummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"String", + "documentation":"

    A string representation of the id of the query.

    " + }, + "queryString":{ + "shape":"String", + "documentation":"

    The actual query text. The queryString may be truncated if the actual query string is too long.

    " + }, + "waited":{ + "shape":"Integer", + "documentation":"

    The amount of time, in milliseconds, the query has waited in the queue before being picked up by a worker thread.

    " + }, + "elapsed":{ + "shape":"Integer", + "documentation":"

    The running time of the query, in milliseconds.

    " + }, + "state":{ + "shape":"QueryState", + "documentation":"

    State of the query.

    " + } + }, + "documentation":"

    Details of the query listed.

    " + }, + "QuerySummaryList":{ + "type":"list", + "member":{"shape":"QuerySummary"} + }, "ReplicaCount":{ "type":"integer", "box":true, @@ -1968,7 +2520,7 @@ }, "publicConnectivity":{ "shape":"Boolean", - "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs IAM authenticated. (true to enable, or false to disable).

    " + "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs is IAM authenticated. (true to enable, or false to disable).

    " } } }, @@ -2116,6 +2668,10 @@ "max":6, "min":1 }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, "TagKey":{ "type":"string", "max":128, @@ -2186,6 +2742,36 @@ "retryable":{"throttling":true} }, "Timestamp":{"type":"timestamp"}, + "UnprocessableException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "message":{"shape":"String"}, + "reason":{ + "shape":"UnprocessableExceptionReason", + "documentation":"

    The reason for the unprocessable exception.

    " + } + }, + "documentation":"

    Request cannot be processed due to known reasons. Eg. partition full.

    ", + "error":{ + "httpStatusCode":422, + "senderFault":true + }, + "exception":true + }, + "UnprocessableExceptionReason":{ + "type":"string", + "enum":[ + "QUERY_TIMEOUT", + "INTERNAL_LIMIT_EXCEEDED", + "MEMORY_LIMIT_EXCEEDED", + "STORAGE_LIMIT_EXCEEDED", + "PARTITION_FULL" + ] + }, "UntagResourceInput":{ "type":"structure", "required":[ @@ -2224,7 +2810,7 @@ }, "publicConnectivity":{ "shape":"Boolean", - "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs IAM authenticated. (true to enable, or false to disable.

    " + "documentation":"

    Specifies whether or not the graph can be reachable over the internet. All access to graphs is IAM authenticated. (true to enable, or false to disable.

    " }, "provisionedMemory":{ "shape":"ProvisionedMemory", @@ -2316,7 +2902,7 @@ "documentation":"

    The reason that the resource could not be validated.

    " } }, - "documentation":"

    A resource could not be validated

    ", + "documentation":"

    A resource could not be validated.

    ", "error":{ "httpStatusCode":400, "senderFault":true @@ -2361,5 +2947,5 @@ "pattern":"vpc-[a-z0-9]+" } }, - "documentation":"

    Neptune Analytics is a serverless in-memory graph database service for analytics that delivers high-performance analytics and real-time queries for any graph type. It complements the Amazon Neptune Database, an industry-leading managed graph database.

    " + "documentation":"

    Neptune Analytics is a new analytics database engine for Amazon Neptune that helps customers get to insights faster by quickly processing large amounts of graph data, invoking popular graph analytic algorithms in low-latency queries, and getting analytics results in seconds.

    " } diff --git a/services/networkfirewall/pom.xml b/services/networkfirewall/pom.xml index e37d61fd0b9a..efb562918003 100644 --- a/services/networkfirewall/pom.xml +++ b/services/networkfirewall/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT networkfirewall AWS Java SDK :: Services :: Network Firewall diff --git a/services/networkfirewall/src/main/resources/codegen-resources/customization.config b/services/networkfirewall/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/networkfirewall/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/networkmanager/pom.xml b/services/networkmanager/pom.xml index 80fcbaa3f181..6df809326563 100644 --- a/services/networkmanager/pom.xml +++ b/services/networkmanager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT networkmanager AWS Java SDK :: Services :: NetworkManager diff --git a/services/networkmanager/src/main/resources/codegen-resources/customization.config b/services/networkmanager/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/networkmanager/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/networkmonitor/pom.xml b/services/networkmonitor/pom.xml index 1edb9aa63d83..cab8a7c525e1 100644 --- a/services/networkmonitor/pom.xml +++ b/services/networkmonitor/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT networkmonitor AWS Java SDK :: Services :: Network Monitor diff --git a/services/networkmonitor/src/main/resources/codegen-resources/customization.config b/services/networkmonitor/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/networkmonitor/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/nimble/pom.xml b/services/nimble/pom.xml index 4f8a8c72bec4..e98184971cb0 100644 --- a/services/nimble/pom.xml +++ b/services/nimble/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT nimble AWS Java SDK :: Services :: Nimble diff --git a/services/nimble/src/main/resources/codegen-resources/customization.config b/services/nimble/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/nimble/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/oam/pom.xml b/services/oam/pom.xml index 5f85cacb4ff5..4f63c47e539b 100644 --- a/services/oam/pom.xml +++ b/services/oam/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT oam AWS Java SDK :: Services :: OAM diff --git a/services/oam/src/main/resources/codegen-resources/customization.config b/services/oam/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/oam/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/omics/pom.xml b/services/omics/pom.xml index edc94c09d2a7..98d09c6f9711 100644 --- a/services/omics/pom.xml +++ b/services/omics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT omics AWS Java SDK :: Services :: Omics diff --git a/services/omics/src/main/resources/codegen-resources/customization.config b/services/omics/src/main/resources/codegen-resources/customization.config index 0e729acd0371..2a734ae11b2b 100644 --- a/services/omics/src/main/resources/codegen-resources/customization.config +++ b/services/omics/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/opensearch/pom.xml b/services/opensearch/pom.xml index afa5cc260bdd..b683320a232f 100644 --- a/services/opensearch/pom.xml +++ b/services/opensearch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT opensearch AWS Java SDK :: Services :: Open Search diff --git a/services/opensearch/src/main/resources/codegen-resources/customization.config b/services/opensearch/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/opensearch/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/opensearch/src/main/resources/codegen-resources/service-2.json b/services/opensearch/src/main/resources/codegen-resources/service-2.json index 67a58218ed8e..240da0c77905 100644 --- a/services/opensearch/src/main/resources/codegen-resources/service-2.json +++ b/services/opensearch/src/main/resources/codegen-resources/service-2.json @@ -95,6 +95,23 @@ ], "documentation":"

    Provides access to an Amazon OpenSearch Service domain through the use of an interface VPC endpoint.

    " }, + "CancelDomainConfigChange":{ + "name":"CancelDomainConfigChange", + "http":{ + "method":"POST", + "requestUri":"/2021-01-01/opensearch/domain/{DomainName}/config/cancel" + }, + "input":{"shape":"CancelDomainConfigChangeRequest"}, + "output":{"shape":"CancelDomainConfigChangeResponse"}, + "errors":[ + {"shape":"BaseException"}, + {"shape":"InternalException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"DisabledOperationException"} + ], + "documentation":"

    Cancels a pending configuration change on an Amazon OpenSearch Service domain.

    " + }, "CancelServiceSoftwareUpdate":{ "name":"CancelServiceSoftwareUpdate", "http":{ @@ -1648,6 +1665,38 @@ "exception":true }, "Boolean":{"type":"boolean"}, + "CancelDomainConfigChangeRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{ + "shape":"DomainName", + "location":"uri", + "locationName":"DomainName" + }, + "DryRun":{ + "shape":"DryRun", + "documentation":"

    When set to True, returns the list of change IDs and properties that will be cancelled without actually cancelling the change.

    " + } + } + }, + "CancelDomainConfigChangeResponse":{ + "type":"structure", + "members":{ + "CancelledChangeIds":{ + "shape":"GUIDList", + "documentation":"

    The unique identifiers of the changes that were cancelled.

    " + }, + "CancelledChangeProperties":{ + "shape":"CancelledChangePropertyList", + "documentation":"

    The domain change properties that were cancelled.

    " + }, + "DryRun":{ + "shape":"DryRun", + "documentation":"

    Whether or not the request was a dry run. If True, the changes were not actually cancelled.

    " + } + } + }, "CancelServiceSoftwareUpdateRequest":{ "type":"structure", "required":["DomainName"], @@ -1669,6 +1718,28 @@ }, "documentation":"

    Container for the response to a CancelServiceSoftwareUpdate operation. Contains the status of the update.

    " }, + "CancelledChangeProperty":{ + "type":"structure", + "members":{ + "PropertyName":{ + "shape":"String", + "documentation":"

    The name of the property whose change was cancelled.

    " + }, + "CancelledValue":{ + "shape":"String", + "documentation":"

    The pending value of the property that was cancelled. This would have been the eventual value of the property if the chance had not been cancelled.

    " + }, + "ActiveValue":{ + "shape":"String", + "documentation":"

    The current value of the property, after the change was cancelled.

    " + } + }, + "documentation":"

    A property change that was cancelled for an Amazon OpenSearch Service domain.

    " + }, + "CancelledChangePropertyList":{ + "type":"list", + "member":{"shape":"CancelledChangeProperty"} + }, "ChangeProgressDetails":{ "type":"structure", "members":{ @@ -1679,6 +1750,22 @@ "Message":{ "shape":"Message", "documentation":"

    A message corresponding to the status of the configuration change.

    " + }, + "ConfigChangeStatus":{ + "shape":"ConfigChangeStatus", + "documentation":"

    The current status of the configuration change.

    " + }, + "InitiatedBy":{ + "shape":"InitiatedBy", + "documentation":"

    The IAM principal who initiated the configuration change.

    " + }, + "StartTime":{ + "shape":"UpdateTimestamp", + "documentation":"

    The time that the configuration change was initiated, in Universal Coordinated Time (UTC).

    " + }, + "LastUpdatedTime":{ + "shape":"UpdateTimestamp", + "documentation":"

    The last time that the configuration change was updated.

    " } }, "documentation":"

    Container for information about a configuration change happening on a domain.

    " @@ -1750,6 +1837,18 @@ "ChangeProgressStages":{ "shape":"ChangeProgressStageList", "documentation":"

    The specific stages that the domain is going through to perform the configuration change.

    " + }, + "LastUpdatedTime":{ + "shape":"UpdateTimestamp", + "documentation":"

    The last time that the status of the configuration change was updated.

    " + }, + "ConfigChangeStatus":{ + "shape":"ConfigChangeStatus", + "documentation":"

    The current status of the configuration change.

    " + }, + "InitiatedBy":{ + "shape":"InitiatedBy", + "documentation":"

    The IAM principal who initiated the configuration change.

    " } }, "documentation":"

    The progress details of a specific domain configuration change.

    " @@ -1884,7 +1983,7 @@ "members":{ "Enabled":{ "shape":"Boolean", - "documentation":"

    Whether to enable or disable cold storage on the domain.

    " + "documentation":"

    Whether to enable or disable cold storage on the domain. You must enable UltraWarm storage to enable cold storage.

    " } }, "documentation":"

    Container for the parameters required to enable cold storage for an OpenSearch Service domain. For more information, see Cold storage for Amazon OpenSearch Service.

    " @@ -1911,6 +2010,19 @@ }, "documentation":"

    A map of OpenSearch or Elasticsearch versions and the versions you can upgrade them to.

    " }, + "ConfigChangeStatus":{ + "type":"string", + "enum":[ + "Pending", + "Initializing", + "Validating", + "ValidationFailed", + "ApplyingChanges", + "Completed", + "PendingUserInput", + "Cancelled" + ] + }, "ConflictException":{ "type":"structure", "members":{ @@ -2434,7 +2546,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    The result of a DescribeDomainAutoTunes request.

    " @@ -2700,7 +2812,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    Contains a list of connections matching the filter criteria.

    " @@ -2770,7 +2882,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    Contains a list of connections matching the filter criteria.

    " @@ -2840,7 +2952,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    Container for the response returned by the DescribePackages operation.

    " @@ -2874,7 +2986,7 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " }, "ReservedInstanceOfferings":{ "shape":"ReservedInstanceOfferingList", @@ -2912,7 +3024,7 @@ "members":{ "NextToken":{ "shape":"String", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " }, "ReservedInstances":{ "shape":"ReservedInstanceList", @@ -3070,6 +3182,10 @@ "SoftwareUpdateOptions":{ "shape":"SoftwareUpdateOptionsStatus", "documentation":"

    Software update options for the domain.

    " + }, + "ModifyingProperties":{ + "shape":"ModifyingPropertiesList", + "documentation":"

    Information about the domain properties that are currently being modified.

    " } }, "documentation":"

    Container for the configuration of an OpenSearch Service domain.

    " @@ -3321,6 +3437,18 @@ "DISSOCIATION_FAILED" ] }, + "DomainProcessingStatusType":{ + "type":"string", + "enum":[ + "Creating", + "Active", + "Modifying", + "UpgradingEngineVersion", + "UpdatingServiceSoftware", + "Isolated", + "Deleting" + ] + }, "DomainState":{ "type":"string", "enum":[ @@ -3453,6 +3581,14 @@ "SoftwareUpdateOptions":{ "shape":"SoftwareUpdateOptions", "documentation":"

    Service software update options for the domain.

    " + }, + "DomainProcessingStatus":{ + "shape":"DomainProcessingStatusType", + "documentation":"

    The status of any changes that are currently in progress for the domain.

    " + }, + "ModifyingProperties":{ + "shape":"ModifyingPropertiesList", + "documentation":"

    Information about the domain properties that are currently being modified.

    " } }, "documentation":"

    The current status of an OpenSearch Service domain.

    " @@ -3593,7 +3729,7 @@ "documentation":"

    The KMS key ID. Takes the form 1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a.

    " } }, - "documentation":"

    Specifies whether the domain should encrypt data at rest, and if so, the Key Management Service (KMS) key to use. Can be used only to create a new domain, not update an existing one.

    " + "documentation":"

    Specifies whether the domain should encrypt data at rest, and if so, the Key Management Service (KMS) key to use. Can only be used when creating a new domain or enabling encryption at rest for the first time on an existing domain. You can't modify this parameter after it's already been specified.

    " }, "EncryptionAtRestOptionsStatus":{ "type":"structure", @@ -3687,6 +3823,10 @@ "min":36, "pattern":"\\p{XDigit}{8}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{12}" }, + "GUIDList":{ + "type":"list", + "member":{"shape":"GUID"} + }, "GetCompatibleVersionsRequest":{ "type":"structure", "members":{ @@ -3839,7 +3979,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    Container for response returned by GetPackageVersionHistory operation.

    " @@ -3878,7 +4018,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    Container for the response returned by the GetUpgradeHistory operation.

    " @@ -3999,6 +4139,13 @@ "type":"list", "member":{"shape":"InboundConnection"} }, + "InitiatedBy":{ + "type":"string", + "enum":[ + "CUSTOMER", + "SERVICE" + ] + }, "InstanceCount":{ "type":"integer", "documentation":"

    Number of instances in an OpenSearch Service cluster.

    ", @@ -4226,7 +4373,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    The result of a ListDomainMaintenances request that contains information about the requested actions.

    " @@ -4287,7 +4434,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    Container for the response parameters to the ListDomainsForPackage operation.

    " @@ -4343,7 +4490,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } } }, @@ -4381,7 +4528,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    Container for the response parameters to the ListPackagesForDomain operation.

    " @@ -4419,7 +4566,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } } }, @@ -4473,7 +4620,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } }, "documentation":"

    Container for the parameters for response received from the ListVersions operation.

    " @@ -4509,7 +4656,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } } }, @@ -4544,7 +4691,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } } }, @@ -4572,7 +4719,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " } } }, @@ -4687,9 +4834,35 @@ "type":"integer", "documentation":"

    Minimum number of instances that can be instantiated for a given instance type.

    " }, + "ModifyingProperties":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"String", + "documentation":"

    The name of the property that is currently being modified.

    " + }, + "ActiveValue":{ + "shape":"String", + "documentation":"

    The current value of the domain property that is being modified.

    " + }, + "PendingValue":{ + "shape":"String", + "documentation":"

    The value that the property that is currently being modified will eventually have.

    " + }, + "ValueType":{ + "shape":"PropertyValueType", + "documentation":"

    The type of value that is currently being modified. Properties can have two types:

    • PLAIN_TEXT: Contain direct values such as \"1\", \"True\", or \"c5.large.search\".

    • STRINGIFIED_JSON: Contain content in JSON format, such as {\"Enabled\":\"True\"}\".

    " + } + }, + "documentation":"

    Information about the domain properties that are currently being modified.

    " + }, + "ModifyingPropertiesList":{ + "type":"list", + "member":{"shape":"ModifyingProperties"} + }, "NextToken":{ "type":"string", - "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

    " + "documentation":"

    When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Send the request again using the returned token to retrieve the next page.

    " }, "NodeId":{ "type":"string", @@ -4833,6 +5006,14 @@ "t3.large.search", "t3.xlarge.search", "t3.2xlarge.search", + "or1.medium.search", + "or1.large.search", + "or1.xlarge.search", + "or1.2xlarge.search", + "or1.4xlarge.search", + "or1.8xlarge.search", + "or1.12xlarge.search", + "or1.16xlarge.search", "ultrawarm1.medium.search", "ultrawarm1.large.search", "ultrawarm1.xlarge.search", @@ -5219,6 +5400,13 @@ "AWS_SERVICE" ] }, + "PropertyValueType":{ + "type":"string", + "enum":[ + "PLAIN_TEXT", + "STRINGIFIED_JSON" + ] + }, "PurchaseReservedInstanceOfferingRequest":{ "type":"structure", "required":[ @@ -6686,5 +6874,5 @@ ] } }, - "documentation":"

    Use the Amazon OpenSearch Service configuration API to create, configure, and manage OpenSearch Service domains.

    For sample code that uses the configuration API, see the Amazon OpenSearch Service Developer Guide . The guide also contains sample code for sending signed HTTP requests to the OpenSearch APIs. The endpoint for configuration service requests is Region specific: es.region.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported Regions and endpoints, see Amazon Web Services service endpoints.

    " + "documentation":"

    Use the Amazon OpenSearch Service configuration API to create, configure, and manage OpenSearch Service domains. The endpoint for configuration service requests is Region specific: es.region.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported Regions and endpoints, see Amazon Web Services service endpoints.

    " } diff --git a/services/opensearchserverless/pom.xml b/services/opensearchserverless/pom.xml index f12eb9910165..7f448c7b52b0 100644 --- a/services/opensearchserverless/pom.xml +++ b/services/opensearchserverless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT opensearchserverless AWS Java SDK :: Services :: Open Search Serverless diff --git a/services/opensearchserverless/src/main/resources/codegen-resources/customization.config b/services/opensearchserverless/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/opensearchserverless/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/opsworks/pom.xml b/services/opsworks/pom.xml index c97d4b53c06e..9298d14222b3 100644 --- a/services/opsworks/pom.xml +++ b/services/opsworks/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT opsworks AWS Java SDK :: Services :: AWS OpsWorks diff --git a/services/opsworks/src/main/resources/codegen-resources/customization.config b/services/opsworks/src/main/resources/codegen-resources/customization.config index 322f97faeedf..1fc96c8f1a37 100644 --- a/services/opsworks/src/main/resources/codegen-resources/customization.config +++ b/services/opsworks/src/main/resources/codegen-resources/customization.config @@ -1,24 +1,25 @@ { - "verifiedSimpleMethods": [ - "describeMyUserProfile", - "describeOperatingSystems", - "describeServiceErrors", - "describeStacks", - "describeUserProfiles" - ], - "excludedSimpleMethods": [ - "updateMyUserProfile", - "describeAgentVersions", - "describeApps", - "describeCommands", - "describeDeployments", - "describeEcsClusters", - "describeElasticIps", - "describeElasticLoadBalancers", - "describeInstances", - "describeLayers", - "describePermissions", - "describeRaidArrays", - "describeVolumes" - ] + "verifiedSimpleMethods": [ + "describeMyUserProfile", + "describeOperatingSystems", + "describeServiceErrors", + "describeStacks", + "describeUserProfiles" + ], + "excludedSimpleMethods": [ + "updateMyUserProfile", + "describeAgentVersions", + "describeApps", + "describeCommands", + "describeDeployments", + "describeEcsClusters", + "describeElasticIps", + "describeElasticLoadBalancers", + "describeInstances", + "describeLayers", + "describePermissions", + "describeRaidArrays", + "describeVolumes" + ], + "useSraAuth": true } diff --git a/services/opsworkscm/pom.xml b/services/opsworkscm/pom.xml index b801180ea3d4..02d62837932f 100644 --- a/services/opsworkscm/pom.xml +++ b/services/opsworkscm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT opsworkscm AWS Java SDK :: Services :: AWS OpsWorks for Chef Automate diff --git a/services/opsworkscm/src/main/resources/codegen-resources/customization.config b/services/opsworkscm/src/main/resources/codegen-resources/customization.config index 8ec17192be92..4fadaecb95f0 100644 --- a/services/opsworkscm/src/main/resources/codegen-resources/customization.config +++ b/services/opsworkscm/src/main/resources/codegen-resources/customization.config @@ -1,7 +1,8 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeAccountAttributes", "describeBackups", "describeServers" - ] + ], + "useSraAuth": true } diff --git a/services/organizations/pom.xml b/services/organizations/pom.xml index f3df94e20228..bf42e1f2c477 100644 --- a/services/organizations/pom.xml +++ b/services/organizations/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT organizations AWS Java SDK :: Services :: AWS Organizations diff --git a/services/organizations/src/main/resources/codegen-resources/customization.config b/services/organizations/src/main/resources/codegen-resources/customization.config index b4fe8b6eb29e..d99a78e26192 100644 --- a/services/organizations/src/main/resources/codegen-resources/customization.config +++ b/services/organizations/src/main/resources/codegen-resources/customization.config @@ -1,15 +1,18 @@ { - "verifiedSimpleMethods": [ - "createOrganization", - "deleteOrganization", - "enableAllFeatures", - "leaveOrganization", - "describeOrganization", - "listAccounts", - "listCreateAccountStatus", - "listHandshakesForOrganization", - "listHandshakesForAccount", - "listRoots", - "listAWSServiceAccessForOrganization" - ] + "verifiedSimpleMethods": [ + "createOrganization", + "deleteOrganization", + "enableAllFeatures", + "leaveOrganization", + "describeOrganization", + "listAccounts", + "listCreateAccountStatus", + "listHandshakesForOrganization", + "listHandshakesForAccount", + "listRoots", + "listAWSServiceAccessForOrganization" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/organizations/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/organizations/src/main/resources/codegen-resources/endpoint-rule-set.json index af8bfbf83c1b..40881cb7e34c 100644 --- a/services/organizations/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/organizations/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -388,7 +386,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -423,7 +420,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -434,14 +430,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -455,14 +453,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -471,11 +467,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -486,14 +482,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -507,7 +505,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -527,7 +524,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -538,14 +534,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -556,9 +554,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/organizations/src/main/resources/codegen-resources/service-2.json b/services/organizations/src/main/resources/codegen-resources/service-2.json index 8cf73c8e9c1b..cf407389b090 100644 --- a/services/organizations/src/main/resources/codegen-resources/service-2.json +++ b/services/organizations/src/main/resources/codegen-resources/service-2.json @@ -100,7 +100,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"UnsupportedAPIEndpointException"} ], - "documentation":"

    Closes an Amazon Web Services member account within an organization. You can close an account when all features are enabled . You can't close the management account with this API. This is an asynchronous request that Amazon Web Services performs in the background. Because CloseAccount operates asynchronously, it can return a successful completion message even though account closure might still be in progress. You need to wait a few minutes before the account is fully closed. To check the status of the request, do one of the following:

    • Use the AccountId that you sent in the CloseAccount request to provide as a parameter to the DescribeAccount operation.

      While the close account request is in progress, Account status will indicate PENDING_CLOSURE. When the close account request completes, the status will change to SUSPENDED.

    • Check the CloudTrail log for the CloseAccountResult event that gets published after the account closes successfully. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

    • You can close only 10% of member accounts, between 10 and 200, within a rolling 30 day period. This quota is not bound by a calendar month, but starts when you close an account. After you reach this limit, you can close additional accounts. For more information, see Closing a member account in your organization in the Organizations User Guide.

    • To reinstate a closed account, contact Amazon Web Services Support within the 90-day grace period while the account is in SUSPENDED status.

    • If the Amazon Web Services account you attempt to close is linked to an Amazon Web Services GovCloud (US) account, the CloseAccount request will close both accounts. To learn important pre-closure details, see Closing an Amazon Web Services GovCloud (US) account in the Amazon Web Services GovCloud User Guide.

    " + "documentation":"

    Closes an Amazon Web Services member account within an organization. You can close an account when all features are enabled . You can't close the management account with this API. This is an asynchronous request that Amazon Web Services performs in the background. Because CloseAccount operates asynchronously, it can return a successful completion message even though account closure might still be in progress. You need to wait a few minutes before the account is fully closed. To check the status of the request, do one of the following:

    • Use the AccountId that you sent in the CloseAccount request to provide as a parameter to the DescribeAccount operation.

      While the close account request is in progress, Account status will indicate PENDING_CLOSURE. When the close account request completes, the status will change to SUSPENDED.

    • Check the CloudTrail log for the CloseAccountResult event that gets published after the account closes successfully. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

    • You can close only 10% of member accounts, between 10 and 1000, within a rolling 30 day period. This quota is not bound by a calendar month, but starts when you close an account. After you reach this limit, you can close additional accounts. For more information, see Closing a member account in your organization and Quotas for Organizationsin the Organizations User Guide.

    • To reinstate a closed account, contact Amazon Web Services Support within the 90-day grace period while the account is in SUSPENDED status.

    • If the Amazon Web Services account you attempt to close is linked to an Amazon Web Services GovCloud (US) account, the CloseAccount request will close both accounts. To learn important pre-closure details, see Closing an Amazon Web Services GovCloud (US) account in the Amazon Web Services GovCloud User Guide.

    " }, "CreateAccount":{ "name":"CreateAccount", @@ -1378,7 +1378,7 @@ "Message":{"shape":"ExceptionMessage"}, "Reason":{"shape":"ConstraintViolationExceptionReason"} }, - "documentation":"

    Performing this operation violates a minimum or maximum value limit. For example, attempting to remove the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the organization, or attaching too many policies to an account, OU, or root. This exception includes a reason that contains additional information about the violated limit:

    Some of the reasons in the following list might not be applicable to this specific API or operation.

    • ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization. You can't remove the management account. Instead, after you remove all member accounts, delete the organization itself.

    • ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization that doesn't yet have enough information to exist as a standalone account. This account requires you to first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.

    • ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create in one day.

    • ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You must complete the account setup before you create an organization.

    • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. If you need more accounts, contact Amazon Web Services Support to request an increase in your limit.

      Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase in the number of accounts.

      Deleted and closed accounts still count toward your limit.

      If you get this exception when running a command immediately after creating the organization, wait one hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.

    • CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as a delegated administrator.

    • CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of the organization as a delegated administrator for an Amazon Web Services service integrated with Organizations. You can designate only a member account as a delegated administrator.

    • CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management account for the organization, you must first either remove or close all member accounts in the organization. Follow standard account closure process using root credentials.​

    • CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as a delegated administrator for a service integrated with your organization. To complete this operation, you must first deregister this account as a delegated administrator.

    • CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.

    • CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close at a time. ​

    • CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified region, you must enable all features mode.

    • DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account as a delegated administrator for an Amazon Web Services service that already has a delegated administrator. To complete this operation, you must first deregister any existing delegated administrators for this service.

    • EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time. You must resubmit the request and generate a new verfication code.

    • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one day.

    • INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is associated with the account. Amazon Web Services does not support cards issued by financial institutions in Russia or Belarus. For more information, see Managing your Amazon Web Services payments.

    • MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first must migrate the organization's management account to the marketplace that corresponds to the management account's address. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be associated with the same marketplace.

    • MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services /> Regions in China. To create an organization, the master must have a valid business license. For more information, contact customer support.

    • MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact address and phone number for the management account. Then try the operation again.

    • MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations in the Amazon Web Services GovCloud User Guide.

    • MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you first must associate a valid payment instrument, such as a credit card, with the account. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

    • MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated administrators than allowed for the service principal.

    • MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain type that can be attached to an entity at one time.

    • MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.

    • MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you first must associate a valid payment instrument, such as a credit card, with the account. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

    • MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would cause the entity to have fewer than the minimum number of policies of a certain type required.

    • ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the organization to be configured to support all features. An organization that supports only consolidated billing features can't perform this operation.

    • OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.

    • OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.

    • POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.

    • POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an organization.

    • SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled service access. Call the EnableAWSServiceAccess API first.

    • TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with the tag policy requirements for this account.

    • WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, there is a waiting period before you can remove it from the organization. If you get an error that indicates that a wait period is required, try again in a few days.

    ", + "documentation":"

    Performing this operation violates a minimum or maximum value limit. For example, attempting to remove the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the organization, or attaching too many policies to an account, OU, or root. This exception includes a reason that contains additional information about the violated limit:

    Some of the reasons in the following list might not be applicable to this specific API or operation.

    • ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization. You can't remove the management account. Instead, after you remove all member accounts, delete the organization itself.

    • ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization that doesn't yet have enough information to exist as a standalone account. This account requires you to first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.

    • ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create in one day.

    • ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You must complete the account setup before you create an organization.

    • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. If you need more accounts, contact Amazon Web Services Support to request an increase in your limit.

      Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase in the number of accounts.

      Deleted and closed accounts still count toward your limit.

      If you get this exception when running a command immediately after creating the organization, wait one hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.

    • CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as a delegated administrator.

    • CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of the organization as a delegated administrator for an Amazon Web Services service integrated with Organizations. You can designate only a member account as a delegated administrator.

    • CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management account for the organization, you must first either remove or close all member accounts in the organization. Follow standard account closure process using root credentials.​

    • CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as a delegated administrator for a service integrated with your organization. To complete this operation, you must first deregister this account as a delegated administrator.

    • CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.

    • CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close at a time. ​

    • CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified region, you must enable all features mode.

    • DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account as a delegated administrator for an Amazon Web Services service that already has a delegated administrator. To complete this operation, you must first deregister any existing delegated administrators for this service.

    • EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time. You must resubmit the request and generate a new verfication code.

    • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one day.

    • INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is associated with the account. Amazon Web Services does not support cards issued by financial institutions in Russia or Belarus. For more information, see Managing your Amazon Web Services payments.

    • MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first must migrate the organization's management account to the marketplace that corresponds to the management account's address. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be associated with the same marketplace.

    • MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To create an organization, the master must have a valid business license. For more information, contact customer support.

    • MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact address and phone number for the management account. Then try the operation again.

    • MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations in the Amazon Web Services GovCloud User Guide.

    • MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you first must associate a valid payment instrument, such as a credit card, with the account. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

    • MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated administrators than allowed for the service principal.

    • MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain type that can be attached to an entity at one time.

    • MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.

    • MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you first must associate a valid payment instrument, such as a credit card, with the account. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.

    • MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would cause the entity to have fewer than the minimum number of policies of a certain type required.

    • ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the organization to be configured to support all features. An organization that supports only consolidated billing features can't perform this operation.

    • OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.

    • OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.

    • POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.

    • POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an organization.

    • SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled service access. Call the EnableAWSServiceAccess API first.

    • TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with the tag policy requirements for this account.

    • WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, there is a waiting period before you can remove it from the organization. If you get an error that indicates that a wait period is required, try again in a few days.

    ", "exception":true }, "ConstraintViolationExceptionReason":{ @@ -1646,7 +1646,7 @@ "members":{ "Content":{ "shape":"PolicyContent", - "documentation":"

    The policy text content to add to the new policy. The text that you supply must adhere to the rules of the policy type you specify in the Type parameter.

    " + "documentation":"

    The policy text content to add to the new policy. The text that you supply must adhere to the rules of the policy type you specify in the Type parameter.

    The maximum size of a policy document depends on the policy's type. For more information, see Maximum and minimum values in the Organizations User Guide.

    " }, "Description":{ "shape":"PolicyDescription", @@ -3650,7 +3650,7 @@ }, "Content":{ "shape":"PolicyContent", - "documentation":"

    If provided, the new content for the policy. The text must be correctly formatted JSON that complies with the syntax for the policy's type. For more information, see SCP syntax in the Organizations User Guide.

    " + "documentation":"

    If provided, the new content for the policy. The text must be correctly formatted JSON that complies with the syntax for the policy's type. For more information, see SCP syntax in the Organizations User Guide.

    The maximum size of a policy document depends on the policy's type. For more information, see Maximum and minimum values in the Organizations User Guide.

    " } } }, diff --git a/services/osis/pom.xml b/services/osis/pom.xml index 071667f818ae..cb5a12f25e03 100644 --- a/services/osis/pom.xml +++ b/services/osis/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT osis AWS Java SDK :: Services :: OSIS diff --git a/services/osis/src/main/resources/codegen-resources/customization.config b/services/osis/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/osis/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/outposts/pom.xml b/services/outposts/pom.xml index 830037585b58..d6af8f967fa3 100644 --- a/services/outposts/pom.xml +++ b/services/outposts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT outposts AWS Java SDK :: Services :: Outposts diff --git a/services/outposts/src/main/resources/codegen-resources/customization.config b/services/outposts/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/outposts/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/outposts/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/outposts/src/main/resources/codegen-resources/endpoint-rule-set.json index bca1f55e1e5c..840c00e4b8ff 100644 --- a/services/outposts/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/outposts/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,18 +212,17 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ - "aws-us-gov", { "fn": "getAttr", "argv": [ @@ -236,7 +231,8 @@ }, "name" ] - } + }, + "aws-us-gov" ] } ], @@ -256,14 +252,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -277,7 +275,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -297,7 +294,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -308,14 +304,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -326,9 +324,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/outposts/src/main/resources/codegen-resources/service-2.json b/services/outposts/src/main/resources/codegen-resources/service-2.json index f1aadf41456e..82acb0c945ad 100644 --- a/services/outposts/src/main/resources/codegen-resources/service-2.json +++ b/services/outposts/src/main/resources/codegen-resources/service-2.json @@ -1309,7 +1309,6 @@ }, "LineItemQuantity":{ "type":"integer", - "max":20, "min":1 }, "LineItemRequest":{ @@ -2048,7 +2047,6 @@ "StartConnectionRequest":{ "type":"structure", "required":[ - "DeviceSerialNumber", "AssetId", "ClientPublicKey", "NetworkInterfaceDeviceIndex" diff --git a/services/panorama/pom.xml b/services/panorama/pom.xml index f1321f682e91..8ef661564630 100644 --- a/services/panorama/pom.xml +++ b/services/panorama/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT panorama AWS Java SDK :: Services :: Panorama diff --git a/services/panorama/src/main/resources/codegen-resources/customization.config b/services/panorama/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/panorama/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/paymentcryptography/pom.xml b/services/paymentcryptography/pom.xml index 2fe1a88a0496..c203c4f19c35 100644 --- a/services/paymentcryptography/pom.xml +++ b/services/paymentcryptography/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT paymentcryptography AWS Java SDK :: Services :: Payment Cryptography diff --git a/services/paymentcryptography/src/main/resources/codegen-resources/customization.config b/services/paymentcryptography/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..49a9cfc3d510 --- /dev/null +++ b/services/paymentcryptography/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,4 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true +} diff --git a/services/paymentcryptographydata/pom.xml b/services/paymentcryptographydata/pom.xml index b3cf1a6f0f94..d0223ad10e23 100644 --- a/services/paymentcryptographydata/pom.xml +++ b/services/paymentcryptographydata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT paymentcryptographydata AWS Java SDK :: Services :: Payment Cryptography Data diff --git a/services/paymentcryptographydata/src/main/resources/codegen-resources/customization.config b/services/paymentcryptographydata/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/paymentcryptographydata/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/pcaconnectorad/pom.xml b/services/pcaconnectorad/pom.xml index 2d2f57106b73..67cf8bc4cacc 100644 --- a/services/pcaconnectorad/pom.xml +++ b/services/pcaconnectorad/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT pcaconnectorad AWS Java SDK :: Services :: Pca Connector Ad diff --git a/services/pcaconnectorad/src/main/resources/codegen-resources/customization.config b/services/pcaconnectorad/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/pcaconnectorad/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/personalize/pom.xml b/services/personalize/pom.xml index 6582eb1a3db8..23b6211deab4 100644 --- a/services/personalize/pom.xml +++ b/services/personalize/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT personalize AWS Java SDK :: Services :: Personalize diff --git a/services/personalize/src/main/resources/codegen-resources/customization.config b/services/personalize/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/personalize/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/personalizeevents/pom.xml b/services/personalizeevents/pom.xml index b000c0309f44..cd356d8c77ba 100644 --- a/services/personalizeevents/pom.xml +++ b/services/personalizeevents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT personalizeevents AWS Java SDK :: Services :: Personalize Events diff --git a/services/personalizeevents/src/main/resources/codegen-resources/customization.config b/services/personalizeevents/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/personalizeevents/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/personalizeruntime/pom.xml b/services/personalizeruntime/pom.xml index dc595afcba69..34818ab6b453 100644 --- a/services/personalizeruntime/pom.xml +++ b/services/personalizeruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT personalizeruntime AWS Java SDK :: Services :: Personalize Runtime diff --git a/services/personalizeruntime/src/main/resources/codegen-resources/customization.config b/services/personalizeruntime/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/personalizeruntime/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/pi/pom.xml b/services/pi/pom.xml index 59aaeb5861c8..70a6610a7226 100644 --- a/services/pi/pom.xml +++ b/services/pi/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT pi AWS Java SDK :: Services :: PI diff --git a/services/pi/src/main/resources/codegen-resources/customization.config b/services/pi/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/pi/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/pinpoint/pom.xml b/services/pinpoint/pom.xml index 6cf646cd474f..a52744233570 100644 --- a/services/pinpoint/pom.xml +++ b/services/pinpoint/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT pinpoint AWS Java SDK :: Services :: Amazon Pinpoint diff --git a/services/pinpoint/src/main/resources/codegen-resources/customization.config b/services/pinpoint/src/main/resources/codegen-resources/customization.config index 4d02e0dff44c..72beaa3b2ab1 100644 --- a/services/pinpoint/src/main/resources/codegen-resources/customization.config +++ b/services/pinpoint/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,12 @@ { - "excludedSimpleMethods" : ["*"], - "renameShapes": { - // Do not keep adding to this list. Require the service team to name enums like they're naming their shapes. - "__EndpointTypesElement": "EndpointTypesElement" - }, - "underscoresInNameBehavior": "ALLOW" + "excludedSimpleMethods": [ + "*" + ], + "renameShapes": { + "__EndpointTypesElement": "EndpointTypesElement" + }, + "underscoresInNameBehavior": "ALLOW", + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/pinpointemail/pom.xml b/services/pinpointemail/pom.xml index e3eadef2f4ba..9f4269f9b211 100644 --- a/services/pinpointemail/pom.xml +++ b/services/pinpointemail/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT pinpointemail AWS Java SDK :: Services :: Pinpoint Email diff --git a/services/pinpointemail/src/main/resources/codegen-resources/customization.config b/services/pinpointemail/src/main/resources/codegen-resources/customization.config index 6bef416549e5..67b02a157f7c 100644 --- a/services/pinpointemail/src/main/resources/codegen-resources/customization.config +++ b/services/pinpointemail/src/main/resources/codegen-resources/customization.config @@ -1,13 +1,16 @@ { - "verifiedSimpleMethods": [ - "getAccount", - "getDeliverabilityDashboardOptions" - ], - "excludedSimpleMethods": [ - "getDedicatedIps", - "listConfigurationSets", - "listDedicatedIpPools", - "listDeliverabilityTestReports", - "listEmailIdentities" - ] + "verifiedSimpleMethods": [ + "getAccount", + "getDeliverabilityDashboardOptions" + ], + "excludedSimpleMethods": [ + "getDedicatedIps", + "listConfigurationSets", + "listDedicatedIpPools", + "listDeliverabilityTestReports", + "listEmailIdentities" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/pinpointsmsvoice/pom.xml b/services/pinpointsmsvoice/pom.xml index 0cbe3ec8101d..a8edc8feac3d 100644 --- a/services/pinpointsmsvoice/pom.xml +++ b/services/pinpointsmsvoice/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT pinpointsmsvoice AWS Java SDK :: Services :: Pinpoint SMS Voice diff --git a/services/pinpointsmsvoice/src/main/resources/codegen-resources/customization.config b/services/pinpointsmsvoice/src/main/resources/codegen-resources/customization.config index 7bd34e376145..42818af303d9 100644 --- a/services/pinpointsmsvoice/src/main/resources/codegen-resources/customization.config +++ b/services/pinpointsmsvoice/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "listConfigurationSets" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/pinpointsmsvoicev2/pom.xml b/services/pinpointsmsvoicev2/pom.xml index 68e8a4bcb11f..aacd2b22c522 100644 --- a/services/pinpointsmsvoicev2/pom.xml +++ b/services/pinpointsmsvoicev2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT pinpointsmsvoicev2 AWS Java SDK :: Services :: Pinpoint SMS Voice V2 diff --git a/services/pinpointsmsvoicev2/src/main/resources/codegen-resources/customization.config b/services/pinpointsmsvoicev2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/pinpointsmsvoicev2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/pipes/pom.xml b/services/pipes/pom.xml index 9a6d55e479f8..223f06a62eb2 100644 --- a/services/pipes/pom.xml +++ b/services/pipes/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT pipes AWS Java SDK :: Services :: Pipes diff --git a/services/pipes/src/main/resources/codegen-resources/customization.config b/services/pipes/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/pipes/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/polly/pom.xml b/services/polly/pom.xml index f2687df736bb..0e7653f91436 100644 --- a/services/polly/pom.xml +++ b/services/polly/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT polly AWS Java SDK :: Services :: Amazon Polly diff --git a/services/polly/src/main/java/software/amazon/awssdk/services/polly/internal/presigner/DefaultPollyPresigner.java b/services/polly/src/main/java/software/amazon/awssdk/services/polly/internal/presigner/DefaultPollyPresigner.java index a02a7a94be58..0b30c318fbed 100644 --- a/services/polly/src/main/java/software/amazon/awssdk/services/polly/internal/presigner/DefaultPollyPresigner.java +++ b/services/polly/src/main/java/software/amazon/awssdk/services/polly/internal/presigner/DefaultPollyPresigner.java @@ -16,22 +16,25 @@ package software.amazon.awssdk.services.polly.internal.presigner; import static java.util.stream.Collectors.toMap; -import static software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute.PRESIGNER_EXPIRATION; import java.net.URI; +import java.time.Clock; +import java.time.Duration; import java.time.Instant; +import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.concurrent.CompletableFuture; import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Stream; import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.annotations.SdkTestInternalApi; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; import software.amazon.awssdk.auth.credentials.CredentialUtils; import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; -import software.amazon.awssdk.auth.signer.Aws4Signer; import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; import software.amazon.awssdk.awscore.AwsExecutionAttribute; import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration; @@ -41,6 +44,7 @@ import software.amazon.awssdk.awscore.presigner.PresignRequest; import software.amazon.awssdk.awscore.presigner.PresignedRequest; import software.amazon.awssdk.core.ClientType; +import software.amazon.awssdk.core.SelectedAuthScheme; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute; import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; @@ -48,9 +52,17 @@ import software.amazon.awssdk.core.signer.Signer; import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpMethod; +import software.amazon.awssdk.http.SdkHttpRequest; import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner; import software.amazon.awssdk.http.auth.spi.scheme.AuthScheme; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.HttpSigner; +import software.amazon.awssdk.http.auth.spi.signer.SignRequest; +import software.amazon.awssdk.http.auth.spi.signer.SignedRequest; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; +import software.amazon.awssdk.identity.spi.Identity; import software.amazon.awssdk.identity.spi.IdentityProvider; import software.amazon.awssdk.identity.spi.IdentityProviders; import software.amazon.awssdk.profiles.ProfileFile; @@ -74,8 +86,7 @@ public final class DefaultPollyPresigner implements PollyPresigner { private static final String SIGNING_NAME = "polly"; private static final String SERVICE_NAME = "polly"; - private static final Aws4Signer DEFAULT_SIGNER = Aws4Signer.create(); - + private final Clock signingClock; private final Supplier profileFile; private final String profileName; private final Region region; @@ -85,6 +96,8 @@ public final class DefaultPollyPresigner implements PollyPresigner { private final Boolean fipsEnabled; private DefaultPollyPresigner(BuilderImpl builder) { + this.signingClock = builder.signingClock != null ? builder.signingClock + : Clock.systemUTC(); this.profileFile = ProfileFile::defaultProfileFile; this.profileName = ProfileFileSystemSetting.AWS_PROFILE.getStringValueOrThrow(); this.region = builder.region != null ? builder.region @@ -124,22 +137,29 @@ public void close() { IoUtils.closeIfCloseable(credentialsProvider, null); } + // Builder for testing that allows you to set the signing clock. + @SdkTestInternalApi + static PollyPresigner.Builder builder(Clock signingClock) { + return new BuilderImpl() + .signingClock(signingClock); + } + public static PollyPresigner.Builder builder() { return new BuilderImpl(); } @Override public PresignedSynthesizeSpeechRequest presignSynthesizeSpeech( - SynthesizeSpeechPresignRequest synthesizeSpeechPresignRequest) { + SynthesizeSpeechPresignRequest synthesizeSpeechPresignRequest) { return presign(PresignedSynthesizeSpeechRequest.builder(), synthesizeSpeechPresignRequest, synthesizeSpeechPresignRequest.synthesizeSpeechRequest(), SynthesizeSpeechRequestMarshaller.getInstance()::marshall) - .build(); + .build(); } private SdkHttpFullRequest marshallRequest( - T request, Function marshalFn) { + T request, Function marshalFn) { SdkHttpFullRequest.Builder requestBuilder = marshalFn.apply(request); applyOverrideHeadersAndQueryParams(requestBuilder, request); applyEndpoint(requestBuilder); @@ -149,14 +169,22 @@ private SdkHttpFullRequest marshallRequest( /** * Generate a {@link PresignedRequest} from a {@link PresignedRequest} and {@link PollyRequest}. */ - private T presign(T presignedRequest, - PresignRequest presignRequest, - U requestToPresign, - Function requestMarshaller) { + private T presign( + T presignedRequest, + PresignRequest presignRequest, + U requestToPresign, + Function requestMarshaller + ) { ExecutionAttributes execAttrs = createExecutionAttributes(presignRequest, requestToPresign); - SdkHttpFullRequest marshalledRequest = marshallRequest(requestToPresign, requestMarshaller); - SdkHttpFullRequest signedHttpRequest = presignRequest(requestToPresign, marshalledRequest, execAttrs); + Presigner presigner = resolvePresigner(requestToPresign); + SdkHttpFullRequest signedHttpRequest = null; + if (presigner != null) { + signedHttpRequest = presignRequest(presigner, requestToPresign, marshalledRequest, execAttrs); + } else { + SelectedAuthScheme authScheme = selectedAuthScheme(requestToPresign, execAttrs); + signedHttpRequest = doSraPresign(marshalledRequest, authScheme, presignRequest.signatureDuration()); + } initializePresignedRequest(presignedRequest, execAttrs, signedHttpRequest); return presignedRequest; } @@ -167,54 +195,111 @@ private void initializePresignedRequest(PresignedRequest.Builder presignedReques List signedHeadersQueryParam = signedHttpRequest.firstMatchingRawQueryParameters("X-Amz-SignedHeaders"); Map> signedHeaders = - signedHeadersQueryParam.stream() - .flatMap(h -> Stream.of(h.split(";"))) - .collect(toMap(h -> h, h -> signedHttpRequest.firstMatchingHeader(h) - .map(Collections::singletonList) - .orElseGet(ArrayList::new))); + signedHeadersQueryParam.stream() + .flatMap(h -> Stream.of(h.split(";"))) + .collect(toMap(h -> h, h -> signedHttpRequest.firstMatchingHeader(h) + .map(Collections::singletonList) + .orElseGet(ArrayList::new))); boolean isBrowserExecutable = signedHttpRequest.method() == SdkHttpMethod.GET && - (signedHeaders.isEmpty() || - (signedHeaders.size() == 1 && signedHeaders.containsKey("host"))); + (signedHeaders.isEmpty() || + (signedHeaders.size() == 1 && signedHeaders.containsKey("host"))); - presignedRequest.expiration(execAttrs.getAttribute(PRESIGNER_EXPIRATION)) - .isBrowserExecutable(isBrowserExecutable) - .httpRequest(signedHttpRequest) - .signedHeaders(signedHeaders); + presignedRequest.expiration(execAttrs.getAttribute(AwsSignerExecutionAttribute.PRESIGNER_EXPIRATION)) + .isBrowserExecutable(isBrowserExecutable) + .httpRequest(signedHttpRequest) + .signedHeaders(signedHeaders); } - private SdkHttpFullRequest presignRequest(PollyRequest requestToPresign, + private SdkHttpFullRequest presignRequest(Presigner presigner, + PollyRequest requestToPresign, SdkHttpFullRequest marshalledRequest, ExecutionAttributes executionAttributes) { - Presigner presigner = resolvePresigner(requestToPresign); SdkHttpFullRequest presigned = presigner.presign(marshalledRequest, executionAttributes); List signedHeadersQueryParam = presigned.firstMatchingRawQueryParameters("X-Amz-SignedHeaders"); Validate.validState(!signedHeadersQueryParam.isEmpty(), - "Only SigV4 presigners are supported at this time, but the configured " - + "presigner (%s) did not seem to generate a SigV4 signature.", presigner); + "Only SigV4 presigners are supported at this time, but the configured " + + "presigner (%s) did not seem to generate a SigV4 signature.", presigner); return presigned; } + private SdkHttpFullRequest doSraPresign(SdkHttpFullRequest request, + SelectedAuthScheme selectedAuthScheme, + Duration expirationDuration) { + CompletableFuture identityFuture = selectedAuthScheme.identity(); + T identity = CompletableFutureUtils.joinLikeSync(identityFuture); + + // presigned url puts auth info in query string, does not sign the payload, and has an expiry. + SignRequest.Builder signRequestBuilder = SignRequest + .builder(identity) + .putProperty(AwsV4FamilyHttpSigner.AUTH_LOCATION, AwsV4FamilyHttpSigner.AuthLocation.QUERY_STRING) + .putProperty(AwsV4FamilyHttpSigner.EXPIRATION_DURATION, expirationDuration) + .putProperty(HttpSigner.SIGNING_CLOCK, signingClock) + .request(request) + .payload(request.contentStreamProvider().orElse(null)); + AuthSchemeOption authSchemeOption = selectedAuthScheme.authSchemeOption(); + authSchemeOption.forEachSignerProperty(signRequestBuilder::putProperty); + + HttpSigner signer = selectedAuthScheme.signer(); + SignedRequest signedRequest = signer.sign(signRequestBuilder.build()); + return toSdkHttpFullRequest(signedRequest); + } + + private SelectedAuthScheme selectedAuthScheme(PollyRequest requestToPresign, + ExecutionAttributes attributes) { + AuthScheme authScheme = AwsV4AuthScheme.create(); + AwsCredentialsIdentity credentialsIdentity = resolveCredentials(resolveCredentialsProvider(requestToPresign)); + AuthSchemeOption.Builder optionBuilder = AuthSchemeOption.builder() + .schemeId(authScheme.schemeId()); + optionBuilder.putSignerProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, SERVICE_NAME); + String region = attributes.getAttribute(AwsExecutionAttribute.AWS_REGION).id(); + optionBuilder.putSignerProperty(AwsV4HttpSigner.REGION_NAME, region); + return new SelectedAuthScheme<>(CompletableFuture.completedFuture(credentialsIdentity), authScheme.signer(), + optionBuilder.build()); + } + + private SdkHttpFullRequest toSdkHttpFullRequest(SignedRequest signedRequest) { + SdkHttpRequest request = signedRequest.request(); + + return SdkHttpFullRequest.builder() + .contentStreamProvider(signedRequest.payload().orElse(null)) + .protocol(request.protocol()) + .method(request.method()) + .host(request.host()) + .port(request.port()) + .encodedPath(request.encodedPath()) + .applyMutation(r -> request.forEachHeader(r::putHeader)) + .applyMutation(r -> request.forEachRawQueryParameter(r::putRawQueryParameter)) + .build(); + } + private ExecutionAttributes createExecutionAttributes(PresignRequest presignRequest, PollyRequest requestToPresign) { - Instant signatureExpiration = Instant.now().plus(presignRequest.signatureDuration()); + // A fixed signingClock is used, so that the current time used by the signing logic, as well as to determine expiration + // are the same. + Instant signingInstant = signingClock.instant(); + Clock signingClockOverride = Clock.fixed(signingInstant, ZoneOffset.UTC); + Duration expirationDuration = presignRequest.signatureDuration(); + Instant signatureExpiration = signingInstant.plus(expirationDuration); + AwsCredentialsIdentity credentials = resolveCredentials(resolveCredentialsProvider(requestToPresign)); Validate.validState(credentials != null, "Credential providers must never return null."); return new ExecutionAttributes() - .putAttribute(AwsSignerExecutionAttribute.AWS_CREDENTIALS, CredentialUtils.toCredentials(credentials)) - .putAttribute(AwsSignerExecutionAttribute.SERVICE_SIGNING_NAME, SIGNING_NAME) - .putAttribute(AwsExecutionAttribute.AWS_REGION, region) - .putAttribute(AwsSignerExecutionAttribute.SIGNING_REGION, region) - .putAttribute(SdkInternalExecutionAttribute.IS_FULL_DUPLEX, false) - .putAttribute(SdkExecutionAttribute.CLIENT_TYPE, ClientType.SYNC) - .putAttribute(SdkExecutionAttribute.SERVICE_NAME, SERVICE_NAME) - .putAttribute(PRESIGNER_EXPIRATION, signatureExpiration) - .putAttribute(SdkInternalExecutionAttribute.AUTH_SCHEME_RESOLVER, PollyAuthSchemeProvider.defaultProvider()) - .putAttribute(SdkInternalExecutionAttribute.AUTH_SCHEMES, authSchemes()) - .putAttribute(SdkInternalExecutionAttribute.IDENTITY_PROVIDERS, - IdentityProviders.builder() - .putIdentityProvider(credentialsProvider()) - .build()); + .putAttribute(AwsSignerExecutionAttribute.AWS_CREDENTIALS, CredentialUtils.toCredentials(credentials)) + .putAttribute(AwsSignerExecutionAttribute.SERVICE_SIGNING_NAME, SIGNING_NAME) + .putAttribute(AwsSignerExecutionAttribute.SIGNING_CLOCK, signingClockOverride) + .putAttribute(AwsSignerExecutionAttribute.PRESIGNER_EXPIRATION, signatureExpiration) + .putAttribute(AwsExecutionAttribute.AWS_REGION, region) + .putAttribute(AwsSignerExecutionAttribute.SIGNING_REGION, region) + .putAttribute(SdkInternalExecutionAttribute.IS_FULL_DUPLEX, false) + .putAttribute(SdkExecutionAttribute.CLIENT_TYPE, ClientType.SYNC) + .putAttribute(SdkExecutionAttribute.SERVICE_NAME, SERVICE_NAME) + .putAttribute(SdkInternalExecutionAttribute.AUTH_SCHEME_RESOLVER, PollyAuthSchemeProvider.defaultProvider()) + .putAttribute(SdkInternalExecutionAttribute.AUTH_SCHEMES, authSchemes()) + .putAttribute(SdkInternalExecutionAttribute.IDENTITY_PROVIDERS, + IdentityProviders.builder() + .putIdentityProvider(credentialsProvider()) + .build()); } private Map> authSchemes() { @@ -224,7 +309,7 @@ private Map> authSchemes() { private IdentityProvider resolveCredentialsProvider(PollyRequest request) { return request.overrideConfiguration().flatMap(AwsRequestOverrideConfiguration::credentialsIdentityProvider) - .orElse(credentialsProvider); + .orElse(credentialsProvider); } private AwsCredentialsIdentity resolveCredentials(IdentityProvider credentialsProvider) { @@ -233,10 +318,13 @@ private AwsCredentialsIdentity resolveCredentials(IdentityProvider credentialsProvider; private URI endpointOverride; private Boolean dualstackEnabled; private Boolean fipsEnabled; + public Builder signingClock(Clock signingClock) { + this.signingClock = signingClock; + return this; + } + @Override public Builder region(Region region) { this.region = region; diff --git a/services/polly/src/main/resources/codegen-resources/customization.config b/services/polly/src/main/resources/codegen-resources/customization.config index ce7386c31cd9..cf2394814544 100644 --- a/services/polly/src/main/resources/codegen-resources/customization.config +++ b/services/polly/src/main/resources/codegen-resources/customization.config @@ -1,7 +1,8 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "describeVoices", "listLexicons", "listSpeechSynthesisTasks" - ] + ], + "useSraAuth": true } diff --git a/services/polly/src/main/resources/codegen-resources/service-2.json b/services/polly/src/main/resources/codegen-resources/service-2.json index d178237a2e4f..47a5455d2e23 100644 --- a/services/polly/src/main/resources/codegen-resources/service-2.json +++ b/services/polly/src/main/resources/codegen-resources/service-2.json @@ -1112,7 +1112,8 @@ "Isabelle", "Zayd", "Danielle", - "Gregory" + "Gregory", + "Burcu" ] }, "VoiceList":{ diff --git a/services/polly/src/test/java/software/amazon/awssdk/services/polly/internal/presigner/DefaultPollyPresignerTest.java b/services/polly/src/test/java/software/amazon/awssdk/services/polly/internal/presigner/DefaultPollyPresignerTest.java index 30491ef287ea..09c9133d7156 100644 --- a/services/polly/src/test/java/software/amazon/awssdk/services/polly/internal/presigner/DefaultPollyPresignerTest.java +++ b/services/polly/src/test/java/software/amazon/awssdk/services/polly/internal/presigner/DefaultPollyPresignerTest.java @@ -23,12 +23,16 @@ import java.io.IOException; import java.net.URI; import java.net.URL; +import java.time.Clock; import java.time.Duration; +import java.time.Instant; +import java.time.ZoneId; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.auth.signer.Aws4Signer; import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; import software.amazon.awssdk.identity.spi.IdentityProvider; @@ -43,6 +47,7 @@ * Tests for {@link DefaultPollyPresigner}. */ class DefaultPollyPresignerTest { + private static final String EXPECTED_SIGNATURE = "06e9f816eaa937ba5a7eb5e536d3339276bd5f90c2a351b9e21cd57a0a6921be"; private static final SynthesizeSpeechRequest BASIC_SYNTHESIZE_SPEECH_REQUEST = SynthesizeSpeechRequest.builder() .voiceId("Salli") .outputFormat(OutputFormat.PCM) @@ -62,7 +67,8 @@ void presign_requestLevelCredentials_honored() { AwsBasicCredentials.create("akid2", "skid2") ); - PollyPresigner presigner = DefaultPollyPresigner.builder() + Instant fixedTime = Instant.parse("2024-02-20T22:00:00Z"); + PollyPresigner presigner = DefaultPollyPresigner.builder(Clock.fixed(fixedTime, ZoneId.of("UTC"))) .region(Region.US_EAST_1) .credentialsProvider(credentialsProvider) .build(); @@ -78,8 +84,40 @@ void presign_requestLevelCredentials_honored() { .build(); PresignedSynthesizeSpeechRequest presignedSynthesizeSpeechRequest = presigner.presignSynthesizeSpeech(presignRequest); + String query = presignedSynthesizeSpeechRequest.url().getQuery(); + assertThat(query).contains("X-Amz-Credential=akid2"); + assertThat(query).contains("X-Amz-Signature=" + EXPECTED_SIGNATURE); + } + + @Test + void presign_requestLevelSingerAndCredentials_honored() { + IdentityProvider requestCedentialsProvider = StaticCredentialsProvider.create( + AwsBasicCredentials.create("akid2", "skid2") + ); + + Instant fixedTime = Instant.parse("2024-02-20T22:00:00Z"); + PollyPresigner presigner = DefaultPollyPresigner.builder(Clock.fixed(fixedTime, ZoneId.of("UTC"))) + .region(Region.US_EAST_1) + .credentialsProvider(credentialsProvider) + .build(); + + SynthesizeSpeechRequest synthesizeSpeechRequest = + BASIC_SYNTHESIZE_SPEECH_REQUEST.toBuilder() + .overrideConfiguration(AwsRequestOverrideConfiguration + .builder() + .signer(Aws4Signer.create()) + .credentialsProvider(requestCedentialsProvider).build()) + .build(); - assertThat(presignedSynthesizeSpeechRequest.url().getQuery()).contains("X-Amz-Credential=akid2"); + SynthesizeSpeechPresignRequest presignRequest = SynthesizeSpeechPresignRequest.builder() + .synthesizeSpeechRequest(synthesizeSpeechRequest) + .signatureDuration(Duration.ofHours(3)) + .build(); + + PresignedSynthesizeSpeechRequest presignedSynthesizeSpeechRequest = presigner.presignSynthesizeSpeech(presignRequest); + String query = presignedSynthesizeSpeechRequest.url().getQuery(); + assertThat(query).contains("X-Amz-Credential=akid2"); + assertThat(query).contains("X-Amz-Signature=" + EXPECTED_SIGNATURE); } @Test diff --git a/services/pom.xml b/services/pom.xml index 62c104f6f551..64ff390bd01a 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT services AWS Java SDK :: Services @@ -397,6 +397,8 @@ neptunegraph networkmonitor supplychain + artifact + chatbot The AWS Java SDK services https://aws.amazon.com/sdkforjava diff --git a/services/pricing/pom.xml b/services/pricing/pom.xml index 6d04ceff2f75..8357b3926ffd 100644 --- a/services/pricing/pom.xml +++ b/services/pricing/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 pricing diff --git a/services/pricing/src/main/resources/codegen-resources/customization.config b/services/pricing/src/main/resources/codegen-resources/customization.config index 55e49fef5fa8..d225e3537c9d 100644 --- a/services/pricing/src/main/resources/codegen-resources/customization.config +++ b/services/pricing/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "verifiedSimpleMethods": [ - "describeServices" - ], - "excludedSimpleMethods": [ - "getProducts" - ] + "verifiedSimpleMethods": [ + "describeServices" + ], + "excludedSimpleMethods": [ + "getProducts" + ], + "useSraAuth": true } diff --git a/services/pricing/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/pricing/src/main/resources/codegen-resources/endpoint-rule-set.json index a87f285e6f48..309ef25b5844 100644 --- a/services/pricing/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/pricing/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -326,9 +324,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/pricing/src/main/resources/codegen-resources/service-2.json b/services/pricing/src/main/resources/codegen-resources/service-2.json index 61fa4423d60c..4af40a45f39f 100644 --- a/services/pricing/src/main/resources/codegen-resources/service-2.json +++ b/services/pricing/src/main/resources/codegen-resources/service-2.json @@ -27,6 +27,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"NotFoundException"}, {"shape":"InternalErrorException"}, + {"shape":"ThrottlingException"}, {"shape":"ExpiredNextTokenException"} ], "documentation":"

    Returns the metadata for one service or a list of the metadata for all services. Use this without a service code to get the service codes for all services. Use it with a service code, such as AmazonEC2, to get information specific to that service, such as the attribute names available for that service. For example, some of the attribute names available for EC2 are volumeType, maxIopsVolume, operation, locationType, and instanceCapacity10xlarge.

    " @@ -44,6 +45,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"NotFoundException"}, {"shape":"InternalErrorException"}, + {"shape":"ThrottlingException"}, {"shape":"ExpiredNextTokenException"} ], "documentation":"

    Returns a list of attribute values. Attributes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions in the Billing and Cost Management User Guide.

    " @@ -60,7 +62,8 @@ {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ThrottlingException"} ], "documentation":"

    This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

    This returns the URL that you can retrieve your Price List file from. This URL is based on the PriceListArn and FileFormat that you retrieve from the ListPriceLists response.

    " }, @@ -77,6 +80,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"NotFoundException"}, {"shape":"InternalErrorException"}, + {"shape":"ThrottlingException"}, {"shape":"ExpiredNextTokenException"} ], "documentation":"

    Returns a list of all products that match the filter criteria.

    " @@ -95,6 +99,7 @@ {"shape":"NotFoundException"}, {"shape":"AccessDeniedException"}, {"shape":"InternalErrorException"}, + {"shape":"ThrottlingException"}, {"shape":"ExpiredNextTokenException"} ], "documentation":"

    This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

    This returns a list of Price List references that the requester if authorized to view, given a ServiceCode, CurrencyCode, and an EffectiveDate. Use without a RegionCode filter to list Price List references from all available Amazon Web Services Regions. Use with a RegionCode filter to get the Price List reference that's specific to a specific Amazon Web Services Region. You can use the PriceListArn from the response to get your preferred Price List files through the GetPriceListFileUrl API.

    " @@ -338,7 +343,8 @@ }, "documentation":"

    An error on the server occurred during the processing of your request. Try again later.

    ", "exception":true, - "fault":true + "fault":true, + "retryable":{"throttling":false} }, "InvalidNextTokenException":{ "type":"structure", @@ -443,7 +449,7 @@ "type":"string", "max":2048, "min":18, - "pattern":"arn:[A-Za-z0-9][-.A-Za-z0-9]{0,62}:pricing:::price-list/[A-Za-z0-9_/.-]{1,1023}" + "pattern":"arn:[A-Za-z0-9][-.A-Za-z0-9]{0,62}:pricing:::price-list/[A-Za-z0-9+_/.-]{1,1023}" }, "PriceListJsonItems":{ "type":"list", @@ -487,6 +493,15 @@ }, "String":{"type":"string"}, "SynthesizedJsonPriceListJsonItem":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"

    You've made too many requests exceeding service quotas.

    ", + "exception":true, + "retryable":{"throttling":true} + }, "errorMessage":{"type":"string"} }, "documentation":"

    The Amazon Web Services Price List API is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The Amazon Web Services Price List uses standardized product attributes such as Location, Storage Class, and Operating System, and provides prices at the SKU level. You can use the Amazon Web Services Price List to do the following:

    • Build cost control and scenario planning tools

    • Reconcile billing data

    • Forecast future spend for budgeting purposes

    • Provide cost benefit analysis that compare your internal workloads with Amazon Web Services

    Use GetServices without a service code to retrieve the service codes for all Amazon Web Services, then GetServices with a service code to retrieve the attribute names for that service. After you have the service code and attribute names, you can use GetAttributeValues to see what values are available for an attribute. With the service code and an attribute name and value, you can use GetProducts to find specific products that you're interested in, such as an AmazonEC2 instance, with a Provisioned IOPS volumeType.

    For more information, see Using the Amazon Web Services Price List API in the Billing User Guide.

    " diff --git a/services/privatenetworks/pom.xml b/services/privatenetworks/pom.xml index 06b5cd8daec1..f84c71b3e6e6 100644 --- a/services/privatenetworks/pom.xml +++ b/services/privatenetworks/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT privatenetworks AWS Java SDK :: Services :: Private Networks diff --git a/services/privatenetworks/src/main/resources/codegen-resources/customization.config b/services/privatenetworks/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/privatenetworks/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/proton/pom.xml b/services/proton/pom.xml index 98ab5a7184a5..877c088cd5f1 100644 --- a/services/proton/pom.xml +++ b/services/proton/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT proton AWS Java SDK :: Services :: Proton diff --git a/services/proton/src/main/resources/codegen-resources/customization.config b/services/proton/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/proton/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/qbusiness/pom.xml b/services/qbusiness/pom.xml index ec5384bdd5cf..e69fd3db5045 100644 --- a/services/qbusiness/pom.xml +++ b/services/qbusiness/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT qbusiness AWS Java SDK :: Services :: Q Business diff --git a/services/qbusiness/src/main/resources/codegen-resources/customization.config b/services/qbusiness/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/qbusiness/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/qbusiness/src/main/resources/codegen-resources/service-2.json b/services/qbusiness/src/main/resources/codegen-resources/service-2.json index 87fb91b593ad..84bd023d0924 100644 --- a/services/qbusiness/src/main/resources/codegen-resources/service-2.json +++ b/services/qbusiness/src/main/resources/codegen-resources/service-2.json @@ -131,7 +131,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

    Creates an Amazon Q index.

    To determine if index creation has completed, check the Status field returned from a call to DescribeIndex. The Status field is set to ACTIVE when the index is ready to use.

    Once the index is active, you can index your documents using the BatchPutDocument API or the CreateDataSource API.

    " + "documentation":"

    Creates an Amazon Q index.

    To determine if index creation has completed, check the Status field returned from a call to DescribeIndex. The Status field is set to ACTIVE when the index is ready to use.

    Once the index is active, you can index your documents using the BatchPutDocument API or the CreateDataSource API.

    " }, "CreatePlugin":{ "name":"CreatePlugin", @@ -1455,7 +1455,7 @@ "documentation":"

    Performs a logical OR operation on all supplied filters.

    " } }, - "documentation":"

    Enables filtering of Amazon Q web experience responses based on document attributes or metadata fields.

    " + "documentation":"

    Enables filtering of responses based on document attributes or metadata fields.

    " }, "AttributeFilters":{ "type":"list", @@ -1623,6 +1623,12 @@ "type":"boolean", "box":true }, + "BoostingDurationInSeconds":{ + "type":"long", + "box":true, + "max":999999999, + "min":0 + }, "ChatSyncInput":{ "type":"structure", "required":[ @@ -2351,6 +2357,21 @@ "type":"list", "member":{"shape":"DataSource"} }, + "DateAttributeBoostingConfiguration":{ + "type":"structure", + "required":["boostingLevel"], + "members":{ + "boostingDurationInSeconds":{ + "shape":"BoostingDurationInSeconds", + "documentation":"

    Specifies the duration, in seconds, of a boost applies to a DATE type document attribute.

    " + }, + "boostingLevel":{ + "shape":"DocumentAttributeBoostingLevel", + "documentation":"

    Specifies how much a document attribute is boosted.

    " + } + }, + "documentation":"

    Provides information on boosting DATE type document attributes.

    For more information on how boosting document attributes work in Amazon Q, see Boosting using document attributes.

    " + }, "DeleteApplicationRequest":{ "type":"structure", "required":["applicationId"], @@ -2694,6 +2715,45 @@ }, "documentation":"

    A document attribute or metadata field.

    " }, + "DocumentAttributeBoostingConfiguration":{ + "type":"structure", + "members":{ + "dateConfiguration":{ + "shape":"DateAttributeBoostingConfiguration", + "documentation":"

    Provides information on boosting DATE type document attributes.

    " + }, + "numberConfiguration":{ + "shape":"NumberAttributeBoostingConfiguration", + "documentation":"

    Provides information on boosting NUMBER type document attributes.

    " + }, + "stringConfiguration":{ + "shape":"StringAttributeBoostingConfiguration", + "documentation":"

    Provides information on boosting STRING type document attributes.

    " + }, + "stringListConfiguration":{ + "shape":"StringListAttributeBoostingConfiguration", + "documentation":"

    Provides information on boosting STRING_LIST type document attributes.

    " + } + }, + "documentation":"

    Provides information on boosting supported Amazon Q document attribute types. When an end user chat query matches document attributes that have been boosted, Amazon Q prioritizes generating responses from content that matches the boosted document attributes.

    For STRING and STRING_LIST type document attributes to be used for boosting on the console and the API, they must be enabled for search using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes, you can't boost attributes of these data types on either the console or the API.

    For more information on how boosting document attributes work in Amazon Q, see Boosting using document attributes.

    ", + "union":true + }, + "DocumentAttributeBoostingLevel":{ + "type":"string", + "enum":[ + "NONE", + "LOW", + "MEDIUM", + "HIGH", + "VERY_HIGH" + ] + }, + "DocumentAttributeBoostingOverrideMap":{ + "type":"map", + "key":{"shape":"DocumentAttributeKey"}, + "value":{"shape":"DocumentAttributeBoostingConfiguration"}, + "min":1 + }, "DocumentAttributeCondition":{ "type":"structure", "required":[ @@ -2711,7 +2771,7 @@ }, "value":{"shape":"DocumentAttributeValue"} }, - "documentation":"

    The condition used for the target document attribute or metadata field when ingesting documents into Amazon Q. You use this with DocumentAttributeTarget to apply the condition.

    For example, you can create the 'Department' target field and have it prefill department names associated with the documents based on information in the 'Source_URI' field. Set the condition that if the 'Source_URI' field contains 'financial' in its URI value, then prefill the target field 'Department' with the target value 'Finance' for the document.

    Amazon Q can't create a target field if it has not already been created as an index field. After you create your index field, you can create a document metadata field using DocumentAttributeTarget. Amazon Q then will map your newly created metadata field to your index field.

    " + "documentation":"

    The condition used for the target document attribute or metadata field when ingesting documents into Amazon Q. You use this with DocumentAttributeTarget to apply the condition.

    For example, you can create the 'Department' target field and have it prefill department names associated with the documents based on information in the 'Source_URI' field. Set the condition that if the 'Source_URI' field contains 'financial' in its URI value, then prefill the target field 'Department' with the target value 'Finance' for the document.

    Amazon Q can't create a target field if it has not already been created as an index field. After you create your index field, you can create a document metadata field using DocumentAttributeTarget. Amazon Q then will map your newly created metadata field to your index field.

    " }, "DocumentAttributeConfiguration":{ "type":"structure", @@ -2761,7 +2821,7 @@ }, "value":{"shape":"DocumentAttributeValue"} }, - "documentation":"

    The target document attribute or metadata field you want to alter when ingesting documents into Amazon Q.

    For example, you can delete all customer identification numbers associated with the documents, stored in the document metadata field called 'Customer_ID' by setting the target key as 'Customer_ID' and the deletion flag to TRUE. This removes all customer ID values in the field 'Customer_ID'. This would scrub personally identifiable information from each document's metadata.

    Amazon Q can't create a target field if it has not already been created as an index field. After you create your index field, you can create a document metadata field using DocumentAttributeTarget . Amazon Q will then map your newly created document attribute to your index field.

    You can also use this with DocumentAttributeCondition .

    " + "documentation":"

    The target document attribute or metadata field you want to alter when ingesting documents into Amazon Q.

    For example, you can delete all customer identification numbers associated with the documents, stored in the document metadata field called 'Customer_ID' by setting the target key as 'Customer_ID' and the deletion flag to TRUE. This removes all customer ID values in the field 'Customer_ID'. This would scrub personally identifiable information from each document's metadata.

    Amazon Q can't create a target field if it has not already been created as an index field. After you create your index field, you can create a document metadata field using DocumentAttributeTarget . Amazon Q will then map your newly created document attribute to your index field.

    You can also use this with DocumentAttributeCondition .

    " }, "DocumentAttributeValue":{ "type":"structure", @@ -3639,7 +3699,7 @@ "documentation":"

    Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see Data contracts for Lambda functions.

    " } }, - "documentation":"

    Provides the configuration information for invoking a Lambda function in Lambda to alter document metadata and content when ingesting documents into Amazon Q.

    You can configure your Lambda function using PreExtractionHookConfiguration if you want to apply advanced alterations on the original or raw documents.

    If you want to apply advanced alterations on the Amazon Q structured documents, you must configure your Lambda function using PostExtractionHookConfiguration.

    You can only invoke one Lambda function. However, this function can invoke other functions it requires.

    For more information, see Custom document enrichment.

    " + "documentation":"

    Provides the configuration information for invoking a Lambda function in Lambda to alter document metadata and content when ingesting documents into Amazon Q.

    You can configure your Lambda function using PreExtractionHookConfiguration if you want to apply advanced alterations on the original or raw documents.

    If you want to apply advanced alterations on the Amazon Q structured documents, you must configure your Lambda function using PostExtractionHookConfiguration.

    You can only invoke one Lambda function. However, this function can invoke other functions it requires.

    For more information, see Custom document enrichment.

    " }, "Index":{ "type":"structure", @@ -3744,7 +3804,7 @@ }, "target":{"shape":"DocumentAttributeTarget"} }, - "documentation":"

    Provides the configuration information for applying basic logic to alter document metadata and content when ingesting documents into Amazon Q.

    To apply advanced logic, to go beyond what you can do with basic logic, see HookConfiguration .

    For more information, see Custom document enrichment.

    " + "documentation":"

    Provides the configuration information for applying basic logic to alter document metadata and content when ingesting documents into Amazon Q.

    To apply advanced logic, to go beyond what you can do with basic logic, see HookConfiguration .

    For more information, see Custom document enrichment.

    " }, "InlineDocumentEnrichmentConfigurations":{ "type":"list", @@ -4567,7 +4627,11 @@ "FACTUALLY_CORRECT", "COMPLETE", "RELEVANT_SOURCES", - "HELPFUL" + "HELPFUL", + "NOT_BASED_ON_DOCUMENTS", + "NOT_COMPLETE", + "NOT_CONCISE", + "OTHER" ] }, "Messages":{ @@ -4582,6 +4646,10 @@ "type":"structure", "required":["indexId"], "members":{ + "boostingOverride":{ + "shape":"DocumentAttributeBoostingOverrideMap", + "documentation":"

    Overrides the default boosts applied by Amazon Q to supported document attribute data types.

    " + }, "indexId":{ "shape":"IndexId", "documentation":"

    The identifier for the Amazon Q index.

    " @@ -4594,6 +4662,28 @@ "max":800, "min":1 }, + "NumberAttributeBoostingConfiguration":{ + "type":"structure", + "required":["boostingLevel"], + "members":{ + "boostingLevel":{ + "shape":"DocumentAttributeBoostingLevel", + "documentation":"

    Specifies the duration, in seconds, of a boost applies to a NUMBER type document attribute.

    " + }, + "boostingType":{ + "shape":"NumberAttributeBoostingType", + "documentation":"

    Specifies how much a document attribute is boosted.

    " + } + }, + "documentation":"

    Provides information on boosting NUMBER type document attributes.

    For more information on how boosting document attributes work in Amazon Q, see Boosting using document attributes.

    " + }, + "NumberAttributeBoostingType":{ + "type":"string", + "enum":[ + "PRIORITIZE_LARGER_VALUES", + "PRIORITIZE_SMALLER_VALUES" + ] + }, "OAuth2ClientCredentialConfiguration":{ "type":"structure", "required":[ @@ -4985,7 +5075,7 @@ }, "ruleType":{ "shape":"RuleType", - "documentation":"

    The type fo rule.

    " + "documentation":"

    The type of rule.

    " } }, "documentation":"

    Guardrail rules for an Amazon Q application. Amazon Q supports only one rule at a time.

    " @@ -5244,6 +5334,48 @@ "max":2048, "min":1 }, + "StringAttributeBoostingConfiguration":{ + "type":"structure", + "required":["boostingLevel"], + "members":{ + "attributeValueBoosting":{ + "shape":"StringAttributeValueBoosting", + "documentation":"

    Specifies specific values of a STRING type document attribute being boosted.

    " + }, + "boostingLevel":{ + "shape":"DocumentAttributeBoostingLevel", + "documentation":"

    Specifies how much a document attribute is boosted.

    " + } + }, + "documentation":"

    Provides information on boosting STRING type document attributes.

    For STRING and STRING_LIST type document attributes to be used for boosting on the console and the API, they must be enabled for search using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes, you can't boost attributes of these data types on either the console or the API.

    For more information on how boosting document attributes work in Amazon Q, see Boosting using document attributes.

    " + }, + "StringAttributeValueBoosting":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"StringAttributeValueBoostingLevel"}, + "max":10, + "min":1 + }, + "StringAttributeValueBoostingLevel":{ + "type":"string", + "enum":[ + "LOW", + "MEDIUM", + "HIGH", + "VERY_HIGH" + ] + }, + "StringListAttributeBoostingConfiguration":{ + "type":"structure", + "required":["boostingLevel"], + "members":{ + "boostingLevel":{ + "shape":"DocumentAttributeBoostingLevel", + "documentation":"

    Specifies how much a document attribute is boosted.

    " + } + }, + "documentation":"

    Provides information on boosting STRING_LIST type document attributes.

    For STRING and STRING_LIST type document attributes to be used for boosting on the console and the API, they must be enabled for search using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes, you can't boost attributes of these data types on either the console or the API.

    For more information on how boosting document attributes work in Amazon Q, see Boosting using document attributes.

    " + }, "SubnetId":{ "type":"string", "max":200, @@ -5396,7 +5528,7 @@ "members":{ "description":{ "shape":"TopicDescription", - "documentation":"

    A description for your topic control configuration. Use this outline how the large language model (LLM) should use this topic control configuration.

    " + "documentation":"

    A description for your topic control configuration. Use this to outline how the large language model (LLM) should use this topic control configuration.

    " }, "exampleChatMessages":{ "shape":"ExampleChatMessages", @@ -5995,5 +6127,5 @@ "member":{"shape":"WebExperience"} } }, - "documentation":"

    " + "documentation":"

    Amazon Q is in preview release and is subject to change.

    This is the Amazon Q (for business use) API Reference. Amazon Q is a fully managed, generative-AI powered enterprise chat assistant that you can deploy within your organization. Amazon Q enhances employee productivity by supporting key tasks such as question-answering, knowledge discovery, writing email messages, summarizing text, drafting document outlines, and brainstorming ideas. Users ask questions of Amazon Q and get answers that are presented in a conversational manner. For an introduction to the service, see the Amazon Q (for business use) Developer Guide .

    For an overview of the Amazon Q APIs, see Overview of Amazon Q API operations.

    For information about the IAM access control permissions you need to use this API, see IAM roles for Amazon Q in the Amazon Q (for business use) Developer Guide.

    You can use the following AWS SDKs to access Amazon Q APIs:

    The following resources provide additional information about using the Amazon Q API:

    " } diff --git a/services/qconnect/pom.xml b/services/qconnect/pom.xml index ef9bd7e87cab..fd28ec718483 100644 --- a/services/qconnect/pom.xml +++ b/services/qconnect/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT qconnect AWS Java SDK :: Services :: Q Connect diff --git a/services/qconnect/src/main/resources/codegen-resources/customization.config b/services/qconnect/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/qconnect/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/qldb/pom.xml b/services/qldb/pom.xml index 3c283ad0ba38..70857f2e04b8 100644 --- a/services/qldb/pom.xml +++ b/services/qldb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT qldb AWS Java SDK :: Services :: QLDB diff --git a/services/qldb/src/main/resources/codegen-resources/customization.config b/services/qldb/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/qldb/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/qldb/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/qldb/src/main/resources/codegen-resources/endpoint-rule-set.json index e340028309df..b0cd79996dbd 100644 --- a/services/qldb/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/qldb/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/qldb/src/main/resources/codegen-resources/service-2.json b/services/qldb/src/main/resources/codegen-resources/service-2.json index 9a5849bb5060..c70482c01a67 100644 --- a/services/qldb/src/main/resources/codegen-resources/service-2.json +++ b/services/qldb/src/main/resources/codegen-resources/service-2.json @@ -505,7 +505,7 @@ }, "EncryptionDescription":{ "shape":"LedgerEncryptionDescription", - "documentation":"

    Information about the encryption of data at rest in the ledger. This includes the current status, the KMS key, and when the key became inaccessible (in the case of an error).

    " + "documentation":"

    Information about the encryption of data at rest in the ledger. This includes the current status, the KMS key, and when the key became inaccessible (in the case of an error). If this parameter is undefined, the ledger uses an Amazon Web Services owned KMS key for encryption.

    " } } }, @@ -856,7 +856,7 @@ "members":{ "KmsKeyArn":{ "shape":"Arn", - "documentation":"

    The Amazon Resource Name (ARN) of the customer managed KMS key that the ledger uses for encryption at rest. If this parameter is undefined, the ledger uses an Amazon Web Services owned KMS key for encryption.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the customer managed KMS key that the ledger uses for encryption at rest. If this parameter is undefined, the ledger uses an Amazon Web Services owned KMS key for encryption. It will display AWS_OWNED_KMS_KEY when updating the ledger's encryption configuration to the Amazon Web Services owned KMS key.

    " }, "EncryptionStatus":{ "shape":"EncryptionStatus", diff --git a/services/qldbsession/pom.xml b/services/qldbsession/pom.xml index 7a632cfd39c2..66a82b1d0b09 100644 --- a/services/qldbsession/pom.xml +++ b/services/qldbsession/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT qldbsession AWS Java SDK :: Services :: QLDB Session diff --git a/services/qldbsession/src/main/resources/codegen-resources/customization.config b/services/qldbsession/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/qldbsession/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/quicksight/pom.xml b/services/quicksight/pom.xml index bbc9038d6b1b..d4425e168c3b 100644 --- a/services/quicksight/pom.xml +++ b/services/quicksight/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT quicksight AWS Java SDK :: Services :: QuickSight diff --git a/services/quicksight/src/main/resources/codegen-resources/customization.config b/services/quicksight/src/main/resources/codegen-resources/customization.config index cadacf8d10b0..85746b43d2c7 100644 --- a/services/quicksight/src/main/resources/codegen-resources/customization.config +++ b/services/quicksight/src/main/resources/codegen-resources/customization.config @@ -144,5 +144,8 @@ "DataSourceParameters": { "union": true } - } + }, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/quicksight/src/main/resources/codegen-resources/service-2.json b/services/quicksight/src/main/resources/codegen-resources/service-2.json index 6da7d18fbced..c9f17d960de8 100644 --- a/services/quicksight/src/main/resources/codegen-resources/service-2.json +++ b/services/quicksight/src/main/resources/codegen-resources/service-2.json @@ -5437,6 +5437,10 @@ "ContributionAnalysisDefaults":{ "shape":"ContributionAnalysisDefaultList", "documentation":"

    The contribution analysis (anomaly configuration) setup of the visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a BarChartVisual.

    " @@ -5710,6 +5714,10 @@ "VisualPalette":{ "shape":"VisualPalette", "documentation":"

    The palette (chart color) display setup of the visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a BoxPlotVisual.

    " @@ -6688,6 +6696,10 @@ "VisualPalette":{ "shape":"VisualPalette", "documentation":"

    The palette (chart color) display setup of the visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a ComboChartVisual.

    " @@ -7037,6 +7049,16 @@ "COLLECTIVE" ] }, + "ContextMenuOption":{ + "type":"structure", + "members":{ + "AvailabilityStatus":{ + "shape":"DashboardBehavior", + "documentation":"

    The availability status of the context menu options. If the value of this property is set to ENABLED, dashboard readers can interact with the context menu.

    " + } + }, + "documentation":"

    The context menu options for a visual's interactions.

    " + }, "ContributionAnalysisDefault":{ "type":"structure", "required":[ @@ -8743,6 +8765,10 @@ "ImageScaling":{ "shape":"CustomContentImageScalingConfiguration", "documentation":"

    The sizing options for the size of the custom content visual. This structure is required when the ContentType of the visual is 'IMAGE'.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a CustomContentVisual.

    " @@ -14937,6 +14963,10 @@ "MapStyleOptions":{ "shape":"GeospatialMapStyleOptions", "documentation":"

    The map style options of the filled map visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration for a FilledMapVisual.

    " @@ -16033,6 +16063,10 @@ "VisualPalette":{ "shape":"VisualPalette", "documentation":"

    The visual palette configuration of a FunnelChartVisual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a FunnelChartVisual.

    " @@ -16207,6 +16241,10 @@ "VisualPalette":{ "shape":"VisualPalette", "documentation":"

    The visual palette configuration of a GaugeChartVisual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a GaugeChartVisual.

    " @@ -16568,7 +16606,11 @@ "shape":"GeospatialPointStyleOptions", "documentation":"

    The point style options of the geospatial map.

    " }, - "VisualPalette":{"shape":"VisualPalette"} + "VisualPalette":{"shape":"VisualPalette"}, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " + } }, "documentation":"

    The configuration of a GeospatialMapVisual.

    " }, @@ -17171,6 +17213,10 @@ "Tooltip":{ "shape":"TooltipOptions", "documentation":"

    The tooltip display setup of the visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a heat map.

    " @@ -17335,6 +17381,10 @@ "VisualPalette":{ "shape":"VisualPalette", "documentation":"

    The visual palette configuration of a histogram.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration for a HistogramVisual.

    " @@ -17747,6 +17797,10 @@ "CustomNarrative":{ "shape":"CustomNarrativeOptions", "documentation":"

    The custom narrative of the insight visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of an insight visual.

    " @@ -18146,6 +18200,10 @@ "KPIOptions":{ "shape":"KPIOptions", "documentation":"

    The options that determine the presentation of a KPI visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a KPI visual.

    " @@ -18565,6 +18623,10 @@ "VisualPalette":{ "shape":"VisualPalette", "documentation":"

    The visual palette configuration of a line chart.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a line chart.

    " @@ -22143,6 +22205,10 @@ "ContributionAnalysisDefaults":{ "shape":"ContributionAnalysisDefaultList", "documentation":"

    The contribution analysis (anomaly configuration) setup of the visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a pie chart.

    " @@ -22353,6 +22419,10 @@ "PaginatedReportOptions":{ "shape":"PivotTablePaginatedReportOptions", "documentation":"

    The paginated report options for a pivot table visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration for a PivotTableVisual.

    " @@ -23095,6 +23165,10 @@ "AxesRangeScale":{ "shape":"RadarChartAxesRangeScale", "documentation":"

    The axis behavior options of a radar chart.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a RadarChartVisual.

    " @@ -24375,6 +24449,10 @@ "DataLabels":{ "shape":"DataLabelOptions", "documentation":"

    The data label configuration of a sankey diagram.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a sankey diagram.

    " @@ -24502,6 +24580,10 @@ "VisualPalette":{ "shape":"VisualPalette", "documentation":"

    The palette (chart color) display setup of the visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a scatter plot.

    " @@ -26838,6 +26920,10 @@ "TableInlineVisualizations":{ "shape":"TableInlineVisualizationList", "documentation":"

    A collection of inline visualizations to display within a chart.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration for a TableVisual.

    " @@ -29052,6 +29138,10 @@ "Tooltip":{ "shape":"TooltipOptions", "documentation":"

    The tooltip display setup of the visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a tree map.

    " @@ -30171,11 +30261,11 @@ }, "GrantPermissions":{ "shape":"ResourcePermissionList", - "documentation":"

    The permissions that you want to grant on a resource.

    " + "documentation":"

    The permissions that you want to grant on a resource. Namespace ARNs are not supported Principal values for folder permissions.

    " }, "RevokePermissions":{ "shape":"ResourcePermissionList", - "documentation":"

    The permissions that you want to revoke from a resource.

    " + "documentation":"

    The permissions that you want to revoke from a resource. Namespace ARNs are not supported Principal values for folder permissions.

    " } } }, @@ -31752,6 +31842,20 @@ "DATA_POINT_MENU" ] }, + "VisualInteractionOptions":{ + "type":"structure", + "members":{ + "VisualMenuOption":{ + "shape":"VisualMenuOption", + "documentation":"

    The on-visual menu options for a visual.

    " + }, + "ContextMenuOption":{ + "shape":"ContextMenuOption", + "documentation":"

    The context menu options for a visual.

    " + } + }, + "documentation":"

    The general visual interactions setup for visual publish options

    " + }, "VisualList":{ "type":"list", "member":{"shape":"Visual"}, @@ -31842,6 +31946,16 @@ }, "documentation":"

    The field well configuration of a waterfall visual.

    " }, + "WaterfallChartColorConfiguration":{ + "type":"structure", + "members":{ + "GroupColorConfiguration":{ + "shape":"WaterfallChartGroupColorConfiguration", + "documentation":"

    The color configuration for individual groups within a waterfall visual.

    " + } + }, + "documentation":"

    The color configuration of a waterfall visual.

    " + }, "WaterfallChartConfiguration":{ "type":"structure", "members":{ @@ -31884,6 +31998,14 @@ "VisualPalette":{ "shape":"VisualPalette", "documentation":"

    The visual palette configuration of a waterfall visual.

    " + }, + "ColorConfiguration":{ + "shape":"WaterfallChartColorConfiguration", + "documentation":"

    The color configuration of a waterfall visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration for a waterfall visual.

    " @@ -31898,6 +32020,24 @@ }, "documentation":"

    The field well configuration of a waterfall visual.

    " }, + "WaterfallChartGroupColorConfiguration":{ + "type":"structure", + "members":{ + "PositiveBarColor":{ + "shape":"HexColor", + "documentation":"

    Defines the color for the positive bars of a waterfall chart.

    " + }, + "NegativeBarColor":{ + "shape":"HexColor", + "documentation":"

    Defines the color for the negative bars of a waterfall chart.

    " + }, + "TotalBarColor":{ + "shape":"HexColor", + "documentation":"

    Defines the color for the total bars of a waterfall chart.

    " + } + }, + "documentation":"

    The color configuration for individual groups within a waterfall visual.

    " + }, "WaterfallChartOptions":{ "type":"structure", "members":{ @@ -32033,6 +32173,10 @@ "WordCloudOptions":{ "shape":"WordCloudOptions", "documentation":"

    The options for a word cloud visual.

    " + }, + "Interactions":{ + "shape":"VisualInteractionOptions", + "documentation":"

    The general visual interactions setup for a visual.

    " } }, "documentation":"

    The configuration of a word cloud visual.

    " diff --git a/services/ram/pom.xml b/services/ram/pom.xml index 744bc59c85f9..46e44b040306 100644 --- a/services/ram/pom.xml +++ b/services/ram/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ram AWS Java SDK :: Services :: RAM diff --git a/services/ram/src/main/resources/codegen-resources/customization.config b/services/ram/src/main/resources/codegen-resources/customization.config index 70cfe32e920a..00dca75772c7 100644 --- a/services/ram/src/main/resources/codegen-resources/customization.config +++ b/services/ram/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "getResourceShareInvitations", "enableSharingWithAwsOrganization" - ] + ], + "useSraAuth": true } diff --git a/services/rbin/pom.xml b/services/rbin/pom.xml index d88fd5384497..f4ff46bb8022 100644 --- a/services/rbin/pom.xml +++ b/services/rbin/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT rbin AWS Java SDK :: Services :: Rbin diff --git a/services/rbin/src/main/resources/codegen-resources/customization.config b/services/rbin/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/rbin/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/rds/pom.xml b/services/rds/pom.xml index c89347a20897..ea2e990d5e03 100644 --- a/services/rds/pom.xml +++ b/services/rds/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT rds AWS Java SDK :: Services :: Amazon RDS @@ -56,11 +56,6 @@ protocol-core ${awsjavasdk.version}
    - - software.amazon.awssdk - profiles - ${awsjavasdk.version} - software.amazon.awssdk http-auth-aws diff --git a/services/rds/src/main/java/software/amazon/awssdk/services/rds/internal/RdsPresignInterceptor.java b/services/rds/src/main/java/software/amazon/awssdk/services/rds/internal/RdsPresignInterceptor.java index 46134f91dfbb..eae144050d6d 100644 --- a/services/rds/src/main/java/software/amazon/awssdk/services/rds/internal/RdsPresignInterceptor.java +++ b/services/rds/src/main/java/software/amazon/awssdk/services/rds/internal/RdsPresignInterceptor.java @@ -15,21 +15,20 @@ package software.amazon.awssdk.services.rds.internal; -import static software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute.AWS_CREDENTIALS; import static software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute.SELECTED_AUTH_SCHEME; import java.net.URI; import java.time.Clock; +import java.time.Duration; +import java.time.Instant; +import java.time.ZoneOffset; +import java.util.concurrent.CompletableFuture; import software.amazon.awssdk.annotations.SdkInternalApi; -import software.amazon.awssdk.auth.credentials.AwsCredentials; -import software.amazon.awssdk.auth.credentials.CredentialUtils; -import software.amazon.awssdk.auth.signer.Aws4Signer; -import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; -import software.amazon.awssdk.auth.signer.params.Aws4PresignerParams; import software.amazon.awssdk.awscore.AwsExecutionAttribute; import software.amazon.awssdk.awscore.endpoint.DefaultServiceEndpointBuilder; import software.amazon.awssdk.core.Protocol; import software.amazon.awssdk.core.SdkRequest; +import software.amazon.awssdk.core.SelectedAuthScheme; import software.amazon.awssdk.core.client.config.SdkClientConfiguration; import software.amazon.awssdk.core.client.config.SdkClientOption; import software.amazon.awssdk.core.exception.SdkClientException; @@ -40,7 +39,13 @@ import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpMethod; import software.amazon.awssdk.http.SdkHttpRequest; -import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.HttpSigner; +import software.amazon.awssdk.http.auth.spi.signer.SignRequest; +import software.amazon.awssdk.http.auth.spi.signer.SignedRequest; +import software.amazon.awssdk.identity.spi.Identity; import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.rds.model.RdsRequest; @@ -79,49 +84,39 @@ public interface PresignableRequest { private final Class requestClassToPreSign; - private final Clock signingOverrideClock; + private final Clock signingClockOverride; - public RdsPresignInterceptor(Class requestClassToPreSign) { + protected RdsPresignInterceptor(Class requestClassToPreSign) { this(requestClassToPreSign, null); } - public RdsPresignInterceptor(Class requestClassToPreSign, Clock signingOverrideClock) { + protected RdsPresignInterceptor(Class requestClassToPreSign, Clock signingClockOverride) { this.requestClassToPreSign = requestClassToPreSign; - this.signingOverrideClock = signingOverrideClock; + this.signingClockOverride = signingClockOverride; } @Override public final SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, - ExecutionAttributes executionAttributes) { + ExecutionAttributes executionAttributes) { SdkHttpRequest request = context.httpRequest(); - SdkRequest originalRequest = context.request(); - if (!requestClassToPreSign.isInstance(originalRequest)) { - return request; - } - - if (request.firstMatchingRawQueryParameter(PARAM_PRESIGNED_URL).isPresent()) { - return request; + PresignableRequest presignableRequest = toPresignableRequest(request, context); + if (presignableRequest == null) { + return request.toBuilder().removeQueryParameter(PARAM_SOURCE_REGION).build(); } - PresignableRequest presignableRequest = adaptRequest(requestClassToPreSign.cast(originalRequest)); - + SelectedAuthScheme selectedAuthScheme = executionAttributes.getAttribute(SELECTED_AUTH_SCHEME); String sourceRegion = presignableRequest.getSourceRegion(); - if (sourceRegion == null) { - return request; - } - - String destinationRegion = executionAttributes.getAttribute(AwsSignerExecutionAttribute.SIGNING_REGION).id(); - + String destinationRegion = selectedAuthScheme.authSchemeOption().signerProperty(AwsV4HttpSigner.REGION_NAME); URI endpoint = createEndpoint(sourceRegion, SERVICE_NAME, executionAttributes); SdkHttpFullRequest.Builder marshalledRequest = presignableRequest.marshall().toBuilder().uri(endpoint); SdkHttpFullRequest requestToPresign = - marshalledRequest.method(SdkHttpMethod.GET) - .putRawQueryParameter(PARAM_DESTINATION_REGION, destinationRegion) - .removeQueryParameter(PARAM_SOURCE_REGION) - .build(); + marshalledRequest.method(SdkHttpMethod.GET) + .putRawQueryParameter(PARAM_DESTINATION_REGION, destinationRegion) + .removeQueryParameter(PARAM_SOURCE_REGION) + .build(); - requestToPresign = presignRequest(requestToPresign, executionAttributes, sourceRegion); + requestToPresign = sraPresignRequest(executionAttributes, requestToPresign, sourceRegion); String presignedUrl = requestToPresign.getUri().toString(); @@ -140,39 +135,92 @@ public final SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, */ protected abstract PresignableRequest adaptRequest(T originalRequest); - private SdkHttpFullRequest presignRequest(SdkHttpFullRequest request, - ExecutionAttributes attributes, - String signingRegion) { + /** + * Converts the request to a PresignableRequest if possible. + */ + private PresignableRequest toPresignableRequest(SdkHttpRequest request, Context.ModifyHttpRequest context) { + SdkRequest originalRequest = context.request(); + if (!requestClassToPreSign.isInstance(originalRequest)) { + return null; + } + if (request.firstMatchingRawQueryParameter(PARAM_PRESIGNED_URL).isPresent()) { + return null; + } + + PresignableRequest presignableRequest = adaptRequest(requestClassToPreSign.cast(originalRequest)); + String sourceRegion = presignableRequest.getSourceRegion(); + if (sourceRegion == null) { + return null; + } + return presignableRequest; + } - Aws4Signer signer = Aws4Signer.create(); - Aws4PresignerParams presignerParams = Aws4PresignerParams.builder() - .signingRegion(Region.of(signingRegion)) - .signingName(SERVICE_NAME) - .signingClockOverride(signingOverrideClock) - .awsCredentials(resolveCredentials(attributes)) - .build(); + /** + * Presign the provided HTTP request using SRA HttpSigner + */ + private SdkHttpFullRequest sraPresignRequest(ExecutionAttributes executionAttributes, SdkHttpFullRequest request, + String signingRegion) { + SelectedAuthScheme selectedAuthScheme = executionAttributes.getAttribute(SELECTED_AUTH_SCHEME); + Instant signingInstant; + if (signingClockOverride != null) { + signingInstant = signingClockOverride.instant(); + } else { + signingInstant = Instant.now(); + } + // A fixed signing clock is used so that the current time used by the signing logic, as well as to + // determine expiration are the same. + Clock signingClock = Clock.fixed(signingInstant, ZoneOffset.UTC); + Duration expirationDuration = Duration.ofDays(7); + return doSraPresign(request, selectedAuthScheme, signingRegion, signingClock, expirationDuration); + } - return signer.presign(request, presignerParams); + private SdkHttpFullRequest doSraPresign(SdkHttpFullRequest request, + SelectedAuthScheme selectedAuthScheme, + String signingRegion, + Clock signingClock, + Duration expirationDuration) { + CompletableFuture identityFuture = selectedAuthScheme.identity(); + T identity = CompletableFutureUtils.joinLikeSync(identityFuture); + + // Pre-signed URL puts auth info in query string, does not sign the payload, and has an expiry. + SignRequest.Builder signRequestBuilder = SignRequest + .builder(identity) + .putProperty(AwsV4FamilyHttpSigner.AUTH_LOCATION, AwsV4FamilyHttpSigner.AuthLocation.QUERY_STRING) + .putProperty(AwsV4FamilyHttpSigner.EXPIRATION_DURATION, expirationDuration) + .putProperty(HttpSigner.SIGNING_CLOCK, signingClock) + .request(request) + .payload(request.contentStreamProvider().orElse(null)); + AuthSchemeOption authSchemeOption = selectedAuthScheme.authSchemeOption(); + authSchemeOption.forEachSignerProperty(signRequestBuilder::putProperty); + // Override the region + signRequestBuilder.putProperty(AwsV4HttpSigner.REGION_NAME, signingRegion); + HttpSigner signer = selectedAuthScheme.signer(); + SignedRequest signedRequest = signer.sign(signRequestBuilder.build()); + return toSdkHttpFullRequest(signedRequest); } - private AwsCredentials resolveCredentials(ExecutionAttributes attributes) { - return attributes.getOptionalAttribute(SELECTED_AUTH_SCHEME) - .map(selectedAuthScheme -> selectedAuthScheme.identity()) - .map(identityFuture -> CompletableFutureUtils.joinLikeSync(identityFuture)) - .filter(identity -> identity instanceof AwsCredentialsIdentity) - .map(identity -> { - AwsCredentialsIdentity awsCredentialsIdentity = (AwsCredentialsIdentity) identity; - return CredentialUtils.toCredentials(awsCredentialsIdentity); - }).orElse(attributes.getAttribute(AWS_CREDENTIALS)); + private SdkHttpFullRequest toSdkHttpFullRequest(SignedRequest signedRequest) { + SdkHttpRequest request = signedRequest.request(); + + return SdkHttpFullRequest.builder() + .contentStreamProvider(signedRequest.payload().orElse(null)) + .protocol(request.protocol()) + .method(request.method()) + .host(request.host()) + .port(request.port()) + .encodedPath(request.encodedPath()) + .applyMutation(r -> request.forEachHeader(r::putHeader)) + .applyMutation(r -> request.forEachRawQueryParameter(r::putRawQueryParameter)) + .removeQueryParameter(PARAM_SOURCE_REGION) + .build(); } private URI createEndpoint(String regionName, String serviceName, ExecutionAttributes attributes) { Region region = Region.of(regionName); - if (region == null) { throw SdkClientException.builder() .message("{" + serviceName + ", " + regionName + "} was not " - + "found in region metadata. Update to latest version of SDK and try again.") + + "found in region metadata. Update to latest version of SDK and try again.") .build(); } diff --git a/services/rds/src/main/resources/codegen-resources/customization.config b/services/rds/src/main/resources/codegen-resources/customization.config index fa6c19c93539..ae3bb5b30401 100644 --- a/services/rds/src/main/resources/codegen-resources/customization.config +++ b/services/rds/src/main/resources/codegen-resources/customization.config @@ -1,4 +1,6 @@ { + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true, "shapeModifiers" : { "CopyDBSnapshotMessage" : { "inject" : [ diff --git a/services/rds/src/main/resources/codegen-resources/customization.tmp b/services/rds/src/main/resources/codegen-resources/customization.tmp new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/services/rds/src/main/resources/codegen-resources/service-2.json b/services/rds/src/main/resources/codegen-resources/service-2.json index bf5f74a097cd..60ae3c67dace 100644 --- a/services/rds/src/main/resources/codegen-resources/service-2.json +++ b/services/rds/src/main/resources/codegen-resources/service-2.json @@ -305,6 +305,7 @@ }, "errors":[ {"shape":"DBClusterAlreadyExistsFault"}, + {"shape":"InsufficientDBInstanceCapacityFault"}, {"shape":"InsufficientStorageClusterCapacityFault"}, {"shape":"DBClusterQuotaExceededFault"}, {"shape":"StorageQuotaExceededFault"}, @@ -533,6 +534,28 @@ ], "documentation":"

    Creates a new DB security group. DB security groups control access to a DB instance.

    A DB security group controls access to EC2-Classic DB instances that are not in a VPC.

    EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

    " }, + "CreateDBShardGroup":{ + "name":"CreateDBShardGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDBShardGroupMessage"}, + "output":{ + "shape":"DBShardGroup", + "resultWrapper":"CreateDBShardGroupResult" + }, + "errors":[ + {"shape":"DBShardGroupAlreadyExistsFault"}, + {"shape":"DBClusterNotFoundFault"}, + {"shape":"MaxDBShardGroupLimitReached"}, + {"shape":"InvalidDBClusterStateFault"}, + {"shape":"InvalidMaxAcuFault"}, + {"shape":"UnsupportedDBEngineVersionFault"}, + {"shape":"InvalidVPCNetworkStateFault"} + ], + "documentation":"

    Creates a new DB shard group for Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.

    Valid for: Aurora DB clusters only

    " + }, "CreateDBSnapshot":{ "name":"CreateDBSnapshot", "http":{ @@ -888,6 +911,24 @@ ], "documentation":"

    Deletes a DB security group.

    The specified DB security group must not be associated with any DB instances.

    EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

    " }, + "DeleteDBShardGroup":{ + "name":"DeleteDBShardGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDBShardGroupMessage"}, + "output":{ + "shape":"DBShardGroup", + "resultWrapper":"DeleteDBShardGroupResult" + }, + "errors":[ + {"shape":"DBShardGroupNotFoundFault"}, + {"shape":"InvalidDBShardGroupStateFault"}, + {"shape":"InvalidDBClusterStateFault"} + ], + "documentation":"

    Deletes an Aurora Limitless Database DB shard group.

    " + }, "DeleteDBSnapshot":{ "name":"DeleteDBSnapshot", "http":{ @@ -1387,6 +1428,23 @@ ], "documentation":"

    Returns a list of DBSecurityGroup descriptions. If a DBSecurityGroupName is specified, the list will contain only the descriptions of the specified DB security group.

    EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

    " }, + "DescribeDBShardGroups":{ + "name":"DescribeDBShardGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBShardGroupsMessage"}, + "output":{ + "shape":"DescribeDBShardGroupsResponse", + "resultWrapper":"DescribeDBShardGroupsResult" + }, + "errors":[ + {"shape":"DBShardGroupNotFoundFault"}, + {"shape":"DBClusterNotFoundFault"} + ], + "documentation":"

    Describes existing Aurora Limitless Database DB shard groups.

    " + }, "DescribeDBSnapshotAttributes":{ "name":"DescribeDBSnapshotAttributes", "http":{ @@ -1770,7 +1828,7 @@ {"shape":"InvalidDBClusterStateFault"}, {"shape":"InvalidDBInstanceStateFault"} ], - "documentation":"

    Forces a failover for a DB cluster.

    For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

    For a Multi-AZ DB cluster, failover for a DB cluster promotes one of the readable standby DB instances (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

    An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists, when the primary DB instance fails. A Multi-AZ DB cluster automatically fails over to a readable standby DB instance when the primary DB instance fails.

    To simulate a failure of a primary instance for testing, you can force a failover. Because each instance in a DB cluster has its own endpoint address, make sure to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

    For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

    For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

    " + "documentation":"

    Forces a failover for a DB cluster.

    For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

    For a Multi-AZ DB cluster, after RDS terminates the primary DB instance, the internal monitoring system detects that the primary DB instance is unhealthy and promotes a readable standby (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer). Failover times are typically less than 35 seconds.

    An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists, when the primary DB instance fails. A Multi-AZ DB cluster automatically fails over to a readable standby DB instance when the primary DB instance fails.

    To simulate a failure of a primary instance for testing, you can force a failover. Because each instance in a DB cluster has its own endpoint address, make sure to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

    For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

    For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

    " }, "FailoverGlobalCluster":{ "name":"FailoverGlobalCluster", @@ -2091,6 +2149,25 @@ "errors":[], "documentation":"

    Updates the recommendation status and recommended action status for the specified recommendation.

    " }, + "ModifyDBShardGroup":{ + "name":"ModifyDBShardGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyDBShardGroupMessage"}, + "output":{ + "shape":"DBShardGroup", + "resultWrapper":"ModifyDBShardGroupResult" + }, + "errors":[ + {"shape":"InvalidDBClusterStateFault"}, + {"shape":"DBShardGroupAlreadyExistsFault"}, + {"shape":"DBShardGroupNotFoundFault"}, + {"shape":"InvalidMaxAcuFault"} + ], + "documentation":"

    Modifies the settings of an Aurora Limitless Database DB shard group. You can change one or more settings by specifying these parameters and the new values in the request.

    " + }, "ModifyDBSnapshot":{ "name":"ModifyDBSnapshot", "http":{ @@ -2308,6 +2385,23 @@ ], "documentation":"

    You might need to reboot your DB instance, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB parameter group associated with the DB instance, you must reboot the instance for the changes to take effect.

    Rebooting a DB instance restarts the database engine service. Rebooting a DB instance results in a momentary outage, during which the DB instance status is set to rebooting.

    For more information about rebooting, see Rebooting a DB Instance in the Amazon RDS User Guide.

    This command doesn't apply to RDS Custom.

    If your DB instance is part of a Multi-AZ DB cluster, you can reboot the DB cluster with the RebootDBCluster operation.

    " }, + "RebootDBShardGroup":{ + "name":"RebootDBShardGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebootDBShardGroupMessage"}, + "output":{ + "shape":"DBShardGroup", + "resultWrapper":"RebootDBShardGroupResult" + }, + "errors":[ + {"shape":"DBShardGroupNotFoundFault"}, + {"shape":"InvalidDBShardGroupStateFault"} + ], + "documentation":"

    You might need to reboot your DB shard group, usually for maintenance reasons. For example, if you make certain modifications, reboot the DB shard group for the changes to take effect.

    This operation applies only to Aurora Limitless Database DBb shard groups.

    " + }, "RegisterDBProxyTargets":{ "name":"RegisterDBProxyTargets", "http":{ @@ -2511,7 +2605,8 @@ {"shape":"KMSKeyNotAccessibleFault"}, {"shape":"DomainNotFoundFault"}, {"shape":"DBClusterParameterGroupNotFoundFault"}, - {"shape":"InvalidDBInstanceStateFault"} + {"shape":"InvalidDBInstanceStateFault"}, + {"shape":"InsufficientDBInstanceCapacityFault"} ], "documentation":"

    Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

    The target DB cluster is created from the source snapshot with a default configuration. If you don't specify a security group, the new DB cluster is associated with the default security group.

    This operation only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance operation to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterFromSnapshot operation has completed and the DB cluster is available.

    For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

    For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

    " }, @@ -2545,7 +2640,8 @@ {"shape":"StorageQuotaExceededFault"}, {"shape":"DomainNotFoundFault"}, {"shape":"DBClusterParameterGroupNotFoundFault"}, - {"shape":"DBClusterAutomatedBackupNotFoundFault"} + {"shape":"DBClusterAutomatedBackupNotFoundFault"}, + {"shape":"InsufficientDBInstanceCapacityFault"} ], "documentation":"

    Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group.

    For Aurora, this operation only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance operation to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterToPointInTime operation has completed and the DB cluster is available.

    For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

    For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

    " }, @@ -3876,7 +3972,7 @@ }, "TargetDBInstanceClass":{ "shape":"TargetDBInstanceClass", - "documentation":"

    Specify the DB instance class for the databases in the green environment.

    " + "documentation":"

    Specify the DB instance class for the databases in the green environment.

    This parameter only applies to RDS DB instances, because DB instances within an Aurora DB cluster can have multiple different instance classes. If you're creating a blue/green deployment from an Aurora DB cluster, don't specify this parameter. After the green environment is created, you can individually modify the instance classes of the DB instances within the green DB cluster.

    " }, "UpgradeTargetStorageConfig":{ "shape":"BooleanOptional", @@ -4011,7 +4107,7 @@ }, "DBClusterIdentifier":{ "shape":"String", - "documentation":"

    The identifier for this DB cluster. This parameter is stored as a lowercase string.

    Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

    Constraints:

    • Must contain from 1 to 63 letters, numbers, or hyphens.

    • First character must be a letter.

    • Can't end with a hyphen or contain two consecutive hyphens.

    Example: my-cluster1

    " + "documentation":"

    The identifier for this DB cluster. This parameter is stored as a lowercase string.

    Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

    Constraints:

    • Must contain from 1 to 63 (for Aurora DB clusters) or 1 to 52 (for Multi-AZ DB clusters) letters, numbers, or hyphens.

    • First character must be a letter.

    • Can't end with a hyphen or contain two consecutive hyphens.

    Example: my-cluster1

    " }, "DBClusterParameterGroupName":{ "shape":"String", @@ -4173,6 +4269,10 @@ "shape":"IntegerOptional", "documentation":"

    The number of days to retain Performance Insights data.

    Valid for Cluster Type: Multi-AZ DB clusters only

    Valid Values:

    • 7

    • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

    • 731

    Default: 7 days

    If you specify a retention period that isn't valid, such as 94, Amazon RDS issues an error.

    " }, + "EnableLimitlessDatabase":{ + "shape":"BooleanOptional", + "documentation":"

    Specifies whether to enable Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.

    Valid for: Aurora DB clusters only

    " + }, "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"}, "NetworkType":{ "shape":"String", @@ -4211,7 +4311,7 @@ }, "DBParameterGroupFamily":{ "shape":"String", - "documentation":"

    The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.

    Aurora MySQL

    Example: aurora-mysql5.7, aurora-mysql8.0

    Aurora PostgreSQL

    Example: aurora-postgresql14

    RDS for MySQL

    Example: mysql8.0

    RDS for PostgreSQL

    Example: postgres12

    To list all of the available parameter group families for a DB engine, use the following command:

    aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine <engine>

    For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command:

    aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine aurora-postgresql

    The output contains duplicates.

    The following are the valid DB engine values:

    • aurora-mysql

    • aurora-postgresql

    • mysql

    • postgres

    " + "documentation":"

    The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.

    Aurora MySQL

    Example: aurora-mysql5.7, aurora-mysql8.0

    Aurora PostgreSQL

    Example: aurora-postgresql14

    RDS for MySQL

    Example: mysql8.0

    RDS for PostgreSQL

    Example: postgres13

    To list all of the available parameter group families for a DB engine, use the following command:

    aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine <engine>

    For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command:

    aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine aurora-postgresql

    The output contains duplicates.

    The following are the valid DB engine values:

    • aurora-mysql

    • aurora-postgresql

    • mysql

    • postgres

    " }, "Description":{ "shape":"String", @@ -4876,6 +4976,36 @@ "DBSecurityGroup":{"shape":"DBSecurityGroup"} } }, + "CreateDBShardGroupMessage":{ + "type":"structure", + "required":[ + "DBShardGroupIdentifier", + "DBClusterIdentifier", + "MaxACU" + ], + "members":{ + "DBShardGroupIdentifier":{ + "shape":"String", + "documentation":"

    The name of the DB shard group.

    " + }, + "DBClusterIdentifier":{ + "shape":"String", + "documentation":"

    The name of the primary DB cluster for the DB shard group.

    " + }, + "ComputeRedundancy":{ + "shape":"IntegerOptional", + "documentation":"

    Specifies whether to create standby instances for the DB shard group. Valid values are the following:

    • 0 - Creates a single, primary DB instance for each physical shard. This is the default value, and the only one supported for the preview.

    • 1 - Creates a primary DB instance and a standby instance in a different Availability Zone (AZ) for each physical shard.

    • 2 - Creates a primary DB instance and two standby instances in different AZs for each physical shard.

    " + }, + "MaxACU":{ + "shape":"DoubleOptional", + "documentation":"

    The maximum capacity of the DB shard group in Aurora capacity units (ACUs).

    " + }, + "PubliclyAccessible":{ + "shape":"BooleanOptional", + "documentation":"

    Specifies whether the DB shard group is publicly accessible.

    When the DB shard group is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB shard group's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB shard group's VPC. Access to the DB shard group is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB shard group doesn't permit it.

    When the DB shard group isn't publicly accessible, it is an internal DB shard group with a DNS name that resolves to a private IP address.

    Default: The default behavior varies depending on whether DBSubnetGroupName is specified.

    If DBSubnetGroupName isn't specified, and PubliclyAccessible isn't specified, the following applies:

    • If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB shard group is private.

    • If the default VPC in the target Region has an internet gateway attached to it, the DB shard group is public.

    If DBSubnetGroupName is specified, and PubliclyAccessible isn't specified, the following applies:

    • If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB shard group is private.

    • If the subnets are part of a VPC that has an internet gateway attached to it, the DB shard group is public.

    " + } + } + }, "CreateDBSnapshotMessage":{ "type":"structure", "required":[ @@ -4947,7 +5077,7 @@ }, "SnsTopicArn":{ "shape":"String", - "documentation":"

    The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the SNS topic created for event notification. SNS automatically creates the ARN when you create a topic and subscribe to it.

    RDS doesn't support FIFO (first in, first out) topics. For more information, see Message ordering and deduplication (FIFO topics) in the Amazon Simple Notification Service Developer Guide.

    " }, "SourceType":{ "shape":"String", @@ -5510,6 +5640,14 @@ "AwsBackupRecoveryPointArn":{ "shape":"String", "documentation":"

    The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

    " + }, + "LimitlessDatabase":{ + "shape":"LimitlessDatabase", + "documentation":"

    The details for Aurora Limitless Database.

    " + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

    The storage throughput for the DB cluster. The throughput is automatically set based on the IOPS that you provision, and is not configurable.

    This setting is only for non-Aurora Multi-AZ DB clusters.

    " } }, "documentation":"

    Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB cluster.

    For an Amazon Aurora DB cluster, this data type is used as a response element in the operations CreateDBCluster, DeleteDBCluster, DescribeDBClusters, FailoverDBCluster, ModifyDBCluster, PromoteReadReplicaDBCluster, RestoreDBClusterFromS3, RestoreDBClusterFromSnapshot, RestoreDBClusterToPointInTime, StartDBCluster, and StopDBCluster.

    For a Multi-AZ DB cluster, this data type is used as a response element in the operations CreateDBCluster, DeleteDBCluster, DescribeDBClusters, FailoverDBCluster, ModifyDBCluster, RebootDBCluster, RestoreDBClusterFromSnapshot, and RestoreDBClusterToPointInTime.

    For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

    For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

    ", @@ -5622,6 +5760,10 @@ "AwsBackupRecoveryPointArn":{ "shape":"String", "documentation":"

    The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

    " + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

    The storage throughput for the automated backup. The throughput is automatically set based on the IOPS that you provision, and is not configurable.

    This setting is only for non-Aurora Multi-AZ DB clusters.

    " } }, "documentation":"

    An automated backup of a DB cluster. It consists of system backups, transaction logs, and the database cluster properties that existed at the time you deleted the source cluster.

    ", @@ -6203,6 +6345,10 @@ "DbClusterResourceId":{ "shape":"String", "documentation":"

    The resource ID of the DB cluster that this DB cluster snapshot was created from.

    " + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

    The storage throughput for the DB cluster snapshot. The throughput is automatically set based on the IOPS that you provision, and is not configurable.

    This setting is only for non-Aurora Multi-AZ DB clusters.

    " } }, "documentation":"

    Contains the details for an Amazon RDS DB cluster snapshot

    This data type is used as a response element in the DescribeDBClusterSnapshots action.

    ", @@ -7876,6 +8022,80 @@ "locationName":"DBSecurityGroup" } }, + "DBShardGroup":{ + "type":"structure", + "members":{ + "DBShardGroupResourceId":{ + "shape":"String", + "documentation":"

    The Amazon Web Services Region-unique, immutable identifier for the DB shard group.

    " + }, + "DBShardGroupIdentifier":{ + "shape":"DBShardGroupIdentifier", + "documentation":"

    The name of the DB shard group.

    " + }, + "DBClusterIdentifier":{ + "shape":"String", + "documentation":"

    The name of the primary DB cluster for the DB shard group.

    " + }, + "MaxACU":{ + "shape":"DoubleOptional", + "documentation":"

    The maximum capacity of the DB shard group in Aurora capacity units (ACUs).

    " + }, + "ComputeRedundancy":{ + "shape":"IntegerOptional", + "documentation":"

    Specifies whether to create standby instances for the DB shard group. Valid values are the following:

    • 0 - Creates a single, primary DB instance for each physical shard. This is the default value, and the only one supported for the preview.

    • 1 - Creates a primary DB instance and a standby instance in a different Availability Zone (AZ) for each physical shard.

    • 2 - Creates a primary DB instance and two standby instances in different AZs for each physical shard.

    " + }, + "Status":{ + "shape":"String", + "documentation":"

    The status of the DB shard group.

    " + }, + "PubliclyAccessible":{ + "shape":"BooleanOptional", + "documentation":"

    Indicates whether the DB shard group is publicly accessible.

    When the DB shard group is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB shard group's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB shard group's VPC. Access to the DB shard group is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB shard group doesn't permit it.

    When the DB shard group isn't publicly accessible, it is an internal DB shard group with a DNS name that resolves to a private IP address.

    For more information, see CreateDBShardGroup.

    This setting is only for Aurora Limitless Database.

    " + }, + "Endpoint":{ + "shape":"String", + "documentation":"

    The connection endpoint for the DB shard group.

    " + } + } + }, + "DBShardGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The specified DB shard group name must be unique in your Amazon Web Services account in the specified Amazon Web Services Region.

    ", + "error":{ + "code":"DBShardGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBShardGroupIdentifier":{ + "type":"string", + "max":63, + "min":1, + "pattern":"[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*" + }, + "DBShardGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The specified DB shard group name wasn't found.

    ", + "error":{ + "code":"DBShardGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DBShardGroupsList":{ + "type":"list", + "member":{ + "shape":"DBShardGroup", + "locationName":"DBShardGroup" + } + }, "DBSnapshot":{ "type":"structure", "members":{ @@ -8569,6 +8789,16 @@ }, "documentation":"

    " }, + "DeleteDBShardGroupMessage":{ + "type":"structure", + "required":["DBShardGroupIdentifier"], + "members":{ + "DBShardGroupIdentifier":{ + "shape":"DBShardGroupIdentifier", + "documentation":"

    Teh name of the DB shard group to delete.

    " + } + } + }, "DeleteDBSnapshotMessage":{ "type":"structure", "required":["DBSnapshotIdentifier"], @@ -8969,7 +9199,7 @@ }, "MaxRecords":{ "shape":"IntegerOptional", - "documentation":"

    The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

    Default: 100

    Constraints: Minimum 20, maximum 100.

    " + "documentation":"

    The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

    Default: 100

    Constraints: Minimum 20, maximum 100

    " }, "Marker":{ "shape":"String", @@ -9402,6 +9632,40 @@ }, "documentation":"

    " }, + "DescribeDBShardGroupsMessage":{ + "type":"structure", + "members":{ + "DBShardGroupIdentifier":{ + "shape":"DBShardGroupIdentifier", + "documentation":"

    The user-supplied DB shard group identifier or the Amazon Resource Name (ARN) of the DB shard group. If this parameter is specified, information for only the specific DB shard group is returned. This parameter isn't case-sensitive.

    Constraints:

    • If supplied, must match an existing DB shard group identifier.

    " + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

    A filter that specifies one or more DB shard groups to describe.

    " + }, + "Marker":{ + "shape":"String", + "documentation":"

    An optional pagination token provided by a previous DescribeDBShardGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

    " + }, + "MaxRecords":{ + "shape":"MaxRecords", + "documentation":"

    The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

    Default: 100

    Constraints: Minimum 20, maximum 100

    " + } + } + }, + "DescribeDBShardGroupsResponse":{ + "type":"structure", + "members":{ + "DBShardGroups":{ + "shape":"DBShardGroupsList", + "documentation":"

    Contains a list of DB shard groups for the user.

    " + }, + "Marker":{ + "shape":"String", + "documentation":"

    A pagination token that can be used in a later DescribeDBClusters request.

    " + } + } + }, "DescribeDBSnapshotAttributesMessage":{ "type":"structure", "required":["DBSnapshotIdentifier"], @@ -10693,7 +10957,7 @@ "documentation":"

    One or more filter values. Filter values are case-sensitive.

    " } }, - "documentation":"

    A filter name and value pair that is used to return a more specific list of results from a describe operation. Filters can be used to match a set of resources by specific criteria, such as IDs. The filters supported by a describe operation are documented with the describe operation.

    Currently, wildcards are not supported in filters.

    The following actions can be filtered:

    • DescribeDBClusterBacktracks

    • DescribeDBClusterEndpoints

    • DescribeDBClusters

    • DescribeDBInstances

    • DescribeDBRecommendations

    • DescribePendingMaintenanceActions

    " + "documentation":"

    A filter name and value pair that is used to return a more specific list of results from a describe operation. Filters can be used to match a set of resources by specific criteria, such as IDs. The filters supported by a describe operation are documented with the describe operation.

    Currently, wildcards are not supported in filters.

    The following actions can be filtered:

    • DescribeDBClusterBacktracks

    • DescribeDBClusterEndpoints

    • DescribeDBClusters

    • DescribeDBInstances

    • DescribeDBRecommendations

    • DescribeDBShardGroups

    • DescribePendingMaintenanceActions

    " }, "FilterList":{ "type":"list", @@ -11284,6 +11548,18 @@ }, "exception":true }, + "InvalidDBShardGroupStateFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The DB shard group must be in the available state.

    ", + "error":{ + "code":"InvalidDBShardGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidDBSnapshotStateFault":{ "type":"structure", "members":{ @@ -11404,6 +11680,18 @@ }, "exception":true }, + "InvalidMaxAcuFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The maximum capacity of the DB shard group must be 48-7168 Aurora capacity units (ACUs).

    ", + "error":{ + "code":"InvalidMaxAcu", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidOptionGroupStateFault":{ "type":"structure", "members":{ @@ -11508,6 +11796,33 @@ "min":1, "pattern":"[a-zA-Z0-9_:\\-\\/]+" }, + "LimitlessDatabase":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"LimitlessDatabaseStatus", + "documentation":"

    The status of Aurora Limitless Database.

    " + }, + "MinRequiredACU":{ + "shape":"DoubleOptional", + "documentation":"

    The minimum required capacity for Aurora Limitless Database in Aurora capacity units (ACUs).

    " + } + }, + "documentation":"

    Contains details for Aurora Limitless Database.

    " + }, + "LimitlessDatabaseStatus":{ + "type":"string", + "enum":[ + "active", + "not-in-use", + "enabled", + "disabled", + "enabling", + "disabling", + "modifying-max-capacity", + "error" + ] + }, "ListTagsForResourceMessage":{ "type":"structure", "required":["ResourceName"], @@ -11562,6 +11877,18 @@ }, "documentation":"

    Contains the secret managed by RDS in Amazon Web Services Secrets Manager for the master user password.

    For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide and Password management with Amazon Web Services Secrets Manager in the Amazon Aurora User Guide.

    " }, + "MaxDBShardGroupLimitReached":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The maximum number of DB shard groups for your Amazon Web Services account in the specified Amazon Web Services Region has been reached.

    ", + "error":{ + "code":"MaxDBShardGroupLimitReached", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "MaxRecords":{ "type":"integer", "max":100, @@ -11944,6 +12271,10 @@ "AwsBackupRecoveryPointArn":{ "shape":"AwsBackupRecoveryPointArn", "documentation":"

    The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

    " + }, + "EnableLimitlessDatabase":{ + "shape":"BooleanOptional", + "documentation":"

    Specifies whether to enable Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.

    Valid for: Aurora DB clusters only

    " } }, "documentation":"

    " @@ -12405,6 +12736,20 @@ } } }, + "ModifyDBShardGroupMessage":{ + "type":"structure", + "required":["DBShardGroupIdentifier"], + "members":{ + "DBShardGroupIdentifier":{ + "shape":"DBShardGroupIdentifier", + "documentation":"

    The name of the DB shard group to modify.

    " + }, + "MaxACU":{ + "shape":"DoubleOptional", + "documentation":"

    The maximum capacity of the DB shard group in Aurora capacity units (ACUs).

    " + } + } + }, "ModifyDBSnapshotAttributeMessage":{ "type":"structure", "required":[ @@ -13748,6 +14093,16 @@ "DBInstance":{"shape":"DBInstance"} } }, + "RebootDBShardGroupMessage":{ + "type":"structure", + "required":["DBShardGroupIdentifier"], + "members":{ + "DBShardGroupIdentifier":{ + "shape":"DBShardGroupIdentifier", + "documentation":"

    The name of the DB shard group to reboot.

    " + } + } + }, "RecommendedAction":{ "type":"structure", "members":{ @@ -14843,7 +15198,7 @@ }, "DBClusterSnapshotIdentifier":{ "shape":"String", - "documentation":"

    The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from.

    For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

    Constraints:

    • Must match the identifier of an existing Multi-AZ DB cluster snapshot.

    • Can't be specified when DBSnapshotIdentifier is specified.

    • Must be specified when DBSnapshotIdentifier isn't specified.

    • If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.

    • Can't be the identifier of an Aurora DB cluster snapshot.

    • Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.

    " + "documentation":"

    The identifier for the Multi-AZ DB cluster snapshot to restore from.

    For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

    Constraints:

    • Must match the identifier of an existing Multi-AZ DB cluster snapshot.

    • Can't be specified when DBSnapshotIdentifier is specified.

    • Must be specified when DBSnapshotIdentifier isn't specified.

    • If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.

    • Can't be the identifier of an Aurora DB cluster snapshot.

    " }, "AllocatedStorage":{ "shape":"IntegerOptional", @@ -16302,6 +16657,18 @@ }, "documentation":"

    A time zone associated with a DBInstance or a DBSnapshot. This data type is an element in the response to the DescribeDBInstances, the DescribeDBSnapshots, and the DescribeDBEngineVersions actions.

    " }, + "UnsupportedDBEngineVersionFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The specified DB engine version isn't supported for Aurora Limitless Database.

    ", + "error":{ + "code":"UnsupportedDBEngineVersion", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "UpgradeTarget":{ "type":"structure", "members":{ diff --git a/services/rds/src/test/java/software/amazon/awssdk/services/rds/internal/PresignRequestHandlerTest.java b/services/rds/src/test/java/software/amazon/awssdk/services/rds/internal/PresignRequestHandlerTest.java index 65a04d3a2f2a..fff1e649fc40 100644 --- a/services/rds/src/test/java/software/amazon/awssdk/services/rds/internal/PresignRequestHandlerTest.java +++ b/services/rds/src/test/java/software/amazon/awssdk/services/rds/internal/PresignRequestHandlerTest.java @@ -15,174 +15,366 @@ package software.amazon.awssdk.services.rds.internal; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.Mockito.when; +import java.io.IOException; +import java.io.UncheckedIOException; import java.net.URI; -import java.net.URISyntaxException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; import java.time.Clock; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.TimeZone; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; +import java.time.Instant; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; -import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; -import software.amazon.awssdk.awscore.endpoint.DefaultServiceEndpointBuilder; -import software.amazon.awssdk.core.Protocol; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.core.interceptor.Context; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; -import software.amazon.awssdk.core.interceptor.InterceptorContext; -import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute; import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpRequest; -import software.amazon.awssdk.profiles.ProfileFile; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; import software.amazon.awssdk.regions.Region; -import software.amazon.awssdk.services.rds.model.CopyDbSnapshotRequest; -import software.amazon.awssdk.services.rds.model.RdsRequest; -import software.amazon.awssdk.services.rds.transform.CopyDbSnapshotRequestMarshaller; +import software.amazon.awssdk.services.rds.RdsClient; +import software.amazon.awssdk.services.rds.RdsClientBuilder; +import software.amazon.awssdk.services.rds.RdsServiceClientConfiguration; +import software.amazon.awssdk.services.rds.auth.scheme.RdsAuthSchemeProvider; +import software.amazon.awssdk.services.rds.model.CopyDbClusterSnapshotRequest; +import software.amazon.awssdk.utils.IoUtils; +import software.amazon.awssdk.utils.Validate; /** * Unit Tests for {@link RdsPresignInterceptor} */ -public class PresignRequestHandlerTest { - private static final AwsBasicCredentials CREDENTIALS = AwsBasicCredentials.create("foo", "bar"); - private static final Region DESTINATION_REGION = Region.of("us-west-2"); +class PresignRequestHandlerTest { + private static String TEST_KMS_KEY_ID = "arn:aws:kms:us-west-2:123456789012:key/" + + "11111111-2222-3333-4444-555555555555"; - private static RdsPresignInterceptor presignInterceptor = new CopyDbSnapshotPresignInterceptor(); - private final CopyDbSnapshotRequestMarshaller marshaller = - new CopyDbSnapshotRequestMarshaller(RdsPresignInterceptor.PROTOCOL_FACTORY); + @ParameterizedTest + @MethodSource("testCases") + public void testExpectations(TestCase testCase) { + // Arrange + CapturingInterceptor interceptor = new CapturingInterceptor(); + RdsClientBuilder clientBuilder = client(interceptor, testCase.signingClockOverride); + testCase.clientConfigure.accept(clientBuilder); + RdsClient client = clientBuilder.build(); - @Test - public void testSetsPresignedUrl() { - CopyDbSnapshotRequest request = makeTestRequest(); - SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshallRequest(request)); + // Act + assertThatThrownBy(() -> testCase.clientConsumer.accept(client)) + .hasMessageContaining("boom!"); - assertNotNull(presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); - } + // Assert + SdkHttpFullRequest request = (SdkHttpFullRequest) interceptor.httpRequest(); + Map> rawQueryParameters = rawQueryParameters(request); + + // The following params should not be included in the outgoing request + assertFalse(rawQueryParameters.containsKey("SourceRegion")); + assertFalse(rawQueryParameters.containsKey("DestinationRegion")); - @Test - public void testComputesPresignedUrlCorrectly() { - // Note: test data was baselined by performing actual calls, with real - // credentials to RDS and checking that they succeeded. Then the - // request was recreated with all the same parameters but with test - // credentials. - final CopyDbSnapshotRequest request = CopyDbSnapshotRequest.builder() - .sourceDBSnapshotIdentifier("arn:aws:rds:us-east-1:123456789012:snapshot:rds:test-instance-ss-2016-12-20-23-19") - .targetDBSnapshotIdentifier("test-instance-ss-copy-2") - .sourceRegion("us-east-1") - .kmsKeyId("arn:aws:kms:us-west-2:123456789012:key/11111111-2222-3333-4444-555555555555") - .build(); - - Calendar c = new GregorianCalendar(); - c.setTimeZone(TimeZone.getTimeZone("UTC")); - // 20161221T180735Z - // Note: month is 0-based - c.set(2016, Calendar.DECEMBER, 21, 18, 7, 35); - - Clock signingDateOverride = Mockito.mock(Clock.class); - when(signingDateOverride.millis()).thenReturn(c.getTimeInMillis()); - - RdsPresignInterceptor interceptor = new CopyDbSnapshotPresignInterceptor(signingDateOverride); - - SdkHttpRequest presignedRequest = modifyHttpRequest(interceptor, request, marshallRequest(request)); - - final String expectedPreSignedUrl = "https://rds.us-east-1.amazonaws.com?" + - "Action=CopyDBSnapshot" + - "&Version=2014-10-31" + - "&SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-east-1%3A123456789012%3Asnapshot%3Ards%3Atest-instance-ss-2016-12-20-23-19" + - "&TargetDBSnapshotIdentifier=test-instance-ss-copy-2" + - "&KmsKeyId=arn%3Aaws%3Akms%3Aus-west-2%3A123456789012%3Akey%2F11111111-2222-3333-4444-555555555555" + - "&DestinationRegion=us-west-2" + - "&X-Amz-Algorithm=AWS4-HMAC-SHA256" + - "&X-Amz-Date=20161221T180735Z" + - "&X-Amz-SignedHeaders=host" + - "&X-Amz-Expires=604800" + - "&X-Amz-Credential=foo%2F20161221%2Fus-east-1%2Frds%2Faws4_request" + - "&X-Amz-Signature=f839ca3c728dc96e7c978befeac648296b9f778f6724073de4217173859d13d9"; - - assertEquals(expectedPreSignedUrl, presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); + if (testCase.shouldContainPreSignedUrl) { + List rawPresignedUrlValue = rawQueryParameters.get("PreSignedUrl"); + assertNotNull(rawPresignedUrlValue); + assertTrue(rawPresignedUrlValue.size() == 1); + String presignedUrl = rawPresignedUrlValue.get(0); + assertNotNull(presignedUrl); + // Validate that the URL can be parsed back + URI presignedUrlAsUri = URI.create(presignedUrl); + assertNotNull(presignedUrlAsUri); + if (testCase.expectedDestinationRegion != null) { + assertTrue(presignedUrl.contains("DestinationRegion=" + testCase.expectedDestinationRegion)); + } + if (testCase.expectedUri != null) { + assertEquals(normalize(URI.create(testCase.expectedUri)), normalize(presignedUrlAsUri)); + } + } else { + assertFalse(rawQueryParameters.containsKey("PreSignedUrl")); + } } - @Test - public void testSkipsPresigningIfUrlSet() { - CopyDbSnapshotRequest request = CopyDbSnapshotRequest.builder() - .sourceRegion("us-west-2") - .preSignedUrl("PRESIGNED") - .build(); + public static List testCases() { + return Arrays.asList( + builder("CopyDbClusterSnapshot - Sets pre-signed URL when sourceRegion is set") + .clientConsumer(c -> c.copyDBClusterSnapshot(makeTestRequestBuilder() + .sourceRegion("us-east-1") + .build())) + .shouldContainPreSignedUrl(true) + .expectedDestinationRegion("us-east-1") + .build(), + builder("CopyDbClusterSnapshot - Doesn't set pre-signed URL when sourceRegion is NOT set") + .clientConsumer(c -> c.copyDBClusterSnapshot(makeTestRequestBuilder().build())) + .shouldContainPreSignedUrl(false) + .build(), + builder("CopyDbClusterSnapshot - Does not override pre-signed URL") + .clientConsumer(c -> c.copyDBClusterSnapshot( + makeTestRequestBuilder() + .sourceRegion("us-west-2") + .preSignedUrl("http://localhost?foo=bar") + .build())) + .shouldContainPreSignedUrl(true) + .expectedUri("http://localhost?foo=bar") + .build(), + builder("CopyDbClusterSnapshot - Fixed time") + .clientConfigure(c -> c.region(Region.US_WEST_2)) + .clientConsumer(c -> c.copyDBClusterSnapshot( + makeTestRequestBuilder() + .sourceRegion("us-east-1") + .build())) + .shouldContainPreSignedUrl(true) + .signingClockOverride(Clock.fixed(Instant.parse("2016-12-21T18:07:35.000Z"), ZoneId.of("UTC"))) + .expectedUri(fixedTimePresignedUrl()) + .build(), + builder("CreateDBCluster With SourceRegion Sends Presigned Url") + .clientConsumer(c -> c.createDBCluster(r -> r.kmsKeyId(TEST_KMS_KEY_ID) + .sourceRegion("us-west-2"))) + .shouldContainPreSignedUrl(true) + .expectedDestinationRegion("us-east-1") + .build(), + builder("CreateDBCluster Without SourceRegion Does NOT Send PresignedUrl") + .clientConsumer(c -> c.createDBCluster(r -> r.kmsKeyId(TEST_KMS_KEY_ID))) + .shouldContainPreSignedUrl(false) + .build(), - SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshallRequest(request)); + builder("CreateDBInstanceReadReplica With SourceRegion Sends Presigned Url") + .clientConsumer(c -> c.createDBInstanceReadReplica(r -> r.kmsKeyId(TEST_KMS_KEY_ID) + .sourceRegion("us-west-2"))) + .shouldContainPreSignedUrl(true) + .expectedDestinationRegion("us-east-1") + .build(), + builder("CreateDBInstanceReadReplica Without SourceRegion Does NOT Send PresignedUrl") + .clientConsumer(c -> c.createDBInstanceReadReplica(r -> r.kmsKeyId(TEST_KMS_KEY_ID))) + .shouldContainPreSignedUrl(false) + .build(), - assertEquals("PRESIGNED", presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); + builder("StartDBInstanceAutomatedBackupsReplication With SourceRegion Sends Presigned Url") + .clientConsumer(c -> c.startDBInstanceAutomatedBackupsReplication(r -> r.kmsKeyId(TEST_KMS_KEY_ID) + .sourceRegion("us-west-2"))) + .shouldContainPreSignedUrl(true) + .expectedDestinationRegion("us-east-1") + .build(), + builder("StartDBInstanceAutomatedBackupsReplication Without SourceRegion Does NOT Send PresignedUrl") + .clientConsumer(c -> c.startDBInstanceAutomatedBackupsReplication(r -> r.kmsKeyId(TEST_KMS_KEY_ID))) + .shouldContainPreSignedUrl(false) + .build() + ); } - @Test - public void testSkipsPresigningIfSourceRegionNotSet() { - CopyDbSnapshotRequest request = CopyDbSnapshotRequest.builder().build(); + private static CopyDbClusterSnapshotRequest.Builder makeTestRequestBuilder() { + return CopyDbClusterSnapshotRequest + .builder() + .sourceDBClusterSnapshotIdentifier("arn:aws:rds:us-east-1:123456789012:snapshot:rds" + + ":test-instance-ss-2016-12-20-23-19") + .targetDBClusterSnapshotIdentifier("test-instance-ss-copy-2") + .kmsKeyId(TEST_KMS_KEY_ID); + } - SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshallRequest(request)); + private static RdsClientBuilder client(CapturingInterceptor interceptor, Clock signingClockOverride) { + RdsClientBuilder builder = RdsClient + .builder() + .credentialsProvider( + StaticCredentialsProvider.create( + AwsBasicCredentials.create("foo", "bar"))) + .region(Region.US_EAST_1) + .addPlugin(c -> { + // Adds the capturing interceptor. + RdsServiceClientConfiguration.Builder config = + Validate.isInstanceOf(RdsServiceClientConfiguration.Builder.class, c, + "\uD83E\uDD14"); + config.overrideConfiguration(oc -> oc.addExecutionInterceptor(interceptor)); + }); - assertNull(presignedRequest.rawQueryParameters().get("PreSignedUrl")); + if (signingClockOverride != null) { + // Adds a auth scheme wrapper that handles the clock override + builder.addPlugin(c -> { + RdsServiceClientConfiguration.Builder config = + Validate.isInstanceOf(RdsServiceClientConfiguration.Builder.class, c, "\uD83E\uDD14"); + config.authSchemeProvider(clockOverridingAuthScheme(config.authSchemeProvider(), signingClockOverride)); + }); + } + return builder; } - @Test - public void testParsesDestinationRegionfromRequestEndpoint() throws URISyntaxException { - CopyDbSnapshotRequest request = CopyDbSnapshotRequest.builder() - .sourceRegion("us-east-1") - .build(); - Region destination = Region.of("us-west-2"); - SdkHttpFullRequest marshalled = marshallRequest(request); - - final SdkHttpRequest presignedRequest = modifyHttpRequest(presignInterceptor, request, marshalled); + private static RdsAuthSchemeProvider clockOverridingAuthScheme(RdsAuthSchemeProvider source, Clock signingClockOverride) { + return authSchemeParams -> { + List authSchemeOptions = source.resolveAuthScheme(authSchemeParams); + List result = new ArrayList<>(authSchemeOptions.size()); + for (AuthSchemeOption option : authSchemeOptions) { + if (option.schemeId().equals(AwsV4AuthScheme.SCHEME_ID)) { + option = option.toBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.SIGNING_CLOCK, signingClockOverride) + .build(); + } + result.add(option); + } + return result; + }; + } - final URI presignedUrl = new URI(presignedRequest.rawQueryParameters().get("PreSignedUrl").get(0)); - assertTrue(presignedUrl.toString().contains("DestinationRegion=" + destination.id())); + static String fixedTimePresignedUrl() { + return + "https://rds.us-east-1.amazonaws.com?" + + "Action=CopyDBClusterSnapshot" + + "&Version=2014-10-31" + + "&SourceDBClusterSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-east-1%3A123456789012" + + "%3Asnapshot%3Ards%3Atest-instance-ss-2016-12-20-23-19" + + "&TargetDBClusterSnapshotIdentifier=test-instance-ss-copy-2" + + "&KmsKeyId=arn%3Aaws%3Akms%3Aus-west-2%3A123456789012%3Akey%2F11111111-2222-3333" + + "-4444-555555555555" + + "&DestinationRegion=us-west-2" + + "&X-Amz-Algorithm=AWS4-HMAC-SHA256" + + "&X-Amz-Date=20161221T180735Z" + + "&X-Amz-SignedHeaders=host" + + "&X-Amz-Credential=foo%2F20161221%2Fus-east-1%2Frds%2Faws4_request" + + "&X-Amz-Expires=604800" + + "&X-Amz-Signature=00822ebbba95e2e6ac09112aa85621fbef060a596e3e1480f9f4ac61493e9821"; } - @Test - public void testSourceRegionRemovedFromOriginalRequest() { - CopyDbSnapshotRequest request = makeTestRequest(); - SdkHttpFullRequest marshalled = marshallRequest(request); - SdkHttpRequest actual = modifyHttpRequest(presignInterceptor, request, marshalled); + private Map> rawQueryParameters(SdkHttpFullRequest request) { + // Retrieve back from the query parameters from the body, this is best-effort only. + try { + String decodedQueryParams = IoUtils.toUtf8String(request.contentStreamProvider().get().newStream()); + String[] keyValuePairs = decodedQueryParams.split("&"); + Map> result = new LinkedHashMap<>(); + for (String keyValuePair : keyValuePairs) { + String[] kvpParts = keyValuePair.split("=", 2); + String value = URLDecoder.decode(kvpParts.length > 1 ? kvpParts[1] : "", StandardCharsets.UTF_8.name()); + result.computeIfAbsent(kvpParts[0], x -> new ArrayList<>()).add(value); + } + return result; + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } - assertFalse(actual.rawQueryParameters().containsKey("SourceRegion")); + static TestCaseBuilder builder(String name) { + return new TestCaseBuilder() + .clientConfigure(c -> { + }) + .name(name); } - private SdkHttpFullRequest marshallRequest(CopyDbSnapshotRequest request) { - SdkHttpFullRequest.Builder marshalled = marshaller.marshall(request).toBuilder(); + private static String normalize(URI uri) { + String uriAsString = uri.toString(); + int queryStart = uriAsString.indexOf('?'); + if (queryStart == -1) { + return uriAsString; + } + String uriQueryPrefix = uriAsString.substring(0, queryStart); + String query = uri.getQuery(); + if (query == null) { + return uriAsString; + } + if (!query.isEmpty()) { + String[] queryParts = query.split("&"); + query = Arrays.stream(queryParts) + .sorted() + .collect(Collectors.joining("&")); - URI endpoint = new DefaultServiceEndpointBuilder("rds", Protocol.HTTPS.toString()) - .withRegion(DESTINATION_REGION) - .getServiceEndpoint(); - return marshalled.uri(endpoint).build(); + } + return uriQueryPrefix + "?" + query; } - private ExecutionAttributes executionAttributes() { - return new ExecutionAttributes().putAttribute(AwsSignerExecutionAttribute.AWS_CREDENTIALS, CREDENTIALS) - .putAttribute(AwsSignerExecutionAttribute.SIGNING_REGION, DESTINATION_REGION) - .putAttribute(SdkExecutionAttribute.PROFILE_FILE_SUPPLIER, - ProfileFile::defaultProfileFile) - .putAttribute(SdkExecutionAttribute.PROFILE_NAME, "default"); + static class TestCase { + private final String name; + private final Consumer clientConfigure; + private final Consumer clientConsumer; + private final Boolean shouldContainPreSignedUrl; + private final String expectedDestinationRegion; + private final Clock signingClockOverride; + private final String expectedUri; + + TestCase(TestCaseBuilder builder) { + this.name = Validate.notNull(builder.name, "name"); + this.clientConsumer = Validate.notNull(builder.clientConsumer, "clientConsumer"); + this.clientConfigure = Validate.notNull(builder.clientConfigure, "clientConfigure"); + this.shouldContainPreSignedUrl = builder.shouldContainPreSignedUrl; + this.expectedDestinationRegion = builder.expectedDestinationRegion; + this.signingClockOverride = builder.signingClockOverride; + this.expectedUri = builder.expectedUri; + } } - private CopyDbSnapshotRequest makeTestRequest() { - return CopyDbSnapshotRequest.builder() - .sourceDBSnapshotIdentifier("arn:aws:rds:us-east-1:123456789012:snapshot:rds:test-instance-ss-2016-12-20-23-19") - .targetDBSnapshotIdentifier("test-instance-ss-copy-2") - .sourceRegion("us-east-1") - .kmsKeyId("arn:aws:kms:us-west-2:123456789012:key/11111111-2222-3333-4444-555555555555") - .build(); + static class TestCaseBuilder { + private String name; + private Consumer clientConfigure; + private Consumer clientConsumer; + private Boolean shouldContainPreSignedUrl; + private String expectedDestinationRegion; + private Clock signingClockOverride; + private String expectedUri; + + private TestCaseBuilder name(String name) { + this.name = name; + return this; + } + + private TestCaseBuilder clientConfigure(Consumer clientConfigure) { + this.clientConfigure = clientConfigure; + return this; + } + + private TestCaseBuilder clientConsumer(Consumer clientConsumer) { + this.clientConsumer = clientConsumer; + return this; + } + + private TestCaseBuilder shouldContainPreSignedUrl(Boolean value) { + this.shouldContainPreSignedUrl = value; + return this; + } + + private TestCaseBuilder expectedDestinationRegion(String value) { + this.expectedDestinationRegion = value; + return this; + } + + public TestCaseBuilder signingClockOverride(Clock signingClockOverride) { + this.signingClockOverride = signingClockOverride; + return this; + } + + public TestCaseBuilder expectedUri(String expectedUri) { + this.expectedUri = expectedUri; + return this; + } + + public TestCase build() { + return new TestCase(this); + } } - private SdkHttpRequest modifyHttpRequest(ExecutionInterceptor interceptor, - RdsRequest request, - SdkHttpFullRequest httpRequest) { - InterceptorContext context = InterceptorContext.builder().request(request).httpRequest(httpRequest).build(); - return interceptor.modifyHttpRequest(context, executionAttributes()); + static class CapturingInterceptor implements ExecutionInterceptor { + private static final RuntimeException BOOM = new RuntimeException("boom!"); + private Context.BeforeTransmission context; + private ExecutionAttributes executionAttributes; + + @Override + public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { + this.context = context; + this.executionAttributes = executionAttributes; + throw BOOM; + } + + public ExecutionAttributes executionAttributes() { + return executionAttributes; + } + + public SdkHttpRequest httpRequest() { + return context.httpRequest(); + } } } diff --git a/services/rdsdata/pom.xml b/services/rdsdata/pom.xml index 4654e0b9b572..df5cb34dbdde 100644 --- a/services/rdsdata/pom.xml +++ b/services/rdsdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT rdsdata AWS Java SDK :: Services :: RDS Data diff --git a/services/rdsdata/src/main/resources/codegen-resources/customization.config b/services/rdsdata/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/rdsdata/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/redshift/pom.xml b/services/redshift/pom.xml index c4d17fd65ad4..ff9bd0240e02 100644 --- a/services/redshift/pom.xml +++ b/services/redshift/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT redshift AWS Java SDK :: Services :: Amazon Redshift diff --git a/services/redshift/src/main/resources/codegen-resources/customization.config b/services/redshift/src/main/resources/codegen-resources/customization.config index 635247225c35..cab167de7cdd 100644 --- a/services/redshift/src/main/resources/codegen-resources/customization.config +++ b/services/redshift/src/main/resources/codegen-resources/customization.config @@ -1,28 +1,29 @@ { - "verifiedSimpleMethods": [ - "describeAccountAttributes", - "describeClusterDbRevisions", - "describeClusterParameterGroups", - "describeClusterSnapshots", - "describeClusterSubnetGroups", - "describeClusterTracks", - "describeClusterVersions", - "describeClusters", - "describeEventCategories", - "describeEventSubscriptions", - "describeEvents", - "describeHsmClientCertificates", - "describeHsmConfigurations", - "describeOrderableClusterOptions", - "describeReservedNodeOfferings", - "describeReservedNodes", - "describeSnapshotCopyGrants", - "describeSnapshotSchedules", - "describeStorage", - "describeTags" - ], - "excludedSimpleMethods": [ - "describeTableRestoreStatus", - "describeClusterSecurityGroups" - ] + "verifiedSimpleMethods": [ + "describeAccountAttributes", + "describeClusterDbRevisions", + "describeClusterParameterGroups", + "describeClusterSnapshots", + "describeClusterSubnetGroups", + "describeClusterTracks", + "describeClusterVersions", + "describeClusters", + "describeEventCategories", + "describeEventSubscriptions", + "describeEvents", + "describeHsmClientCertificates", + "describeHsmConfigurations", + "describeOrderableClusterOptions", + "describeReservedNodeOfferings", + "describeReservedNodes", + "describeSnapshotCopyGrants", + "describeSnapshotSchedules", + "describeStorage", + "describeTags" + ], + "excludedSimpleMethods": [ + "describeTableRestoreStatus", + "describeClusterSecurityGroups" + ], + "useSraAuth": true } diff --git a/services/redshift/src/main/resources/codegen-resources/paginators-1.json b/services/redshift/src/main/resources/codegen-resources/paginators-1.json index 4403ac87b2b0..8dc4a35f6b63 100644 --- a/services/redshift/src/main/resources/codegen-resources/paginators-1.json +++ b/services/redshift/src/main/resources/codegen-resources/paginators-1.json @@ -209,6 +209,12 @@ "limit_key": "MaxRecords", "output_token": "Marker", "result_key": "ReservedNodeOfferings" + }, + "ListRecommendations": { + "input_token": "Marker", + "limit_key": "MaxRecords", + "output_token": "Marker", + "result_key": "Recommendations" } } } \ No newline at end of file diff --git a/services/redshift/src/main/resources/codegen-resources/service-2.json b/services/redshift/src/main/resources/codegen-resources/service-2.json index edb670c9cb76..90d00cc05b03 100644 --- a/services/redshift/src/main/resources/codegen-resources/service-2.json +++ b/services/redshift/src/main/resources/codegen-resources/service-2.json @@ -1760,6 +1760,23 @@ ], "documentation":"

    Get the resource policy for a specified resource.

    " }, + "ListRecommendations":{ + "name":"ListRecommendations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRecommendationsMessage"}, + "output":{ + "shape":"ListRecommendationsResult", + "resultWrapper":"ListRecommendationsResult" + }, + "errors":[ + {"shape":"ClusterNotFoundFault"}, + {"shape":"UnsupportedOperationFault"} + ], + "documentation":"

    List the Amazon Redshift Advisor recommendations for one or multiple Amazon Redshift clusters in an Amazon Web Services account.

    " + }, "ModifyAquaConfiguration":{ "name":"ModifyAquaConfiguration", "http":{ @@ -7264,6 +7281,14 @@ "min":1, "pattern":"^[a-zA-Z0-9_+.#@$-]+$" }, + "ImpactRankingType":{ + "type":"string", + "enum":[ + "HIGH", + "MEDIUM", + "LOW" + ] + }, "ImportTablesCompleted":{ "type":"list", "member":{"shape":"String"} @@ -7832,6 +7857,40 @@ }, "exception":true }, + "ListRecommendationsMessage":{ + "type":"structure", + "members":{ + "ClusterIdentifier":{ + "shape":"String", + "documentation":"

    The unique identifier of the Amazon Redshift cluster for which the list of Advisor recommendations is returned. If the neither the cluster identifier and the cluster namespace ARN parameters are specified, then recommendations for all clusters in the account are returned.

    " + }, + "NamespaceArn":{ + "shape":"String", + "documentation":"

    The Amazon Redshift cluster namespace Amazon Resource Name (ARN) for which the list of Advisor recommendations is returned. If the neither the cluster identifier and the cluster namespace ARN parameters are specified, then recommendations for all clusters in the account are returned.

    " + }, + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

    The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

    " + }, + "Marker":{ + "shape":"String", + "documentation":"

    A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

    " + } + } + }, + "ListRecommendationsResult":{ + "type":"structure", + "members":{ + "Recommendations":{ + "shape":"RecommendationList", + "documentation":"

    The Advisor recommendations for action on the Amazon Redshift cluster.

    " + }, + "Marker":{ + "shape":"String", + "documentation":"

    A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

    " + } + } + }, "LogDestinationType":{ "type":"string", "enum":[ @@ -9013,6 +9072,103 @@ "Cluster":{"shape":"Cluster"} } }, + "Recommendation":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"String", + "documentation":"

    A unique identifier of the Advisor recommendation.

    " + }, + "ClusterIdentifier":{ + "shape":"String", + "documentation":"

    The unique identifier of the cluster for which the recommendation is returned.

    " + }, + "NamespaceArn":{ + "shape":"String", + "documentation":"

    The Amazon Redshift cluster namespace ARN for which the recommendations is returned.

    " + }, + "CreatedAt":{ + "shape":"TStamp", + "documentation":"

    The date and time (UTC) that the recommendation was created.

    " + }, + "RecommendationType":{ + "shape":"String", + "documentation":"

    The type of Advisor recommendation.

    " + }, + "Title":{ + "shape":"String", + "documentation":"

    The title of the recommendation.

    " + }, + "Description":{ + "shape":"String", + "documentation":"

    The description of the recommendation.

    " + }, + "Observation":{ + "shape":"String", + "documentation":"

    The description of what was observed about your cluster.

    " + }, + "ImpactRanking":{ + "shape":"ImpactRankingType", + "documentation":"

    The scale of the impact that the Advisor recommendation has to the performance and cost of the cluster.

    " + }, + "RecommendationText":{ + "shape":"String", + "documentation":"

    The description of the recommendation.

    " + }, + "RecommendedActions":{ + "shape":"RecommendedActionList", + "documentation":"

    List of Amazon Redshift recommended actions.

    " + }, + "ReferenceLinks":{ + "shape":"ReferenceLinkList", + "documentation":"

    List of helpful links for more information about the Advisor recommendation.

    " + } + }, + "documentation":"

    An Amazon Redshift Advisor recommended action on the Amazon Redshift cluster.

    " + }, + "RecommendationList":{ + "type":"list", + "member":{ + "shape":"Recommendation", + "locationName":"Recommendation" + } + }, + "RecommendedAction":{ + "type":"structure", + "members":{ + "Text":{ + "shape":"String", + "documentation":"

    The specific instruction about the command.

    " + }, + "Database":{ + "shape":"String", + "documentation":"

    The database name to perform the action on. Only applicable if the type of command is SQL.

    " + }, + "Command":{ + "shape":"String", + "documentation":"

    The command to run.

    " + }, + "Type":{ + "shape":"RecommendedActionType", + "documentation":"

    The type of command.

    " + } + }, + "documentation":"

    The recommended action from the Amazon Redshift Advisor recommendation.

    " + }, + "RecommendedActionList":{ + "type":"list", + "member":{ + "shape":"RecommendedAction", + "locationName":"RecommendedAction" + } + }, + "RecommendedActionType":{ + "type":"string", + "enum":[ + "SQL", + "CLI" + ] + }, "RecurringCharge":{ "type":"structure", "members":{ @@ -9128,6 +9284,27 @@ }, "exception":true }, + "ReferenceLink":{ + "type":"structure", + "members":{ + "Text":{ + "shape":"String", + "documentation":"

    The hyperlink text that describes the link to more information.

    " + }, + "Link":{ + "shape":"String", + "documentation":"

    The URL address to find more information.

    " + } + }, + "documentation":"

    A link to an Amazon Redshift Advisor reference for more information about a recommendation.

    " + }, + "ReferenceLinkList":{ + "type":"list", + "member":{ + "shape":"ReferenceLink", + "locationName":"ReferenceLink" + } + }, "RejectDataShareMessage":{ "type":"structure", "required":["DataShareArn"], diff --git a/services/redshiftdata/pom.xml b/services/redshiftdata/pom.xml index 644e92dc365c..4f4f283f34af 100644 --- a/services/redshiftdata/pom.xml +++ b/services/redshiftdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT redshiftdata AWS Java SDK :: Services :: Redshift Data diff --git a/services/redshiftdata/src/main/resources/codegen-resources/customization.config b/services/redshiftdata/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/redshiftdata/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/redshiftserverless/pom.xml b/services/redshiftserverless/pom.xml index 7bd1bb061e4b..2dcb32a632d1 100644 --- a/services/redshiftserverless/pom.xml +++ b/services/redshiftserverless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT redshiftserverless AWS Java SDK :: Services :: Redshift Serverless diff --git a/services/redshiftserverless/src/main/resources/codegen-resources/customization.config b/services/redshiftserverless/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/redshiftserverless/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/rekognition/pom.xml b/services/rekognition/pom.xml index 22115277b34f..1f9277f06a19 100644 --- a/services/rekognition/pom.xml +++ b/services/rekognition/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT rekognition AWS Java SDK :: Services :: Amazon Rekognition diff --git a/services/rekognition/src/main/resources/codegen-resources/customization.config b/services/rekognition/src/main/resources/codegen-resources/customization.config index ece3c940cc7d..07c53a9898ab 100644 --- a/services/rekognition/src/main/resources/codegen-resources/customization.config +++ b/services/rekognition/src/main/resources/codegen-resources/customization.config @@ -1,10 +1,11 @@ { - "verifiedSimpleMethods": [ - "listCollections", - "listStreamProcessors" - ], - "excludedSimpleMethods": [ - "describeTableRestoreStatus", - "describeClusterSecurityGroups" - ] + "verifiedSimpleMethods": [ + "listCollections", + "listStreamProcessors" + ], + "excludedSimpleMethods": [ + "describeTableRestoreStatus", + "describeClusterSecurityGroups" + ], + "useSraAuth": true } diff --git a/services/repostspace/pom.xml b/services/repostspace/pom.xml index ed60882d1db6..d712e9da9993 100644 --- a/services/repostspace/pom.xml +++ b/services/repostspace/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT repostspace AWS Java SDK :: Services :: Repostspace diff --git a/services/repostspace/src/main/resources/codegen-resources/customization.config b/services/repostspace/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/repostspace/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/resiliencehub/pom.xml b/services/resiliencehub/pom.xml index 0880f73c45e7..5f68c476dc2f 100644 --- a/services/resiliencehub/pom.xml +++ b/services/resiliencehub/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT resiliencehub AWS Java SDK :: Services :: Resiliencehub diff --git a/services/resiliencehub/src/main/resources/codegen-resources/customization.config b/services/resiliencehub/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/resiliencehub/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/resourceexplorer2/pom.xml b/services/resourceexplorer2/pom.xml index d234aeeebc3b..5244eb00d182 100644 --- a/services/resourceexplorer2/pom.xml +++ b/services/resourceexplorer2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT resourceexplorer2 AWS Java SDK :: Services :: Resource Explorer 2 diff --git a/services/resourceexplorer2/src/main/resources/codegen-resources/customization.config b/services/resourceexplorer2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/resourceexplorer2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-rule-set.json index 003af7baa245..4d806fc8104b 100644 --- a/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -7,6 +7,13 @@ "documentation": "The AWS region used to dispatch the request.", "type": "String" }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, "UseFIPS": { "builtIn": "AWS::UseFIPS", "required": true, @@ -49,6 +56,21 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported", "type": "error" }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, { "conditions": [], "endpoint": { @@ -93,16 +115,19 @@ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } ], @@ -112,61 +137,51 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] - } - ], - "rules": [ + }, { - "conditions": [ + "fn": "booleanEquals", + "argv": [ + true, { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "PartitionResult" }, - true + "supportsDualStack" ] } - ], - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://resource-explorer-2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ], - "type": "tree" - }, + ] + } + ], + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://resource-explorer-2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], "type": "tree" }, { "conditions": [], - "endpoint": { - "url": "https://resource-explorer-2.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ], "type": "tree" @@ -223,6 +238,58 @@ ], "type": "tree" }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resource-explorer-2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, { "conditions": [], "endpoint": { diff --git a/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-tests.json b/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-tests.json index 6bc38817f06c..de57bc625a41 100644 --- a/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-tests.json @@ -9,7 +9,21 @@ }, "params": { "Region": "us-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { @@ -21,7 +35,21 @@ }, "params": { "Region": "us-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -33,7 +61,21 @@ }, "params": { "Region": "cn-north-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { @@ -45,7 +87,21 @@ }, "params": { "Region": "cn-north-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -57,7 +113,21 @@ }, "params": { "Region": "us-gov-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { @@ -69,7 +139,117 @@ }, "params": { "Region": "us-gov-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -82,6 +262,7 @@ "params": { "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -94,6 +275,7 @@ }, "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -105,6 +287,19 @@ "params": { "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } }, diff --git a/services/resourcegroups/pom.xml b/services/resourcegroups/pom.xml index 3eecdd54b83e..d8dc94bf9611 100644 --- a/services/resourcegroups/pom.xml +++ b/services/resourcegroups/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 resourcegroups diff --git a/services/resourcegroups/src/main/resources/codegen-resources/customization.config b/services/resourcegroups/src/main/resources/codegen-resources/customization.config index 70cabad6601d..21681d1df40c 100644 --- a/services/resourcegroups/src/main/resources/codegen-resources/customization.config +++ b/services/resourcegroups/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listGroups" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/resourcegroupstaggingapi/pom.xml b/services/resourcegroupstaggingapi/pom.xml index f9d2c24309d0..6e0a9c82fe7b 100644 --- a/services/resourcegroupstaggingapi/pom.xml +++ b/services/resourcegroupstaggingapi/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT resourcegroupstaggingapi AWS Java SDK :: Services :: AWS Resource Groups Tagging API diff --git a/services/resourcegroupstaggingapi/src/main/resources/codegen-resources/customization.config b/services/resourcegroupstaggingapi/src/main/resources/codegen-resources/customization.config index 0dd43aa266ba..a9bd3f9c5aaa 100644 --- a/services/resourcegroupstaggingapi/src/main/resources/codegen-resources/customization.config +++ b/services/resourcegroupstaggingapi/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,7 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "getResources", "getTagKeys" - ] + ], + "useSraAuth": true } diff --git a/services/robomaker/pom.xml b/services/robomaker/pom.xml index 016a37fc56b4..735155b030c8 100644 --- a/services/robomaker/pom.xml +++ b/services/robomaker/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT robomaker AWS Java SDK :: Services :: RoboMaker diff --git a/services/robomaker/src/main/resources/codegen-resources/customization.config b/services/robomaker/src/main/resources/codegen-resources/customization.config index 64b14d94f5bd..76187f9621ad 100644 --- a/services/robomaker/src/main/resources/codegen-resources/customization.config +++ b/services/robomaker/src/main/resources/codegen-resources/customization.config @@ -1,10 +1,11 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listDeploymentJobs", "listFleets", "listRobotApplications", "listRobots", "listSimulationApplications", "listSimulationJobs" - ] + ], + "useSraAuth": true } diff --git a/services/rolesanywhere/pom.xml b/services/rolesanywhere/pom.xml index cea34e2039da..e5ce89e20e43 100644 --- a/services/rolesanywhere/pom.xml +++ b/services/rolesanywhere/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT rolesanywhere AWS Java SDK :: Services :: Roles Anywhere diff --git a/services/rolesanywhere/src/main/resources/codegen-resources/customization.config b/services/rolesanywhere/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/rolesanywhere/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/route53/pom.xml b/services/route53/pom.xml index 748a5ecb826a..3845eb051423 100644 --- a/services/route53/pom.xml +++ b/services/route53/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT route53 AWS Java SDK :: Services :: Amazon Route53 diff --git a/services/route53/src/main/resources/codegen-resources/customization.config b/services/route53/src/main/resources/codegen-resources/customization.config index dc2cddbbad8d..46ab78cff61f 100644 --- a/services/route53/src/main/resources/codegen-resources/customization.config +++ b/services/route53/src/main/resources/codegen-resources/customization.config @@ -1,23 +1,24 @@ { - "verifiedSimpleMethods": [ - "getCheckerIpRanges", - "getGeoLocation", - "getHealthCheckCount", - "getHostedZoneCount", - "getTrafficPolicyInstanceCount", - "listGeoLocations", - "listHealthChecks", - "listHostedZones", - "listHostedZonesByName", - "listQueryLoggingConfigs", - "listReusableDelegationSets", - "listTrafficPolicies", - "listTrafficPolicyInstances" - ], - "deprecatedShapes": [ - "HealthCheckInUse" - ], - "interceptors": [ - "software.amazon.awssdk.services.route53.internal.Route53IdInterceptor" - ] + "verifiedSimpleMethods": [ + "getCheckerIpRanges", + "getGeoLocation", + "getHealthCheckCount", + "getHostedZoneCount", + "getTrafficPolicyInstanceCount", + "listGeoLocations", + "listHealthChecks", + "listHostedZones", + "listHostedZonesByName", + "listQueryLoggingConfigs", + "listReusableDelegationSets", + "listTrafficPolicies", + "listTrafficPolicyInstances" + ], + "deprecatedShapes": [ + "HealthCheckInUse" + ], + "interceptors": [ + "software.amazon.awssdk.services.route53.internal.Route53IdInterceptor" + ], + "useSraAuth": true } diff --git a/services/route53/src/main/resources/codegen-resources/service-2.json b/services/route53/src/main/resources/codegen-resources/service-2.json index a9d3ec2de57f..0399620f9425 100644 --- a/services/route53/src/main/resources/codegen-resources/service-2.json +++ b/services/route53/src/main/resources/codegen-resources/service-2.json @@ -2901,7 +2901,7 @@ "documentation":"

    The bias increases or decreases the size of the geographic region from which Route 53 routes traffic to a resource.

    To use Bias to change the size of the geographic region, specify the applicable value for the bias:

    • To expand the size of the geographic region from which Route 53 routes traffic to a resource, specify a positive integer from 1 to 99 for the bias. Route 53 shrinks the size of adjacent regions.

    • To shrink the size of the geographic region from which Route 53 routes traffic to a resource, specify a negative bias of -1 to -99. Route 53 expands the size of adjacent regions.

    " } }, - "documentation":"

    (Resource record sets only): A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query and your resources. Only one of , LocalZoneGroup, Coordinates, or Amazon Web ServicesRegion is allowed per request at a time.

    For more information about geoproximity routing, see Geoproximity routing in the Amazon Route 53 Developer Guide.

    " + "documentation":"

    (Resource record sets only): A complex type that lets you specify where your resources are located. Only one of LocalZoneGroup, Coordinates, or Amazon Web ServicesRegion is allowed per request at a time.

    For more information about geoproximity routing, see Geoproximity routing in the Amazon Route 53 Developer Guide.

    " }, "GetAccountLimitRequest":{ "type":"structure", diff --git a/services/route53domains/pom.xml b/services/route53domains/pom.xml index 88655df1772a..e5839d2e63f3 100644 --- a/services/route53domains/pom.xml +++ b/services/route53domains/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT route53domains AWS Java SDK :: Services :: Amazon Route53 Domains diff --git a/services/route53domains/src/main/resources/codegen-resources/customization.config b/services/route53domains/src/main/resources/codegen-resources/customization.config index cbc750ecf2cd..da27b0bbe867 100644 --- a/services/route53domains/src/main/resources/codegen-resources/customization.config +++ b/services/route53domains/src/main/resources/codegen-resources/customization.config @@ -1,11 +1,14 @@ { - "verifiedSimpleMethods": [ - "resendContactReachabilityEmail", - "listDomains", - "listOperations" - ], - "excludedSimpleMethods": [ - "viewBilling", - "getContactReachabilityStatus" - ] + "verifiedSimpleMethods": [ + "resendContactReachabilityEmail", + "listDomains", + "listOperations" + ], + "excludedSimpleMethods": [ + "viewBilling", + "getContactReachabilityStatus" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/route53domains/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/route53domains/src/main/resources/codegen-resources/endpoint-rule-set.json index 3f5f87833147..30bf70666762 100644 --- a/services/route53domains/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/route53domains/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/route53domains/src/main/resources/codegen-resources/service-2.json b/services/route53domains/src/main/resources/codegen-resources/service-2.json index db2da8ebd49d..42162f1b414f 100644 --- a/services/route53domains/src/main/resources/codegen-resources/service-2.json +++ b/services/route53domains/src/main/resources/codegen-resources/service-2.json @@ -432,7 +432,7 @@ {"shape":"DomainLimitExceeded"}, {"shape":"OperationLimitExceeded"} ], - "documentation":"

    Transfers a domain from another registrar to Amazon Route 53.

    For more information about transferring domains, see the following topics:

    If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you transfer your DNS service to Route 53 or to another DNS service provider before you transfer your registration. Some registrars provide free DNS service when you purchase a domain registration. When you transfer the registration, the previous registrar will not renew your domain registration and could end your DNS service at any time.

    If the registrar for your domain is also the DNS service provider for the domain and you don't transfer DNS service to another provider, your website, email, and the web applications associated with the domain might become unavailable.

    If the transfer is successful, this method returns an operation ID that you can use to track the progress and completion of the action. If the transfer doesn't complete successfully, the domain registrant will be notified by email.

    " + "documentation":"

    Transfers a domain from another registrar to Amazon Route 53.

    For more information about transferring domains, see the following topics:

    During the transfer of any country code top-level domains (ccTLDs) to Route 53, except for .cc and .tv, updates to the owner contact are ignored and the owner contact data from the registry is used. You can update the owner contact after the transfer is complete. For more information, see UpdateDomainContact.

    If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you transfer your DNS service to Route 53 or to another DNS service provider before you transfer your registration. Some registrars provide free DNS service when you purchase a domain registration. When you transfer the registration, the previous registrar will not renew your domain registration and could end your DNS service at any time.

    If the registrar for your domain is also the DNS service provider for the domain and you don't transfer DNS service to another provider, your website, email, and the web applications associated with the domain might become unavailable.

    If the transfer is successful, this method returns an operation ID that you can use to track the progress and completion of the action. If the transfer doesn't complete successfully, the domain registrant will be notified by email.

    " }, "TransferDomainToAnotherAwsAccount":{ "name":"TransferDomainToAnotherAwsAccount", @@ -668,7 +668,7 @@ "members":{ "Availability":{ "shape":"DomainAvailability", - "documentation":"

    Whether the domain name is available for registering.

    You can register only domains designated as AVAILABLE.

    Valid values:

    AVAILABLE

    The domain name is available.

    AVAILABLE_RESERVED

    The domain name is reserved under specific conditions.

    AVAILABLE_PREORDER

    The domain name is available and can be preordered.

    DONT_KNOW

    The TLD registry didn't reply with a definitive answer about whether the domain name is available. Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later.

    PENDING

    The TLD registry didn't return a response in the expected amount of time. When the response is delayed, it usually takes just a few extra seconds. You can resubmit the request immediately.

    RESERVED

    The domain name has been reserved for another person or organization.

    UNAVAILABLE

    The domain name is not available.

    UNAVAILABLE_PREMIUM

    The domain name is not available.

    UNAVAILABLE_RESTRICTED

    The domain name is forbidden.

    " + "documentation":"

    Whether the domain name is available for registering.

    You can register only domains designated as AVAILABLE.

    Valid values:

    AVAILABLE

    The domain name is available.

    AVAILABLE_RESERVED

    The domain name is reserved under specific conditions.

    AVAILABLE_PREORDER

    The domain name is available and can be preordered.

    DONT_KNOW

    The TLD registry didn't reply with a definitive answer about whether the domain name is available. Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later.

    INVALID_NAME_FOR_TLD

    The TLD isn't valid. For example, it can contain characters that aren't allowed.

    PENDING

    The TLD registry didn't return a response in the expected amount of time. When the response is delayed, it usually takes just a few extra seconds. You can resubmit the request immediately.

    RESERVED

    The domain name has been reserved for another person or organization.

    UNAVAILABLE

    The domain name is not available.

    UNAVAILABLE_PREMIUM

    The domain name is not available.

    UNAVAILABLE_RESTRICTED

    The domain name is forbidden.

    " } }, "documentation":"

    The CheckDomainAvailability response includes the following elements.

    " @@ -1259,7 +1259,9 @@ "UNAVAILABLE_PREMIUM", "UNAVAILABLE_RESTRICTED", "RESERVED", - "DONT_KNOW" + "DONT_KNOW", + "INVALID_NAME_FOR_TLD", + "PENDING" ] }, "DomainLimitExceeded":{ @@ -1592,19 +1594,19 @@ }, "AdminPrivacy":{ "shape":"Boolean", - "documentation":"

    Specifies whether contact information is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If the value is false, WHOIS queries return the information that you entered for the admin contact.

    " + "documentation":"

    Specifies whether contact information is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If the value is false, WHOIS queries return the information that you entered for the admin contact.

    " }, "RegistrantPrivacy":{ "shape":"Boolean", - "documentation":"

    Specifies whether contact information is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If the value is false, WHOIS queries return the information that you entered for the registrant contact (domain owner).

    " + "documentation":"

    Specifies whether contact information is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If the value is false, WHOIS queries return the information that you entered for the registrant contact (domain owner).

    " }, "TechPrivacy":{ "shape":"Boolean", - "documentation":"

    Specifies whether contact information is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If the value is false, WHOIS queries return the information that you entered for the technical contact.

    " + "documentation":"

    Specifies whether contact information is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If the value is false, WHOIS queries return the information that you entered for the technical contact.

    " }, "RegistrarName":{ "shape":"RegistrarName", - "documentation":"

    Name of the registrar of the domain as identified in the registry. Domains with a .com, .net, or .org TLD are registered by Amazon Registrar. All other domains are registered by our registrar associate, Gandi. The value for domains that are registered by Gandi is \"GANDI SAS\".

    " + "documentation":"

    Name of the registrar of the domain as identified in the registry.

    " }, "WhoIsServer":{ "shape":"RegistrarWhoIsServer", @@ -1653,6 +1655,14 @@ "DnssecKeys":{ "shape":"DnssecKeyList", "documentation":"

    A complex type that contains information about the DNSSEC configuration.

    " + }, + "BillingContact":{ + "shape":"ContactDetail", + "documentation":"

    Provides details about the domain billing contact.

    " + }, + "BillingPrivacy":{ + "shape":"Boolean", + "documentation":"

    Specifies whether contact information is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If the value is false, WHOIS queries return the information that you entered for the billing contact.

    " } }, "documentation":"

    The GetDomainDetail response includes the following elements.

    " @@ -2035,13 +2045,15 @@ "RENEW_DOMAIN", "PUSH_DOMAIN", "INTERNAL_TRANSFER_OUT_DOMAIN", - "INTERNAL_TRANSFER_IN_DOMAIN" + "INTERNAL_TRANSFER_IN_DOMAIN", + "RELEASE_TO_GANDI", + "TRANSFER_ON_RENEW" ] }, "OperationTypeList":{ "type":"list", "member":{"shape":"OperationType"}, - "max":18 + "max":20 }, "Operator":{ "type":"string", @@ -2147,15 +2159,23 @@ }, "PrivacyProtectAdminContact":{ "shape":"Boolean", - "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify false, WHOIS queries return the information that you entered for the admin contact.

    You must specify the same privacy setting for the administrative, registrant, and technical contacts.

    Default: true

    " + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the admin contact.

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    Default: true

    " }, "PrivacyProtectRegistrantContact":{ "shape":"Boolean", - "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify false, WHOIS queries return the information that you entered for the registrant contact (the domain owner).

    You must specify the same privacy setting for the administrative, registrant, and technical contacts.

    Default: true

    " + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the registrant contact (the domain owner).

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    Default: true

    " }, "PrivacyProtectTechContact":{ "shape":"Boolean", - "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify false, WHOIS queries return the information that you entered for the technical contact.

    You must specify the same privacy setting for the administrative, registrant, and technical contacts.

    Default: true

    " + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the technical contact.

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    Default: true

    " + }, + "BillingContact":{ + "shape":"ContactDetail", + "documentation":"

    Provides detailed contact information. For information about the values that you specify for each element, see ContactDetail.

    " + }, + "PrivacyProtectBillingContact":{ + "shape":"Boolean", + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the billing contact.

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    " } }, "documentation":"

    The RegisterDomain request includes the following elements.

    " @@ -2427,11 +2447,19 @@ }, "PrivacyProtectRegistrantContact":{ "shape":"Boolean", - "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify false, WHOIS queries return the information that you entered for the registrant contact (domain owner).

    You must specify the same privacy setting for the administrative, registrant, and technical contacts.

    Default: true

    " + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the registrant contact (domain owner).

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    Default: true

    " }, "PrivacyProtectTechContact":{ "shape":"Boolean", - "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify false, WHOIS queries return the information that you entered for the technical contact.

    You must specify the same privacy setting for the administrative, registrant, and technical contacts.

    Default: true

    " + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the technical contact.

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    Default: true

    " + }, + "BillingContact":{ + "shape":"ContactDetail", + "documentation":"

    Provides detailed contact information.

    " + }, + "PrivacyProtectBillingContact":{ + "shape":"Boolean", + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the billing contact.

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    " } }, "documentation":"

    The TransferDomain request includes the following elements.

    " @@ -2480,7 +2508,7 @@ }, "Transferable":{ "type":"string", - "documentation":"

    Whether the domain name can be transferred to Route 53.

    You can transfer only domains that have a value of TRANSFERABLE or Transferable.

    Valid values:

    TRANSFERABLE

    The domain name can be transferred to Route 53.

    UNTRANSFERRABLE

    The domain name can't be transferred to Route 53.

    DONT_KNOW

    Reserved for future use.

    DOMAIN_IN_OWN_ACCOUNT

    The domain already exists in the current Amazon Web Services account.

    DOMAIN_IN_ANOTHER_ACCOUNT

    the domain exists in another Amazon Web Services account.

    PREMIUM_DOMAIN

    Premium domain transfer is not supported.

    ", + "documentation":"

    Whether the domain name can be transferred to Route 53.

    You can transfer only domains that have a value of TRANSFERABLE or Transferable.

    Valid values:

    TRANSFERABLE

    The domain name can be transferred to Route 53.

    UNTRANSFERRABLE

    The domain name can't be transferred to Route 53.

    DONT_KNOW

    Reserved for future use.

    DOMAIN_IN_OWN_ACCOUNT

    The domain already exists in the current Amazon Web Services account.

    DOMAIN_IN_ANOTHER_ACCOUNT

    The domain exists in another Amazon Web Services account.

    PREMIUM_DOMAIN

    Premium domain transfer is not supported.

    ", "enum":[ "TRANSFERABLE", "UNTRANSFERABLE", @@ -2511,15 +2539,19 @@ }, "AdminPrivacy":{ "shape":"Boolean", - "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify false, WHOIS queries return the information that you entered for the admin contact.

    You must specify the same privacy setting for the administrative, registrant, and technical contacts.

    " + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the admin contact.

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    " }, "RegistrantPrivacy":{ "shape":"Boolean", - "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify false, WHOIS queries return the information that you entered for the registrant contact (domain owner).

    You must specify the same privacy setting for the administrative, registrant, and technical contacts.

    " + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the registrant contact (domain owner).

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    " }, "TechPrivacy":{ "shape":"Boolean", - "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify false, WHOIS queries return the information that you entered for the technical contact.

    You must specify the same privacy setting for the administrative, registrant, and technical contacts.

    " + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the technical contact.

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    " + }, + "BillingPrivacy":{ + "shape":"Boolean", + "documentation":"

    Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries return contact information either for Amazon Registrar or for our registrar associate, Gandi. If you specify false, WHOIS queries return the information that you entered for the billing contact.

    You must specify the same privacy setting for the administrative, billing, registrant, and technical contacts.

    " } }, "documentation":"

    The UpdateDomainContactPrivacy request includes the following elements.

    " @@ -2557,6 +2589,10 @@ "Consent":{ "shape":"Consent", "documentation":"

    Customer's consent for the owner change request. Required if the domain is not free (consent price is more than $0.00).

    " + }, + "BillingContact":{ + "shape":"ContactDetail", + "documentation":"

    Provides detailed contact information.

    " } }, "documentation":"

    The UpdateDomainContact request includes the following elements.

    " diff --git a/services/route53recoverycluster/pom.xml b/services/route53recoverycluster/pom.xml index 96ce3cdef22c..cbc3f940d9e3 100644 --- a/services/route53recoverycluster/pom.xml +++ b/services/route53recoverycluster/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT route53recoverycluster AWS Java SDK :: Services :: Route53 Recovery Cluster diff --git a/services/route53recoverycluster/src/main/resources/codegen-resources/customization.config b/services/route53recoverycluster/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/route53recoverycluster/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/route53recoverycontrolconfig/pom.xml b/services/route53recoverycontrolconfig/pom.xml index 2cc0fad74066..f55bbeb3cdf5 100644 --- a/services/route53recoverycontrolconfig/pom.xml +++ b/services/route53recoverycontrolconfig/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT route53recoverycontrolconfig AWS Java SDK :: Services :: Route53 Recovery Control Config diff --git a/services/route53recoverycontrolconfig/src/main/resources/codegen-resources/customization.config b/services/route53recoverycontrolconfig/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/route53recoverycontrolconfig/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/route53recoveryreadiness/pom.xml b/services/route53recoveryreadiness/pom.xml index 48182322aa42..d6665d3d911f 100644 --- a/services/route53recoveryreadiness/pom.xml +++ b/services/route53recoveryreadiness/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT route53recoveryreadiness AWS Java SDK :: Services :: Route53 Recovery Readiness diff --git a/services/route53recoveryreadiness/src/main/resources/codegen-resources/customization.config b/services/route53recoveryreadiness/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/route53recoveryreadiness/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/route53resolver/pom.xml b/services/route53resolver/pom.xml index d6248e20e613..bdc6695d26ee 100644 --- a/services/route53resolver/pom.xml +++ b/services/route53resolver/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT route53resolver AWS Java SDK :: Services :: Route53Resolver diff --git a/services/route53resolver/src/main/resources/codegen-resources/customization.config b/services/route53resolver/src/main/resources/codegen-resources/customization.config index daf08da254a2..3588ed059959 100644 --- a/services/route53resolver/src/main/resources/codegen-resources/customization.config +++ b/services/route53resolver/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,5 @@ { - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "listResolverEndpoints", "listResolverRuleAssociations", "listResolverRules" @@ -8,5 +8,6 @@ "listResolverEndpoints", "listResolverRuleAssociations", "listResolverRules" - ] -} \ No newline at end of file + ], + "useSraAuth": true +} diff --git a/services/rum/pom.xml b/services/rum/pom.xml index 1815c96c9977..6cc1369ad93f 100644 --- a/services/rum/pom.xml +++ b/services/rum/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT rum AWS Java SDK :: Services :: RUM diff --git a/services/rum/src/main/resources/codegen-resources/customization.config b/services/rum/src/main/resources/codegen-resources/customization.config index 0e729acd0371..2a734ae11b2b 100644 --- a/services/rum/src/main/resources/codegen-resources/customization.config +++ b/services/rum/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/rum/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/rum/src/main/resources/codegen-resources/endpoint-rule-set.json index cfb04c37f30a..a05b4f3a0893 100644 --- a/services/rum/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/rum/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/rum/src/main/resources/codegen-resources/service-2.json b/services/rum/src/main/resources/codegen-resources/service-2.json index 98929d148701..f9688fb77d22 100644 --- a/services/rum/src/main/resources/codegen-resources/service-2.json +++ b/services/rum/src/main/resources/codegen-resources/service-2.json @@ -30,7 +30,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Specifies the extended metrics and custom metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid destinations include CloudWatch and Evidently.

    By default, RUM app monitors send some metrics to CloudWatch. These default metrics are listed in CloudWatch metrics that you can collect with CloudWatch RUM.

    In addition to these default metrics, you can choose to send extended metrics or custom metrics or both.

    • Extended metrics enable you to send metrics with additional dimensions not included in the default metrics. You can also send extended metrics to Evidently as well as CloudWatch. The valid dimension names for the additional dimensions for extended metrics are BrowserName, CountryCode, DeviceType, FileType, OSName, and PageId. For more information, see Extended metrics that you can send to CloudWatch and CloudWatch Evidently.

    • Custom metrics are metrics that you define. You can send custom metrics to CloudWatch or to CloudWatch Evidently or to both. With custom metrics, you can use any metric name and namespace, and to derive the metrics you can use any custom events, built-in events, custom attributes, or default attributes.

      You can't send custom metrics to the AWS/RUM namespace. You must send custom metrics to a custom namespace that you define. The namespace that you use can't start with AWS/. CloudWatch RUM prepends RUM/CustomMetrics/ to the custom namespace that you define, so the final namespace for your metrics in CloudWatch is RUM/CustomMetrics/your-custom-namespace .

    The maximum number of metric definitions that you can specify in one BatchCreateRumMetricDefinitions operation is 200.

    The maximum number of metric definitions that one destination can contain is 2000.

    Extended metrics sent to CloudWatch and RUM custom metrics are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension value counts as a custom metric. For more information, see Amazon CloudWatch Pricing.

    You must have already created a destination for the metrics before you send them. For more information, see PutRumMetricsDestination.

    If some metric definitions specified in a BatchCreateRumMetricDefinitions operations are not valid, those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.

    ", + "documentation":"

    Specifies the extended metrics and custom metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid destinations include CloudWatch and Evidently.

    By default, RUM app monitors send some metrics to CloudWatch. These default metrics are listed in CloudWatch metrics that you can collect with CloudWatch RUM.

    In addition to these default metrics, you can choose to send extended metrics, custom metrics, or both.

    • Extended metrics let you send metrics with additional dimensions that aren't included in the default metrics. You can also send extended metrics to both Evidently and CloudWatch. The valid dimension names for the additional dimensions for extended metrics are BrowserName, CountryCode, DeviceType, FileType, OSName, and PageId. For more information, see Extended metrics that you can send to CloudWatch and CloudWatch Evidently.

    • Custom metrics are metrics that you define. You can send custom metrics to CloudWatch. CloudWatch Evidently, or both. With custom metrics, you can use any metric name and namespace. To derive the metrics, you can use any custom events, built-in events, custom attributes, or default attributes.

      You can't send custom metrics to the AWS/RUM namespace. You must send custom metrics to a custom namespace that you define. The namespace that you use can't start with AWS/. CloudWatch RUM prepends RUM/CustomMetrics/ to the custom namespace that you define, so the final namespace for your metrics in CloudWatch is RUM/CustomMetrics/your-custom-namespace .

    The maximum number of metric definitions that you can specify in one BatchCreateRumMetricDefinitions operation is 200.

    The maximum number of metric definitions that one destination can contain is 2000.

    Extended metrics sent to CloudWatch and RUM custom metrics are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension value counts as a custom metric. For more information, see Amazon CloudWatch Pricing.

    You must have already created a destination for the metrics before you send them. For more information, see PutRumMetricsDestination.

    If some metric definitions specified in a BatchCreateRumMetricDefinitions operations are not valid, those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.

    ", "idempotent":true }, "BatchDeleteRumMetricDefinitions":{ @@ -412,7 +412,7 @@ }, "GuestRoleArn":{ "shape":"Arn", - "documentation":"

    The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to RUM.

    " + "documentation":"

    The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to RUM.

    It is possible that an app monitor does not have a value for GuestRoleArn. For example, this can happen when you use the console to create an app monitor and you allow CloudWatch RUM to create a new identity pool for Authorization. In this case, GuestRoleArn is not present in the GetAppMonitor response because it is not stored by the service.

    If this issue affects you, you can take one of the following steps:

    • Use the Cloud Development Kit (CDK) to create an identity pool and the associated IAM role, and use that for your app monitor.

    • Make a separate GetIdentityPoolRoles call to Amazon Cognito to retrieve the GuestRoleArn.

    " }, "IdentityPoolId":{ "shape":"IdentityPoolId", @@ -546,7 +546,7 @@ }, "Destination":{ "shape":"MetricDestination", - "documentation":"

    The destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the CloudWatchEvidently experiment that will receive the metrics and an IAM role that has permission to write to the experiment.

    " + "documentation":"

    The destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the Amazon Resource Name (ARN) of the CloudWatchEvidently experiment that will receive the metrics and an IAM role that has permission to write to the experiment.

    " }, "DestinationArn":{ "shape":"DestinationArn", @@ -736,7 +736,7 @@ "members":{ "AppMonitorConfiguration":{ "shape":"AppMonitorConfiguration", - "documentation":"

    A structure that contains much of the configuration data for the app monitor. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own authorization method. For more information, see Authorize your application to send data to Amazon Web Services.

    If you omit this argument, the sample rate used for RUM is set to 10% of the user sessions.

    " + "documentation":"

    A structure that contains much of the configuration data for the app monitor. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own authorization method. For more information, see Authorize your application to send data to Amazon Web Services.

    If you omit this argument, the sample rate used for RUM is set to 10% of the user sessions.

    " }, "CustomEvents":{ "shape":"CustomEvents", @@ -1166,7 +1166,7 @@ }, "EventPattern":{ "shape":"EventPattern", - "documentation":"

    The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destination.

    When you define extended metrics, the metric definition is not valid if EventPattern is omitted.

    Example event patterns:

    • '{ \"event_type\": [\"com.amazon.rum.js_error_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Safari\" ], } }'

    • '{ \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Firefox\" ] }, \"event_details\": { \"duration\": [{ \"numeric\": [ \"<\", 2000 ] }] } }'

    • '{ \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Safari\" ], \"countryCode\": [ \"US\" ] }, \"event_details\": { \"duration\": [{ \"numeric\": [ \">=\", 2000, \"<\", 8000 ] }] } }'

    If the metrics destination' is CloudWatch and the event also matches a value in DimensionKeys, then the metric is published with the specified dimensions.

    " + "documentation":"

    The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destination.

    When you define extended metrics, the metric definition is not valid if EventPattern is omitted.

    Example event patterns:

    • '{ \"event_type\": [\"com.amazon.rum.js_error_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Safari\" ], } }'

    • '{ \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Firefox\" ] }, \"event_details\": { \"duration\": [{ \"numeric\": [ \"<\", 2000 ] }] } }'

    • '{ \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Safari\" ], \"countryCode\": [ \"US\" ] }, \"event_details\": { \"duration\": [{ \"numeric\": [ \">=\", 2000, \"<\", 8000 ] }] } }'

    If the metrics destination is CloudWatch and the event also matches a value in DimensionKeys, then the metric is published with the specified dimensions.

    " }, "Name":{ "shape":"MetricName", @@ -1182,10 +1182,10 @@ }, "ValueKey":{ "shape":"ValueKey", - "documentation":"

    The field within the event object that the metric value is sourced from.

    If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.

    If this metric is sent to CloudWatch Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event.

    " + "documentation":"

    The field within the event object that the metric value is sourced from.

    If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you want to count the number of events that the filter catches.

    If this metric is sent to CloudWatch Evidently, this field will be passed to Evidently raw. Evidently will handle data extraction from the event.

    " } }, - "documentation":"

    Use this structure to define one extended metric or custom metric that RUM will send to CloudWatch or CloudWatch Evidently. For more information, see Additional metrics that you can send to CloudWatch and CloudWatch Evidently.

    This structure is validated differently for extended metrics and custom metrics. For extended metrics that are sent to the AWS/RUM namespace, the following validations apply:

    • The Namespace parameter must be omitted or set to AWS/RUM.

    • Only certain combinations of values for Name, ValueKey, and EventPattern are valid. In addition to what is displayed in the list below, the EventPattern can also include information used by the DimensionKeys field.

      • If Name is PerformanceNavigationDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_navigation_event\"]}

      • If Name is PerformanceResourceDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_resource_event\"]}

      • If Name is NavigationSatisfiedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">\",2000] }] } }

      • If Name is NavigationToleratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",2000,\"<\"8000] }] } }

      • If Name is NavigationFrustratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",8000] }] } }

      • If Name is WebVitalsCumulativeLayoutShift, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.cumulative_layout_shift_event\"]}

      • If Name is WebVitalsFirstInputDelay, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.first_input_delay_event\"]}

      • If Name is WebVitalsLargestContentfulPaint, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.largest_contentful_paint_event\"]}

      • If Name is JsErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.js_error_event\"]}

      • If Name is HttpErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.http_event\"]}

      • If Name is SessionCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.session_start_event\"]}

    For custom metrics, the following validation rules apply:

    • The namespace can't be omitted and can't be AWS/RUM. You can use the AWS/RUM namespace only for extended metrics.

    • All dimensions listed in the DimensionKeys field must be present in the value of EventPattern.

    • The values that you specify for ValueKey, EventPattern, and DimensionKeys must be fields in RUM events, so all first-level keys in these fields must be one of the keys in the list later in this section.

    • If you set a value for EventPattern, it must be a JSON object.

    • For every non-empty event_details, there must be a non-empty event_type.

    • If EventPattern contains an event_details field, it must also contain an event_type. For every built-in event_type that you use, you must use a value for event_details that corresponds to that event_type. For information about event details that correspond to event types, see RUM event details.

    • In EventPattern, any JSON array must contain only one value.

    Valid key values for first-level keys in the ValueKey, EventPattern, and DimensionKeys fields:

    • account_id

    • application_Id

    • application_version

    • application_name

    • batch_id

    • event_details

    • event_id

    • event_interaction

    • event_timestamp

    • event_type

    • event_version

    • log_stream

    • metadata

    • sessionId

    • user_details

    • userId

    " + "documentation":"

    Use this structure to define one extended metric or custom metric that RUM will send to CloudWatch or CloudWatch Evidently. For more information, see Custom metrics and extended metrics that you can send to CloudWatch and CloudWatch Evidently.

    This structure is validated differently for extended metrics and custom metrics. For extended metrics that are sent to the AWS/RUM namespace, the following validations apply:

    • The Namespace parameter must be omitted or set to AWS/RUM.

    • Only certain combinations of values for Name, ValueKey, and EventPattern are valid. In addition to what is displayed in the following list, the EventPattern can also include information used by the DimensionKeys field.

      • If Name is PerformanceNavigationDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_navigation_event\"]}

      • If Name is PerformanceResourceDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_resource_event\"]}

      • If Name is NavigationSatisfiedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">\",2000] }] } }

      • If Name is NavigationToleratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",2000,\"<\"8000] }] } }

      • If Name is NavigationFrustratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",8000] }] } }

      • If Name is WebVitalsCumulativeLayoutShift, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.cumulative_layout_shift_event\"]}

      • If Name is WebVitalsFirstInputDelay, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.first_input_delay_event\"]}

      • If Name is WebVitalsLargestContentfulPaint, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.largest_contentful_paint_event\"]}

      • If Name is JsErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.js_error_event\"]}

      • If Name is HttpErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.http_event\"]}

      • If Name is SessionCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.session_start_event\"]}

      • If Name is PageViewCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.page_view_event\"]}

      • If Name is Http4xxCount, then ValueKeymust be null and the EventPattern must include {\"event_type\": [\"com.amazon.rum.http_event\"],\"event_details\":{\"response\":{\"status\":[{\"numeric\":[\">=\",400,\"<\",500]}]}}} }

      • If Name is Http5xxCount, then ValueKeymust be null and the EventPattern must include {\"event_type\": [\"com.amazon.rum.http_event\"],\"event_details\":{\"response\":{\"status\":[{\"numeric\":[\">=\",500,\"<=\",599]}]}}} }

    For custom metrics, the following validation rules apply:

    • The namespace can't be omitted and can't be AWS/RUM. You can use the AWS/RUM namespace only for extended metrics.

    • All dimensions listed in the DimensionKeys field must be present in the value of EventPattern.

    • The values that you specify for ValueKey, EventPattern, and DimensionKeys must be fields in RUM events, so all first-level keys in these fields must be one of the keys in the list later in this section.

    • If you set a value for EventPattern, it must be a JSON object.

    • For every non-empty event_details, there must be a non-empty event_type.

    • If EventPattern contains an event_details field, it must also contain an event_type. For every built-in event_type that you use, you must use a value for event_details that corresponds to that event_type. For information about event details that correspond to event types, see RUM event details.

    • In EventPattern, any JSON array must contain only one value.

    Valid key values for first-level keys in the ValueKey, EventPattern, and DimensionKeys fields:

    • account_id

    • application_Id

    • application_version

    • application_name

    • batch_id

    • event_details

    • event_id

    • event_interaction

    • event_timestamp

    • event_type

    • event_version

    • log_stream

    • metadata

    • sessionId

    • user_details

    • userId

    " }, "MetricDefinitions":{ "type":"list", @@ -1315,7 +1315,7 @@ }, "IamRoleArn":{ "shape":"IamRoleArn", - "documentation":"

    This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter.

    This parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.

    " + "documentation":"

    This parameter is required if Destination is Evidently. If Destination is CloudWatch, don't use this parameter.

    This parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.

    If you specify this parameter, you must be signed on to a role that has PassRole permissions attached to it, to allow the role to be passed. The CloudWatchAmazonCloudWatchRUMFullAccess policy doesn't include PassRole permissions.

    " } } }, @@ -1584,7 +1584,7 @@ "members":{ "AppMonitorConfiguration":{ "shape":"AppMonitorConfiguration", - "documentation":"

    A structure that contains much of the configuration data for the app monitor. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own authorization method. For more information, see Authorize your application to send data to Amazon Web Services.

    " + "documentation":"

    A structure that contains much of the configuration data for the app monitor. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own authorization method. For more information, see Authorize your application to send data to Amazon Web Services.

    " }, "CustomEvents":{ "shape":"CustomEvents", diff --git a/services/s3/pom.xml b/services/s3/pom.xml index eff40072a7ee..55bf369b8724 100644 --- a/services/s3/pom.xml +++ b/services/s3/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT s3 AWS Java SDK :: Services :: Amazon S3 @@ -204,6 +204,11 @@ org.mockito mockito-junit-jupiter
    + + org.mockito + mockito-inline + test + net.bytebuddy byte-buddy diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/checksum/AsyncHttpChecksumIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/checksum/AsyncHttpChecksumIntegrationTest.java index d88d54610387..ab0d8fac1dad 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/checksum/AsyncHttpChecksumIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/checksum/AsyncHttpChecksumIntegrationTest.java @@ -36,17 +36,17 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; -import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute; import software.amazon.awssdk.authcrt.signer.internal.DefaultAwsCrtS3V4aSigner; +import software.amazon.awssdk.core.SdkPlugin; import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.core.checksums.Algorithm; import software.amazon.awssdk.core.checksums.ChecksumValidation; -import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.internal.async.FileAsyncRequestBody; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.S3Configuration; import software.amazon.awssdk.services.s3.S3IntegrationTestBase; +import software.amazon.awssdk.services.s3.internal.plugins.S3OverrideAuthSchemePropertiesPlugin; import software.amazon.awssdk.services.s3.model.ChecksumAlgorithm; import software.amazon.awssdk.services.s3.model.ChecksumMode; import software.amazon.awssdk.services.s3.model.GetObjectRequest; @@ -222,12 +222,10 @@ void asyncHttpsValidUnsignedTrailer_TwoRequests_withDifferentChunkSize_OfFileAsy @Disabled("Http Async Signing is not supported for S3") void asyncValidSignedTrailerChecksumCalculatedBySdkClient() { - ExecutionAttributes executionAttributes = ExecutionAttributes.builder() - .put(S3SignerExecutionAttribute.ENABLE_PAYLOAD_SIGNING, - true).build(); + SdkPlugin enablePayloadSigningPlugin = S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin(); s3HttpAsync.putObject(PutObjectRequest.builder() .bucket(BUCKET) - .overrideConfiguration(o -> o.executionAttributes(executionAttributes)) + .overrideConfiguration(o -> o.addPlugin(enablePayloadSigningPlugin)) .key(KEY) .build(), AsyncRequestBody.fromString("Hello world")).join(); String response = s3HttpAsync.getObject(GetObjectRequest.builder().bucket(BUCKET) diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionAsyncIntegrationTestBase.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionAsyncIntegrationTestBase.java index ee1b82d4da4a..59781034e827 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionAsyncIntegrationTestBase.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionAsyncIntegrationTestBase.java @@ -30,6 +30,8 @@ import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.awssdk.services.s3.model.HeadBucketRequest; import software.amazon.awssdk.services.s3.model.HeadBucketResponse; +import software.amazon.awssdk.services.s3.model.HeadObjectRequest; +import software.amazon.awssdk.services.s3.model.HeadObjectResponse; import software.amazon.awssdk.services.s3.model.ListObjectsV2Request; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; @@ -74,4 +76,9 @@ protected PutObjectResponse putAPICall(PutObjectRequest putObjectRequest, String protected ResponseBytes getAPICall(GetObjectRequest getObjectRequest) { return crossRegionS3Client.getObject(getObjectRequest, AsyncResponseTransformer.toBytes()).join(); } + + @Override + protected HeadObjectResponse headObjectAPICall(HeadObjectRequest headObjectRequest) { + return crossRegionS3Client.headObject(headObjectRequest).join(); + } } diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionCrtIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionCrtIntegrationTest.java index 9749b4920539..e6a47bc948d6 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionCrtIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionCrtIntegrationTest.java @@ -46,7 +46,7 @@ static void clearClass() { @BeforeEach public void initialize() { crossRegionS3Client = S3AsyncClient.crtBuilder() - .region(CROSS_REGION) + .region(Region.AWS_GLOBAL) .crossRegionAccessEnabled(true) .build(); } diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionIntegrationTestBase.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionIntegrationTestBase.java index 006eb493d71d..d28bb071a461 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionIntegrationTestBase.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionIntegrationTestBase.java @@ -35,6 +35,8 @@ import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.awssdk.services.s3.model.HeadBucketRequest; import software.amazon.awssdk.services.s3.model.HeadBucketResponse; +import software.amazon.awssdk.services.s3.model.HeadObjectRequest; +import software.amazon.awssdk.services.s3.model.HeadObjectResponse; import software.amazon.awssdk.services.s3.model.ListObjectsV2Request; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; @@ -58,6 +60,16 @@ void getApi_CrossRegionCall() { assertThat(new String(response.asByteArray())).isEqualTo("TEST_STRING"); } + @Test + void headObjectApi_CrossRegionCall() { + s3.putObject(p -> p.bucket(bucketName()).checksumAlgorithm(ChecksumAlgorithm.CRC32).key(KEY), RequestBody.fromString( + "TEST_STRING")); + HeadObjectRequest headObjectRequest = + HeadObjectRequest.builder().bucket(bucketName()).checksumMode(ChecksumMode.ENABLED).key(KEY).build(); + HeadObjectResponse response = headObjectAPICall(headObjectRequest); + assertThat(response.contentLength()).isEqualTo("TEST_STRING".length()); + } + @Test void putApi_CrossRegionCall() { s3.putObject(p -> p.bucket(bucketName()).checksumAlgorithm(ChecksumAlgorithm.CRC32).key(KEY), RequestBody.fromString( @@ -136,6 +148,7 @@ void headApi_CrossRegionCall() { protected abstract PutObjectResponse putAPICall(PutObjectRequest putObjectRequest, String testString); protected abstract ResponseBytes getAPICall(GetObjectRequest getObjectRequest); + protected abstract HeadObjectResponse headObjectAPICall(HeadObjectRequest headObjectRequest); protected abstract String bucketName(); diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionSyncIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionSyncIntegrationTest.java index 20b8a0bbff1d..72e7cc217257 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionSyncIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crossregion/S3CrossRegionSyncIntegrationTest.java @@ -36,6 +36,8 @@ import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.awssdk.services.s3.model.HeadBucketRequest; import software.amazon.awssdk.services.s3.model.HeadBucketResponse; +import software.amazon.awssdk.services.s3.model.HeadObjectRequest; +import software.amazon.awssdk.services.s3.model.HeadObjectResponse; import software.amazon.awssdk.services.s3.model.ListObjectsV2Request; import software.amazon.awssdk.services.s3.model.ListObjectsV2Response; import software.amazon.awssdk.services.s3.model.PutObjectRequest; @@ -101,6 +103,11 @@ protected ResponseBytes getAPICall(GetObjectRequest getObject return crossRegionS3Client.getObject(getObjectRequest, ResponseTransformer.toBytes()); } + @Override + protected HeadObjectResponse headObjectAPICall(HeadObjectRequest headObjectRequest) { + return crossRegionS3Client.headObject(headObjectRequest); + } + @Override protected String bucketName() { return BUCKET; diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3ClientMultiPartCopyIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3ClientMultiPartCopyIntegrationTest.java index fc4f31b76b1a..4d942d942e7f 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3ClientMultiPartCopyIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3ClientMultiPartCopyIntegrationTest.java @@ -24,6 +24,8 @@ import java.nio.ByteBuffer; import java.security.SecureRandom; import java.util.Base64; +import java.util.List; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; @@ -37,10 +39,16 @@ import software.amazon.awssdk.core.ClientType; import software.amazon.awssdk.core.ResponseBytes; import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; import software.amazon.awssdk.core.sync.ResponseTransformer; +import software.amazon.awssdk.http.SdkHttpRequest; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.S3IntegrationTestBase; import software.amazon.awssdk.services.s3.internal.crt.S3CrtAsyncClient; +import software.amazon.awssdk.services.s3.internal.multipart.MultipartS3AsyncClient; +import software.amazon.awssdk.services.s3.model.ChecksumAlgorithm; import software.amazon.awssdk.services.s3.model.CopyObjectResponse; import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.awssdk.services.s3.model.MetadataDirective; @@ -49,6 +57,7 @@ @Timeout(value = 3, unit = TimeUnit.MINUTES) public class S3ClientMultiPartCopyIntegrationTest extends S3IntegrationTestBase { private static final String BUCKET = temporaryBucketName(S3ClientMultiPartCopyIntegrationTest.class); + private static final CapturingInterceptor CAPTURING_INTERCEPTOR = new CapturingInterceptor(); private static final String ORIGINAL_OBJ = "test_file.dat"; private static final String COPIED_OBJ = "test_file_copy.dat"; private static final String ORIGINAL_OBJ_SPECIAL_CHARACTER = "original-special-chars-@$%"; @@ -70,7 +79,8 @@ public static void setUp() throws Exception { .region(DEFAULT_REGION) .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) .overrideConfiguration(o -> o.addExecutionInterceptor( - new UserAgentVerifyingExecutionInterceptor("NettyNio", ClientType.ASYNC))) + new UserAgentVerifyingExecutionInterceptor("NettyNio", ClientType.ASYNC)) + .addExecutionInterceptor(CAPTURING_INTERCEPTOR)) .multipartEnabled(true) .build(); } @@ -115,7 +125,7 @@ void copy_specialCharacters_hasSameContent(S3AsyncClient s3AsyncClient) { @ParameterizedTest(autoCloseArguments = false) @MethodSource("s3AsyncClient") - void copy_ssecServerSideEncryption_shouldSucceed(S3AsyncClient s3AsyncClient) { + void copy_withSSECAndChecksum_shouldSucceed(S3AsyncClient s3AsyncClient) { byte[] originalContent = randomBytes(OBJ_SIZE); byte[] secretKey = generateSecretKey(); String b64Key = Base64.getEncoder().encodeToString(secretKey); @@ -132,6 +142,8 @@ void copy_ssecServerSideEncryption_shouldSucceed(S3AsyncClient s3AsyncClient) { .sseCustomerKeyMD5(b64KeyMd5), AsyncRequestBody.fromBytes(originalContent)).join(); + CAPTURING_INTERCEPTOR.reset(); + CompletableFuture future = s3AsyncClient.copyObject(c -> c .sourceBucket(BUCKET) .sourceKey(ORIGINAL_OBJ) @@ -143,11 +155,13 @@ void copy_ssecServerSideEncryption_shouldSucceed(S3AsyncClient s3AsyncClient) { .copySourceSSECustomerKey(b64Key) .copySourceSSECustomerKeyMD5(b64KeyMd5) .destinationBucket(BUCKET) - .destinationKey(COPIED_OBJ)); + .destinationKey(COPIED_OBJ) + .checksumAlgorithm(ChecksumAlgorithm.CRC32)); CopyObjectResponse copyObjectResponse = future.join(); assertThat(copyObjectResponse.responseMetadata().requestId()).isNotNull(); assertThat(copyObjectResponse.sdkHttpResponse()).isNotNull(); + verifyCopyContainsCrc32Header(s3AsyncClient); } private static byte[] generateSecretKey() { @@ -180,6 +194,12 @@ private void copyObject(String original, String destination, S3AsyncClient s3Asy assertThat(copyObjectResponse.sdkHttpResponse()).isNotNull(); } + private void verifyCopyContainsCrc32Header(S3AsyncClient s3AsyncClient) { + if (s3AsyncClient instanceof MultipartS3AsyncClient) { + assertThat(CAPTURING_INTERCEPTOR.checksumHeader).isEqualTo("CRC32"); + } + } + private void validateCopiedObject(byte[] originalContent, String originalKey) { ResponseBytes copiedObject = s3.getObject(r -> r.bucket(BUCKET) .key(originalKey), @@ -192,4 +212,24 @@ public static byte[] randomBytes(long size) { ThreadLocalRandom.current().nextBytes(bytes); return bytes; } + + private static final class CapturingInterceptor implements ExecutionInterceptor { + private String checksumHeader; + + @Override + public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { + SdkHttpRequest sdkHttpRequest = context.httpRequest(); + Map> headers = sdkHttpRequest.headers(); + String checksumHeaderName = "x-amz-checksum-algorithm"; + if (headers.containsKey(checksumHeaderName)) { + List checksumHeaderVals = headers.get(checksumHeaderName); + assertThat(checksumHeaderVals).hasSize(1); + checksumHeader = checksumHeaderVals.get(0); + } + } + + public void reset() { + checksumHeader = null; + } + } } diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3MultipartClientPutObjectIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3MultipartClientPutObjectIntegrationTest.java index fa31b5453e5e..3e6811f69b3c 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3MultipartClientPutObjectIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3MultipartClientPutObjectIntegrationTest.java @@ -17,6 +17,7 @@ import static java.util.concurrent.TimeUnit.SECONDS; import static org.assertj.core.api.Assertions.assertThat; +import static software.amazon.awssdk.services.s3.model.ServerSideEncryption.AES256; import static software.amazon.awssdk.testutils.service.S3BucketUtils.temporaryBucketName; import java.io.ByteArrayInputStream; @@ -24,23 +25,36 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.nio.file.Files; +import java.security.MessageDigest; +import java.security.SecureRandom; +import java.util.Base64; +import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.UUID; +import javax.crypto.KeyGenerator; import org.apache.commons.lang3.RandomStringUtils; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; import org.reactivestreams.Subscriber; import software.amazon.awssdk.core.ClientType; import software.amazon.awssdk.core.ResponseInputStream; import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; import software.amazon.awssdk.core.internal.async.FileAsyncRequestBody; import software.amazon.awssdk.core.sync.ResponseTransformer; +import software.amazon.awssdk.http.SdkHttpRequest; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.S3IntegrationTestBase; +import software.amazon.awssdk.services.s3.model.ChecksumAlgorithm; import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.awssdk.services.s3.utils.ChecksumUtils; +import software.amazon.awssdk.utils.Md5Utils; @Timeout(value = 30, unit = SECONDS) public class S3MultipartClientPutObjectIntegrationTest extends S3IntegrationTestBase { @@ -48,7 +62,8 @@ public class S3MultipartClientPutObjectIntegrationTest extends S3IntegrationTest private static final String TEST_BUCKET = temporaryBucketName(S3MultipartClientPutObjectIntegrationTest.class); private static final String TEST_KEY = "testfile.dat"; private static final int OBJ_SIZE = 19 * 1024 * 1024; - + private static final CapturingInterceptor CAPTURING_INTERCEPTOR = new CapturingInterceptor(); + private static final byte[] CONTENT = RandomStringUtils.randomAscii(OBJ_SIZE).getBytes(Charset.defaultCharset()); private static File testFile; private static S3AsyncClient mpuS3Client; @@ -56,17 +71,14 @@ public class S3MultipartClientPutObjectIntegrationTest extends S3IntegrationTest public static void setup() throws Exception { S3IntegrationTestBase.setUp(); S3IntegrationTestBase.createBucket(TEST_BUCKET); - byte[] CONTENT = - RandomStringUtils.randomAscii(OBJ_SIZE).getBytes(Charset.defaultCharset()); - testFile = File.createTempFile("SplittingPublisherTest", UUID.randomUUID().toString()); Files.write(testFile.toPath(), CONTENT); mpuS3Client = S3AsyncClient .builder() .region(DEFAULT_REGION) .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) - .overrideConfiguration(o -> o.addExecutionInterceptor( - new UserAgentVerifyingExecutionInterceptor("NettyNio", ClientType.ASYNC))) + .overrideConfiguration(o -> o.addExecutionInterceptor(new UserAgentVerifyingExecutionInterceptor("NettyNio", ClientType.ASYNC)) + .addExecutionInterceptor(CAPTURING_INTERCEPTOR)) .multipartEnabled(true) .build(); } @@ -78,11 +90,18 @@ public static void teardown() throws Exception { deleteBucketAndAllContents(TEST_BUCKET); } + @BeforeEach + public void reset() { + CAPTURING_INTERCEPTOR.reset(); + } + @Test void putObject_fileRequestBody_objectSentCorrectly() throws Exception { AsyncRequestBody body = AsyncRequestBody.fromFile(testFile.toPath()); mpuS3Client.putObject(r -> r.bucket(TEST_BUCKET).key(TEST_KEY), body).join(); + assertThat(CAPTURING_INTERCEPTOR.checksumHeader).isEqualTo("CRC32"); + ResponseInputStream objContent = S3IntegrationTestBase.s3.getObject(r -> r.bucket(TEST_BUCKET).key(TEST_KEY), ResponseTransformer.toInputStream()); @@ -98,6 +117,8 @@ void putObject_byteAsyncRequestBody_objectSentCorrectly() throws Exception { AsyncRequestBody body = AsyncRequestBody.fromBytes(bytes); mpuS3Client.putObject(r -> r.bucket(TEST_BUCKET).key(TEST_KEY), body).join(); + assertThat(CAPTURING_INTERCEPTOR.checksumHeader).isEqualTo("CRC32"); + ResponseInputStream objContent = S3IntegrationTestBase.s3.getObject(r -> r.bucket(TEST_BUCKET).key(TEST_KEY), ResponseTransformer.toInputStream()); @@ -124,6 +145,8 @@ public void subscribe(Subscriber s) { } }).get(30, SECONDS); + assertThat(CAPTURING_INTERCEPTOR.checksumHeader).isEqualTo("CRC32"); + ResponseInputStream objContent = S3IntegrationTestBase.s3.getObject(r -> r.bucket(TEST_BUCKET).key(TEST_KEY), ResponseTransformer.toInputStream()); @@ -133,4 +156,102 @@ public void subscribe(Subscriber s) { assertThat(ChecksumUtils.computeCheckSum(objContent)).isEqualTo(expectedSum); } + @Test + void putObject_withSSECAndChecksum_objectSentCorrectly() throws Exception { + byte[] secretKey = generateSecretKey(); + String b64Key = Base64.getEncoder().encodeToString(secretKey); + String b64KeyMd5 = Md5Utils.md5AsBase64(secretKey); + + AsyncRequestBody body = AsyncRequestBody.fromFile(testFile.toPath()); + mpuS3Client.putObject(r -> r.bucket(TEST_BUCKET) + .key(TEST_KEY) + .sseCustomerKey(b64Key) + .sseCustomerAlgorithm(AES256.name()) + .sseCustomerKeyMD5(b64KeyMd5), + body).join(); + + assertThat(CAPTURING_INTERCEPTOR.checksumHeader).isEqualTo("CRC32"); + + ResponseInputStream objContent = + S3IntegrationTestBase.s3.getObject(r -> r.bucket(TEST_BUCKET) + .key(TEST_KEY) + .sseCustomerKey(b64Key) + .sseCustomerAlgorithm(AES256.name()) + .sseCustomerKeyMD5(b64KeyMd5), + ResponseTransformer.toInputStream()); + + assertThat(objContent.response().contentLength()).isEqualTo(testFile.length()); + byte[] expectedSum = ChecksumUtils.computeCheckSum(Files.newInputStream(testFile.toPath())); + assertThat(ChecksumUtils.computeCheckSum(objContent)).isEqualTo(expectedSum); + } + + @Test + void putObject_withUserSpecifiedChecksumValue_objectSentCorrectly() throws Exception { + String sha1Val = calculateSHA1AsString(); + AsyncRequestBody body = AsyncRequestBody.fromFile(testFile.toPath()); + mpuS3Client.putObject(r -> r.bucket(TEST_BUCKET) + .key(TEST_KEY) + .checksumSHA1(sha1Val), + body).join(); + + assertThat(CAPTURING_INTERCEPTOR.headers.get("x-amz-checksum-sha1")).contains(sha1Val); + assertThat(CAPTURING_INTERCEPTOR.checksumHeader).isNull(); + + ResponseInputStream objContent = + S3IntegrationTestBase.s3.getObject(r -> r.bucket(TEST_BUCKET).key(TEST_KEY), + ResponseTransformer.toInputStream()); + + assertThat(objContent.response().contentLength()).isEqualTo(testFile.length()); + byte[] expectedSum = ChecksumUtils.computeCheckSum(Files.newInputStream(testFile.toPath())); + assertThat(ChecksumUtils.computeCheckSum(objContent)).isEqualTo(expectedSum); + } + + @Test + void putObject_withUserSpecifiedChecksumTypeOtherThanCrc32_shouldHonorChecksum() { + AsyncRequestBody body = AsyncRequestBody.fromFile(testFile.toPath()); + mpuS3Client.putObject(r -> r.bucket(TEST_BUCKET) + .key(TEST_KEY) + .checksumAlgorithm(ChecksumAlgorithm.SHA1), + body).join(); + + assertThat(CAPTURING_INTERCEPTOR.checksumHeader).isEqualTo("SHA1"); + } + + private static String calculateSHA1AsString() throws Exception { + MessageDigest md = MessageDigest.getInstance("SHA-1"); + md.update(CONTENT); + byte[] checksum = md.digest(); + return Base64.getEncoder().encodeToString(checksum); + } + + private static byte[] generateSecretKey() { + KeyGenerator generator; + try { + generator = KeyGenerator.getInstance("AES"); + generator.init(256, new SecureRandom()); + return generator.generateKey().getEncoded(); + } catch (Exception e) { + return null; + } + } + + private static final class CapturingInterceptor implements ExecutionInterceptor { + String checksumHeader; + Map> headers; + @Override + public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { + SdkHttpRequest sdkHttpRequest = context.httpRequest(); + headers = sdkHttpRequest.headers(); + String checksumHeaderName = "x-amz-sdk-checksum-algorithm"; + if (headers.containsKey(checksumHeaderName)) { + List checksumHeaderVals = headers.get(checksumHeaderName); + assertThat(checksumHeaderVals).hasSize(1); + checksumHeader = checksumHeaderVals.get(0); + } + } + + public void reset() { + checksumHeader = null; + } + } } diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/s3express/S3ExpressIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/s3express/S3ExpressIntegrationTest.java index b6edf3585691..d49ea54e86be 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/s3express/S3ExpressIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/s3express/S3ExpressIntegrationTest.java @@ -44,7 +44,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute; import software.amazon.awssdk.core.ResponseBytes; import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.async.AsyncResponseTransformer; @@ -62,6 +61,7 @@ import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.S3Client; +import software.amazon.awssdk.services.s3.internal.plugins.S3OverrideAuthSchemePropertiesPlugin; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse; import software.amazon.awssdk.services.s3.model.CompletedMultipartUpload; @@ -226,7 +226,7 @@ public void putObject_payloadSigningEnabledSra_executesSuccessfully() { S3Client s3Client = S3Client.builder() .region(TEST_REGION) .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) - .overrideConfiguration(o -> o.putExecutionAttribute(S3SignerExecutionAttribute.ENABLE_PAYLOAD_SIGNING, true)) + .addPlugin(S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin()) .build(); PutObjectRequest request = PutObjectRequest.builder() diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/signer/PayloadSigningIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/signer/PayloadSigningIntegrationTest.java index ca77bc1cc588..dbe9bc2f7486 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/signer/PayloadSigningIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/signer/PayloadSigningIntegrationTest.java @@ -29,7 +29,6 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute; import software.amazon.awssdk.core.interceptor.Context; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; @@ -39,6 +38,7 @@ import software.amazon.awssdk.http.SdkHttpRequest; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.S3IntegrationTestBase; +import software.amazon.awssdk.services.s3.internal.plugins.S3OverrideAuthSchemePropertiesPlugin; import software.amazon.awssdk.services.s3.utils.S3TestUtils; /** @@ -99,7 +99,8 @@ public void standardSyncApacheHttpClient_httpCauses_signedPayload() { public void standardSyncApacheHttpClient_manuallyEnabled_signedPayload() { S3Client syncClient = s3ClientBuilder() .overrideConfiguration(o -> o.addExecutionInterceptor(capturingInterceptor) - .addExecutionInterceptor(new PayloadSigningInterceptor())) + .addExecutionInterceptor(new CreateRequestBodyIfNeededInterceptor())) + .addPlugin(S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin()) .build(); assertThat(syncClient.putObject(b -> b.bucket(BUCKET).key(KEY), RequestBody.fromBytes("helloworld".getBytes()))).isNotNull(); @@ -132,12 +133,11 @@ public List capturedRequests() { } } - private static class PayloadSigningInterceptor implements ExecutionInterceptor { + private static class CreateRequestBodyIfNeededInterceptor implements ExecutionInterceptor { @Override public Optional modifyHttpContent(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) { - executionAttributes.putAttribute(S3SignerExecutionAttribute.ENABLE_PAYLOAD_SIGNING, true); if (!context.requestBody().isPresent() && context.httpRequest().method().equals(SdkHttpMethod.POST)) { return Optional.of(RequestBody.fromBytes(new byte[0])); } diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.java index bd9558e1f87b..23dc6ad7ce51 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.java @@ -17,6 +17,9 @@ import java.net.URI; import java.nio.file.Path; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; import java.util.function.Consumer; import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; @@ -114,12 +117,32 @@ default S3CrtAsyncClientBuilder credentialsProvider(IdentityProvider + * If not provided, the CRT attempts to limit native memory usage in an optimal way, based on a number of parameters + * such as target throughput. Therefore, only configure the memory limit explicitly when needed. + *

    + * Supported range: + *

      + *
    • Min: 1 GB
    • + *
    • Max: The lowest value of the supplied value and the SIZE_MAX of the system
    • + *
    + * + * @param maxNativeMemoryLimitInBytes + the native memory limit in bytes + * @return this builder for method chaining. + * @see #targetThroughputInGbps(Double) + */ + S3CrtAsyncClientBuilder maxNativeMemoryLimitInBytes(Long maxNativeMemoryLimitInBytes +); + /** * The target throughput for transfer requests. Higher value means more connections will be established with S3. * *

    * Whether the transfer manager can achieve the configured target throughput depends on various factors such as the network - * bandwidth of the environment and whether {@link #maxConcurrency} is configured. + * bandwidth of the environment, whether {@link #maxConcurrency} is configured and amount of available memory. * *

    * By default, it is 10 gigabits per second. If users want to transfer as fast as possible, it's recommended to set it to the @@ -128,10 +151,15 @@ default S3CrtAsyncClientBuilder credentialsProvider(IdentityProviderAmazon EC2 instance type page. * If you are running into out of file descriptors error, consider using {@link #maxConcurrency(Integer)} to limit the * number of connections. + *

    + * Note: This setting affects the native memory usage used by CRT; a higher throughput value will result in a larger + * memory usage. Typically, a range of throughput values maps to a discrete memory limit value in CRT, with a maximum upper + * limit. * * @param targetThroughputInGbps the target throughput in Gbps * @return this builder for method chaining. * @see #maxConcurrency(Integer) + * @see #maxNativeMemoryLimitInBytes(Long) */ S3CrtAsyncClientBuilder targetThroughputInGbps(Double targetThroughputInGbps); @@ -281,6 +309,30 @@ default S3CrtAsyncClientBuilder retryConfiguration(Consumer + * The configured {@link Executor} will be invoked by the async HTTP client's I/O threads (e.g., EventLoops), which must be + * reserved for non-blocking behavior. Blocking an I/O thread can cause severe performance degradation, including across + * multiple clients, as clients are configured, by default, to share a single I/O thread pool (e.g., EventLoopGroup). + *

    + * You should typically only want to customize the future-completion {@link Executor} for a few possible reasons: + *

      + *
    1. You want more fine-grained control over the {@link ThreadPoolExecutor} used, such as configuring the pool size + * or sharing a single pool between multiple clients. + *
    2. You want to add instrumentation (i.e., metrics) around how the {@link Executor} is used. + *
    3. You know, for certain, that all of your {@link CompletableFuture} usage is strictly non-blocking, and you wish to + * remove the minor overhead incurred by using a separate thread. In this case, you can use + * {@code Runnable::run} to execute the future-completion directly from within the I/O thread. + *
    + * + * @param futureCompletionExecutor the executor + * @return an instance of this builder. + */ + S3CrtAsyncClientBuilder futureCompletionExecutor(Executor futureCompletionExecutor); + + @Override S3AsyncClient build(); } \ No newline at end of file diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClient.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClient.java index f8efd780b351..0269acaee221 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClient.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClient.java @@ -52,23 +52,17 @@ protected CompletableFuture invokeOperat AwsRequestOverrideConfiguration overrideConfiguration = updateUserAgentInConfig(request); T userAgentUpdatedRequest = (T) request.toBuilder().overrideConfiguration(overrideConfiguration).build(); - if (!bucket.isPresent()) { return operation.apply(userAgentUpdatedRequest); } String bucketName = bucket.get(); CompletableFuture returnFuture = new CompletableFuture<>(); - CompletableFuture apiOperationFuture = bucketToRegionCache.containsKey(bucketName) ? - operation.apply( - requestWithDecoratedEndpointProvider( - userAgentUpdatedRequest, - () -> bucketToRegionCache.get(bucketName), - serviceClientConfiguration().endpointProvider().get() - ) - ) : - operation.apply(userAgentUpdatedRequest); - + CompletableFuture apiOperationFuture = operation.apply( + requestWithDecoratedEndpointProvider(userAgentUpdatedRequest, + () -> bucketToRegionCache.get(bucketName), + serviceClientConfiguration().endpointProvider().get()) + ); apiOperationFuture.whenComplete(redirectToCrossRegionIfRedirectException(operation, userAgentUpdatedRequest, bucketName, diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClient.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClient.java index 10ac10af5816..56195bd56fa8 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClient.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClient.java @@ -64,13 +64,10 @@ protected ReturnT invokeOperation(T request, Func } String bucketName = bucketRequest.get(); try { - if (bucketToRegionCache.containsKey(bucketName)) { - return operation.apply( - requestWithDecoratedEndpointProvider(userAgentUpdatedRequest, - () -> bucketToRegionCache.get(bucketName), - serviceClientConfiguration().endpointProvider().get())); - } - return operation.apply(userAgentUpdatedRequest); + return operation.apply( + requestWithDecoratedEndpointProvider(userAgentUpdatedRequest, + () -> bucketToRegionCache.get(bucketName), + serviceClientConfiguration().endpointProvider().get())); } catch (S3Exception exception) { if (isS3RedirectException(exception)) { updateCacheFromRedirectException(exception, bucketName); diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/endpointprovider/BucketEndpointProvider.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/endpointprovider/BucketEndpointProvider.java index ce89341753b5..bc8d332cb7ee 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/endpointprovider/BucketEndpointProvider.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/endpointprovider/BucketEndpointProvider.java @@ -43,8 +43,20 @@ public static BucketEndpointProvider create(S3EndpointProvider delegateEndPointP @Override public CompletableFuture resolveEndpoint(S3EndpointParams endpointParams) { Region crossRegion = regionSupplier.get(); - return delegateEndPointProvider.resolveEndpoint( - crossRegion != null ? endpointParams.copy(c -> c.region(crossRegion)) : endpointParams); + S3EndpointParams.Builder endpointParamsBuilder = endpointParams.toBuilder(); + // Check if cross-region resolution has already occurred. + if (crossRegion != null) { + endpointParamsBuilder.region(crossRegion); + } else { + // For global regions, set the region to "us-east-1" to use regional endpoints. + if (Region.AWS_GLOBAL.equals(endpointParams.region())) { + endpointParamsBuilder.region(Region.US_EAST_1); + } + // Disable the global endpoint as S3 can properly redirect regions in the 'x-amz-bucket-region' header + // only for regional endpoints. + endpointParamsBuilder.useGlobalEndpoint(false); + } + return delegateEndPointProvider.resolveEndpoint(endpointParamsBuilder.build()); } } diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/utils/CrossRegionUtils.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/utils/CrossRegionUtils.java index 0a994c9743b9..450302d75968 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/utils/CrossRegionUtils.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crossregion/utils/CrossRegionUtils.java @@ -17,7 +17,6 @@ import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.CompletionException; @@ -25,7 +24,6 @@ import java.util.function.Supplier; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration; -import software.amazon.awssdk.awscore.exception.AwsErrorDetails; import software.amazon.awssdk.core.ApiName; import software.amazon.awssdk.endpoints.EndpointProvider; import software.amazon.awssdk.regions.Region; @@ -41,7 +39,6 @@ public final class CrossRegionUtils { public static final String AMZ_BUCKET_REGION_HEADER = "x-amz-bucket-region"; private static final List REDIRECT_STATUS_CODES = Arrays.asList(REDIRECT_STATUS_CODE, TEMPORARY_REDIRECT_STATUS_CODE); - private static final List REDIRECT_ERROR_CODES = Collections.singletonList("AuthorizationHeaderMalformed"); private static final ApiName API_NAME = ApiName.builder().version("cross-region").name("hll").build(); private static final Consumer USER_AGENT_APPLIER = b -> b.addApiName(API_NAME); @@ -65,12 +62,7 @@ private static boolean isRedirectError(S3Exception exceptionToBeChecked) { if (REDIRECT_STATUS_CODES.stream().anyMatch(status -> status.equals(exceptionToBeChecked.statusCode()))) { return true; } - if (getBucketRegionFromException(exceptionToBeChecked).isPresent()) { - return true; - } - AwsErrorDetails awsErrorDetails = exceptionToBeChecked.awsErrorDetails(); - return awsErrorDetails != null - && REDIRECT_ERROR_CODES.stream().anyMatch(code -> code.equals(awsErrorDetails.errorCode())); + return getBucketRegionFromException(exceptionToBeChecked).isPresent(); } @SuppressWarnings("unchecked") diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClient.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClient.java index 2a8ad361bfb7..14e44ece0299 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClient.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClient.java @@ -16,6 +16,7 @@ package software.amazon.awssdk.services.s3.internal.crt; import static software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute.SERVICE_SIGNING_NAME; +import static software.amazon.awssdk.core.client.config.SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR; import static software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute.AUTH_SCHEMES; import static software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute.SDK_HTTP_EXECUTION_ATTRIBUTES; import static software.amazon.awssdk.services.s3.internal.crt.S3InternalSdkHttpExecutionAttribute.HTTP_CHECKSUM; @@ -30,6 +31,7 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.annotations.SdkTestInternalApi; import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; @@ -56,6 +58,7 @@ import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.DelegatingS3AsyncClient; import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.S3AsyncClientBuilder; import software.amazon.awssdk.services.s3.S3Configuration; import software.amazon.awssdk.services.s3.S3CrtAsyncClientBuilder; import software.amazon.awssdk.services.s3.crt.S3CrtHttpConfiguration; @@ -120,22 +123,30 @@ private static S3AsyncClient initializeS3AsyncClient(DefaultS3CrtClientBuilder b builder.executionInterceptors.forEach(overrideConfigurationBuilder::addExecutionInterceptor); } - return S3AsyncClient.builder() - // Disable checksum for streaming operations, it is handled in CRT. Checksumming for non-streaming - // operations is still handled in HttpChecksumStage - .serviceConfiguration(S3Configuration.builder() - .checksumValidationEnabled(false) - .build()) - .region(builder.region) - .endpointOverride(builder.endpointOverride) - .credentialsProvider(builder.credentialsProvider) - .overrideConfiguration(overrideConfigurationBuilder.build()) - .accelerate(builder.accelerate) - .forcePathStyle(builder.forcePathStyle) - .crossRegionAccessEnabled(builder.crossRegionAccessEnabled) - .putAuthScheme(new CrtS3ExpressNoOpAuthScheme()) - .httpClientBuilder(initializeS3CrtAsyncHttpClient(builder)) - .build(); + S3AsyncClientBuilder s3AsyncClientBuilder = + S3AsyncClient.builder() + // Disable checksum for streaming operations, it is handled in + // CRT. Checksumming for non-streaming + // operations is still handled in HttpChecksumStage + .serviceConfiguration(S3Configuration.builder() + .checksumValidationEnabled(false) + .build()) + .region(builder.region) + .endpointOverride(builder.endpointOverride) + .credentialsProvider(builder.credentialsProvider) + .overrideConfiguration(overrideConfigurationBuilder.build()) + .accelerate(builder.accelerate) + .forcePathStyle(builder.forcePathStyle) + .crossRegionAccessEnabled(builder.crossRegionAccessEnabled) + .putAuthScheme(new CrtS3ExpressNoOpAuthScheme()) + .httpClientBuilder(initializeS3CrtAsyncHttpClient(builder)); + + + if (builder.futureCompletionExecutor != null) { + s3AsyncClientBuilder.asyncConfiguration(b -> b.advancedOption(FUTURE_COMPLETION_EXECUTOR, + builder.futureCompletionExecutor)); + } + return s3AsyncClientBuilder.build(); } private static S3CrtAsyncHttpClient.Builder initializeS3CrtAsyncHttpClient(DefaultS3CrtClientBuilder builder) { @@ -157,7 +168,8 @@ private static S3CrtAsyncHttpClient.Builder initializeS3CrtAsyncHttpClient(Defau .credentialsProvider(builder.credentialsProvider) .readBufferSizeInBytes(builder.readBufferSizeInBytes) .httpConfiguration(builder.httpConfiguration) - .thresholdInBytes(builder.thresholdInBytes); + .thresholdInBytes(builder.thresholdInBytes) + .maxNativeMemoryLimitInBytes(builder.maxNativeMemoryLimitInBytes); if (builder.retryConfiguration != null) { nativeClientBuilder.standardRetryOptions( @@ -175,6 +187,8 @@ public static final class DefaultS3CrtClientBuilder implements S3CrtAsyncClientB private Region region; private Long minimalPartSizeInBytes; private Double targetThroughputInGbps; + private Long maxNativeMemoryLimitInBytes +; private Integer maxConcurrency; private URI endpointOverride; private Boolean checksumValidationEnabled; @@ -186,6 +200,7 @@ public static final class DefaultS3CrtClientBuilder implements S3CrtAsyncClientB private S3CrtRetryConfiguration retryConfiguration; private boolean crossRegionAccessEnabled; private Long thresholdInBytes; + private Executor futureCompletionExecutor; @Override public S3CrtAsyncClientBuilder credentialsProvider( @@ -212,6 +227,12 @@ public S3CrtAsyncClientBuilder targetThroughputInGbps(Double targetThroughputInG return this; } + @Override + public S3CrtAsyncClientBuilder maxNativeMemoryLimitInBytes(Long maxNativeMemoryLimitInBytes) { + this.maxNativeMemoryLimitInBytes = maxNativeMemoryLimitInBytes; + return this; + } + @Override public S3CrtAsyncClientBuilder maxConcurrency(Integer maxConcurrency) { this.maxConcurrency = maxConcurrency; @@ -281,6 +302,12 @@ public S3CrtAsyncClientBuilder thresholdInBytes(Long thresholdInBytes) { return this; } + @Override + public S3CrtAsyncClientBuilder futureCompletionExecutor(Executor futureCompletionExecutor) { + this.futureCompletionExecutor = futureCompletionExecutor; + return this; + } + @Override public S3CrtAsyncClient build() { return new DefaultS3CrtAsyncClient(this); diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClient.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClient.java index 463e8f629cd3..6dbaa550628f 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClient.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClient.java @@ -45,7 +45,6 @@ import software.amazon.awssdk.crt.s3.ResumeToken; import software.amazon.awssdk.crt.s3.S3Client; import software.amazon.awssdk.crt.s3.S3ClientOptions; -import software.amazon.awssdk.crt.s3.S3MetaRequest; import software.amazon.awssdk.crt.s3.S3MetaRequestOptions; import software.amazon.awssdk.http.Header; import software.amazon.awssdk.http.SdkHttpExecutionAttributes; @@ -54,7 +53,6 @@ import software.amazon.awssdk.http.async.SdkAsyncHttpClient; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.utils.AttributeMap; -import software.amazon.awssdk.utils.Logger; import software.amazon.awssdk.utils.NumericUtils; import software.amazon.awssdk.utils.http.SdkHttpUtils; @@ -64,7 +62,6 @@ */ @SdkInternalApi public final class S3CrtAsyncHttpClient implements SdkAsyncHttpClient { - private static final Logger log = Logger.loggerFor(S3CrtAsyncHttpClient.class); private final S3Client crtS3Client; @@ -106,6 +103,7 @@ private S3ClientOptions createS3ClientOption() { .withComputeContentMd5(false) .withEnableS3Express(true) .withMaxConnections(s3NativeClientConfiguration.maxConcurrency()) + .withMemoryLimitInBytes(s3NativeClientConfiguration.maxNativeMemoryLimitInBytes()) .withThroughputTargetGbps(s3NativeClientConfiguration.targetThroughputInGbps()) .withInitialReadWindowSize(initialWindowSize) .withReadBackpressureEnabled(true); @@ -132,10 +130,12 @@ public CompletableFuture execute(AsyncExecuteRequest asyncRequest) { URI uri = asyncRequest.request().getUri(); HttpRequest httpRequest = toCrtRequest(asyncRequest); SdkHttpExecutionAttributes httpExecutionAttributes = asyncRequest.httpExecutionAttributes(); + CompletableFuture s3MetaRequestFuture = new CompletableFuture<>(); S3CrtResponseHandlerAdapter responseHandler = new S3CrtResponseHandlerAdapter(executeFuture, asyncRequest.responseHandler(), - httpExecutionAttributes.getAttribute(CRT_PROGRESS_LISTENER)); + httpExecutionAttributes.getAttribute(CRT_PROGRESS_LISTENER), + s3MetaRequestFuture); S3MetaRequestOptions.MetaRequestType requestType = requestType(asyncRequest); @@ -159,16 +159,19 @@ public CompletableFuture execute(AsyncExecuteRequest asyncRequest) { .withRequestFilePath(requestFilePath) .withSigningConfig(signingConfig); - S3MetaRequest s3MetaRequest = crtS3Client.makeMetaRequest(requestOptions); - S3MetaRequestPauseObservable observable = - httpExecutionAttributes.getAttribute(METAREQUEST_PAUSE_OBSERVABLE); + try { + S3MetaRequestWrapper requestWrapper = new S3MetaRequestWrapper(crtS3Client.makeMetaRequest(requestOptions)); + s3MetaRequestFuture.complete(requestWrapper); - responseHandler.metaRequest(s3MetaRequest); + S3MetaRequestPauseObservable observable = + httpExecutionAttributes.getAttribute(METAREQUEST_PAUSE_OBSERVABLE); - if (observable != null) { - observable.subscribe(s3MetaRequest); + if (observable != null) { + observable.subscribe(requestWrapper); + } + } finally { + signingConfig.close(); } - closeResourceCallback(executeFuture, s3MetaRequest, responseHandler, signingConfig); return executeFuture; } @@ -214,23 +217,6 @@ private static S3MetaRequestOptions.MetaRequestType requestType(AsyncExecuteRequ return S3MetaRequestOptions.MetaRequestType.DEFAULT; } - private static void closeResourceCallback(CompletableFuture executeFuture, - S3MetaRequest s3MetaRequest, - S3CrtResponseHandlerAdapter responseHandler, - AwsSigningConfig signingConfig) { - executeFuture.whenComplete((r, t) -> { - if (executeFuture.isCancelled()) { - log.debug(() -> "The request is cancelled, cancelling meta request"); - responseHandler.cancelRequest(); - s3MetaRequest.cancel(); - signingConfig.close(); - } else { - s3MetaRequest.close(); - signingConfig.close(); - } - }); - } - private static HttpRequest toCrtRequest(AsyncExecuteRequest asyncRequest) { SdkHttpRequest sdkRequest = asyncRequest.request(); diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapter.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapter.java index de04329326a5..c4fa2519527b 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapter.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapter.java @@ -25,10 +25,8 @@ import software.amazon.awssdk.crt.CRT; import software.amazon.awssdk.crt.http.HttpHeader; import software.amazon.awssdk.crt.s3.S3FinishedResponseContext; -import software.amazon.awssdk.crt.s3.S3MetaRequest; import software.amazon.awssdk.crt.s3.S3MetaRequestProgress; import software.amazon.awssdk.crt.s3.S3MetaRequestResponseHandler; -import software.amazon.awssdk.http.SdkCancellationException; import software.amazon.awssdk.http.SdkHttpResponse; import software.amazon.awssdk.http.async.SdkAsyncHttpResponseHandler; import software.amazon.awssdk.utils.Logger; @@ -46,7 +44,7 @@ public final class S3CrtResponseHandlerAdapter implements S3MetaRequestResponseH private final SimplePublisher responsePublisher = new SimplePublisher<>(); private final SdkHttpResponse.Builder initialHeadersResponse = SdkHttpResponse.builder(); - private volatile S3MetaRequest metaRequest; + private final CompletableFuture metaRequestFuture; private final PublisherListener progressListener; @@ -54,12 +52,35 @@ public final class S3CrtResponseHandlerAdapter implements S3MetaRequestResponseH public S3CrtResponseHandlerAdapter(CompletableFuture executeFuture, SdkAsyncHttpResponseHandler responseHandler, - PublisherListener progressListener) { + PublisherListener progressListener, + CompletableFuture metaRequestFuture) { this.resultFuture = executeFuture; + this.metaRequestFuture = metaRequestFuture; + + resultFuture.whenComplete((r, t) -> { + S3MetaRequestWrapper s3MetaRequest = s3MetaRequest(); + if (s3MetaRequest == null) { + return; + } + + if (t != null) { + s3MetaRequest.cancel(); + } + s3MetaRequest.close(); + }); + this.responseHandler = responseHandler; this.progressListener = progressListener == null ? new NoOpPublisherListener() : progressListener; } + private S3MetaRequestWrapper s3MetaRequest() { + if (!metaRequestFuture.isDone()) { + return null; + } + + return metaRequestFuture.join(); + } + @Override public void onResponseHeaders(int statusCode, HttpHeader[] headers) { // Note, we cannot call responseHandler.onHeaders() here because the response status code and headers may not represent @@ -87,6 +108,13 @@ public int onResponseBody(ByteBuffer bodyBytesIn, long objectRangeStart, long ob return; } + S3MetaRequestWrapper metaRequest = s3MetaRequest(); + if (metaRequest == null) { + // should not happen + failResponseHandlerAndFuture(SdkClientException.create("Unexpected exception occurred: s3metaRequest is not " + + "initialized yet")); + return; + } metaRequest.incrementReadWindow(bytesReceived); }); @@ -115,22 +143,10 @@ private void onSuccessfulResponseComplete() { return; } this.progressListener.subscriberOnComplete(); - completeFutureAndCloseRequest(); + resultFuture.complete(null); }); } - private void completeFutureAndCloseRequest() { - resultFuture.complete(null); - runAndLogError(log.logger(), "Exception thrown in S3MetaRequest#close, ignoring", - () -> metaRequest.close()); - } - - public void cancelRequest() { - SdkCancellationException sdkClientException = - new SdkCancellationException("request is cancelled"); - failResponseHandlerAndFuture(sdkClientException); - } - private void handleError(S3FinishedResponseContext context) { int crtCode = context.getErrorCode(); HttpHeader[] headers = context.getErrorHeaders(); @@ -168,27 +184,21 @@ private void onErrorResponseComplete(byte[] errorPayload) { failResponseHandlerAndFuture(throwable); return null; } - completeFutureAndCloseRequest(); + resultFuture.complete(null); return null; }); } private void failResponseHandlerAndFuture(Throwable exception) { - resultFuture.completeExceptionally(exception); runAndLogError(log.logger(), "Exception thrown in SdkAsyncHttpResponseHandler#onError, ignoring", () -> responseHandler.onError(exception)); - runAndLogError(log.logger(), "Exception thrown in S3MetaRequest#close, ignoring", - () -> metaRequest.close()); + resultFuture.completeExceptionally(exception); } private static boolean isErrorResponse(int responseStatus) { return responseStatus != 0; } - public void metaRequest(S3MetaRequest s3MetaRequest) { - metaRequest = s3MetaRequest; - } - @Override public void onProgress(S3MetaRequestProgress progress) { this.progressListener.subscriberOnNext(progress); diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestPauseObservable.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestPauseObservable.java index ce7b78fdd538..5ddb41219d39 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestPauseObservable.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestPauseObservable.java @@ -18,7 +18,6 @@ import java.util.function.Function; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.crt.s3.ResumeToken; -import software.amazon.awssdk.crt.s3.S3MetaRequest; /** * An observable that notifies the observer {@link S3CrtAsyncHttpClient} to pause the request. @@ -26,17 +25,17 @@ @SdkInternalApi public class S3MetaRequestPauseObservable { - private final Function pause; - private volatile S3MetaRequest request; + private final Function pause; + private volatile S3MetaRequestWrapper request; public S3MetaRequestPauseObservable() { - this.pause = S3MetaRequest::pause; + this.pause = S3MetaRequestWrapper::pause; } /** - * Subscribe {@link S3MetaRequest} to be potentially paused later. + * Subscribe {@link S3MetaRequestWrapper} to be potentially paused later. */ - public void subscribe(S3MetaRequest request) { + public void subscribe(S3MetaRequestWrapper request) { this.request = request; } diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestWrapper.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestWrapper.java new file mode 100644 index 000000000000..72074e1b47a3 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestWrapper.java @@ -0,0 +1,69 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.crt; + +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.crt.s3.ResumeToken; +import software.amazon.awssdk.crt.s3.S3MetaRequest; + +/** + * A wrapper class that manages the lifecycle of the underlying {@link S3MetaRequest}. This class is needed to ensure we don't + * invoke methods on {@link S3MetaRequest} after it's closed, otherwise CRT will crash. + */ +@SdkInternalApi +public class S3MetaRequestWrapper { + private final S3MetaRequest delegate; + private volatile boolean isClosed; + private final Object lock = new Object(); + + public S3MetaRequestWrapper(S3MetaRequest delegate) { + this.delegate = delegate; + } + + public void close() { + synchronized (lock) { + if (!isClosed) { + isClosed = true; + delegate.close(); + } + } + } + + public void incrementReadWindow(long windowSize) { + synchronized (lock) { + if (!isClosed) { + delegate.incrementReadWindow(windowSize); + } + } + } + + public ResumeToken pause() { + synchronized (lock) { + if (!isClosed) { + return delegate.pause(); + } + } + return null; + } + + public void cancel() { + synchronized (lock) { + if (!isClosed) { + delegate.cancel(); + } + } + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3NativeClientConfiguration.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3NativeClientConfiguration.java index 96c69deb88d5..fcd5b9ae5db7 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3NativeClientConfiguration.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3NativeClientConfiguration.java @@ -59,13 +59,12 @@ public class S3NativeClientConfiguration implements SdkAutoCloseable { private final boolean checksumValidationEnabled; private final Long readBufferSizeInBytes; private final TlsContext tlsContext; - private final TlsContextOptions clientTlsContextOptions; private final HttpProxyOptions proxyOptions; private final Duration connectionTimeout; private final HttpMonitoringOptions httpMonitoringOptions; - private final Boolean useEnvironmentVariableProxyOptionsValues; + private final long maxNativeMemoryLimitInBytes; public S3NativeClientConfiguration(Builder builder) { this.signingRegion = builder.signingRegion == null ? DefaultAwsRegionProviderChain.builder().build().getRegion().id() : @@ -98,6 +97,7 @@ public S3NativeClientConfiguration(Builder builder) { // Using 0 so that CRT will calculate it based on targetThroughputGbps this.maxConcurrency = builder.maxConcurrency == null ? 0 : builder.maxConcurrency; + this.maxNativeMemoryLimitInBytes = builder.maxNativeMemoryLimitInBytes == null ? 0 : builder.maxNativeMemoryLimitInBytes; this.endpointOverride = builder.endpointOverride; @@ -177,6 +177,10 @@ public double targetThroughputInGbps() { return targetThroughputInGbps; } + public long maxNativeMemoryLimitInBytes() { + return maxNativeMemoryLimitInBytes; + } + public int maxConcurrency() { return maxConcurrency; } @@ -218,6 +222,7 @@ public static final class Builder { private S3CrtHttpConfiguration httpConfiguration; private StandardRetryOptions standardRetryOptions; private Long thresholdInBytes; + private Long maxNativeMemoryLimitInBytes; private Builder() { } @@ -247,6 +252,11 @@ public Builder maxConcurrency(Integer maxConcurrency) { return this; } + public Builder maxNativeMemoryLimitInBytes(Long maxNativeMemoryLimitInBytes) { + this.maxNativeMemoryLimitInBytes = maxNativeMemoryLimitInBytes; + return this; + } + public Builder endpointOverride(URI endpointOverride) { this.endpointOverride = endpointOverride; return this; diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/ObjectMetadataInterceptor.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/ObjectMetadataInterceptor.java new file mode 100644 index 000000000000..b5043a990374 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/ObjectMetadataInterceptor.java @@ -0,0 +1,74 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.handlers; + +import java.util.Map; +import java.util.stream.Collectors; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.core.SdkRequest; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; +import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute; +import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.utils.StringUtils; + +/** + * Interceptor that trims object metadata keys of any leading or trailing whitespace for {@code PutObject} and {@code + * CreateMultipartUpload}. This behavior is intended to provide the same functionality as in 1.x. + */ +@SdkInternalApi +public final class ObjectMetadataInterceptor implements ExecutionInterceptor { + @Override + public SdkRequest modifyRequest(Context.ModifyRequest context, ExecutionAttributes executionAttributes) { + SdkRequest request = context.request(); + + switch (executionAttributes.getAttribute(SdkExecutionAttribute.OPERATION_NAME)) { + case "PutObject": + return trimMetadataNames((PutObjectRequest) request); + case "CreateMultipartUpload": + return trimMetadataNames((CreateMultipartUploadRequest) request); + default: + return request; + } + } + + private PutObjectRequest trimMetadataNames(PutObjectRequest putObjectRequest) { + if (!putObjectRequest.hasMetadata()) { + return putObjectRequest; + } + + return putObjectRequest.toBuilder() + .metadata(trimKeys(putObjectRequest.metadata())) + .build(); + } + + private CreateMultipartUploadRequest trimMetadataNames(CreateMultipartUploadRequest createMultipartUploadRequest) { + if (!createMultipartUploadRequest.hasMetadata()) { + return createMultipartUploadRequest; + } + + return createMultipartUploadRequest.toBuilder() + .metadata(trimKeys(createMultipartUploadRequest.metadata())) + .build(); + } + + private Map trimKeys(Map map) { + return map.entrySet().stream() + .collect(Collectors.toMap(e -> StringUtils.trim(e.getKey()), Map.Entry::getValue)); + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/S3ExpressChecksumInterceptor.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/S3ExpressChecksumInterceptor.java index 2cd3401f7487..c303ba248fe5 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/S3ExpressChecksumInterceptor.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/S3ExpressChecksumInterceptor.java @@ -21,7 +21,6 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.stream.Stream; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.checksums.DefaultChecksumAlgorithm; import software.amazon.awssdk.checksums.spi.ChecksumAlgorithm; @@ -98,8 +97,10 @@ public SdkRequest modifyRequest(Context.ModifyRequest context, ExecutionAttribut } private boolean requestContainsUserCalculatedChecksum(SdkRequest request) { - return Stream.of("ChecksumCRC32", "ChecksumCRC32C", "ChecksumSHA1", "ChecksumSHA256") - .anyMatch(s -> request.getValueForField(s, String.class).isPresent()); + return request.getValueForField("ChecksumCRC32", String.class).isPresent() + || request.getValueForField("ChecksumCRC32C", String.class).isPresent() + || request.getValueForField("ChecksumSHA1", String.class).isPresent() + || request.getValueForField("ChecksumSHA256", String.class).isPresent(); } private boolean shouldAlwaysAddChecksum(ChecksumSpecs checksumSpecs, SdkRequest request) { diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/CancelledSubscriber.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/CancelledSubscriber.java new file mode 100644 index 000000000000..a9a010d48983 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/CancelledSubscriber.java @@ -0,0 +1,48 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.multipart; + +import org.reactivestreams.Subscriber; +import org.reactivestreams.Subscription; +import software.amazon.awssdk.annotations.SdkInternalApi; + +@SdkInternalApi +public final class CancelledSubscriber implements Subscriber { + + @Override + public void onSubscribe(Subscription subscription) { + if (subscription == null) { + throw new NullPointerException("Null subscription"); + } else { + subscription.cancel(); + } + } + + @Override + public void onNext(T t) { + } + + @Override + public void onError(Throwable error) { + if (error == null) { + throw new NullPointerException("Null error published"); + } + } + + @Override + public void onComplete() { + } +} \ No newline at end of file diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/CopyObjectHelper.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/CopyObjectHelper.java index afb1ca0e4e8c..fbfc2850e7c1 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/CopyObjectHelper.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/CopyObjectHelper.java @@ -146,8 +146,7 @@ private void doCopyInParts(CopyObjectRequest copyObjectRequest, optimalPartSize); CompletableFutureUtils.allOfExceptionForwarded(futures.toArray(new CompletableFuture[0])) .thenCompose(ignore -> completeMultipartUpload(copyObjectRequest, uploadId, completedParts)) - .handle(genericMultipartHelper.handleExceptionOrResponse(copyObjectRequest, returnFuture, - uploadId)) + .handle(genericMultipartHelper.handleExceptionOrResponse(copyObjectRequest, returnFuture, uploadId)) .exceptionally(throwable -> { genericMultipartHelper.handleException(returnFuture, () -> "Unexpected exception occurred", throwable); diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/GenericMultipartHelper.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/GenericMultipartHelper.java index 1d251ad69678..bc4d1eda7373 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/GenericMultipartHelper.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/GenericMultipartHelper.java @@ -15,22 +15,24 @@ package software.amazon.awssdk.services.s3.internal.multipart; +import static software.amazon.awssdk.services.s3.internal.multipart.SdkPojoConversionUtils.toCompleteMultipartUploadRequest; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.JAVA_PROGRESS_LISTENER; + import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionException; -import java.util.concurrent.atomic.AtomicReferenceArray; import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Supplier; -import java.util.stream.IntStream; import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.core.async.listener.PublisherListener; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.core.exception.SdkException; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.model.AbortMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse; -import software.amazon.awssdk.services.s3.model.CompletedMultipartUpload; import software.amazon.awssdk.services.s3.model.CompletedPart; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.S3Request; import software.amazon.awssdk.services.s3.model.S3Response; import software.amazon.awssdk.utils.Logger; @@ -81,34 +83,20 @@ public int determinePartCount(long contentLength, long partSize) { } public CompletableFuture completeMultipartUpload( - RequestT request, String uploadId, CompletedPart[] parts) { + PutObjectRequest request, String uploadId, CompletedPart[] parts) { log.debug(() -> String.format("Sending completeMultipartUploadRequest, uploadId: %s", uploadId)); - CompleteMultipartUploadRequest completeMultipartUploadRequest = - CompleteMultipartUploadRequest.builder() - .bucket(request.getValueForField("Bucket", String.class).get()) - .key(request.getValueForField("Key", String.class).get()) - .uploadId(uploadId) - .multipartUpload(CompletedMultipartUpload.builder() - .parts(parts) - .build()) - .build(); - return s3AsyncClient.completeMultipartUpload(completeMultipartUploadRequest); - } - public CompletableFuture completeMultipartUpload( - RequestT request, String uploadId, AtomicReferenceArray completedParts) { - CompletedPart[] parts = - IntStream.range(0, completedParts.length()) - .mapToObj(completedParts::get) - .toArray(CompletedPart[]::new); - return completeMultipartUpload(request, uploadId, parts); + CompleteMultipartUploadRequest completeMultipartUploadRequest = toCompleteMultipartUploadRequest(request, uploadId, + parts); + return s3AsyncClient.completeMultipartUpload(completeMultipartUploadRequest); } - public BiFunction handleExceptionOrResponse( - RequestT request, - CompletableFuture returnFuture, - String uploadId) { + public BiFunction handleExceptionOrResponse(RequestT request, + CompletableFuture returnFuture, String uploadId) { + PublisherListener progressListener = request.overrideConfiguration() + .map(c -> c.executionAttributes().getAttribute(JAVA_PROGRESS_LISTENER)) + .orElseGet(PublisherListener::noOp); return (completeMultipartUploadResponse, throwable) -> { if (throwable != null) { @@ -118,6 +106,7 @@ public BiFunction handleExcept } else { returnFuture.complete(responseConverter.apply( completeMultipartUploadResponse)); + progressListener.subscriberOnComplete(); } return null; diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/KnownContentLengthAsyncRequestBodySubscriber.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/KnownContentLengthAsyncRequestBodySubscriber.java new file mode 100644 index 000000000000..4fe64a7bca05 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/KnownContentLengthAsyncRequestBodySubscriber.java @@ -0,0 +1,221 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.multipart; + +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.JAVA_PROGRESS_LISTENER; + +import java.util.Collection; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Consumer; +import org.reactivestreams.Subscriber; +import org.reactivestreams.Subscription; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.core.async.listener.PublisherListener; +import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse; +import software.amazon.awssdk.services.s3.model.CompletedPart; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.services.s3.model.PutObjectResponse; +import software.amazon.awssdk.services.s3.model.UploadPartRequest; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; +import software.amazon.awssdk.utils.Logger; +import software.amazon.awssdk.utils.NumericUtils; +import software.amazon.awssdk.utils.Pair; + +@SdkInternalApi +public class KnownContentLengthAsyncRequestBodySubscriber implements Subscriber { + + private static final Logger log = Logger.loggerFor(KnownContentLengthAsyncRequestBodySubscriber.class); + + /** + * The number of AsyncRequestBody has been received but yet to be processed + */ + private final AtomicInteger asyncRequestBodyInFlight = new AtomicInteger(0); + private final AtomicBoolean failureActionInitiated = new AtomicBoolean(false); + private final AtomicInteger partNumber = new AtomicInteger(1); + private final MultipartUploadHelper multipartUploadHelper; + private final long partSize; + private final int partCount; + private final int numExistingParts; + private final String uploadId; + private final Collection> futures = new ConcurrentLinkedQueue<>(); + private final PutObjectRequest putObjectRequest; + private final CompletableFuture returnFuture; + private final Map completedParts; + private final Map existingParts; + private final PublisherListener progressListener; + private Subscription subscription; + private volatile boolean isDone; + private volatile boolean isPaused; + private volatile CompletableFuture completeMpuFuture; + + KnownContentLengthAsyncRequestBodySubscriber(MpuRequestContext mpuRequestContext, + CompletableFuture returnFuture, + MultipartUploadHelper multipartUploadHelper) { + this.partSize = mpuRequestContext.partSize(); + this.partCount = determinePartCount(mpuRequestContext.contentLength(), partSize); + this.putObjectRequest = mpuRequestContext.request().left(); + this.returnFuture = returnFuture; + this.uploadId = mpuRequestContext.uploadId(); + this.existingParts = mpuRequestContext.existingParts(); + this.numExistingParts = NumericUtils.saturatedCast(mpuRequestContext.numPartsCompleted()); + this.completedParts = new ConcurrentHashMap<>(); + this.multipartUploadHelper = multipartUploadHelper; + this.progressListener = putObjectRequest.overrideConfiguration().map(c -> c.executionAttributes() + .getAttribute(JAVA_PROGRESS_LISTENER)) + .orElseGet(PublisherListener::noOp); + } + + private int determinePartCount(long contentLength, long partSize) { + return (int) Math.ceil(contentLength / (double) partSize); + } + + public S3ResumeToken pause() { + isPaused = true; + + if (completeMpuFuture != null && completeMpuFuture.isDone()) { + return null; + } + + if (completeMpuFuture != null && !completeMpuFuture.isDone()) { + completeMpuFuture.cancel(true); + } + + long numPartsCompleted = 0; + for (CompletableFuture cf : futures) { + if (!cf.isDone()) { + cf.cancel(true); + } else { + numPartsCompleted++; + } + } + + return S3ResumeToken.builder() + .uploadId(uploadId) + .partSize(partSize) + .totalNumParts((long) partCount) + .numPartsCompleted(numPartsCompleted + numExistingParts) + .build(); + } + + @Override + public void onSubscribe(Subscription s) { + if (this.subscription != null) { + log.warn(() -> "The subscriber has already been subscribed. Cancelling the incoming subscription"); + subscription.cancel(); + return; + } + this.subscription = s; + s.request(1); + returnFuture.whenComplete((r, t) -> { + if (t != null) { + s.cancel(); + if (shouldFailRequest()) { + multipartUploadHelper.failRequestsElegantly(futures, t, uploadId, returnFuture, putObjectRequest); + } + } + }); + } + + @Override + public void onNext(AsyncRequestBody asyncRequestBody) { + if (isPaused) { + return; + } + + if (existingParts.containsKey(partNumber.get())) { + partNumber.getAndIncrement(); + asyncRequestBody.subscribe(new CancelledSubscriber<>()); + subscription.request(1); + asyncRequestBody.contentLength().ifPresent(progressListener::subscriberOnNext); + return; + } + + asyncRequestBodyInFlight.incrementAndGet(); + UploadPartRequest uploadRequest = SdkPojoConversionUtils.toUploadPartRequest(putObjectRequest, + partNumber.getAndIncrement(), + uploadId); + + Consumer completedPartConsumer = + completedPart -> completedParts.put(completedPart.partNumber(), completedPart); + multipartUploadHelper.sendIndividualUploadPartRequest(uploadId, completedPartConsumer, futures, + Pair.of(uploadRequest, asyncRequestBody), progressListener) + .whenComplete((r, t) -> { + if (t != null) { + if (shouldFailRequest()) { + multipartUploadHelper.failRequestsElegantly(futures, t, uploadId, returnFuture, + putObjectRequest); + } + } else { + completeMultipartUploadIfFinished(asyncRequestBodyInFlight.decrementAndGet()); + } + }); + subscription.request(1); + } + + private boolean shouldFailRequest() { + return failureActionInitiated.compareAndSet(false, true) && !isPaused; + } + + @Override + public void onError(Throwable t) { + log.debug(() -> "Received onError ", t); + if (failureActionInitiated.compareAndSet(false, true)) { + multipartUploadHelper.failRequestsElegantly(futures, t, uploadId, returnFuture, putObjectRequest); + } + } + + @Override + public void onComplete() { + log.debug(() -> "Received onComplete()"); + isDone = true; + if (!isPaused) { + completeMultipartUploadIfFinished(asyncRequestBodyInFlight.get()); + } + } + + private void completeMultipartUploadIfFinished(int requestsInFlight) { + if (isDone && requestsInFlight == 0) { + CompletedPart[] parts; + if (existingParts.isEmpty()) { + parts = completedParts.values().toArray(new CompletedPart[0]); + } else if (!completedParts.isEmpty()) { + // List of CompletedParts needs to be in ascending order + parts = mergeCompletedParts(); + } else { + parts = existingParts.values().toArray(new CompletedPart[0]); + } + completeMpuFuture = multipartUploadHelper.completeMultipartUpload(returnFuture, uploadId, parts, putObjectRequest); + } + } + + private CompletedPart[] mergeCompletedParts() { + CompletedPart[] merged = new CompletedPart[partCount]; + int currPart = 1; + while (currPart < partCount + 1) { + CompletedPart completedPart = existingParts.containsKey(currPart) ? existingParts.get(currPart) : + completedParts.get(currPart); + merged[currPart - 1] = completedPart; + currPart++; + } + return merged; + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MpuRequestContext.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MpuRequestContext.java new file mode 100644 index 000000000000..6c4b978e4183 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MpuRequestContext.java @@ -0,0 +1,145 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.multipart; + +import java.util.Collections; +import java.util.Map; +import java.util.Objects; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.services.s3.model.CompletedPart; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.utils.Pair; + +@SdkInternalApi +public class MpuRequestContext { + + private final Pair request; + private final Long contentLength; + private final Long partSize; + private final Long numPartsCompleted; + private final String uploadId; + private final Map existingParts; + + protected MpuRequestContext(Builder builder) { + this.request = builder.request; + this.contentLength = builder.contentLength; + this.partSize = builder.partSize; + this.uploadId = builder.uploadId; + this.existingParts = builder.existingParts; + this.numPartsCompleted = builder.numPartsCompleted; + } + + public static Builder builder() { + return new Builder(); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MpuRequestContext that = (MpuRequestContext) o; + + return Objects.equals(request, that.request) && Objects.equals(contentLength, that.contentLength) + && Objects.equals(partSize, that.partSize) && Objects.equals(numPartsCompleted, that.numPartsCompleted) + && Objects.equals(uploadId, that.uploadId) && Objects.equals(existingParts, that.existingParts); + } + + @Override + public int hashCode() { + int result = request != null ? request.hashCode() : 0; + result = 31 * result + (uploadId != null ? uploadId.hashCode() : 0); + result = 31 * result + (existingParts != null ? existingParts.hashCode() : 0); + result = 31 * result + (contentLength != null ? contentLength.hashCode() : 0); + result = 31 * result + (partSize != null ? partSize.hashCode() : 0); + result = 31 * result + (numPartsCompleted != null ? numPartsCompleted.hashCode() : 0); + return result; + } + + public Pair request() { + return request; + } + + public Long contentLength() { + return contentLength; + } + + public Long partSize() { + return partSize; + } + + public Long numPartsCompleted() { + return numPartsCompleted; + } + + public String uploadId() { + return uploadId; + } + + public Map existingParts() { + return existingParts != null ? Collections.unmodifiableMap(existingParts) : null; + } + + public static final class Builder { + private Pair request; + private Long contentLength; + private Long partSize; + private Long numPartsCompleted; + private String uploadId; + private Map existingParts; + + private Builder() { + } + + public Builder request(Pair request) { + this.request = request; + return this; + } + + public Builder contentLength(Long contentLength) { + this.contentLength = contentLength; + return this; + } + + public Builder partSize(Long partSize) { + this.partSize = partSize; + return this; + } + + public Builder numPartsCompleted(Long numPartsCompleted) { + this.numPartsCompleted = numPartsCompleted; + return this; + } + + public Builder uploadId(String uploadId) { + this.uploadId = uploadId; + return this; + } + + public Builder existingParts(Map existingParts) { + this.existingParts = existingParts; + return this; + } + + public MpuRequestContext build() { + return new MpuRequestContext(this); + } + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartS3AsyncClient.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartS3AsyncClient.java index 8b53099b8683..3de5c114193b 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartS3AsyncClient.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartS3AsyncClient.java @@ -18,13 +18,19 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Function; +import java.util.stream.Stream; import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; import software.amazon.awssdk.core.ApiName; +import software.amazon.awssdk.core.RequestOverrideConfiguration; import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.async.AsyncResponseTransformer; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.services.s3.DelegatingS3AsyncClient; import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.S3Configuration; import software.amazon.awssdk.services.s3.internal.UserAgentUtils; +import software.amazon.awssdk.services.s3.model.ChecksumAlgorithm; import software.amazon.awssdk.services.s3.model.CopyObjectRequest; import software.amazon.awssdk.services.s3.model.CopyObjectResponse; import software.amazon.awssdk.services.s3.model.GetObjectRequest; @@ -36,8 +42,9 @@ import software.amazon.awssdk.utils.Validate; /** - * An {@link S3AsyncClient} that automatically converts put, copy requests to their respective multipart call. Note: get is not - * yet supported. + * An {@link S3AsyncClient} that automatically converts PUT, COPY requests to their respective multipart call. CRC32 will be + * enabled for the PUT and COPY requests, unless the the checksum is specified or checksum validation is disabled. + * Note: GET is not yet supported. * * @see MultipartConfiguration */ @@ -62,9 +69,40 @@ private MultipartS3AsyncClient(S3AsyncClient delegate, MultipartConfiguration mu @Override public CompletableFuture putObject(PutObjectRequest putObjectRequest, AsyncRequestBody requestBody) { + if (shouldEnableCrc32(putObjectRequest)) { + putObjectRequest = putObjectRequest.toBuilder().checksumAlgorithm(ChecksumAlgorithm.CRC32).build(); + } + return mpuHelper.uploadObject(putObjectRequest, requestBody); } + private boolean shouldEnableCrc32(PutObjectRequest putObjectRequest) { + return !checksumSetOnRequest(putObjectRequest) && checksumEnabledPerConfig(putObjectRequest); + } + + private boolean checksumSetOnRequest(PutObjectRequest putObjectRequest) { + if (putObjectRequest.checksumAlgorithm() != null) { + return true; + } + + return Stream.of("ChecksumCRC32", "ChecksumCRC32C", "ChecksumSHA1", "ChecksumSHA256") + .anyMatch(s -> putObjectRequest.getValueForField(s, String.class).isPresent()); + } + + private boolean checksumEnabledPerConfig(PutObjectRequest putObjectRequest) { + ExecutionAttributes executionAttributes = + putObjectRequest.overrideConfiguration().map(RequestOverrideConfiguration::executionAttributes).orElse(null); + + if (executionAttributes == null) { + return true; + } + + S3Configuration serviceConfiguration = + (S3Configuration) executionAttributes.getAttribute(AwsSignerExecutionAttribute.SERVICE_CONFIG); + + return serviceConfiguration == null || serviceConfiguration.checksumValidationEnabled(); + } + @Override public CompletableFuture copyObject(CopyObjectRequest copyObjectRequest) { return copyObjectHelper.copyObject(copyObjectRequest); @@ -73,6 +111,8 @@ public CompletableFuture copyObject(CopyObjectRequest copyOb @Override public CompletableFuture getObject( GetObjectRequest getObjectRequest, AsyncResponseTransformer asyncResponseTransformer) { + // TODO uncomment once implemented + // getObjectRequest = getObjectRequest.toBuilder().checksumMode(ChecksumMode.ENABLED).build(); throw new UnsupportedOperationException( "Multipart download is not yet supported. Instead use the CRT based S3 client for multipart download."); } diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartUploadHelper.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartUploadHelper.java index 9754d284f5b9..71cc364915cc 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartUploadHelper.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartUploadHelper.java @@ -19,11 +19,14 @@ import static software.amazon.awssdk.services.s3.internal.multipart.SdkPojoConversionUtils.toAbortMultipartUploadRequest; import java.util.Collection; +import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.core.async.listener.PublisherListener; import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse; import software.amazon.awssdk.services.s3.model.CompletedPart; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadResponse; @@ -74,37 +77,41 @@ CompletableFuture createMultipartUpload(PutObject return createMultipartUploadFuture; } - void completeMultipartUpload(CompletableFuture returnFuture, + CompletableFuture completeMultipartUpload(CompletableFuture returnFuture, String uploadId, CompletedPart[] completedParts, PutObjectRequest putObjectRequest) { - genericMultipartHelper.completeMultipartUpload(putObjectRequest, - uploadId, - completedParts) - .handle(genericMultipartHelper.handleExceptionOrResponse(putObjectRequest, returnFuture, - uploadId)) - .exceptionally(throwable -> { - genericMultipartHelper.handleException(returnFuture, () -> "Unexpected exception occurred", - throwable); - return null; - }); + CompletableFuture future = + genericMultipartHelper.completeMultipartUpload(putObjectRequest, uploadId, completedParts); + + future.handle(genericMultipartHelper.handleExceptionOrResponse(putObjectRequest, returnFuture, uploadId)) + .exceptionally(throwable -> { + genericMultipartHelper.handleException(returnFuture, () -> "Unexpected exception occurred", throwable); + return null; + }); + + return future; } CompletableFuture sendIndividualUploadPartRequest(String uploadId, Consumer completedPartsConsumer, Collection> futures, - Pair requestPair) { + Pair requestPair, + PublisherListener progressListener) { UploadPartRequest uploadPartRequest = requestPair.left(); Integer partNumber = uploadPartRequest.partNumber(); + Optional contentLength = requestPair.right().contentLength(); log.debug(() -> "Sending uploadPartRequest: " + uploadPartRequest.partNumber() + " uploadId: " + uploadId + " " - + "contentLength " + requestPair.right().contentLength()); + + "contentLength " + contentLength); CompletableFuture uploadPartFuture = s3AsyncClient.uploadPart(uploadPartRequest, requestPair.right()); CompletableFuture convertFuture = - uploadPartFuture.thenApply(uploadPartResponse -> convertUploadPartResponse(completedPartsConsumer, partNumber, - uploadPartResponse)); + uploadPartFuture.thenApply(uploadPartResponse -> { + contentLength.ifPresent(progressListener::subscriberOnNext); + return convertUploadPartResponse(completedPartsConsumer, partNumber, uploadPartResponse); + }); futures.add(convertFuture); CompletableFutureUtils.forwardExceptionTo(convertFuture, uploadPartFuture); return convertFuture; diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/PausableUpload.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/PausableUpload.java new file mode 100644 index 000000000000..2e0d1885d432 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/PausableUpload.java @@ -0,0 +1,27 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.multipart; + +import software.amazon.awssdk.annotations.SdkProtectedApi; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; + +@SdkProtectedApi +public interface PausableUpload { + + default S3ResumeToken pause() { + throw new UnsupportedOperationException(); + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtils.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtils.java index 25fde18cadaf..bff5d389e1e9 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtils.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtils.java @@ -25,6 +25,7 @@ import software.amazon.awssdk.core.SdkField; import software.amazon.awssdk.core.SdkPojo; import software.amazon.awssdk.services.s3.model.AbortMultipartUploadRequest; +import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse; import software.amazon.awssdk.services.s3.model.CompletedPart; import software.amazon.awssdk.services.s3.model.CopyObjectRequest; @@ -33,6 +34,8 @@ import software.amazon.awssdk.services.s3.model.CopyPartResult; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.HeadObjectRequest; +import software.amazon.awssdk.services.s3.model.ListPartsRequest; +import software.amazon.awssdk.services.s3.model.Part; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; import software.amazon.awssdk.services.s3.model.UploadPartCopyRequest; @@ -56,12 +59,17 @@ private SdkPojoConversionUtils() { public static UploadPartRequest toUploadPartRequest(PutObjectRequest putObjectRequest, int partNumber, String uploadId) { UploadPartRequest.Builder builder = UploadPartRequest.builder(); - setSdkFields(builder, putObjectRequest, PUT_OBJECT_REQUEST_TO_UPLOAD_PART_FIELDS_TO_IGNORE); - return builder.uploadId(uploadId).partNumber(partNumber).build(); } + public static CompleteMultipartUploadRequest toCompleteMultipartUploadRequest(PutObjectRequest putObjectRequest, + String uploadId, CompletedPart[] parts) { + CompleteMultipartUploadRequest.Builder builder = CompleteMultipartUploadRequest.builder(); + setSdkFields(builder, putObjectRequest); + return builder.uploadId(uploadId).multipartUpload(c -> c.parts(parts)).build(); + } + public static CreateMultipartUploadRequest toCreateMultipartUploadRequest(PutObjectRequest putObjectRequest) { CreateMultipartUploadRequest.Builder builder = CreateMultipartUploadRequest.builder(); @@ -101,6 +109,18 @@ public static CompletedPart toCompletedPart(UploadPartResponse partResponse, int return builder.partNumber(partNumber).build(); } + public static CompletedPart toCompletedPart(Part part) { + CompletedPart.Builder builder = CompletedPart.builder(); + setSdkFields(builder, part); + return builder.build(); + } + + public static ListPartsRequest toListPartsRequest(String uploadId, PutObjectRequest putObjectRequest) { + ListPartsRequest.Builder builder = ListPartsRequest.builder(); + setSdkFields(builder, putObjectRequest); + return builder.uploadId(uploadId).build(); + } + private static void setSdkFields(SdkPojo targetBuilder, SdkPojo sourceObject) { setSdkFields(targetBuilder, sourceObject, new HashSet<>()); } diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/UploadWithKnownContentLengthHelper.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/UploadWithKnownContentLengthHelper.java index 46caefca8d61..05051ab25cac 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/UploadWithKnownContentLengthHelper.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/UploadWithKnownContentLengthHelper.java @@ -15,25 +15,25 @@ package software.amazon.awssdk.services.s3.internal.multipart; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.PAUSE_OBSERVABLE; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.RESUME_TOKEN; -import java.util.Collection; +import java.util.Map; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReferenceArray; -import java.util.function.Consumer; -import java.util.stream.IntStream; -import org.reactivestreams.Subscriber; -import org.reactivestreams.Subscription; +import java.util.concurrent.ConcurrentHashMap; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.core.async.SdkPublisher; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.model.CompletedPart; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadResponse; +import software.amazon.awssdk.services.s3.model.ListPartsRequest; +import software.amazon.awssdk.services.s3.model.Part; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; -import software.amazon.awssdk.services.s3.model.UploadPartRequest; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; +import software.amazon.awssdk.services.s3.paginators.ListPartsPublisher; +import software.amazon.awssdk.utils.CompletableFutureUtils; import software.amazon.awssdk.utils.Logger; import software.amazon.awssdk.utils.Pair; @@ -47,7 +47,6 @@ public final class UploadWithKnownContentLengthHelper { private final S3AsyncClient s3AsyncClient; private final long partSizeInBytes; private final GenericMultipartHelper genericMultipartHelper; - private final long maxMemoryUsageInBytes; private final long multipartUploadThresholdInBytes; private final MultipartUploadHelper multipartUploadHelper; @@ -71,7 +70,6 @@ public CompletableFuture uploadObject(PutObjectRequest putObj AsyncRequestBody asyncRequestBody, long contentLength) { CompletableFuture returnFuture = new CompletableFuture<>(); - try { if (contentLength > multipartUploadThresholdInBytes && contentLength > partSizeInBytes) { log.debug(() -> "Starting the upload as multipart upload request"); @@ -80,7 +78,6 @@ public CompletableFuture uploadObject(PutObjectRequest putObj log.debug(() -> "Starting the upload as a single upload part request"); multipartUploadHelper.uploadInOneChunk(putObjectRequest, asyncRequestBody, returnFuture); } - } catch (Throwable throwable) { returnFuture.completeExceptionally(throwable); } @@ -90,7 +87,21 @@ public CompletableFuture uploadObject(PutObjectRequest putObj private void uploadInParts(PutObjectRequest putObjectRequest, long contentLength, AsyncRequestBody asyncRequestBody, CompletableFuture returnFuture) { + S3ResumeToken resumeToken = putObjectRequest.overrideConfiguration() + .map(c -> c.executionAttributes() + .getAttribute(RESUME_TOKEN)).orElse(null); + + if (resumeToken == null) { + initiateNewUpload(putObjectRequest, contentLength, asyncRequestBody, returnFuture); + } else { + ResumeRequestContext resumeRequestContext = new ResumeRequestContext(resumeToken, putObjectRequest, contentLength, + asyncRequestBody, returnFuture); + resumePausedUpload(resumeRequestContext); + } + } + private void initiateNewUpload(PutObjectRequest putObjectRequest, long contentLength, AsyncRequestBody asyncRequestBody, + CompletableFuture returnFuture) { CompletableFuture createMultipartUploadFuture = multipartUploadHelper.createMultipartUpload(putObjectRequest, returnFuture); @@ -99,160 +110,133 @@ private void uploadInParts(PutObjectRequest putObjectRequest, long contentLength genericMultipartHelper.handleException(returnFuture, () -> "Failed to initiate multipart upload", throwable); } else { log.debug(() -> "Initiated a new multipart upload, uploadId: " + createMultipartUploadResponse.uploadId()); - doUploadInParts(Pair.of(putObjectRequest, asyncRequestBody), contentLength, returnFuture, - createMultipartUploadResponse.uploadId()); + uploadFromBeginning(Pair.of(putObjectRequest, asyncRequestBody), contentLength, returnFuture, + createMultipartUploadResponse.uploadId()); } }); } - private void doUploadInParts(Pair request, - long contentLength, - CompletableFuture returnFuture, - String uploadId) { + private void uploadFromBeginning(Pair request, long contentLength, + CompletableFuture returnFuture, String uploadId) { - long optimalPartSize = genericMultipartHelper.calculateOptimalPartSizeFor(contentLength, partSizeInBytes); - int partCount = genericMultipartHelper.determinePartCount(contentLength, optimalPartSize); - if (optimalPartSize > partSizeInBytes) { - log.debug(() -> String.format("Configured partSize is %d, but using %d to prevent reaching maximum number of parts " - + "allowed", partSizeInBytes, optimalPartSize)); + long numPartsCompleted = 0; + long partSize = genericMultipartHelper.calculateOptimalPartSizeFor(contentLength, partSizeInBytes); + int partCount = genericMultipartHelper.determinePartCount(contentLength, partSize); + + if (partSize > partSizeInBytes) { + log.debug(() -> String.format("Configured partSize is %d, but using %d to prevent reaching maximum number of " + + "parts allowed", partSizeInBytes, partSize)); } log.debug(() -> String.format("Starting multipart upload with partCount: %d, optimalPartSize: %d", partCount, - optimalPartSize)); + partSize)); + + MpuRequestContext mpuRequestContext = MpuRequestContext.builder() + .request(request) + .contentLength(contentLength) + .partSize(partSize) + .uploadId(uploadId) + .existingParts(new ConcurrentHashMap<>()) + .numPartsCompleted(numPartsCompleted) + .build(); + + splitAndSubscribe(mpuRequestContext, returnFuture); + } - MpuRequestContext mpuRequestContext = new MpuRequestContext(request, contentLength, optimalPartSize, uploadId); + private void resumePausedUpload(ResumeRequestContext resumeContext) { + S3ResumeToken resumeToken = resumeContext.resumeToken; + String uploadId = resumeToken.uploadId(); + PutObjectRequest putObjectRequest = resumeContext.putObjectRequest; + Map existingParts = new ConcurrentHashMap<>(); + CompletableFuture listPartsFuture = identifyExistingPartsForResume(uploadId, putObjectRequest, existingParts); - request.right() - .split(b -> b.chunkSizeInBytes(mpuRequestContext.partSize) - .bufferSizeInBytes(maxMemoryUsageInBytes)) - .subscribe(new KnownContentLengthAsyncRequestBodySubscriber(mpuRequestContext, - returnFuture)); - } + int remainingParts = (int) (resumeToken.totalNumParts() - resumeToken.numPartsCompleted()); + log.debug(() -> String.format("Resuming a paused multipart upload, uploadId: %s, completedPartCount: %d, " + + "remainingPartCount: %d, partSize: %d", + uploadId, resumeToken.numPartsCompleted(), remainingParts, resumeToken.partSize())); - private static final class MpuRequestContext { - private final Pair request; - private final long contentLength; - private final long partSize; + CompletableFutureUtils.forwardExceptionTo(resumeContext.returnFuture, listPartsFuture); - private final String uploadId; + listPartsFuture.whenComplete((r, t) -> { + if (t != null) { + genericMultipartHelper.handleException(resumeContext.returnFuture, + () -> "Failed to resume because listParts failed", t); + return; + } - private MpuRequestContext(Pair request, - long contentLength, - long partSize, - String uploadId) { - this.request = request; - this.contentLength = contentLength; - this.partSize = partSize; - this.uploadId = uploadId; - } + Pair request = Pair.of(putObjectRequest, resumeContext.asyncRequestBody); + MpuRequestContext mpuRequestContext = MpuRequestContext.builder() + .request(request) + .contentLength(resumeContext.contentLength) + .partSize(resumeToken.partSize()) + .uploadId(uploadId) + .existingParts(existingParts) + .numPartsCompleted(resumeToken.numPartsCompleted()) + .build(); + + splitAndSubscribe(mpuRequestContext, resumeContext.returnFuture); + }); } - private class KnownContentLengthAsyncRequestBodySubscriber implements Subscriber { - - /** - * The number of AsyncRequestBody has been received but yet to be processed - */ - private final AtomicInteger asyncRequestBodyInFlight = new AtomicInteger(0); + private void splitAndSubscribe(MpuRequestContext mpuRequestContext, CompletableFuture returnFuture) { + KnownContentLengthAsyncRequestBodySubscriber subscriber = + new KnownContentLengthAsyncRequestBodySubscriber(mpuRequestContext, returnFuture, multipartUploadHelper); - /** - * Indicates whether CompleteMultipart has been initiated or not. - */ - private final AtomicBoolean completedMultipartInitiated = new AtomicBoolean(false); + attachSubscriberToObservable(subscriber, mpuRequestContext.request().left()); - private final AtomicBoolean failureActionInitiated = new AtomicBoolean(false); + mpuRequestContext.request().right() + .split(b -> b.chunkSizeInBytes(mpuRequestContext.partSize()) + .bufferSizeInBytes(maxMemoryUsageInBytes)) + .subscribe(subscriber); + } - private final AtomicInteger partNumber = new AtomicInteger(1); + private CompletableFuture identifyExistingPartsForResume(String uploadId, PutObjectRequest putObjectRequest, + Map existingParts) { + ListPartsRequest request = SdkPojoConversionUtils.toListPartsRequest(uploadId, putObjectRequest); + ListPartsPublisher listPartsPublisher = s3AsyncClient.listPartsPaginator(request); + SdkPublisher partsPublisher = listPartsPublisher.parts(); + return partsPublisher.subscribe(part -> + existingParts.put(part.partNumber(), SdkPojoConversionUtils.toCompletedPart(part))); + } - private final AtomicReferenceArray completedParts; - private final String uploadId; - private final Collection> futures = new ConcurrentLinkedQueue<>(); + private void attachSubscriberToObservable(KnownContentLengthAsyncRequestBodySubscriber subscriber, + PutObjectRequest putObjectRequest) { + // observable will be present if TransferManager is used + putObjectRequest.overrideConfiguration().map(c -> c.executionAttributes().getAttribute(PAUSE_OBSERVABLE)) + .ifPresent(p -> p.setPausableUpload(new DefaultPausableUpload(subscriber))); + } + private static final class ResumeRequestContext { + private final S3ResumeToken resumeToken; private final PutObjectRequest putObjectRequest; + private final long contentLength; + private final AsyncRequestBody asyncRequestBody; private final CompletableFuture returnFuture; - private Subscription subscription; - - private volatile boolean isDone; - KnownContentLengthAsyncRequestBodySubscriber(MpuRequestContext mpuRequestContext, - CompletableFuture returnFuture) { - long optimalPartSize = genericMultipartHelper.calculateOptimalPartSizeFor(mpuRequestContext.contentLength, - partSizeInBytes); - int partCount = genericMultipartHelper.determinePartCount(mpuRequestContext.contentLength, optimalPartSize); - this.putObjectRequest = mpuRequestContext.request.left(); + private ResumeRequestContext(S3ResumeToken resumeToken, + PutObjectRequest putObjectRequest, + long contentLength, + AsyncRequestBody asyncRequestBody, + CompletableFuture returnFuture) { + this.resumeToken = resumeToken; + this.putObjectRequest = putObjectRequest; + this.contentLength = contentLength; + this.asyncRequestBody = asyncRequestBody; this.returnFuture = returnFuture; - this.completedParts = new AtomicReferenceArray<>(partCount); - this.uploadId = mpuRequestContext.uploadId; } + } - @Override - public void onSubscribe(Subscription s) { - if (this.subscription != null) { - log.warn(() -> "The subscriber has already been subscribed. Cancelling the incoming subscription"); - subscription.cancel(); - return; - } - this.subscription = s; - s.request(1); - returnFuture.whenComplete((r, t) -> { - if (t != null) { - s.cancel(); - if (failureActionInitiated.compareAndSet(false, true)) { - multipartUploadHelper.failRequestsElegantly(futures, t, uploadId, returnFuture, putObjectRequest); - } - } - }); - } + private static final class DefaultPausableUpload implements PausableUpload { - @Override - public void onNext(AsyncRequestBody asyncRequestBody) { - log.trace(() -> "Received asyncRequestBody " + asyncRequestBody.contentLength()); - asyncRequestBodyInFlight.incrementAndGet(); - UploadPartRequest uploadRequest = - SdkPojoConversionUtils.toUploadPartRequest(putObjectRequest, - partNumber.getAndIncrement(), - uploadId); - - Consumer completedPartConsumer = completedPart -> completedParts.set(completedPart.partNumber() - 1, - completedPart); - multipartUploadHelper.sendIndividualUploadPartRequest(uploadId, completedPartConsumer, futures, - Pair.of(uploadRequest, asyncRequestBody)) - .whenComplete((r, t) -> { - if (t != null) { - if (failureActionInitiated.compareAndSet(false, true)) { - multipartUploadHelper.failRequestsElegantly(futures, t, uploadId, returnFuture, - putObjectRequest); - } - } else { - completeMultipartUploadIfFinish(asyncRequestBodyInFlight.decrementAndGet()); - } - }); - subscription.request(1); - } + private KnownContentLengthAsyncRequestBodySubscriber subscriber; - @Override - public void onError(Throwable t) { - log.debug(() -> "Received onError ", t); - if (failureActionInitiated.compareAndSet(false, true)) { - multipartUploadHelper.failRequestsElegantly(futures, t, uploadId, returnFuture, putObjectRequest); - } + private DefaultPausableUpload(KnownContentLengthAsyncRequestBodySubscriber subscriber) { + this.subscriber = subscriber; } @Override - public void onComplete() { - log.debug(() -> "Received onComplete()"); - isDone = true; - completeMultipartUploadIfFinish(asyncRequestBodyInFlight.get()); + public S3ResumeToken pause() { + return subscriber.pause(); } - - private void completeMultipartUploadIfFinish(int requestsInFlight) { - if (isDone && requestsInFlight == 0 && completedMultipartInitiated.compareAndSet(false, true)) { - CompletedPart[] parts = - IntStream.range(0, completedParts.length()) - .mapToObj(completedParts::get) - .toArray(CompletedPart[]::new); - multipartUploadHelper.completeMultipartUpload(returnFuture, uploadId, parts, putObjectRequest); - } - } - } } diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/UploadWithUnknownContentLengthHelper.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/UploadWithUnknownContentLengthHelper.java index 0c8c3c70b516..18e3a9291d58 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/UploadWithUnknownContentLengthHelper.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/UploadWithUnknownContentLengthHelper.java @@ -16,6 +16,8 @@ package software.amazon.awssdk.services.s3.internal.multipart; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.JAVA_PROGRESS_LISTENER; + import java.util.Collection; import java.util.Comparator; import java.util.Queue; @@ -28,6 +30,7 @@ import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.async.SdkPublisher; +import software.amazon.awssdk.core.async.listener.PublisherListener; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.model.CompletedPart; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadResponse; @@ -116,6 +119,7 @@ private class UnknownContentLengthAsyncRequestBodySubscriber implements Subscrib private final long maximumChunkSizeInByte; private final PutObjectRequest putObjectRequest; private final CompletableFuture returnFuture; + private final PublisherListener progressListener; private Subscription subscription; private AsyncRequestBody firstRequestBody; @@ -128,6 +132,9 @@ private class UnknownContentLengthAsyncRequestBodySubscriber implements Subscrib this.maximumChunkSizeInByte = maximumChunkSizeInByte; this.putObjectRequest = putObjectRequest; this.returnFuture = returnFuture; + this.progressListener = putObjectRequest.overrideConfiguration() + .map(c -> c.executionAttributes().getAttribute(JAVA_PROGRESS_LISTENER)) + .orElseGet(PublisherListener::noOp); } @Override @@ -193,7 +200,7 @@ public void onNext(AsyncRequestBody asyncRequestBody) { private void sendUploadPartRequest(String uploadId, AsyncRequestBody asyncRequestBody) { multipartUploadHelper.sendIndividualUploadPartRequest(uploadId, completedParts::add, futures, - uploadPart(asyncRequestBody)) + uploadPart(asyncRequestBody), progressListener) .whenComplete((r, t) -> { if (t != null) { if (failureActionInitiated.compareAndSet(false, true)) { diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/plugins/S3DisableChunkEncodingAuthSchemeProvider.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/plugins/S3DisableChunkEncodingAuthSchemeProvider.java new file mode 100644 index 000000000000..c02814d5273d --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/plugins/S3DisableChunkEncodingAuthSchemeProvider.java @@ -0,0 +1,67 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.plugins; + +import java.util.ArrayList; +import java.util.List; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.services.s3.S3Configuration; +import software.amazon.awssdk.services.s3.auth.scheme.S3AuthSchemeParams; +import software.amazon.awssdk.services.s3.auth.scheme.S3AuthSchemeProvider; + +/** + * Internal plugin that sets the signer property {@link AwsV4FamilyHttpSigner#CHUNK_ENCODING_ENABLED} to {@code false}. This + * plugin is invoked by the client builder only if {@link S3Configuration#chunkedEncodingEnabled()} is set to {@code false}. + */ +@SdkInternalApi +public final class S3DisableChunkEncodingAuthSchemeProvider implements S3AuthSchemeProvider { + + private final S3AuthSchemeProvider delegate; + + private S3DisableChunkEncodingAuthSchemeProvider(S3AuthSchemeProvider delegate) { + this.delegate = delegate; + } + + public static S3DisableChunkEncodingAuthSchemeProvider create(S3AuthSchemeProvider delegate) { + return new S3DisableChunkEncodingAuthSchemeProvider(delegate); + } + + @Override + public List resolveAuthScheme(S3AuthSchemeParams authSchemeParams) { + List options = delegate.resolveAuthScheme(authSchemeParams); + List result = options; + + // Disables chunk encoding but only for PutObject or UploadPart operations. + String operation = authSchemeParams.operation(); + if ("PutObject".equals(operation) || "UploadPart".equals(operation)) { + result = new ArrayList<>(options.size()); + for (AuthSchemeOption option : options) { + String schemeId = option.schemeId(); + // We check here that the scheme id is sigV4 or sigV4a or some other in the same family. + // We don't set the overrides for non-sigV4 auth schemes. + if (schemeId.startsWith(AwsV4AuthScheme.SCHEME_ID)) { + result.add(option.toBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.CHUNK_ENCODING_ENABLED, false) + .build()); + } + } + } + return result; + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/plugins/S3DisableChunkEncodingIfConfiguredPlugin.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/plugins/S3DisableChunkEncodingIfConfiguredPlugin.java new file mode 100644 index 000000000000..a37ccfa1c8d1 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/plugins/S3DisableChunkEncodingIfConfiguredPlugin.java @@ -0,0 +1,82 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.plugins; + +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.core.SdkPlugin; +import software.amazon.awssdk.core.SdkServiceClientConfiguration; +import software.amazon.awssdk.core.client.config.SdkClientConfiguration; +import software.amazon.awssdk.core.client.config.SdkClientOption; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.services.s3.S3Configuration; +import software.amazon.awssdk.services.s3.S3ServiceClientConfiguration; +import software.amazon.awssdk.services.s3.auth.scheme.S3AuthSchemeProvider; +import software.amazon.awssdk.utils.Logger; + +/** + * Internal plugin that uses the check if {@link S3Configuration#chunkedEncodingEnabled()} is configured and equals to + * {@code false}, if so, then it installs an instance of {@link S3DisableChunkEncodingAuthSchemeProvider} wrapping the configured + * {@link S3AuthSchemeProvider} that sets {@link AwsV4FamilyHttpSigner#CHUNK_ENCODING_ENABLED} to false. + *

    + * This pre SRA logic was implemented before using an interceptor but now requires wrapping the S3AuthSchemeProvider for it to + * work. + */ +@SdkInternalApi +public final class S3DisableChunkEncodingIfConfiguredPlugin implements SdkPlugin { + + private static final Logger LOG = Logger.loggerFor(S3DisableChunkEncodingIfConfiguredPlugin.class); + + private final boolean isServiceConfigurationPresent; + private final boolean isChunkedEncodingEnabledConfigured; + private final boolean isChunkedEncodingEnabledDisabled; + private final boolean configuresDisableChunkEncoding; + + public S3DisableChunkEncodingIfConfiguredPlugin(SdkClientConfiguration config) { + S3Configuration serviceConfiguration = + (S3Configuration) config.option(SdkClientOption.SERVICE_CONFIGURATION); + + boolean isServiceConfigurationPresent = serviceConfiguration != null; + boolean shouldAddDisableChunkEncoding = false; + boolean isChunkedEncodingEnabledConfigured = false; + boolean isChunkedEncodingEnabledDisabled = false; + boolean configuresDisableChunkEncoding = false; + if (isServiceConfigurationPresent) { + isChunkedEncodingEnabledConfigured = serviceConfiguration.toBuilder().chunkedEncodingEnabled() != null; + isChunkedEncodingEnabledDisabled = !serviceConfiguration.chunkedEncodingEnabled(); + configuresDisableChunkEncoding = isChunkedEncodingEnabledConfigured && isChunkedEncodingEnabledDisabled; + if (configuresDisableChunkEncoding) { + shouldAddDisableChunkEncoding = true; + } + } + this.configuresDisableChunkEncoding = shouldAddDisableChunkEncoding; + this.isChunkedEncodingEnabledConfigured = isChunkedEncodingEnabledConfigured; + this.isChunkedEncodingEnabledDisabled = isChunkedEncodingEnabledDisabled; + this.isServiceConfigurationPresent = isServiceConfigurationPresent; + } + + @Override + public void configureClient(SdkServiceClientConfiguration.Builder config) { + if (configuresDisableChunkEncoding) { + LOG.debug(() -> String.format("chunkedEncodingEnabled was explicitly disabled in the configuration, adding " + + "`S3DisableChunkEncodingAuthSchemeProvider` auth provider wrapper.")); + S3ServiceClientConfiguration.Builder s3Config = (S3ServiceClientConfiguration.Builder) config; + + S3AuthSchemeProvider disablingAuthSchemeProvider = + S3DisableChunkEncodingAuthSchemeProvider.create(s3Config.authSchemeProvider()); + s3Config.authSchemeProvider(disablingAuthSchemeProvider); + } + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/plugins/S3OverrideAuthSchemePropertiesPlugin.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/plugins/S3OverrideAuthSchemePropertiesPlugin.java new file mode 100644 index 000000000000..5b5fe096eefe --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/plugins/S3OverrideAuthSchemePropertiesPlugin.java @@ -0,0 +1,221 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.plugins; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import software.amazon.awssdk.annotations.SdkProtectedApi; +import software.amazon.awssdk.core.SdkPlugin; +import software.amazon.awssdk.core.SdkServiceClientConfiguration; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.SignerProperty; +import software.amazon.awssdk.identity.spi.IdentityProperty; +import software.amazon.awssdk.services.s3.S3ServiceClientConfiguration; +import software.amazon.awssdk.services.s3.auth.scheme.S3AuthSchemeParams; +import software.amazon.awssdk.services.s3.auth.scheme.S3AuthSchemeProvider; + +/** + * Plugin that allows override of signer and identity properties on the selected auth scheme options. The class offers static + * methods to create plugins for common cases such as enable payload signing by default. For instance, if you want + * to unconditionally enable payload signing across the board you can create the S3 client, e.g., + * + * {@snippet + * S3AsyncClient s3 = S3AsyncClient.builder() + * .region(Region.US_WEST_2) + * .credentialsProvider(CREDENTIALS) + * .httpClient(httpClient) + * .addPlugin(S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin()) + * .build(); + * } + * + * The plugin can also be used for a particular request, e.g., + * + * {@snippet + * s3Client.putObject(PutObjectRequest.builder() + * .overrideConfiguration(c -> c.addPlugin( + * S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin())) + * .checksumAlgorithm(ChecksumAlgorithm.SHA256) + * .bucket("test").key("test").build(), RequestBody.fromBytes("abc".getBytes())); + * } + */ +@SdkProtectedApi +public final class S3OverrideAuthSchemePropertiesPlugin implements SdkPlugin { + private final Map, Object> identityProperties; + private final Map, Object> signerProperties; + private final Set operationConstraints; + + private S3OverrideAuthSchemePropertiesPlugin(Builder builder) { + if (builder.identityProperties.isEmpty()) { + this.identityProperties = Collections.emptyMap(); + } else { + this.identityProperties = Collections.unmodifiableMap(new HashMap<>(builder.identityProperties)); + } + if (builder.signerProperties.isEmpty()) { + this.signerProperties = Collections.emptyMap(); + } else { + this.signerProperties = Collections.unmodifiableMap(new HashMap<>(builder.signerProperties)); + } + if (builder.operationConstraints.isEmpty()) { + this.operationConstraints = Collections.emptySet(); + } else { + this.operationConstraints = Collections.unmodifiableSet(new HashSet<>(builder.operationConstraints)); + } + } + + @Override + public void configureClient(SdkServiceClientConfiguration.Builder config) { + if (identityProperties.isEmpty() && signerProperties.isEmpty()) { + return; + } + S3ServiceClientConfiguration.Builder s3Config = (S3ServiceClientConfiguration.Builder) config; + S3AuthSchemeProvider delegate = s3Config.authSchemeProvider(); + s3Config.authSchemeProvider(params -> { + List options = delegate.resolveAuthScheme(params); + List result = new ArrayList<>(options.size()); + for (AuthSchemeOption option : options) { + // We check here that the scheme id is sigV4 or sigV4a or some other in the same family. + // We don't set the overrides for non-sigV4 auth schemes. If the plugin was configured to + // constraint using operations then that's also checked on the call below. + if (addConfiguredProperties(option, params)) { + AuthSchemeOption.Builder builder = option.toBuilder(); + identityProperties.forEach((k, v) -> putIdentityProperty(builder, k, v)); + signerProperties.forEach((k, v) -> putSingerProperty(builder, k, v)); + result.add(builder.build()); + } else { + result.add(option); + } + } + return result; + }); + } + + @SuppressWarnings("unchecked") + private void putIdentityProperty(AuthSchemeOption.Builder builder, IdentityProperty key, Object value) { + // Safe because of Builder#putIdentityProperty + builder.putIdentityProperty((IdentityProperty) key, (T) value); + } + + @SuppressWarnings("unchecked") + private void putSingerProperty(AuthSchemeOption.Builder builder, SignerProperty key, Object value) { + // Safe because of Builder#putSignerProperty + builder.putSignerProperty((SignerProperty) key, (T) value); + } + + private boolean addConfiguredProperties(AuthSchemeOption option, S3AuthSchemeParams params) { + String schemeId = option.schemeId(); + // We check here that the scheme id is sigV4 or sigV4a or some other in the same family. + // We don't set the overrides for non-sigV4 auth schemes. + if (schemeId.startsWith(AwsV4AuthScheme.SCHEME_ID)) { + if (this.operationConstraints.isEmpty() || this.operationConstraints.contains(params.operation())) { + return true; + } + } + return false; + } + + /** + * Creates a new plugin that enables payload signing. This plugin can be used per client or by per-request. + */ + public static SdkPlugin enablePayloadSigningPlugin() { + return builder() + .payloadSigningEnabled(true) + .build(); + } + + /** + * Creates a new plugin that disables the ChunkEncoding signers property for the `UploadPart` and `PutObject` operations. + * This plugin can be used per client or by per-request. + */ + public static SdkPlugin disableChunkEncodingPlugin() { + return builder() + .chunkEncodingEnabled(false) + .addOperationConstraint("UploadPart") + .addOperationConstraint("PutObject") + .build(); + } + + /** + * Creates a new builder to configure the plugin. + */ + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private final Map, Object> identityProperties = new HashMap<>(); + private final Map, Object> signerProperties = new HashMap<>(); + private final Set operationConstraints = new HashSet<>(); + + /** + * Adds an operation constraint to use the configured properties. + */ + public Builder addOperationConstraint(String operation) { + this.operationConstraints.add(operation); + return this; + } + + /** + * Adds the provided property value as an override. + */ + public Builder putIdentityProperty(IdentityProperty key, T value) { + identityProperties.put(key, value); + return this; + } + + /** + * Adds the provided property value as an override. + */ + public Builder putSignerProperty(SignerProperty key, T value) { + signerProperties.put(key, value); + return this; + } + + /** + * Sets the {@link AwsV4FamilyHttpSigner#NORMALIZE_PATH} signing property to the given value. + */ + public Builder normalizePath(Boolean value) { + return putSignerProperty(AwsV4FamilyHttpSigner.NORMALIZE_PATH, value); + } + + /** + * Sets the {@link AwsV4FamilyHttpSigner#CHUNK_ENCODING_ENABLED} signing property to the given value. + */ + public Builder chunkEncodingEnabled(Boolean value) { + return putSignerProperty(AwsV4FamilyHttpSigner.CHUNK_ENCODING_ENABLED, value); + } + + /** + * Sets the {@link AwsV4FamilyHttpSigner#PAYLOAD_SIGNING_ENABLED} signing property to the given value. + */ + public Builder payloadSigningEnabled(Boolean value) { + return putSignerProperty(AwsV4FamilyHttpSigner.PAYLOAD_SIGNING_ENABLED, value); + } + + /** + * Builds and returns a new plugin. + */ + public S3OverrideAuthSchemePropertiesPlugin build() { + return new S3OverrideAuthSchemePropertiesPlugin(this); + } + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/s3express/S3ExpressAuthSchemeProvider.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/s3express/S3ExpressAuthSchemeProvider.java index f6fadc7d422f..24314769cb5a 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/s3express/S3ExpressAuthSchemeProvider.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/s3express/S3ExpressAuthSchemeProvider.java @@ -15,8 +15,8 @@ package software.amazon.awssdk.services.s3.internal.s3express; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; import software.amazon.awssdk.identity.spi.IdentityProperty; @@ -42,9 +42,13 @@ public static S3ExpressAuthSchemeProvider create(S3AuthSchemeProvider delegate) @Override public List resolveAuthScheme(S3AuthSchemeParams authSchemeParams) { List options = delegate.resolveAuthScheme(authSchemeParams); - return options.stream() - .map(option -> option.toBuilder().putIdentityProperty(BUCKET, authSchemeParams.bucket()).build()) - .collect(Collectors.toList()); + List result = new ArrayList<>(options.size()); + for (AuthSchemeOption option : options) { + result.add(option.toBuilder() + .putIdentityProperty(BUCKET, authSchemeParams.bucket()) + .build()); + } + return result; } public S3AuthSchemeProvider delegate() { diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/multipart/PauseObservable.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/multipart/PauseObservable.java new file mode 100644 index 000000000000..49886c7beeac --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/multipart/PauseObservable.java @@ -0,0 +1,41 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.multipart; + +import software.amazon.awssdk.annotations.SdkProtectedApi; +import software.amazon.awssdk.services.s3.internal.multipart.PausableUpload; + +@SdkProtectedApi +public class PauseObservable { + + private volatile PausableUpload pausableUpload; + + public void setPausableUpload(PausableUpload pausableUpload) { + this.pausableUpload = pausableUpload; + } + + public S3ResumeToken pause() { + // single part upload or TM is not used + if (pausableUpload == null) { + return null; + } + return pausableUpload.pause(); + } + + public PausableUpload pausableUpload() { + return pausableUpload; + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/multipart/S3MultipartExecutionAttribute.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/multipart/S3MultipartExecutionAttribute.java new file mode 100644 index 000000000000..7bfacd9d387e --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/multipart/S3MultipartExecutionAttribute.java @@ -0,0 +1,29 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.multipart; + +import software.amazon.awssdk.annotations.SdkProtectedApi; +import software.amazon.awssdk.core.async.listener.PublisherListener; +import software.amazon.awssdk.core.interceptor.ExecutionAttribute; +import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute; + +@SdkProtectedApi +public final class S3MultipartExecutionAttribute extends SdkExecutionAttribute { + public static final ExecutionAttribute RESUME_TOKEN = new ExecutionAttribute<>("ResumeToken"); + public static final ExecutionAttribute PAUSE_OBSERVABLE = new ExecutionAttribute<>("PauseObservable"); + public static final ExecutionAttribute> JAVA_PROGRESS_LISTENER = + new ExecutionAttribute<>("JavaProgressListener"); +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/multipart/S3ResumeToken.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/multipart/S3ResumeToken.java new file mode 100644 index 000000000000..2ec2223fcec5 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/multipart/S3ResumeToken.java @@ -0,0 +1,108 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.multipart; + +import java.util.Objects; +import software.amazon.awssdk.annotations.SdkProtectedApi; + +@SdkProtectedApi +public class S3ResumeToken { + + private final String uploadId; + private final Long partSize; + private final Long totalNumParts; + private final Long numPartsCompleted; + + public S3ResumeToken(Builder builder) { + this.uploadId = builder.uploadId; + this.partSize = builder.partSize; + this.totalNumParts = builder.totalNumParts; + this.numPartsCompleted = builder.numPartsCompleted; + } + + public static Builder builder() { + return new Builder(); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + S3ResumeToken that = (S3ResumeToken) o; + + return partSize == that.partSize && totalNumParts == that.totalNumParts && numPartsCompleted == that.numPartsCompleted + && Objects.equals(uploadId, that.uploadId); + } + + @Override + public int hashCode() { + return Objects.hashCode(uploadId); + } + + public String uploadId() { + return uploadId; + } + + public Long partSize() { + return partSize; + } + + public Long totalNumParts() { + return totalNumParts; + } + + public Long numPartsCompleted() { + return numPartsCompleted; + } + + public static final class Builder { + private String uploadId; + private Long partSize; + private Long totalNumParts; + private Long numPartsCompleted; + + private Builder() { + } + + public Builder uploadId(String uploadId) { + this.uploadId = uploadId; + return this; + } + + public Builder partSize(Long partSize) { + this.partSize = partSize; + return this; + } + + public Builder totalNumParts(Long totalNumParts) { + this.totalNumParts = totalNumParts; + return this; + } + + public Builder numPartsCompleted(Long numPartsCompleted) { + this.numPartsCompleted = numPartsCompleted; + return this; + } + + public S3ResumeToken build() { + return new S3ResumeToken(this); + } + } +} diff --git a/services/s3/src/main/resources/codegen-resources/customization.config b/services/s3/src/main/resources/codegen-resources/customization.config index 7bd3369c2b88..0f06cc755691 100644 --- a/services/s3/src/main/resources/codegen-resources/customization.config +++ b/services/s3/src/main/resources/codegen-resources/customization.config @@ -240,7 +240,7 @@ "multipartCustomization": { "multipartConfigurationClass": "software.amazon.awssdk.services.s3.multipart.MultipartConfiguration", "multipartConfigMethodDoc": "Configuration for multipart operation of this client.", - "multipartEnableMethodDoc": "Enables automatic conversion of put and copy method to their equivalent multipart operation.", + "multipartEnableMethodDoc": "Enables automatic conversion of PUT and COPY methods to their equivalent multipart operation. CRC32 checksum will be enabled for PUT, unless the checksum is specified or checksum validation is disabled.", "contextParamEnabledKey": "S3AsyncClientDecorator.MULTIPART_ENABLED_KEY", "contextParamConfigKey": "S3AsyncClientDecorator.MULTIPART_CONFIGURATION_KEY" }, @@ -248,8 +248,6 @@ "software.amazon.awssdk.services.s3.internal.handlers.StreamingRequestInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.CreateBucketInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor", - "software.amazon.awssdk.services.s3.internal.handlers.EnableChunkedEncodingInterceptor", - "software.amazon.awssdk.services.s3.internal.handlers.ConfigureSignerInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.DecodeUrlEncodedResponseInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.GetBucketPolicyInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.S3ExpressChecksumInterceptor", @@ -259,9 +257,10 @@ "software.amazon.awssdk.services.s3.internal.handlers.ExceptionTranslationInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.GetObjectInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.CopySourceInterceptor", - "software.amazon.awssdk.services.s3.internal.handlers.DisablePayloadSigningInterceptor" + "software.amazon.awssdk.services.s3.internal.handlers.ObjectMetadataInterceptor" ], "internalPlugins": [ + "software.amazon.awssdk.services.s3.internal.plugins.S3DisableChunkEncodingIfConfiguredPlugin(config)", "software.amazon.awssdk.services.s3.internal.s3express.S3ExpressPlugin" ], "requiredTraitValidationEnabled": true, diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/EndpointOverrideConfigurationTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/EndpointOverrideConfigurationTest.java new file mode 100644 index 000000000000..d32a7653c2c1 --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/EndpointOverrideConfigurationTest.java @@ -0,0 +1,201 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import java.util.concurrent.CompletableFuture; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.core.SdkPlugin; +import software.amazon.awssdk.core.async.AsyncResponseTransformer; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; +import software.amazon.awssdk.endpoints.Endpoint; +import software.amazon.awssdk.endpoints.EndpointProvider; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.endpoints.S3EndpointParams; +import software.amazon.awssdk.services.s3.endpoints.S3EndpointProvider; +import software.amazon.awssdk.utils.Validate; + +class EndpointOverrideConfigurationTest { + + private CapturingInterceptor interceptor; + private CallCountS3EndpointProvider callCountS3EndpointProvider; + + + @BeforeEach + void setup() { + this.interceptor = new CapturingInterceptor(); + this.callCountS3EndpointProvider = null; + } + + @Test + void testClientEndpointOverrideIsUsed() { + S3Client syncClient = syncClientBuilder() + .addPlugin(config -> config.overrideConfiguration(c -> c.addExecutionInterceptor(interceptor))) + .addPlugin(overrideEndpointPlugin()) + .build(); + assertThatThrownBy(() -> syncClient.getObject(r -> { + r.key("key").bucket("bucket"); + })) + .hasMessageContaining("boom!"); + + assertThat(callCountS3EndpointProvider).isNotNull(); + assertThat(callCountS3EndpointProvider.getCallCount()).isEqualTo(2); + } + + @Test + void testRequestEndpointOverrideIsUsed() { + S3Client syncClient = syncClientBuilder() + .addPlugin(config -> config.overrideConfiguration(c -> c.addExecutionInterceptor(interceptor))) + .build(); + assertThatThrownBy(() -> syncClient.getObject(r -> { + r.overrideConfiguration(c -> c.addPlugin(overrideEndpointPlugin())); + r.key("key").bucket("bucket"); + })) + .hasMessageContaining("boom!"); + + assertThat(callCountS3EndpointProvider).isNotNull(); + assertThat(callCountS3EndpointProvider.getCallCount()).isEqualTo(2); + } + + @Test + void testAsyncClientEndpointOverrideIsUsed() { + S3AsyncClient syncClient = asyncClientBuilder() + .addPlugin(config -> config.overrideConfiguration(c -> c.addExecutionInterceptor(interceptor))) + .addPlugin(overrideEndpointPlugin()) + .build(); + assertThatThrownBy(() -> syncClient.getObject(r -> { + r.key("key").bucket("bucket"); + }, AsyncResponseTransformer.toBytes()).join()) + .hasMessageContaining("boom!"); + + assertThat(callCountS3EndpointProvider).isNotNull(); + assertThat(callCountS3EndpointProvider.getCallCount()).isEqualTo(2); + } + + @Test + void testAsyncRequestEndpointOverrideIsUsed() { + S3AsyncClient syncClient = asyncClientBuilder() + .addPlugin(config -> config.overrideConfiguration(c -> c.addExecutionInterceptor(interceptor))) + .addPlugin(overrideEndpointPlugin()) + .build(); + assertThatThrownBy(() -> syncClient.getObject(r -> { + r.overrideConfiguration(c -> c.addPlugin(overrideEndpointPlugin())); + r.key("key").bucket("bucket"); + }, AsyncResponseTransformer.toBytes()).join()) + .hasMessageContaining("boom!"); + + assertThat(callCountS3EndpointProvider).isNotNull(); + assertThat(callCountS3EndpointProvider.getCallCount()).isEqualTo(2); + } + + private SdkPlugin overrideEndpointPlugin() { + return config -> { + EndpointProvider provider = config.endpointProvider(); + if (provider instanceof S3EndpointProvider) { + S3EndpointProvider s3EndpointProvider = (S3EndpointProvider) provider; + config.endpointProvider(endpointProvider(s3EndpointProvider)); + } + }; + } + + private S3ClientBuilder syncClientBuilder() { + return S3Client.builder() + .addPlugin(c -> { + S3ServiceClientConfiguration.Builder config = + Validate.isInstanceOf(S3ServiceClientConfiguration.Builder.class, c, + "\uD83E\uDD14"); + config.region(Region.US_WEST_2) + .credentialsProvider( + StaticCredentialsProvider.create( + AwsBasicCredentials.create("akid", "skid"))) + .overrideConfiguration(oc -> oc.addExecutionInterceptor(interceptor)); + }); + + } + + private S3AsyncClientBuilder asyncClientBuilder() { + return S3AsyncClient.builder() + .addPlugin(c -> { + S3ServiceClientConfiguration.Builder config = + Validate.isInstanceOf(S3ServiceClientConfiguration.Builder.class, c, + "\uD83E\uDD14"); + config.region(Region.US_WEST_2) + .credentialsProvider( + StaticCredentialsProvider.create( + AwsBasicCredentials.create("akid", "skid"))) + .overrideConfiguration(oc -> oc.addExecutionInterceptor(interceptor)); + }); + + } + + public S3EndpointProvider endpointProvider(S3EndpointProvider delegate) { + this.callCountS3EndpointProvider = new CallCountS3EndpointProvider(delegate); + return this.callCountS3EndpointProvider; + } + + static class CallCountS3EndpointProvider implements S3EndpointProvider { + private final S3EndpointProvider delegate; + private int callCount; + + CallCountS3EndpointProvider(S3EndpointProvider delegate) { + this.delegate = Validate.paramNotNull(delegate, "delegate"); + } + + public int getCallCount() { + return callCount; + } + + @Override + public CompletableFuture resolveEndpoint(S3EndpointParams endpointParams) { + callCount++; + return delegate.resolveEndpoint(endpointParams); + } + } + + public static class CapturingInterceptor implements ExecutionInterceptor { + private Context.BeforeTransmission context; + private ExecutionAttributes executionAttributes; + + @Override + public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { + this.context = context; + this.executionAttributes = executionAttributes; + throw new RuntimeException("boom!"); + } + + public ExecutionAttributes executionAttributes() { + return executionAttributes; + } + + public Context.BeforeTransmission context() { + return context; + } + + public class CaptureCompletedException extends RuntimeException { + CaptureCompletedException(String message) { + super(message); + } + } + } + +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/PayloadSigningDisabledTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/PayloadSigningDisabledTest.java index 0ac8d0eec1bb..35091b38875d 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/PayloadSigningDisabledTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/PayloadSigningDisabledTest.java @@ -20,11 +20,10 @@ import org.junit.jupiter.api.Test; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; -import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute; -import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; import software.amazon.awssdk.http.HttpExecuteResponse; import software.amazon.awssdk.http.SdkHttpResponse; import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.internal.plugins.S3OverrideAuthSchemePropertiesPlugin; import software.amazon.awssdk.testutils.service.http.MockAsyncHttpClient; import software.amazon.awssdk.testutils.service.http.MockSyncHttpClient; @@ -33,10 +32,6 @@ */ public class PayloadSigningDisabledTest { private static final AwsCredentialsProvider CREDENTIALS = () -> AwsBasicCredentials.create("akid", "skid"); - private static final ClientOverrideConfiguration ENABLE_PAYLOAD_SIGNING_CONFIG = - ClientOverrideConfiguration.builder() - .putExecutionAttribute(S3SignerExecutionAttribute.ENABLE_PAYLOAD_SIGNING, true) - .build(); @Test public void syncPayloadSigningIsDisabled() { @@ -83,7 +78,7 @@ public void syncPayloadSigningCanBeEnabled() { .region(Region.US_WEST_2) .credentialsProvider(CREDENTIALS) .httpClient(httpClient) - .overrideConfiguration(ENABLE_PAYLOAD_SIGNING_CONFIG) + .addPlugin(S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin()) .build()) { httpClient.stubNextResponse(HttpExecuteResponse.builder() .response(SdkHttpResponse.builder().statusCode(200).build()) @@ -103,7 +98,7 @@ public void asyncPayloadSigningCanBeEnabled() { .region(Region.US_WEST_2) .credentialsProvider(CREDENTIALS) .httpClient(httpClient) - .overrideConfiguration(ENABLE_PAYLOAD_SIGNING_CONFIG) + .addPlugin(S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin()) .build()) { httpClient.stubNextResponse(HttpExecuteResponse.builder() .response(SdkHttpResponse.builder().statusCode(200).build()) diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3SignerTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3SignerTest.java index 0652127a8bb2..32178fd4ec76 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3SignerTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3SignerTest.java @@ -39,7 +39,6 @@ import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; import software.amazon.awssdk.auth.signer.AwsS3V4Signer; -import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute; import software.amazon.awssdk.core.checksums.Algorithm; import software.amazon.awssdk.core.checksums.ChecksumSpecs; import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; @@ -47,6 +46,7 @@ import software.amazon.awssdk.core.internal.util.Mimetype; import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.internal.plugins.S3OverrideAuthSchemePropertiesPlugin; import software.amazon.awssdk.services.s3.model.ChecksumAlgorithm; import software.amazon.awssdk.services.s3.model.PutObjectRequest; @@ -69,10 +69,13 @@ private String getEndpoint() { } private S3Client getS3Client(boolean chunkedEncoding, boolean payloadSigning, URI endpoint) { + S3OverrideAuthSchemePropertiesPlugin plugin = S3OverrideAuthSchemePropertiesPlugin.builder() + .chunkEncodingEnabled(chunkedEncoding) + .payloadSigningEnabled(payloadSigning) + .build(); return S3Client.builder() + .addPlugin(plugin) .overrideConfiguration(ClientOverrideConfiguration.builder() - .putExecutionAttribute(S3SignerExecutionAttribute.ENABLE_CHUNKED_ENCODING, chunkedEncoding) - .putExecutionAttribute(S3SignerExecutionAttribute.ENABLE_PAYLOAD_SIGNING, payloadSigning) .putAdvancedOption(SdkAdvancedClientOption.SIGNER, AwsS3V4Signer.create()).build()) .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("akid", "skid"))) @@ -150,7 +153,7 @@ public void headerBasedSignedPayload() { stubFor(any(urlMatching(".*")) .willReturn(response())); s3Client.putObject(PutObjectRequest.builder() - .checksumAlgorithm(ChecksumAlgorithm.SHA256) + .checksumAlgorithm(ChecksumAlgorithm.SHA256) .bucket("test").key("test").build(), RequestBody.fromBytes("abc".getBytes())); verify(putRequestedFor(anyUrl()).withHeader(CONTENT_TYPE, equalTo(Mimetype.MIMETYPE_OCTET_STREAM))); verify(putRequestedFor(anyUrl()).withHeader(CONTENT_LENGTH, equalTo("3"))); diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/CrtDownloadErrorTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/CrtDownloadErrorTest.java index df1d717d866e..8819702cb957 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/CrtDownloadErrorTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/CrtDownloadErrorTest.java @@ -15,65 +15,74 @@ package software.amazon.awssdk.services.s3.crt; +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static com.github.tomakehurst.wiremock.client.WireMock.head; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.core.WireMockConfiguration; +import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; import java.net.URI; import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import software.amazon.awssdk.core.async.AsyncResponseTransformer; +import software.amazon.awssdk.crt.CrtResource; import software.amazon.awssdk.crt.Log; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.model.S3Exception; +@WireMockTest +@Timeout(10) public class CrtDownloadErrorTest { private static final String BUCKET = "my-bucket"; private static final String KEY = "my-key"; - private static final WireMockServer WM = new WireMockServer(WireMockConfiguration.wireMockConfig().dynamicPort()); private S3AsyncClient s3; @BeforeAll - public static void setup() { - WM.start(); - // Execute this statement before constructing the SDK service client. - Log.initLoggingToStdout(Log.LogLevel.Trace); + public static void setUpBeforeAll() { + System.setProperty("aws.crt.debugnative", "true"); + Log.initLoggingToStdout(Log.LogLevel.Warn); } - @AfterAll - public static void teardown() { - WM.stop(); + @BeforeEach + public void setup(WireMockRuntimeInfo wiremock) { + s3 = S3AsyncClient.crtBuilder() + .endpointOverride(URI.create("http://localhost:" + wiremock.getHttpPort())) + .forcePathStyle(true) + .region(Region.US_EAST_1) + .build(); + } @AfterEach - public void methodTeardown() { - if (s3 != null) { - s3.close(); - } - s3 = null; + public void tearDown() { + s3.close(); } + @AfterAll + public static void verifyCrtResource() { + CrtResource.waitForNoResources(); + } + + @Test public void getObject_headObjectOk_getObjectThrows_operationThrows() { - s3 = S3AsyncClient.crtBuilder() - .endpointOverride(URI.create("http://localhost:" + WM.port())) - .forcePathStyle(true) - .region(Region.US_EAST_1) - .build(); - String path = String.format("/%s/%s", BUCKET, KEY); - WM.stubFor(WireMock.head(WireMock.urlPathEqualTo(path)) - .willReturn(WireMock.aResponse() - .withStatus(200) - .withHeader("ETag", "etag") - .withHeader("Content-Length", "5"))); + stubFor(head(urlPathEqualTo(path)) + .willReturn(WireMock.aResponse() + .withStatus(200) + .withHeader("ETag", "etag") + .withHeader("Content-Length", "5"))); String errorContent = "" + "\n" @@ -82,39 +91,35 @@ public void getObject_headObjectOk_getObjectThrows_operationThrows() { + " request-id\n" + " host-id\n" + ""; - WM.stubFor(WireMock.get(WireMock.urlPathEqualTo(path)) - .willReturn(WireMock.aResponse() - .withStatus(403) - .withBody(errorContent))); + stubFor(get(urlPathEqualTo(path)) + .willReturn(WireMock.aResponse() + .withStatus(403) + .withBody(errorContent))); assertThatThrownBy(s3.getObject(r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBytes())::join) .hasCauseInstanceOf(S3Exception.class) .hasMessageContaining("User does not have permission") .hasMessageContaining("Status Code: 403"); + + } @Test public void getObject_headObjectOk_getObjectOk_operationSucceeds() { - s3 = S3AsyncClient.crtBuilder() - .endpointOverride(URI.create("http://localhost:" + WM.port())) - .forcePathStyle(true) - .region(Region.US_EAST_1) - .build(); - String path = String.format("/%s/%s", BUCKET, KEY); byte[] content = "hello".getBytes(StandardCharsets.UTF_8); - WM.stubFor(WireMock.head(WireMock.urlPathEqualTo(path)) - .willReturn(WireMock.aResponse() - .withStatus(200) - .withHeader("ETag", "etag") - .withHeader("Content-Length", Integer.toString(content.length)))); - WM.stubFor(WireMock.get(WireMock.urlPathEqualTo(path)) - .willReturn(WireMock.aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/plain") - .withBody(content))); + stubFor(head(urlPathEqualTo(path)) + .willReturn(WireMock.aResponse() + .withStatus(200) + .withHeader("ETag", "etag") + .withHeader("Content-Length", Integer.toString(content.length)))); + stubFor(get(urlPathEqualTo(path)) + .willReturn(WireMock.aResponse() + .withStatus(200) + .withHeader("Content-Type", "text/plain") + .withBody(content))); String objectContent = s3.getObject(r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBytes()) .join() @@ -125,18 +130,11 @@ public void getObject_headObjectOk_getObjectOk_operationSucceeds() { @Test public void getObject_headObjectThrows_operationThrows() { - s3 = S3AsyncClient.crtBuilder() - .endpointOverride(URI.create("http://localhost:" + WM.port())) - .forcePathStyle(true) - .region(Region.US_EAST_1) - .build(); - String path = String.format("/%s/%s", BUCKET, KEY); - - WM.stubFor(WireMock.head(WireMock.urlPathEqualTo(path)) - .willReturn(WireMock.aResponse() - .withStatus(403))); + stubFor(head(urlPathEqualTo(path)) + .willReturn(WireMock.aResponse() + .withStatus(403))); assertThatThrownBy(s3.getObject(r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBytes())::join) .hasCauseInstanceOf(S3Exception.class) diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/functionaltests/S3ExpressCreateSessionTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/functionaltests/S3ExpressCreateSessionTest.java index a2751cba65f0..815736f9d1e6 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/functionaltests/S3ExpressCreateSessionTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/functionaltests/S3ExpressCreateSessionTest.java @@ -64,10 +64,12 @@ import software.amazon.awssdk.services.s3.model.Protocol; import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.utils.AttributeMap; +import software.amazon.awssdk.utils.Logger; import software.amazon.awssdk.utils.http.SdkHttpUtils; @WireMockTest(httpsEnabled = true) public class S3ExpressCreateSessionTest extends BaseRuleSetClientTest { + private static final Logger log = Logger.loggerFor(S3ExpressCreateSessionTest.class); private static final Function WM_HTTP_ENDPOINT = wm -> URI.create(wm.getHttpBaseUrl()); private static final Function WM_HTTPS_ENDPOINT = wm -> URI.create(wm.getHttpsBaseUrl()); @@ -329,9 +331,8 @@ private static final class CapturingInterceptor implements ExecutionInterceptor public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { SdkHttpRequest sdkHttpRequest = context.httpRequest(); this.headers = sdkHttpRequest.headers(); - System.out.printf("%s %s%n", sdkHttpRequest.method(), sdkHttpRequest.encodedPath()); - headers.forEach((k, strings) -> System.out.printf("%s, %s%n", k, strings)); - System.out.println(); + log.debug(() -> String.format("%s %s%n", sdkHttpRequest.method(), sdkHttpRequest.encodedPath())); + headers.forEach((k, strings) -> log.debug(() -> String.format("%s, %s%n", k, strings))); } } } diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/functionaltests/S3ExpressTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/functionaltests/S3ExpressTest.java index 4373a90df9d8..71f009165590 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/functionaltests/S3ExpressTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/functionaltests/S3ExpressTest.java @@ -70,11 +70,12 @@ import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.UploadPartRequest; import software.amazon.awssdk.utils.AttributeMap; +import software.amazon.awssdk.utils.Logger; import software.amazon.awssdk.utils.http.SdkHttpUtils; @WireMockTest(httpsEnabled = true) public class S3ExpressTest extends BaseRuleSetClientTest { - + private static final Logger log = Logger.loggerFor(S3ExpressTest.class); private static final Function WM_HTTP_ENDPOINT = wm -> URI.create(wm.getHttpBaseUrl()); private static final Function WM_HTTPS_ENDPOINT = wm -> URI.create(wm.getHttpsBaseUrl()); private static final AwsCredentialsProvider CREDENTIALS_PROVIDER = @@ -207,7 +208,7 @@ private void createClientAndCallPutObject(ClientType clientType, Protocol protoc } private void createClientAndCallUploadPart(ClientType clientType, Protocol protocol, S3ExpressSessionAuth s3ExpressSessionAuth, - ChecksumAlgorithm checksumAlgorithm, WireMockRuntimeInfo wm) { + ChecksumAlgorithm checksumAlgorithm, WireMockRuntimeInfo wm) { UploadPartRequest.Builder requestBuilder = UploadPartRequest.builder().bucket(DEFAULT_BUCKET).key(DEFAULT_KEY).partNumber(0).uploadId("test"); if (checksumAlgorithm != ChecksumAlgorithm.UNKNOWN_TO_SDK_VERSION) { @@ -295,7 +296,7 @@ void verifyUploadPartHeaders(ClientType clientType, Protocol protocol, ChecksumA assertThat(headers.get("x-amz-content-sha256")).isNotNull(); if ((protocol == Protocol.HTTPS || clientType == ClientType.ASYNC) && - checksumAlgorithm == ChecksumAlgorithm.UNKNOWN_TO_SDK_VERSION) { + checksumAlgorithm == ChecksumAlgorithm.UNKNOWN_TO_SDK_VERSION) { assertThat(headers.get("x-amz-content-sha256").get(0)).isEqualToIgnoringCase("UNSIGNED-PAYLOAD"); } else { assertThat(headers.get("x-amz-decoded-content-length")).isNotNull(); @@ -431,9 +432,8 @@ private static final class CapturingInterceptor implements ExecutionInterceptor public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { SdkHttpRequest sdkHttpRequest = context.httpRequest(); this.headers = sdkHttpRequest.headers(); - System.out.printf("%s %s%n", sdkHttpRequest.method(), sdkHttpRequest.encodedPath()); - headers.forEach((k, strings) -> System.out.printf("%s, %s%n", k, strings)); - System.out.println(); + log.debug(() -> String.format("%s %s%n", sdkHttpRequest.method(), sdkHttpRequest.encodedPath())); + headers.forEach((k, strings) -> log.debug(() -> String.format("%s, %s%n", k, strings))); } } -} +} \ No newline at end of file diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClientRedirectTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClientRedirectTest.java index c4951f3a3bb4..3af7a6651d02 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClientRedirectTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClientRedirectTest.java @@ -131,14 +131,6 @@ protected void verifyHeadBucketServiceCall(int times) { verify(mockDelegateAsyncClient, times(times)).headBucket(any(Consumer.class)); } - @Override - protected void stubApiWithAuthorizationHeaderMalformedError() { - when(mockDelegateAsyncClient.listObjects(any(ListObjectsRequest.class))) - .thenReturn(CompletableFutureUtils.failedFuture( - new CompletionException(redirectException(400, null, "AuthorizationHeaderMalformed", null)))) - .thenReturn(CompletableFuture.completedFuture(ListObjectsResponse.builder().contents(S3_OBJECTS).build())); - } - @Override protected void stubApiWithAuthorizationHeaderWithInternalSoftwareError() { @@ -150,16 +142,6 @@ protected void stubApiWithAuthorizationHeaderWithInternalSoftwareError() { "InternalError", null)))); } - @Override - protected void stubHeadBucketRedirectWithAuthorizationHeaderMalformed() { - when(mockDelegateAsyncClient.headBucket(any(HeadBucketRequest.class))) - .thenReturn(CompletableFutureUtils.failedFuture( - new CompletionException(redirectException(400,CROSS_REGION.id(), "AuthorizationHeaderMalformed", null)))); - when(mockDelegateAsyncClient.headBucket(any(Consumer.class))) - .thenReturn(CompletableFutureUtils.failedFuture( - new CompletionException(redirectException(400,CROSS_REGION.id(), "AuthorizationHeaderMalformed", null)))); - } - @Override protected void verifyNoBucketCall() { assertThatExceptionOfType(CompletionException.class) diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClientTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClientTest.java index 061cbccffe21..917214f1af67 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClientTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionAsyncClientTest.java @@ -17,9 +17,11 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionRedirectTestBase.CHANGED_CROSS_REGION; import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionRedirectTestBase.CROSS_REGION; -import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionRedirectTestBase.CROSS_REGION_BUCKET; import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionRedirectTestBase.OVERRIDE_CONFIGURED_REGION; import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionRedirectTestBase.X_AMZ_BUCKET_REGION; @@ -37,12 +39,17 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.ValueSource; +import org.mockito.ArgumentCaptor; +import org.mockito.ArgumentMatchers; +import org.mockito.Mockito; import software.amazon.awssdk.core.ResponseBytes; import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.core.interceptor.Context; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; +import software.amazon.awssdk.endpoints.Endpoint; import software.amazon.awssdk.endpoints.EndpointProvider; import software.amazon.awssdk.http.AbortableInputStream; import software.amazon.awssdk.http.HttpExecuteResponse; @@ -50,8 +57,11 @@ import software.amazon.awssdk.http.SdkHttpMethod; import software.amazon.awssdk.http.SdkHttpRequest; import software.amazon.awssdk.http.SdkHttpResponse; +import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.S3AsyncClientBuilder; +import software.amazon.awssdk.services.s3.endpoints.S3EndpointParams; +import software.amazon.awssdk.services.s3.endpoints.S3EndpointProvider; import software.amazon.awssdk.services.s3.endpoints.internal.DefaultS3EndpointProvider; import software.amazon.awssdk.services.s3.internal.crossregion.endpointprovider.BucketEndpointProvider; import software.amazon.awssdk.services.s3.model.GetObjectRequest; @@ -87,16 +97,13 @@ private static Stream stubSuccessfulRedirectResponses() { Consumer successStubConsumer = mockAsyncHttpClient -> mockAsyncHttpClient.stubResponses(successHttpResponse(), successHttpResponse()); - Consumer malFormerAuthError = mockAsyncHttpClient -> - mockAsyncHttpClient.stubResponses( - customHttpResponse(400, "AuthorizationHeaderMalformed", null), - customHttpResponse(400, "AuthorizationHeaderMalformed", CROSS_REGION_BUCKET), - successHttpResponse()); + Consumer tempRedirectStubConsumer = mockAsyncHttpClient -> + mockAsyncHttpClient.stubResponses(customHttpResponseWithUnknownErrorCode(307, CROSS_REGION.id()), successHttpResponse()); return Stream.of( Arguments.of(redirectStubConsumer, BucketEndpointProvider.class, "Redirect Error with region in x-amz-bucket-header"), - Arguments.of(successStubConsumer, DefaultS3EndpointProvider.class, "Success response" ), - Arguments.of(malFormerAuthError, BucketEndpointProvider.class, "Authorization Malformed Error with region in x-amz-bucket-header in Head bucket response" ) + Arguments.of(successStubConsumer, BucketEndpointProvider.class, "Success response" ), + Arguments.of(tempRedirectStubConsumer, BucketEndpointProvider.class, "Permanent redirect Error with region in x-amz-bucket-header" ) ); } @@ -116,21 +123,8 @@ private static Stream stubFailureResponses() { mockAsyncHttpClient.stubResponses(customHttpResponseWithUnknownErrorCode(301, null), customHttpResponseWithUnknownErrorCode(301, null), successHttpResponse(), successHttpResponse()); - - Consumer authMalformedWithNoRegion = mockAsyncHttpClient -> - mockAsyncHttpClient.stubResponses(customHttpResponse(400, "AuthorizationHeaderMalformed", null), - customHttpResponse(400, "AuthorizationHeaderMalformed", null)); - - Consumer authMalformedAuthorizationFailureAfterRegionRetrieval = mockAsyncHttpClient -> - mockAsyncHttpClient.stubResponses(customHttpResponse(400, "AuthorizationHeaderMalformed", null), - customHttpResponse(400, "AuthorizationHeaderMalformed", CROSS_REGION.id()), - customHttpResponse(400, "AuthorizationHeaderMalformed", CROSS_REGION.id())); - return Stream.of( - Arguments.of(redirectFailedWithNoRegionFailure, 301, 2, noRegionOnHeadBucket, noregionOnHeadBucketHttpMethodListMethodList), - Arguments.of(authMalformedWithNoRegion, 400, 2, noRegionOnHeadBucket, noregionOnHeadBucketHttpMethodListMethodList), - Arguments.of(authMalformedAuthorizationFailureAfterRegionRetrieval, 400, 3, regionOnHeadBucket, - regionOnHeadBucketHttpMethodList) + Arguments.of(redirectFailedWithNoRegionFailure, 301, 2, noRegionOnHeadBucket, noregionOnHeadBucketHttpMethodListMethodList) ); } @@ -416,10 +410,71 @@ void given_SimpleClient_when_StandardOperation_then_DoesNotContainCrossRegionUse assertThat(mockAsyncHttpClient.getLastRequest().firstMatchingHeader("User-Agent").get()).doesNotContain("hll/cross"); } + @Test + void given_US_EAST_1_Client_resolvesToGlobalEndpoints_when_crossRegion_is_False(){ + mockAsyncHttpClient.stubResponses(successHttpResponse()); + S3AsyncClient s3Client = clientBuilder().region(Region.US_EAST_1).build(); + s3Client.getObject(r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBytes()).join(); + assertThat(mockAsyncHttpClient.getLastRequest().host()).isEqualTo("bucket.s3.amazonaws.com"); + assertThat(captureInterceptor.endpointProvider).isInstanceOf(DefaultS3EndpointProvider.class); + } + + @Test + void given_US_EAST_1_Client_resolveToRegionalEndpoints_when_crossRegion_is_True(){ + mockAsyncHttpClient.stubResponses(successHttpResponse()); + S3AsyncClient s3Client = clientBuilder().crossRegionAccessEnabled(true).region(Region.US_EAST_1).build(); + s3Client.getObject(r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBytes()).join(); + assertThat(mockAsyncHttpClient.getLastRequest().host()).isEqualTo("bucket.s3.us-east-1.amazonaws.com"); + assertThat(captureInterceptor.endpointProvider).isInstanceOf(BucketEndpointProvider.class); + } + + @ParameterizedTest + @ValueSource(strings = {"us-east-1", "us-east-2", "us-west-1"}) + void given_AnyRegion_Client_Updates_the_useGlobalEndpointFlag_asFalse(String region) { + mockAsyncHttpClient.stubResponses(successHttpResponse()); + S3EndpointProvider mockEndpointProvider = Mockito.mock(S3EndpointProvider.class); + + when(mockEndpointProvider.resolveEndpoint(ArgumentMatchers.any(S3EndpointParams.class))) + .thenReturn(CompletableFuture.completedFuture(Endpoint.builder().url(URI.create("https://bucket.s3.amazonaws.com")).build())); + + S3AsyncClient s3Client = clientBuilder().crossRegionAccessEnabled(true) + .region(Region.of(region)) + .endpointProvider(mockEndpointProvider).build(); + s3Client.getObject(r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBytes()).join(); + assertThat(captureInterceptor.endpointProvider).isInstanceOf(BucketEndpointProvider.class); + ArgumentCaptor collectionCaptor = ArgumentCaptor.forClass(S3EndpointParams.class); + verify(mockEndpointProvider, atLeastOnce()).resolveEndpoint(collectionCaptor.capture()); + collectionCaptor.getAllValues().forEach(resolvedParams -> { + assertThat(resolvedParams.region()).isEqualTo(Region.of(region)); + assertThat(resolvedParams.useGlobalEndpoint()).isFalse(); + }); + } + + @Test + void given_globalRegion_Client_Updates_region_to_useast1_and_useGlobalEndpointFlag_as_False() { + String region = Region.AWS_GLOBAL.id(); + mockAsyncHttpClient.stubResponses(successHttpResponse()); + S3EndpointProvider mockEndpointProvider = Mockito.mock(S3EndpointProvider.class); + + when(mockEndpointProvider.resolveEndpoint(ArgumentMatchers.any(S3EndpointParams.class))) + .thenReturn(CompletableFuture.completedFuture(Endpoint.builder().url(URI.create("https://bucket.s3.amazonaws.com")).build())); + + S3AsyncClient s3Client = clientBuilder().crossRegionAccessEnabled(true) + .region(Region.of(region)) + .endpointProvider(mockEndpointProvider).build(); + s3Client.getObject(r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBytes()).join(); + assertThat(captureInterceptor.endpointProvider).isInstanceOf(BucketEndpointProvider.class); + ArgumentCaptor collectionCaptor = ArgumentCaptor.forClass(S3EndpointParams.class); + verify(mockEndpointProvider, atLeastOnce()).resolveEndpoint(collectionCaptor.capture()); + collectionCaptor.getAllValues().forEach(resolvedParams -> { + assertThat(resolvedParams.region()).isEqualTo(Region.US_EAST_1); + assertThat(resolvedParams.useGlobalEndpoint()).isFalse(); + }); + } + private S3AsyncClientBuilder clientBuilder() { return S3AsyncClient.builder() .httpClient(mockAsyncHttpClient) - .endpointOverride(URI.create("http://localhost")) .overrideConfiguration(c -> c.addExecutionInterceptor(captureInterceptor)); } diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionRedirectTestBase.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionRedirectTestBase.java index d5123149ad00..470e6f036581 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionRedirectTestBase.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionRedirectTestBase.java @@ -65,7 +65,8 @@ void decoratorAttemptsToRetryWithRegionNameInErrorResponse(Integer redirect) thr ArgumentCaptor requestArgumentCaptor = ArgumentCaptor.forClass(ListObjectsRequest.class); verifyTheApiServiceCall(2, requestArgumentCaptor); - assertThat(requestArgumentCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider()).isNotPresent(); + assertThat(requestArgumentCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider().get()) + .isInstanceOf(BucketEndpointProvider.class); verifyTheEndPointProviderOverridden(1, requestArgumentCaptor, CROSS_REGION.id()); verifyHeadBucketServiceCall(0); @@ -86,7 +87,8 @@ void decoratorUsesCache_when_CrossRegionAlreadyPresent(Integer redirect) throws ArgumentCaptor requestArgumentCaptor = ArgumentCaptor.forClass(ListObjectsRequest.class); verifyTheApiServiceCall(3, requestArgumentCaptor); - assertThat(requestArgumentCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider()).isNotPresent(); + assertThat(requestArgumentCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider().get()) + .isInstanceOf(BucketEndpointProvider.class); verifyTheEndPointProviderOverridden(1, requestArgumentCaptor, CROSS_REGION.id()); verifyTheEndPointProviderOverridden(2, requestArgumentCaptor, CROSS_REGION.id()); verifyHeadBucketServiceCall(0); @@ -120,7 +122,8 @@ void headBucketCalled_when_RedirectDoesNotHasRegionName(Integer redirect) throws ArgumentCaptor requestArgumentCaptor = ArgumentCaptor.forClass(ListObjectsRequest.class); verifyTheApiServiceCall(2, requestArgumentCaptor); - assertThat(requestArgumentCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider()).isNotPresent(); + assertThat(requestArgumentCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider().get()) + .isInstanceOf(BucketEndpointProvider.class); verifyTheEndPointProviderOverridden(1, requestArgumentCaptor, CROSS_REGION.id()); verifyHeadBucketServiceCall(1); } @@ -144,7 +147,8 @@ void headBucketCalledAndCached__when_RedirectDoesNotHasRegionName(Integer redire // We need to captor again so that we get the args used in second API Call ArgumentCaptor overAllPostCacheCaptor = ArgumentCaptor.forClass(ListObjectsRequest.class); verifyTheApiServiceCall(3, overAllPostCacheCaptor); - assertThat(overAllPostCacheCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider()).isNotPresent(); + assertThat(overAllPostCacheCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider().get()) + .isInstanceOf(BucketEndpointProvider.class); verifyTheEndPointProviderOverridden(1, overAllPostCacheCaptor, CROSS_REGION.id()); verifyTheEndPointProviderOverridden(2, overAllPostCacheCaptor, CROSS_REGION.id()); verifyHeadBucketServiceCall(1); @@ -163,62 +167,8 @@ void requestsAreNotOverridden_when_NoBucketInRequest() throws Throwable { verifyHeadBucketServiceCall(0); } - @Test - void given_CrossRegionClient_when_AuthorizationFailureInMainCall_then_RegionRetrievedFromHeadBucketFailureResponse() throws Throwable { - stubServiceClientConfiguration(); - stubApiWithAuthorizationHeaderMalformedError() ; - stubHeadBucketRedirect(); - ListObjectsResponse firstListObjectCall = apiCallToService(); - assertThat(firstListObjectCall.contents()).isEqualTo(S3_OBJECTS); - - ArgumentCaptor preCacheCaptor = ArgumentCaptor.forClass(ListObjectsRequest.class); - verifyTheApiServiceCall(2, preCacheCaptor); - // We need to get the BucketEndpointProvider in order to update the cache - verifyTheEndPointProviderOverridden(1, preCacheCaptor, CROSS_REGION.id()); - - - ListObjectsResponse secondListObjectCall = apiCallToService(); - assertThat(secondListObjectCall.contents()).isEqualTo(S3_OBJECTS); - // We need to captor again so that we get the args used in second API Call - ArgumentCaptor overAllPostCacheCaptor = ArgumentCaptor.forClass(ListObjectsRequest.class); - verifyTheApiServiceCall(3, overAllPostCacheCaptor); - assertThat(overAllPostCacheCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider()).isNotPresent(); - verifyTheEndPointProviderOverridden(1, overAllPostCacheCaptor, CROSS_REGION.id()); - verifyTheEndPointProviderOverridden(2, overAllPostCacheCaptor, CROSS_REGION.id()); - verifyHeadBucketServiceCall(1); - } - - - @Test - void given_CrossRegionClient_when_AuthorizationFailureInHeadBucketWithRegion_then_CrossRegionCallSucceeds() throws Throwable { - stubServiceClientConfiguration(); - stubApiWithAuthorizationHeaderMalformedError() ; - stubHeadBucketRedirectWithAuthorizationHeaderMalformed(); - ListObjectsResponse firstListObjectCall = apiCallToService(); - assertThat(firstListObjectCall.contents()).isEqualTo(S3_OBJECTS); - - ArgumentCaptor preCacheCaptor = ArgumentCaptor.forClass(ListObjectsRequest.class); - verifyTheApiServiceCall(2, preCacheCaptor); - // We need to get the BucketEndpointProvider in order to update the cache - verifyTheEndPointProviderOverridden(1, preCacheCaptor, CROSS_REGION.id()); - ListObjectsResponse secondListObjectCall = apiCallToService(); - assertThat(secondListObjectCall.contents()).isEqualTo(S3_OBJECTS); - // We need to captor again so that we get the args used in second API Call - ArgumentCaptor overAllPostCacheCaptor = ArgumentCaptor.forClass(ListObjectsRequest.class); - verifyTheApiServiceCall(3, overAllPostCacheCaptor); - assertThat(overAllPostCacheCaptor.getAllValues().get(0).overrideConfiguration().get().endpointProvider()).isNotPresent(); - verifyTheEndPointProviderOverridden(1, overAllPostCacheCaptor, CROSS_REGION.id()); - verifyTheEndPointProviderOverridden(2, overAllPostCacheCaptor, CROSS_REGION.id()); - verifyHeadBucketServiceCall(1); - } - protected abstract void stubApiWithAuthorizationHeaderWithInternalSoftwareError(); - - protected abstract void stubHeadBucketRedirectWithAuthorizationHeaderMalformed(); - - protected abstract void stubApiWithAuthorizationHeaderMalformedError(); - protected abstract void verifyNoBucketCall(); protected abstract void verifyNoBucketApiCall(int i, ArgumentCaptor requestArgumentCaptor); diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClientRedirectTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClientRedirectTest.java index 276cf2c43728..1b2bb7cfb0b0 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClientRedirectTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClientRedirectTest.java @@ -49,19 +49,6 @@ protected void stubApiWithAuthorizationHeaderWithInternalSoftwareError() { when(mockDelegateClient.headBucket(any(HeadBucketRequest.class))) .thenThrow(redirectException(500, null, "InternalError", null)); } - @Override - protected void stubHeadBucketRedirectWithAuthorizationHeaderMalformed() { - when(mockDelegateClient.headBucket(any(HeadBucketRequest.class))) - .thenThrow(redirectException(400, CROSS_REGION.id(), "AuthorizationHeaderMalformed", null)) - .thenReturn(HeadBucketResponse.builder().build()); - } - - @Override - protected void stubApiWithAuthorizationHeaderMalformedError() { - when(mockDelegateClient.listObjects(any(ListObjectsRequest.class))) - .thenThrow(redirectException(400, null, "AuthorizationHeaderMalformed", null)) - .thenReturn(ListObjectsResponse.builder().contents(S3_OBJECTS).build()); - } @Override protected void verifyNoBucketCall() { diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClientTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClientTest.java index 0501768c2e73..6d9d45e5c431 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClientTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crossregion/S3CrossRegionSyncClientTest.java @@ -17,16 +17,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; -import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionAsyncClientTest.customHttpResponse; +import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionAsyncClientTest.customHttpResponseWithUnknownErrorCode; import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionAsyncClientTest.successHttpResponse; import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionRedirectTestBase.CHANGED_CROSS_REGION; import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionRedirectTestBase.CROSS_REGION; -import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionRedirectTestBase.CROSS_REGION_BUCKET; import static software.amazon.awssdk.services.s3.internal.crossregion.S3CrossRegionRedirectTestBase.OVERRIDE_CONFIGURED_REGION; +import java.net.URI; import java.util.Arrays; import java.util.List; +import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -35,16 +38,24 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.ValueSource; +import org.mockito.ArgumentCaptor; +import org.mockito.ArgumentMatchers; +import org.mockito.Mock; +import org.mockito.Mockito; import software.amazon.awssdk.core.interceptor.Context; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; +import software.amazon.awssdk.endpoints.Endpoint; import software.amazon.awssdk.endpoints.EndpointProvider; import software.amazon.awssdk.http.SdkHttpMethod; import software.amazon.awssdk.http.SdkHttpRequest; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.S3ClientBuilder; +import software.amazon.awssdk.services.s3.endpoints.S3EndpointParams; +import software.amazon.awssdk.services.s3.endpoints.S3EndpointProvider; import software.amazon.awssdk.services.s3.endpoints.internal.DefaultS3EndpointProvider; import software.amazon.awssdk.services.s3.internal.crossregion.endpointprovider.BucketEndpointProvider; import software.amazon.awssdk.services.s3.model.GetObjectRequest; @@ -78,23 +89,13 @@ private static Stream stubSuccessfulRedirectResponses() { Consumer successStubConsumer = mockSyncHttpClient -> mockSyncHttpClient.stubResponses(successHttpResponse(), successHttpResponse()); - Consumer malFormerAuthError = mockSyncHttpClient -> - mockSyncHttpClient.stubResponses( - customHttpResponse(400, "AuthorizationHeaderMalformed",null ), - customHttpResponse(400, "AuthorizationHeaderMalformed",CROSS_REGION_BUCKET ), - successHttpResponse()); - return Stream.of( Arguments.of(redirectStubConsumer, BucketEndpointProvider.class, "Redirect Error with region in x-amz-bucket-header"), Arguments.of(successStubConsumer, - DefaultS3EndpointProvider.class, - "Success response" ), - Arguments.of(malFormerAuthError, BucketEndpointProvider.class, - "Authorization Malformed Error with region in x-amz-bucket-header in Head bucket response" ) - ); + "Success response" )); } public static Stream stubFailureResponses() { @@ -113,14 +114,6 @@ public static Stream stubFailureResponses() { customHttpResponseWithUnknownErrorCode(301, null), successHttpResponse(), successHttpResponse()); - Consumer authMalformedWithNoRegion = mockSyncHttpClient -> - mockSyncHttpClient.stubResponses(customHttpResponse(400, "AuthorizationHeaderMalformed", null), - customHttpResponse(400, "AuthorizationHeaderMalformed", null)); - - Consumer authMalformedAuthorizationFailureAfterRegionRetrieval = mockSyncHttpClient -> - mockSyncHttpClient.stubResponses(customHttpResponse(400, "AuthorizationHeaderMalformed", null), - customHttpResponse(400, "AuthorizationHeaderMalformed", CROSS_REGION.id()), - customHttpResponse(400, "AuthorizationHeaderMalformed", CROSS_REGION.id())); return Stream.of( @@ -129,20 +122,7 @@ public static Stream stubFailureResponses() { 2, noRegionOnHeadBucket, noregionOnHeadBucketHttpMethodListMethodList - ), - Arguments.of(authMalformedWithNoRegion, - 400, - 2, - noRegionOnHeadBucket, - noregionOnHeadBucketHttpMethodListMethodList - ), - Arguments.of(authMalformedAuthorizationFailureAfterRegionRetrieval, - 400, - 3, - regionOnHeadBucket, - regionOnHeadBucketHttpMethodList ) - ); } @@ -156,7 +136,7 @@ private static Stream stubOverriddenEndpointProviderResponses() { return Stream.of( Arguments.of(redirectStubConsumer, BucketEndpointProvider.class, CROSS_REGION, "Redirect error with Region in x-amz-bucket-region header"), - Arguments.of(successStubConsumer, TestEndpointProvider.class, OVERRIDE_CONFIGURED_REGION, + Arguments.of(successStubConsumer, BucketEndpointProvider.class, OVERRIDE_CONFIGURED_REGION, "Success response.") ); } @@ -181,10 +161,7 @@ void given_CrossRegionClientWithExistingOverrideConfig_when_StandardOperationIsP String testCaseName) { stubConsumer.accept(mockSyncHttpClient); S3Client crossRegionClient = new S3CrossRegionSyncClient(defaultS3Client); - GetObjectRequest request = GetObjectRequest.builder() - .bucket(BUCKET) - .key(KEY) - .overrideConfiguration(o -> o.putHeader("someheader", "somevalue")) + GetObjectRequest request = getObjectBuilder() .build(); crossRegionClient.getObject(request); assertThat(captureInterceptor.endpointProvider).isInstanceOf(endpointProviderType); @@ -252,10 +229,7 @@ void given_CrossRegionClientWithCustomEndpointProvider_when_StandardOperationIsP .endpointProvider(new TestEndpointProvider()) .region(OVERRIDE_CONFIGURED_REGION) .build(); - GetObjectRequest request = GetObjectRequest.builder() - .bucket(BUCKET) - .key(KEY) - .overrideConfiguration(o -> o.putHeader("someheader", "somevalue")) + GetObjectRequest request = getObjectBuilder() .build(); crossRegionClient.getObject(request); assertThat(captureInterceptor.endpointProvider).isInstanceOf(endpointProviderType); @@ -263,6 +237,74 @@ void given_CrossRegionClientWithCustomEndpointProvider_when_StandardOperationIsP assertThat(mockSyncHttpClient.getLastRequest().encodedPath()).contains("test_prefix_"); assertThat(mockSyncHttpClient.getLastRequest().host()).contains(region.id()); } + @Test + void given_US_EAST_1_Client_resolvesToGlobalEndpoints_when_crossRegion_is_False(){ + mockSyncHttpClient.stubResponses(successHttpResponse()); + S3Client s3Client = clientBuilder().region(Region.US_EAST_1).build(); + s3Client.getObject(getObjectBuilder().build()); + assertThat(mockSyncHttpClient.getLastRequest().host()).isEqualTo("bucket.s3.amazonaws.com"); + assertThat(captureInterceptor.endpointProvider).isInstanceOf(DefaultS3EndpointProvider.class); + } + + @Test + void given_US_EAST_1_Client_resolveToRegionalEndpoints_when_crossRegion_is_True(){ + mockSyncHttpClient.stubResponses(successHttpResponse()); + S3Client s3Client = clientBuilder().crossRegionAccessEnabled(true).region(Region.US_EAST_1).build(); + s3Client.getObject(getObjectBuilder().build()); + assertThat(mockSyncHttpClient.getLastRequest().host()).isEqualTo("bucket.s3.us-east-1.amazonaws.com"); + assertThat(captureInterceptor.endpointProvider).isInstanceOf(BucketEndpointProvider.class); + } + + @ParameterizedTest + @ValueSource(strings = {"us-east-1", "us-east-2", "us-west-1"}) + void given_AnyRegion_Client_Updates_the_useGlobalEndpointFlag_asFalse(String region) { + mockSyncHttpClient.stubResponses(successHttpResponse()); + S3EndpointProvider mockEndpointProvider = Mockito.mock(S3EndpointProvider.class); + + when(mockEndpointProvider.resolveEndpoint(ArgumentMatchers.any(S3EndpointParams.class))) + .thenReturn(CompletableFuture.completedFuture(Endpoint.builder().url(URI.create("https://bucket.s3.amazonaws.com")).build())); + + S3Client s3Client = clientBuilder().crossRegionAccessEnabled(true) + .region(Region.of(region)) + .endpointProvider(mockEndpointProvider).build(); + s3Client.getObject(getObjectBuilder().build()); + assertThat(captureInterceptor.endpointProvider).isInstanceOf(BucketEndpointProvider.class); + ArgumentCaptor collectionCaptor = ArgumentCaptor.forClass(S3EndpointParams.class); + verify(mockEndpointProvider, atLeastOnce()).resolveEndpoint(collectionCaptor.capture()); + collectionCaptor.getAllValues().forEach(resolvedParams ->{ + assertThat(resolvedParams.region()).isEqualTo(Region.of(region)); + assertThat(resolvedParams.useGlobalEndpoint()).isFalse(); + }); + } + + @Test + void given_globalRegion_Client_Updates_region_to_useast1_and_useGlobalEndpointFlag_as_False() { + String region = Region.AWS_GLOBAL.id(); + mockSyncHttpClient.stubResponses(successHttpResponse()); + S3EndpointProvider mockEndpointProvider = Mockito.mock(S3EndpointProvider.class); + + when(mockEndpointProvider.resolveEndpoint(ArgumentMatchers.any(S3EndpointParams.class))) + .thenReturn(CompletableFuture.completedFuture(Endpoint.builder().url(URI.create("https://bucket.s3.amazonaws.com")).build())); + + S3Client s3Client = clientBuilder().crossRegionAccessEnabled(true) + .region(Region.of(region)) + .endpointProvider(mockEndpointProvider).build(); + s3Client.getObject(getObjectBuilder().build()); + assertThat(captureInterceptor.endpointProvider).isInstanceOf(BucketEndpointProvider.class); + ArgumentCaptor collectionCaptor = ArgumentCaptor.forClass(S3EndpointParams.class); + verify(mockEndpointProvider, atLeastOnce()).resolveEndpoint(collectionCaptor.capture()); + collectionCaptor.getAllValues().forEach(resolvedParams ->{ + assertThat(resolvedParams.region()).isEqualTo(Region.US_EAST_1); + assertThat(resolvedParams.useGlobalEndpoint()).isFalse(); + }); + } + + private static GetObjectRequest.Builder getObjectBuilder() { + return GetObjectRequest.builder() + .bucket(BUCKET) + .key(KEY) + .overrideConfiguration(o -> o.putHeader("someheader", "somevalue")); + } @Test void given_CrossRegionClientWithFallbackCall_when_RegionNameNotPresent_then_CallsHeadObject() { @@ -365,7 +407,7 @@ void given_CrossRegionClient_when_noRegionInHeader_thenFallBackToRegionInHeadBuc @ParameterizedTest(name = "{index} - Status code = {1} with HeadBucket bucket regions {3}.") @MethodSource("stubFailureResponses") - void given_CrossRegionClient_when_CallsHeadObjectErrors_then_ShouldTerminateTheAPI( + void given_CrossRegionClient_when_CallsHeadBucketErrors_then_ShouldTerminateTheAPI( Consumer stubFailureResponses, Integer statusCode, Integer numberOfRequests, List redirectedBucketRegions, diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialProviderAdapterTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialProviderAdapterTest.java index ecdaeec905a7..d4a8a1e5faf3 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialProviderAdapterTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialProviderAdapterTest.java @@ -21,6 +21,7 @@ import java.nio.charset.StandardCharsets; import java.util.concurrent.CompletableFuture; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider; @@ -28,6 +29,7 @@ import software.amazon.awssdk.auth.credentials.AwsSessionCredentials; import software.amazon.awssdk.auth.credentials.HttpCredentialsProvider; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.crt.CrtResource; import software.amazon.awssdk.crt.auth.credentials.Credentials; import software.amazon.awssdk.crt.auth.credentials.CredentialsProvider; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; @@ -36,6 +38,10 @@ public class CrtCredentialProviderAdapterTest { + @AfterAll + public static void verifyCrtResource() { + CrtResource.waitForNoResources(); + } @Test void crtCredentials_withSession_shouldConvert() { IdentityProvider awsCredentialsProvider = StaticCredentialsProvider diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClientTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClientTest.java index ee44bf18839f..c88cdd24cfc9 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClientTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClientTest.java @@ -19,6 +19,8 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.util.concurrent.atomic.AtomicReference; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -29,6 +31,7 @@ import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; +import software.amazon.awssdk.crt.CrtResource; import software.amazon.awssdk.services.s3.DelegatingS3AsyncClient; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.endpoints.S3ClientContextParams; @@ -37,6 +40,11 @@ class DefaultS3CrtAsyncClientTest { + @AfterAll + public static void verifyCrtResource() { + CrtResource.waitForNoResources(); + } + @Test void requestSignerOverrideProvided_shouldThrowException() { try (S3AsyncClient s3AsyncClient = S3CrtAsyncClient.builder().build()) { @@ -96,21 +104,24 @@ void invalidConfig_shouldThrowException(long value) { } @Test - void crtClient_with_crossRegionAccessEnabled_asTrue(){ - S3AsyncClient crossRegionCrtClient = S3AsyncClient.crtBuilder().crossRegionAccessEnabled(true).build(); - assertThat(crossRegionCrtClient).isInstanceOf(DefaultS3CrtAsyncClient.class); - assertThat(((DelegatingS3AsyncClient)crossRegionCrtClient).delegate()).isInstanceOf(S3CrossRegionAsyncClient.class); + void crtClient_with_crossRegionAccessEnabled_asTrue() { + try (S3AsyncClient crossRegionCrtClient = S3AsyncClient.crtBuilder().crossRegionAccessEnabled(true).build()) { + assertThat(crossRegionCrtClient).isInstanceOf(DefaultS3CrtAsyncClient.class); + assertThat(((DelegatingS3AsyncClient)crossRegionCrtClient).delegate()).isInstanceOf(S3CrossRegionAsyncClient.class); + } } @Test - void crtClient_with_crossRegionAccessEnabled_asFalse(){ - S3AsyncClient crossRegionDisabledCrtClient = S3AsyncClient.crtBuilder().crossRegionAccessEnabled(false).build(); - assertThat(crossRegionDisabledCrtClient).isInstanceOf(DefaultS3CrtAsyncClient.class); - assertThat(((DelegatingS3AsyncClient)crossRegionDisabledCrtClient).delegate()).isNotInstanceOf(S3CrossRegionAsyncClient.class); - - S3AsyncClient defaultCrtClient = S3AsyncClient.crtBuilder().build(); - assertThat(defaultCrtClient).isInstanceOf(DefaultS3CrtAsyncClient.class); - assertThat(((DelegatingS3AsyncClient)defaultCrtClient).delegate()).isNotInstanceOf(S3CrossRegionAsyncClient.class); + void crtClient_with_crossRegionAccessEnabled_asFalse() { + try (S3AsyncClient crossRegionDisabledCrtClient = S3AsyncClient.crtBuilder().crossRegionAccessEnabled(false).build()) { + assertThat(crossRegionDisabledCrtClient).isInstanceOf(DefaultS3CrtAsyncClient.class); + assertThat(((DelegatingS3AsyncClient) crossRegionDisabledCrtClient).delegate()).isNotInstanceOf(S3CrossRegionAsyncClient.class); + } + + try (S3AsyncClient defaultCrtClient = S3AsyncClient.crtBuilder().build()) { + assertThat(defaultCrtClient).isInstanceOf(DefaultS3CrtAsyncClient.class); + assertThat(((DelegatingS3AsyncClient)defaultCrtClient).delegate()).isNotInstanceOf(S3CrossRegionAsyncClient.class); + } } } diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClientTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClientTest.java index 2af0ee9f65d1..72aa189c168c 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClientTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClientTest.java @@ -379,6 +379,8 @@ void build_shouldPassThroughParameters() { .maxConcurrency(100) .signingRegion(signingRegion) .thresholdInBytes(1024L) + .targetThroughputInGbps(3.5) + .maxNativeMemoryLimitInBytes(5L * 1024 * 1024 * 1024) .standardRetryOptions( new StandardRetryOptions() .withBackoffRetryOptions(new ExponentialBackoffRetryOptions().withMaxRetries(7))) @@ -409,6 +411,8 @@ void build_shouldPassThroughParameters() { assertThat(options.getMinThroughputBytesPerSecond()).isEqualTo(1024); }); assertThat(clientOptions.getMaxConnections()).isEqualTo(100); + assertThat(clientOptions.getThroughputTargetGbps()).isEqualTo(3.5); + assertThat(clientOptions.getMemoryLimitInBytes()).isEqualTo(5L * 1024 * 1024 * 1024); } } diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtClientGetObjectResourceManagementTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtClientGetObjectResourceManagementTest.java new file mode 100644 index 000000000000..fe2b1d5308bd --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtClientGetObjectResourceManagementTest.java @@ -0,0 +1,166 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.crt; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static com.github.tomakehurst.wiremock.client.WireMock.head; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; + +import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; +import java.io.File; +import java.io.IOException; +import java.net.URI; +import java.util.concurrent.CompletableFuture; +import org.assertj.core.util.Files; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.core.ResponseInputStream; +import software.amazon.awssdk.core.async.AsyncResponseTransformer; +import software.amazon.awssdk.crt.CrtResource; +import software.amazon.awssdk.crt.Log; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.model.GetObjectResponse; +import software.amazon.awssdk.testutils.RandomTempFile; +import software.amazon.awssdk.utils.IoUtils; + +/** + * Tests to make sure all CRT resources are cleaned up for get object. + */ +@WireMockTest +@Timeout(10) +public class S3CrtClientGetObjectResourceManagementTest { + + private static final String BUCKET = "Example-Bucket"; + private static final String KEY = "Example-Object"; + private static final long PART_SIZE = 1024 * 1024 * 5L; + private S3AsyncClient s3AsyncClient; + + @BeforeAll + public static void setUpBeforeAll() { + System.setProperty("aws.crt.debugnative", "true"); + Log.initLoggingToStdout(Log.LogLevel.Warn); + } + + @BeforeEach + public void setup(WireMockRuntimeInfo wiremock) { + stubGetObjectCalls(); + s3AsyncClient = S3AsyncClient.crtBuilder() + .region(Region.US_EAST_1) + .endpointOverride(URI.create("http://localhost:" + wiremock.getHttpPort())) + .credentialsProvider( + StaticCredentialsProvider.create(AwsBasicCredentials.create("key", "secret"))) + .minimumPartSizeInBytes(PART_SIZE) + .maxConcurrency(2) + .initialReadBufferSizeInBytes(1024L) + .build(); + } + + @AfterEach + public void tearDown() { + s3AsyncClient.close(); + } + + @AfterAll + public static void verifyCrtResource() { + CrtResource.waitForNoResources(); + } + + @Test + void toBlockingInputStream_abortStream_shouldCloseResources() throws IOException { + ResponseInputStream response = s3AsyncClient.getObject( + r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBlockingInputStream()).join(); + response.read(); + response.abort(); + } + + @Test + void toBlockingInputStream_closeStream_shouldCloseResources() throws IOException { + ResponseInputStream response = s3AsyncClient.getObject( + r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBlockingInputStream()).join(); + response.read(); + response.close(); + } + + @Test + void toFile_cancelRequest_shouldCloseResource() throws IOException { + CompletableFuture future = s3AsyncClient.getObject( + r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toFile(Files.newTemporaryFile())); + future.cancel(false); + } + + @Test + void toFile_happyCase_shouldCloseResource() throws IOException { + File file = RandomTempFile.randomUncreatedFile(); + CompletableFuture future = s3AsyncClient.getObject( + r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toFile(file)); + future.join(); + } + + @Test + void toBlockingInputStream_happyCase_shouldCloseResource() throws IOException { + try (ResponseInputStream response = s3AsyncClient.getObject( + r -> r.bucket(BUCKET).key(KEY), AsyncResponseTransformer.toBlockingInputStream()).join()) { + IoUtils.drainInputStream(response); + } + } + + private static void stubGetObjectCalls() { + int numOfParts = 3; + long finalPartSize = 1024 * 1024 * 4; + long totalContentSize = PART_SIZE * (numOfParts - 1) + finalPartSize; + + stubFor(head(anyUrl()).willReturn(aResponse().withStatus(200) + .withHeader("content-length", String.valueOf(totalContentSize)) + .withHeader("etag", "1234"))); + + for (int i = 0; i < numOfParts - 1; i++) { + int partNumberIndex = i + 1; + String contentRange = "bytes " + PART_SIZE * i + "-" + (PART_SIZE * partNumberIndex - 1) + "/" + totalContentSize; + String range = "bytes=" + PART_SIZE * i + "-" + (PART_SIZE * partNumberIndex - 1); + stubFor(get(anyUrl()).withHeader("Range", equalTo(range)).willReturn(aResponse().withStatus(200) + .withHeader("content-length", + String.valueOf(PART_SIZE)) + .withHeader("Content-Range", + contentRange) + .withHeader("etag", "1234") + .withBodyFile("part" + partNumberIndex))); + } + + // final part + String contentRange = "bytes " + PART_SIZE * numOfParts + "-" + (totalContentSize - 1) + "/" + totalContentSize; + String range = "bytes=" + PART_SIZE * (numOfParts - 1) + "-" + (totalContentSize - 1); + stubFor(get(anyUrl()).withHeader("Range", equalTo(range)).willReturn(aResponse().withStatus(200) + .withHeader("content-length", String.valueOf(finalPartSize)) + .withHeader("Content-Range", + contentRange) + .withHeader("etag", "1234") + .withBodyFile("part" + (numOfParts - 1)))); + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtClientWiremockTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtClientWiremockTest.java index 610eb508eca7..2776358ae64e 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtClientWiremockTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtClientWiremockTest.java @@ -18,16 +18,24 @@ import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.any; import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl; +import static com.github.tomakehurst.wiremock.client.WireMock.head; import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; +import com.github.tomakehurst.wiremock.client.WireMock; import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; import com.github.tomakehurst.wiremock.junit5.WireMockTest; import java.net.URI; +import java.util.concurrent.Executor; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.ArgumentMatchers; +import org.mockito.Mockito; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; import software.amazon.awssdk.crt.CrtResource; @@ -42,7 +50,21 @@ @WireMockTest public class S3CrtClientWiremockTest { + private static final String LOCATION = "http://Example-Bucket.s3.amazonaws.com/Example-Object"; + private static final String BUCKET = "Example-Bucket"; + private static final String KEY = "Example-Object"; + private static final String E_TAG = "\"3858f62230ac3c915f300c664312c11f-9\""; + private static final String XML_RESPONSE_BODY = String.format( + "\n" + + "\n" + + "%s\n" + + "%s\n" + + "%s\n" + + "%s\n" + + "", LOCATION, BUCKET, KEY, E_TAG); private S3AsyncClient s3AsyncClient; + private S3AsyncClient clientWithCustomExecutor; + private SpyableExecutor mockExecutor; @BeforeAll public static void setUpBeforeAll() { @@ -63,32 +85,52 @@ public void setup(WireMockRuntimeInfo wiremock) { @AfterEach public void tearDown() { s3AsyncClient.close(); + } + + @AfterAll + public static void verifyCrtResource() { CrtResource.waitForNoResources(); } @Test public void completeMultipartUpload_completeResponse() { - String location = "http://Example-Bucket.s3.amazonaws.com/Example-Object"; - String bucket = "Example-Bucket"; - String key = "Example-Object"; - String eTag = "\"3858f62230ac3c915f300c664312c11f-9\""; - String xmlResponseBody = String.format( - "\n" - + "\n" - + "%s\n" - + "%s\n" - + "%s\n" - + "%s\n" - + "", location, bucket, key, eTag); - - stubFor(any(anyUrl()).willReturn(aResponse().withStatus(200).withBody(xmlResponseBody))); + stubFor(any(anyUrl()).willReturn(aResponse().withStatus(200).withBody(XML_RESPONSE_BODY))); CompleteMultipartUploadResponse response = s3AsyncClient.completeMultipartUpload( - r -> r.bucket(bucket).key(key).uploadId("upload-id")).join(); + r -> r.bucket(BUCKET).key(KEY).uploadId("upload-id")).join(); + + assertThat(response.location()).isEqualTo(LOCATION); + assertThat(response.bucket()).isEqualTo(BUCKET); + assertThat(response.key()).isEqualTo(KEY); + assertThat(response.eTag()).isEqualTo(E_TAG); + } + + @Test + void overrideResponseCompletionExecutor_shouldCompleteWithCustomExecutor(WireMockRuntimeInfo wiremock) { + + mockExecutor = Mockito.spy(new SpyableExecutor()); + + try (S3AsyncClient s3AsyncClient = S3AsyncClient.crtBuilder() + .region(Region.US_EAST_1) + .endpointOverride(URI.create("http://localhost:" + wiremock.getHttpPort())) + .futureCompletionExecutor(mockExecutor) + .credentialsProvider( + StaticCredentialsProvider.create(AwsBasicCredentials.create("key", + "secret"))) + .build()) { + stubFor(any(anyUrl()).willReturn(aResponse().withStatus(200).withBody(XML_RESPONSE_BODY))); + + CompleteMultipartUploadResponse response = s3AsyncClient.completeMultipartUpload( + r -> r.bucket(BUCKET).key(KEY).uploadId("upload-id")).join(); + + verify(mockExecutor).execute(any(Runnable.class)); + } + } - assertThat(response.location()).isEqualTo(location); - assertThat(response.bucket()).isEqualTo(bucket); - assertThat(response.key()).isEqualTo(key); - assertThat(response.eTag()).isEqualTo(eTag); + private static class SpyableExecutor implements Executor { + @Override + public void execute(Runnable command) { + command.run(); + } } } diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapterTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapterTest.java index dbd86d3be6d8..f20df7c9aa4a 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapterTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapterTest.java @@ -53,7 +53,7 @@ public class S3CrtResponseHandlerAdapterTest { private S3FinishedResponseContext context; @Mock - private S3MetaRequest s3MetaRequest; + private S3MetaRequestWrapper s3MetaRequest; private CompletableFuture future; @Before @@ -62,8 +62,8 @@ public void setup() { sdkResponseHandler = spy(new TestResponseHandler()); responseHandlerAdapter = new S3CrtResponseHandlerAdapter(future, sdkResponseHandler, - null); - responseHandlerAdapter.metaRequest(s3MetaRequest); + null, + CompletableFuture.completedFuture(s3MetaRequest)); } @Test diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestWrapperTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestWrapperTest.java new file mode 100644 index 000000000000..68d57ee2ba48 --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3MetaRequestWrapperTest.java @@ -0,0 +1,70 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.crt; + +import java.util.concurrent.CompletableFuture; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.jupiter.MockitoExtension; +import software.amazon.awssdk.crt.s3.S3MetaRequest; + +@ExtendWith(MockitoExtension.class) +public class S3MetaRequestWrapperTest { + + @Mock + private S3MetaRequest request; + + private S3MetaRequestWrapper wrapper; + + @BeforeEach + void setUp() { + wrapper = new S3MetaRequestWrapper(request); + } + + @Test + void close_concurrentCalls_onlyExecuteOnce() { + CompletableFuture.allOf(CompletableFuture.runAsync(() -> wrapper.close()), + CompletableFuture.runAsync(() -> wrapper.close())).join(); + Mockito.verify(request, Mockito.times(1)).close(); + } + + @Test + void incrementWindow_afterClose_shouldBeNoOp() { + wrapper.close(); + wrapper.incrementReadWindow(10L); + Mockito.verify(request, Mockito.times(1)).close(); + Mockito.verify(request, Mockito.never()).incrementReadWindow(Mockito.anyLong()); + } + + @Test + void pause_afterClose_shouldBeNoOp() { + wrapper.close(); + wrapper.pause(); + Mockito.verify(request, Mockito.times(1)).close(); + Mockito.verify(request, Mockito.never()).pause(); + } + + @Test + void cancel_afterClose_shouldBeNoOp() { + wrapper.close(); + wrapper.cancel(); + Mockito.verify(request, Mockito.times(1)).close(); + Mockito.verify(request, Mockito.never()).cancel(); + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/handlers/ObjectMetadataInterceptorTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/handlers/ObjectMetadataInterceptorTest.java new file mode 100644 index 000000000000..a29fff164c8e --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/handlers/ObjectMetadataInterceptorTest.java @@ -0,0 +1,124 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.handlers; + +import static java.util.Arrays.asList; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import org.junit.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import software.amazon.awssdk.core.SdkRequest; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute; +import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest; +import software.amazon.awssdk.services.s3.model.GetObjectRequest; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; + +public class ObjectMetadataInterceptorTest { + private static final ObjectMetadataInterceptor INTERCEPTOR = new ObjectMetadataInterceptor(); + + + + public static List testCases() { + return asList( + tc(asList("a", "b", "c"), asList("a", "b", "c")), + tc(asList(" a ", "b", "c"), asList("a", "b", "c")), + tc(asList(" a", "\tb", "\tc"), asList("a", "b", "c")), + tc(asList("a\n", "\tb", "\tc\r\n"), asList("a", "b", "c")) + + ); + } + + @ParameterizedTest + @MethodSource("testCases") + public void modifyRequest_putObject_metadataKeysAreTrimmed(TestCase tc) { + Map metadata = tc.inputKeys.stream() + .collect(Collectors.toMap(k -> k, k -> "value")); + + Context.ModifyHttpRequest ctx = mock(Context.ModifyHttpRequest.class); + + PutObjectRequest put = PutObjectRequest.builder() + .metadata(metadata) + .build(); + + when(ctx.request()).thenReturn(put); + + ExecutionAttributes attrs = new ExecutionAttributes(); + attrs.putAttribute(SdkExecutionAttribute.OPERATION_NAME, "PutObject"); + + PutObjectRequest modified = (PutObjectRequest) INTERCEPTOR.modifyRequest(ctx, attrs); + + assertThat(modified.metadata().keySet()).containsExactlyElementsOf(tc.expectedKeys); + } + + @ParameterizedTest + @MethodSource("testCases") + public void modifyRequest_creatMultipartUpload_metadataKeysAreTrimmed(TestCase tc) { + Map metadata = tc.inputKeys.stream() + .collect(Collectors.toMap(k -> k, k -> "value")); + + Context.ModifyHttpRequest ctx = mock(Context.ModifyHttpRequest.class); + + CreateMultipartUploadRequest mpu = CreateMultipartUploadRequest.builder() + .metadata(metadata) + .build(); + + when(ctx.request()).thenReturn(mpu); + + ExecutionAttributes attrs = new ExecutionAttributes(); + attrs.putAttribute(SdkExecutionAttribute.OPERATION_NAME, "CreateMultipartUpload"); + + CreateMultipartUploadRequest modified = (CreateMultipartUploadRequest) INTERCEPTOR.modifyRequest(ctx, attrs); + + assertThat(modified.metadata().keySet()).containsExactlyElementsOf(tc.expectedKeys); + } + + @Test + public void modifyRequest_unknownOperation_ignores() { + Context.ModifyHttpRequest ctx = mock(Context.ModifyHttpRequest.class); + + GetObjectRequest get = GetObjectRequest.builder().build(); + + when(ctx.request()).thenReturn(get); + + ExecutionAttributes attrs = new ExecutionAttributes(); + attrs.putAttribute(SdkExecutionAttribute.OPERATION_NAME, "GetObject"); + + SdkRequest sdkRequest = INTERCEPTOR.modifyRequest(ctx, attrs); + + assertThat(sdkRequest).isEqualTo(get); + } + + private static TestCase tc(List input, List expected) { + return new TestCase(input, expected); + } + private static class TestCase { + private List inputKeys; + private List expectedKeys; + + public TestCase(List inputKeys, List expectedKeys) { + this.inputKeys = inputKeys; + this.expectedKeys = expectedKeys; + } + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/KnownContentLengthAsyncRequestBodySubscriberTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/KnownContentLengthAsyncRequestBodySubscriberTest.java new file mode 100644 index 000000000000..180754b66388 --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/KnownContentLengthAsyncRequestBodySubscriberTest.java @@ -0,0 +1,143 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.multipart; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.IOException; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentHashMap; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse; +import software.amazon.awssdk.services.s3.model.CompletedPart; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; +import software.amazon.awssdk.testutils.RandomTempFile; +import software.amazon.awssdk.utils.Pair; + +public class KnownContentLengthAsyncRequestBodySubscriberTest { + + // Should contain four parts: [8KB, 8KB, 8KB, 1KB] + private static final long MPU_CONTENT_SIZE = 25 * 1024; + private static final long PART_SIZE = 8 * 1024; + private static final int TOTAL_NUM_PARTS = 4; + private static final String UPLOAD_ID = "1234"; + private static RandomTempFile testFile; + private AsyncRequestBody asyncRequestBody; + private PutObjectRequest putObjectRequest; + private S3AsyncClient s3AsyncClient; + private MultipartUploadHelper multipartUploadHelper; + + @BeforeAll + public static void beforeAll() throws IOException { + testFile = new RandomTempFile("testfile.dat", MPU_CONTENT_SIZE); + } + + @AfterAll + public static void afterAll() { + testFile.delete(); + } + + @BeforeEach + public void beforeEach() { + s3AsyncClient = mock(S3AsyncClient.class); + multipartUploadHelper = mock(MultipartUploadHelper.class); + asyncRequestBody = AsyncRequestBody.fromFile(testFile); + putObjectRequest = PutObjectRequest.builder().bucket("bucket").key("key").build(); + } + + @Test + void pause_withOngoingCompleteMpuFuture_shouldReturnTokenAndCancelFuture() { + CompletableFuture completeMpuFuture = new CompletableFuture<>(); + int numExistingParts = 2; + S3ResumeToken resumeToken = configureSubscriberAndPause(numExistingParts, completeMpuFuture); + + verifyResumeToken(resumeToken, numExistingParts); + assertThat(completeMpuFuture).isCancelled(); + } + + @Test + void pause_withCompletedCompleteMpuFuture_shouldReturnNullToken() { + CompletableFuture completeMpuFuture = + CompletableFuture.completedFuture(CompleteMultipartUploadResponse.builder().build()); + int numExistingParts = 2; + S3ResumeToken resumeToken = configureSubscriberAndPause(numExistingParts, completeMpuFuture); + + assertThat(resumeToken).isNull(); + } + + @Test + void pause_withUninitiatedCompleteMpuFuture_shouldReturnToken() { + CompletableFuture completeMpuFuture = null; + int numExistingParts = 2; + S3ResumeToken resumeToken = configureSubscriberAndPause(numExistingParts, completeMpuFuture); + + verifyResumeToken(resumeToken, numExistingParts); + } + + private S3ResumeToken configureSubscriberAndPause(int numExistingParts, + CompletableFuture completeMpuFuture) { + Map existingParts = existingParts(numExistingParts); + KnownContentLengthAsyncRequestBodySubscriber subscriber = subscriber(putObjectRequest, asyncRequestBody, existingParts); + + when(multipartUploadHelper.completeMultipartUpload(any(CompletableFuture.class), any(String.class), + any(CompletedPart[].class), any(PutObjectRequest.class))) + .thenReturn(completeMpuFuture); + subscriber.onComplete(); + return subscriber.pause(); + } + + private KnownContentLengthAsyncRequestBodySubscriber subscriber(PutObjectRequest putObjectRequest, + AsyncRequestBody asyncRequestBody, + Map existingParts) { + + MpuRequestContext mpuRequestContext = MpuRequestContext.builder() + .request(Pair.of(putObjectRequest, asyncRequestBody)) + .contentLength(MPU_CONTENT_SIZE) + .partSize(PART_SIZE) + .uploadId(UPLOAD_ID) + .existingParts(existingParts) + .numPartsCompleted((long) existingParts.size()) + .build(); + + return new KnownContentLengthAsyncRequestBodySubscriber(mpuRequestContext, new CompletableFuture<>(), multipartUploadHelper); + } + + private Map existingParts(int numExistingParts) { + Map existingParts = new ConcurrentHashMap<>(); + for (int i = 1; i <= numExistingParts; i++) { + existingParts.put(i, CompletedPart.builder().partNumber(i).build()); + } + return existingParts; + } + + private void verifyResumeToken(S3ResumeToken s3ResumeToken, int numExistingParts) { + assertThat(s3ResumeToken).isNotNull(); + assertThat(s3ResumeToken.uploadId()).isEqualTo(UPLOAD_ID); + assertThat(s3ResumeToken.partSize()).isEqualTo(PART_SIZE); + assertThat(s3ResumeToken.totalNumParts()).isEqualTo(TOTAL_NUM_PARTS); + assertThat(s3ResumeToken.numPartsCompleted()).isEqualTo(numExistingParts); + } +} \ No newline at end of file diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MpuRequestContextTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MpuRequestContextTest.java new file mode 100644 index 000000000000..c858e7e8e9ec --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MpuRequestContextTest.java @@ -0,0 +1,73 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.multipart; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import nl.jqno.equalsverifier.EqualsVerifier; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.services.s3.model.CompletedPart; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.utils.Pair; + +public class MpuRequestContextTest { + + private static final Pair REQUEST = Pair.of(PutObjectRequest.builder().build(), AsyncRequestBody.empty()); + private static final long CONTENT_LENGTH = 999; + private static final long PART_SIZE = 111; + private static final long NUM_PARTS_COMPLETED = 3; + private static final String UPLOAD_ID = "55555"; + private static final Map EXISTING_PARTS = new ConcurrentHashMap<>(); + + @Test + public void mpuRequestContext_withValues_buildsCorrectly() { + MpuRequestContext mpuRequestContext = MpuRequestContext.builder() + .request(REQUEST) + .contentLength(CONTENT_LENGTH) + .partSize(PART_SIZE) + .uploadId(UPLOAD_ID) + .existingParts(EXISTING_PARTS) + .numPartsCompleted(NUM_PARTS_COMPLETED) + .build(); + + assertThat(mpuRequestContext.request()).isEqualTo(REQUEST); + assertThat(mpuRequestContext.contentLength()).isEqualTo(CONTENT_LENGTH); + assertThat(mpuRequestContext.partSize()).isEqualTo(PART_SIZE); + assertThat(mpuRequestContext.uploadId()).isEqualTo(UPLOAD_ID); + assertThat(mpuRequestContext.existingParts()).isEqualTo(EXISTING_PARTS); + assertThat(mpuRequestContext.numPartsCompleted()).isEqualTo(NUM_PARTS_COMPLETED); + } + + @Test + public void mpuRequestContext_default_buildsCorrectly() { + MpuRequestContext mpuRequestContext = MpuRequestContext.builder().build(); + + assertThat(mpuRequestContext.request()).isNull(); + assertThat(mpuRequestContext.contentLength()).isNull(); + assertThat(mpuRequestContext.partSize()).isNull(); + assertThat(mpuRequestContext.uploadId()).isNull(); + assertThat(mpuRequestContext.existingParts()).isNull(); + assertThat(mpuRequestContext.numPartsCompleted()).isNull(); + } + + @Test + void testEqualsAndHashCodeContract() { + EqualsVerifier.forClass(MpuRequestContext.class); + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MpuTestUtils.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MpuTestUtils.java index 435d5b406189..23fe07ab2743 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MpuTestUtils.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MpuTestUtils.java @@ -19,6 +19,9 @@ import static org.mockito.Mockito.when; import java.util.concurrent.CompletableFuture; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; +import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse; @@ -26,6 +29,9 @@ import software.amazon.awssdk.services.s3.model.CreateMultipartUploadResponse; import software.amazon.awssdk.services.s3.model.HeadObjectRequest; import software.amazon.awssdk.services.s3.model.HeadObjectResponse; +import software.amazon.awssdk.services.s3.model.UploadPartRequest; +import software.amazon.awssdk.services.s3.model.UploadPartResponse; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; public final class MpuTestUtils { @@ -62,4 +68,33 @@ public static void stubSuccessfulCompleteMultipartCall(String bucket, String key when(s3AsyncClient.completeMultipartUpload(any(CompleteMultipartUploadRequest.class))) .thenReturn(completeMultipartUploadFuture); } + + public static void stubSuccessfulUploadPartCalls(S3AsyncClient s3AsyncClient) { + when(s3AsyncClient.uploadPart(any(UploadPartRequest.class), any(AsyncRequestBody.class))) + .thenAnswer(new Answer>() { + + @Override + public CompletableFuture answer(InvocationOnMock invocationOnMock) { + AsyncRequestBody AsyncRequestBody = invocationOnMock.getArgument(1); + // Draining the request body + AsyncRequestBody.subscribe(b -> {}); + + return CompletableFuture.completedFuture(UploadPartResponse.builder() + .build()); + } + }); + } + + public static S3ResumeToken s3ResumeToken(long numPartsCompleted, long partSize, long contentLength, String uploadId) { + return S3ResumeToken.builder() + .uploadId(uploadId) + .partSize(partSize) + .numPartsCompleted(numPartsCompleted) + .totalNumParts(determinePartCount(contentLength, partSize)) + .build(); + } + + public static long determinePartCount(long contentLength, long partSize) { + return (long) Math.ceil(contentLength / (double) partSize); + } } diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartClientChecksumTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartClientChecksumTest.java new file mode 100644 index 000000000000..351c1a750a60 --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartClientChecksumTest.java @@ -0,0 +1,145 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.multipart; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.net.URI; +import java.util.List; +import java.util.Map; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; +import software.amazon.awssdk.http.HttpExecuteResponse; +import software.amazon.awssdk.http.SdkHttpRequest; +import software.amazon.awssdk.http.SdkHttpResponse; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.model.ChecksumAlgorithm; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.testutils.service.http.MockAsyncHttpClient; + +class MultipartClientChecksumTest { + private MockAsyncHttpClient mockAsyncHttpClient; + private ChecksumCapturingInterceptor checksumCapturingInterceptor; + private S3AsyncClient s3Client; + + @BeforeEach + void init() { + this.mockAsyncHttpClient = new MockAsyncHttpClient(); + this.checksumCapturingInterceptor = new ChecksumCapturingInterceptor(); + s3Client = S3AsyncClient.builder() + .httpClient(mockAsyncHttpClient) + .endpointOverride(URI.create("http://localhost")) + .overrideConfiguration(c -> c.addExecutionInterceptor(checksumCapturingInterceptor)) + .multipartEnabled(true) + .region(Region.US_EAST_1) + .build(); + } + + @AfterEach + void reset() { + this.mockAsyncHttpClient.reset(); + } + + @Test + public void putObject_default_shouldAddCrc32() { + HttpExecuteResponse response = HttpExecuteResponse.builder() + .response(SdkHttpResponse.builder().statusCode(200).build()) + .build(); + mockAsyncHttpClient.stubResponses(response); + + PutObjectRequest putObjectRequest = putObjectRequestBuilder().build(); + + s3Client.putObject(putObjectRequest, AsyncRequestBody.fromString("hello world")); + assertThat(checksumCapturingInterceptor.checksumHeader).isEqualTo("CRC32"); + } + + @Test + public void putObject_withNonCrc32ChecksumType_shouldNotAddCrc32() { + HttpExecuteResponse response = HttpExecuteResponse.builder() + .response(SdkHttpResponse.builder().statusCode(200).build()) + .build(); + mockAsyncHttpClient.stubResponses(response); + + PutObjectRequest putObjectRequest = + putObjectRequestBuilder() + .checksumAlgorithm(ChecksumAlgorithm.SHA256) + .build(); + + s3Client.putObject(putObjectRequest, AsyncRequestBody.fromString("hello world")); + assertThat(checksumCapturingInterceptor.checksumHeader).isEqualTo("SHA256"); + } + + @Test + public void putObject_withNonCrc32ChecksumValue_shouldNotAddCrc32() { + HttpExecuteResponse response = HttpExecuteResponse.builder() + .response(SdkHttpResponse.builder().statusCode(200).build()) + .build(); + mockAsyncHttpClient.stubResponses(response); + + PutObjectRequest putObjectRequest = + putObjectRequestBuilder() + .checksumSHA256("checksumVal") + .build(); + + s3Client.putObject(putObjectRequest, AsyncRequestBody.fromString("hello world")); + assertThat(checksumCapturingInterceptor.checksumHeader).isNull(); + assertThat(checksumCapturingInterceptor.headers.get("x-amz-checksum-sha256")).contains("checksumVal"); + } + + @Test + public void putObject_withCrc32Value_shouldNotAddCrc32TypeHeader() { + HttpExecuteResponse response = HttpExecuteResponse.builder() + .response(SdkHttpResponse.builder().statusCode(200).build()) + .build(); + mockAsyncHttpClient.stubResponses(response); + + PutObjectRequest putObjectRequest = + putObjectRequestBuilder() + .checksumCRC32("checksumVal") + .build(); + + s3Client.putObject(putObjectRequest, AsyncRequestBody.fromString("hello world")); + assertThat(checksumCapturingInterceptor.checksumHeader).isNull(); + assertThat(checksumCapturingInterceptor.headers.get("x-amz-checksum-crc32")).contains("checksumVal"); + } + + private PutObjectRequest.Builder putObjectRequestBuilder() { + return PutObjectRequest.builder().bucket("bucket").key("key"); + } + + private static final class ChecksumCapturingInterceptor implements ExecutionInterceptor { + String checksumHeader; + Map> headers; + + @Override + public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { + SdkHttpRequest sdkHttpRequest = context.httpRequest(); + headers = sdkHttpRequest.headers(); + String checksumHeaderName = "x-amz-sdk-checksum-algorithm"; + if (headers.containsKey(checksumHeaderName)) { + List checksumHeaderVals = headers.get(checksumHeaderName); + assertThat(checksumHeaderVals).hasSize(1); + checksumHeader = checksumHeaderVals.get(0); + } + } + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/S3MultipartClientPutObjectWiremockTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/S3MultipartClientPutObjectWiremockTest.java new file mode 100644 index 000000000000..19bf3988e3ec --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/S3MultipartClientPutObjectWiremockTest.java @@ -0,0 +1,121 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.multipart; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl; +import static com.github.tomakehurst.wiremock.client.WireMock.delete; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.put; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; +import java.io.InputStream; +import java.net.URI; +import java.util.concurrent.CancellationException; +import java.util.concurrent.CompletableFuture; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.core.async.BlockingInputStreamAsyncRequestBody; +import software.amazon.awssdk.http.crt.AwsCrtAsyncHttpClient; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.model.PutObjectResponse; +import software.amazon.awssdk.services.s3.model.S3Exception; + +@WireMockTest +@Timeout(10) +public class S3MultipartClientPutObjectWiremockTest { + + private static final String BUCKET = "Example-Bucket"; + private static final String KEY = "Example-Object"; + private static final String CREATE_MULTIPART_PAYLOAD = "\n" + + " string\n" + + " string\n" + + " string\n" + + ""; + private S3AsyncClient s3AsyncClient; + + @BeforeEach + public void setup(WireMockRuntimeInfo wiremock) { + stubPutObjectCalls(); + s3AsyncClient = S3AsyncClient.builder() + .region(Region.US_EAST_1) + .endpointOverride(URI.create("http://localhost:" + wiremock.getHttpPort())) + .credentialsProvider( + StaticCredentialsProvider.create(AwsBasicCredentials.create("key", "secret"))) + .multipartEnabled(true) + .multipartConfiguration(b -> b.minimumPartSizeInBytes(10L).apiCallBufferSizeInBytes(10L)) + .httpClientBuilder(AwsCrtAsyncHttpClient.builder()) + .build(); + } + + private void stubPutObjectCalls() { + stubFor(post(anyUrl()).willReturn(aResponse().withStatus(200).withBody(CREATE_MULTIPART_PAYLOAD))); + stubFor(put(anyUrl()).willReturn(aResponse().withStatus(404))); + stubFor(put(urlEqualTo("/Example-Bucket/Example-Object?partNumber=1&uploadId=string")).willReturn(aResponse().withStatus(200))); + stubFor(delete(anyUrl()).willReturn(aResponse().withStatus(200))); + } + + // https://github.com/aws/aws-sdk-java-v2/issues/4801 + @Test + void uploadWithUnknownContentLength_onePartFails_shouldCancelUpstream() { + BlockingInputStreamAsyncRequestBody blockingInputStreamAsyncRequestBody = AsyncRequestBody.forBlockingInputStream(null); + CompletableFuture putObjectResponse = s3AsyncClient.putObject( + r -> r.bucket(BUCKET).key(KEY), blockingInputStreamAsyncRequestBody); + + assertThatThrownBy(() -> { + try (InputStream inputStream = createUnlimitedInputStream()) { + blockingInputStreamAsyncRequestBody.writeInputStream(inputStream); + } + }).isInstanceOf(CancellationException.class); + + assertThatThrownBy(() -> putObjectResponse.join()).hasRootCauseInstanceOf(S3Exception.class); + } + + @Test + void uploadWithKnownContentLength_onePartFails_shouldCancelUpstream() { + BlockingInputStreamAsyncRequestBody blockingInputStreamAsyncRequestBody = + AsyncRequestBody.forBlockingInputStream(1024L * 20); // must be larger than the buffer used in + // InputStreamConsumingPublisher to trigger the error + CompletableFuture putObjectResponse = s3AsyncClient.putObject( + r -> r.bucket(BUCKET).key(KEY), blockingInputStreamAsyncRequestBody); + + assertThatThrownBy(() -> { + try (InputStream inputStream = createUnlimitedInputStream()) { + blockingInputStreamAsyncRequestBody.writeInputStream(inputStream); + } + }).isInstanceOf(CancellationException.class); + + assertThatThrownBy(() -> putObjectResponse.join()).hasRootCauseInstanceOf(S3Exception.class); + } + + private InputStream createUnlimitedInputStream() { + return new InputStream() { + @Override + public int read() { + return 1; + } + }; + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtilsTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtilsTest.java index 4d5a333a51dd..0f3ab5b5589f 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtilsTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtilsTest.java @@ -37,6 +37,7 @@ import software.amazon.awssdk.http.SdkHttpFullResponse; import software.amazon.awssdk.services.s3.internal.multipart.SdkPojoConversionUtils; import software.amazon.awssdk.services.s3.model.AbortMultipartUploadRequest; +import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse; import software.amazon.awssdk.services.s3.model.CompletedPart; import software.amazon.awssdk.services.s3.model.CopyObjectRequest; @@ -44,6 +45,7 @@ import software.amazon.awssdk.services.s3.model.CopyPartResult; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.HeadObjectRequest; +import software.amazon.awssdk.services.s3.model.ListPartsRequest; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; import software.amazon.awssdk.services.s3.model.S3ResponseMetadata; @@ -182,7 +184,6 @@ void toCreateMultipartUploadRequest_putObjectRequest_shouldCopyProperties() { PutObjectRequest randomObject = randomPutObjectRequest(); CreateMultipartUploadRequest convertedObject = SdkPojoConversionUtils.toCreateMultipartUploadRequest(randomObject); Set fieldsToIgnore = new HashSet<>(); - System.out.println(convertedObject); verifyFieldsAreCopied(randomObject, convertedObject, fieldsToIgnore, PutObjectRequest.builder().sdkFields(), CreateMultipartUploadRequest.builder().sdkFields()); @@ -201,6 +202,35 @@ void toCompletedPart_putObject_shouldCopyProperties() { assertThat(convertedCompletedPart.partNumber()).isEqualTo(1); } + @Test + void toCompleteMultipartUploadRequest_putObject_shouldCopyProperties() { + PutObjectRequest randomObject = randomPutObjectRequest(); + CompletedPart[] parts = new CompletedPart[1]; + CompletedPart completedPart = CompletedPart.builder().partNumber(1).build(); + parts[0] = completedPart; + CompleteMultipartUploadRequest convertedObject = + SdkPojoConversionUtils.toCompleteMultipartUploadRequest(randomObject, "uploadId", parts); + + Set fieldsToIgnore = new HashSet<>(); + verifyFieldsAreCopied(randomObject, convertedObject, fieldsToIgnore, + PutObjectRequest.builder().sdkFields(), + CompleteMultipartUploadRequest.builder().sdkFields()); + assertThat(convertedObject.uploadId()).isEqualTo("uploadId"); + assertThat(convertedObject.multipartUpload().parts()).contains(completedPart); + } + + @Test + void toListPartsRequest_putObject_shouldCopyProperties() { + PutObjectRequest randomObject = randomPutObjectRequest(); + ListPartsRequest convertedObject = SdkPojoConversionUtils.toListPartsRequest("uploadId", randomObject); + Set fieldsToIgnore = new HashSet<>(); + + verifyFieldsAreCopied(randomObject, convertedObject, fieldsToIgnore, + PutObjectRequest.builder().sdkFields(), + ListPartsRequest.builder().sdkFields()); + assertThat(convertedObject.uploadId()).isEqualTo("uploadId"); + } + private static void verifyFieldsAreCopied(SdkPojo requestConvertedFrom, SdkPojo requestConvertedTo, Set fieldsToIgnore, diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/UploadObjectHelperTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/UploadObjectHelperTest.java index c18d4c993114..f96ddc4ddc48 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/UploadObjectHelperTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/UploadObjectHelperTest.java @@ -19,11 +19,17 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.fail; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import static software.amazon.awssdk.services.s3.internal.multipart.MpuTestUtils.s3ResumeToken; import static software.amazon.awssdk.services.s3.internal.multipart.MpuTestUtils.stubSuccessfulCompleteMultipartCall; +import static software.amazon.awssdk.services.s3.internal.multipart.MpuTestUtils.stubSuccessfulCreateMultipartCall; +import static software.amazon.awssdk.services.s3.internal.multipart.MpuTestUtils.stubSuccessfulUploadPartCalls; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.PAUSE_OBSERVABLE; +import static software.amazon.awssdk.services.s3.multipart.S3MultipartExecutionAttribute.RESUME_TOKEN; import java.io.IOException; import java.nio.ByteBuffer; @@ -32,13 +38,14 @@ import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.IntStream; import java.util.stream.Stream; import org.apache.commons.lang3.RandomStringUtils; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Timeout; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; @@ -50,19 +57,26 @@ import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; import software.amazon.awssdk.core.async.AsyncRequestBody; +import software.amazon.awssdk.core.async.SdkPublisher; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.model.AbortMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.AbortMultipartUploadResponse; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse; +import software.amazon.awssdk.services.s3.model.CompletedPart; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadResponse; +import software.amazon.awssdk.services.s3.model.ListPartsRequest; +import software.amazon.awssdk.services.s3.model.Part; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; import software.amazon.awssdk.services.s3.model.UploadPartRequest; import software.amazon.awssdk.services.s3.model.UploadPartResponse; import software.amazon.awssdk.services.s3.multipart.MultipartConfiguration; +import software.amazon.awssdk.services.s3.multipart.PauseObservable; +import software.amazon.awssdk.services.s3.multipart.S3ResumeToken; +import software.amazon.awssdk.services.s3.paginators.ListPartsPublisher; import software.amazon.awssdk.testutils.RandomTempFile; import software.amazon.awssdk.utils.CompletableFutureUtils; @@ -140,8 +154,8 @@ void uploadObject_unKnownContentLengthDoesNotExceedPartSize_shouldUploadInOneChu void uploadObject_contentLengthExceedThresholdAndPartSize_shouldUseMPU(AsyncRequestBody asyncRequestBody) { PutObjectRequest putObjectRequest = putObjectRequest(null); - MpuTestUtils.stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); - stubSuccessfulUploadPartCalls(); + stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); + stubSuccessfulUploadPartCalls(s3AsyncClient); stubSuccessfulCompleteMultipartCall(BUCKET, KEY, s3AsyncClient); uploadHelper.uploadObject(putObjectRequest, asyncRequestBody).join(); @@ -178,7 +192,7 @@ void uploadObject_contentLengthExceedThresholdAndPartSize_shouldUseMPU(AsyncRequ void mpu_onePartFailed_shouldFailOtherPartsAndAbort(AsyncRequestBody asyncRequestBody) { PutObjectRequest putObjectRequest = putObjectRequest(MPU_CONTENT_SIZE); - MpuTestUtils.stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); + stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); CompletableFuture ongoingRequest = new CompletableFuture<>(); SdkClientException exception = SdkClientException.create("request failed"); @@ -239,12 +253,12 @@ void upload_knownContentLengthCancelResponseFuture_shouldCancelUploadPart() { CompletableFuture createMultipartFuture = new CompletableFuture<>(); - MpuTestUtils.stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); + stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); CompletableFuture ongoingRequest = new CompletableFuture<>(); - when(s3AsyncClient.uploadPart(any(UploadPartRequest.class), - any(AsyncRequestBody.class))).thenReturn(ongoingRequest); + when(s3AsyncClient.uploadPart(any(UploadPartRequest.class), + any(AsyncRequestBody.class))).thenReturn(ongoingRequest); CompletableFuture future = uploadHelper.uploadObject(putObjectRequest, AsyncRequestBody.fromFile(testFile)); @@ -267,7 +281,7 @@ void upload_knownContentLengthCancelResponseFuture_shouldCancelUploadPart() { void uploadObject_createMultipartUploadFailed_shouldFail(AsyncRequestBody asyncRequestBody) { PutObjectRequest putObjectRequest = putObjectRequest(null); - SdkClientException exception = SdkClientException.create("CompleteMultipartUpload failed"); + SdkClientException exception = SdkClientException.create("CreateMultipartUpload failed"); CompletableFuture createMultipartUploadFuture = CompletableFutureUtils.failedFuture(exception); @@ -286,8 +300,8 @@ void uploadObject_createMultipartUploadFailed_shouldFail(AsyncRequestBody asyncR void uploadObject_completeMultipartFailed_shouldFailAndAbort(AsyncRequestBody asyncRequestBody) { PutObjectRequest putObjectRequest = putObjectRequest(null); - MpuTestUtils.stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); - stubSuccessfulUploadPartCalls(); + stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); + stubSuccessfulUploadPartCalls(s3AsyncClient); SdkClientException exception = SdkClientException.create("CompleteMultipartUpload failed"); @@ -315,8 +329,8 @@ void uploadObject_requestBodyOnError_shouldFailAndAbort(boolean contentLengthKno Long contentLength = contentLengthKnown ? MPU_CONTENT_SIZE : null; ErroneousAsyncRequestBody erroneousAsyncRequestBody = new ErroneousAsyncRequestBody(contentLength, exception); - MpuTestUtils.stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); - stubSuccessfulUploadPartCalls(); + stubSuccessfulCreateMultipartCall(UPLOAD_ID, s3AsyncClient); + stubSuccessfulUploadPartCalls(s3AsyncClient); when(s3AsyncClient.abortMultipartUpload(any(AbortMultipartUploadRequest.class))) .thenReturn(CompletableFuture.completedFuture(AbortMultipartUploadResponse.builder().build())); @@ -327,6 +341,42 @@ void uploadObject_requestBodyOnError_shouldFailAndAbort(boolean contentLengthKno .hasRootCause(exception); } + @ParameterizedTest + @ValueSource(ints = {0, 1, 2, 3, 4}) + void uploadObject_withResumeToken_shouldInvokeListPartsAndSkipExistingParts(int numExistingParts) { + S3ResumeToken resumeToken = s3ResumeToken(numExistingParts, PART_SIZE, MPU_CONTENT_SIZE, "uploadId"); + PutObjectRequest putObjectRequest = putObjectRequestWithResumeToken(MPU_CONTENT_SIZE, resumeToken); + ListPartsRequest request = SdkPojoConversionUtils.toListPartsRequest("uploadId", putObjectRequest); + ListPartsPublisher mockPublisher = mock(ListPartsPublisher.class); + when(s3AsyncClient.listPartsPaginator(request)).thenReturn(mockPublisher); + when(mockPublisher.parts()).thenReturn(new TestPartPublisher(numExistingParts)); + + stubSuccessfulUploadPartCalls(s3AsyncClient); + stubSuccessfulCompleteMultipartCall(BUCKET, KEY, s3AsyncClient); + + uploadHelper.uploadObject(putObjectRequest, AsyncRequestBody.fromFile(testFile)).join(); + + ArgumentCaptor listPartsRequestArgumentCaptor = ArgumentCaptor.forClass(ListPartsRequest.class); + verify(s3AsyncClient).listPartsPaginator(listPartsRequestArgumentCaptor.capture()); + assertThat(putObjectRequest.overrideConfiguration().get().executionAttributes().getAttribute(PAUSE_OBSERVABLE).pausableUpload()).isNotNull(); + + ArgumentCaptor requestArgumentCaptor = ArgumentCaptor.forClass(UploadPartRequest.class); + ArgumentCaptor requestBodyArgumentCaptor = ArgumentCaptor.forClass(AsyncRequestBody.class); + int numTotalParts = 4; + int numPartsToSend = numTotalParts - numExistingParts; + verify(s3AsyncClient, times(numPartsToSend)).uploadPart(requestArgumentCaptor.capture(), requestBodyArgumentCaptor.capture()); + + ArgumentCaptor completeMpuArgumentCaptor = ArgumentCaptor.forClass(CompleteMultipartUploadRequest.class); + verify(s3AsyncClient).completeMultipartUpload(completeMpuArgumentCaptor.capture()); + + CompleteMultipartUploadRequest actualRequest = completeMpuArgumentCaptor.getValue(); + assertThat(actualRequest.multipartUpload().parts()).isEqualTo(completedParts(numTotalParts)); + } + + private List completedParts(int totalNumParts) { + return IntStream.range(1, totalNumParts + 1).mapToObj(i -> CompletedPart.builder().partNumber(i).build()).collect(Collectors.toList()); + } + private static PutObjectRequest putObjectRequest(Long contentLength) { return PutObjectRequest.builder() .bucket(BUCKET) @@ -335,37 +385,27 @@ private static PutObjectRequest putObjectRequest(Long contentLength) { .build(); } - private void stubSuccessfulUploadPartCalls() { - when(s3AsyncClient.uploadPart(any(UploadPartRequest.class), any(AsyncRequestBody.class))) - .thenAnswer(new Answer>() { - int numberOfCalls = 0; + private static PutObjectRequest putObjectRequestWithResumeToken(Long contentLength, S3ResumeToken resumeToken) { + return putObjectRequest(contentLength).toBuilder() + .overrideConfiguration( + o -> o.putExecutionAttribute(RESUME_TOKEN, resumeToken) + .putExecutionAttribute(PAUSE_OBSERVABLE, new PauseObservable())) + .build(); - @Override - public CompletableFuture answer(InvocationOnMock invocationOnMock) { - AsyncRequestBody AsyncRequestBody = invocationOnMock.getArgument(1); - // Draining the request body - AsyncRequestBody.subscribe(b -> {}); - - numberOfCalls++; - return CompletableFuture.completedFuture(UploadPartResponse.builder() - .checksumCRC32("crc" + numberOfCalls) - .build()); - } - }); } private OngoingStubbing> stubFailedUploadPartCalls(OngoingStubbing> stubbing, Exception exception) { return stubbing.thenAnswer(new Answer>() { - @Override - public CompletableFuture answer(InvocationOnMock invocationOnMock) { - AsyncRequestBody AsyncRequestBody = invocationOnMock.getArgument(1); - // Draining the request body - AsyncRequestBody.subscribe(b -> {}); + @Override + public CompletableFuture answer(InvocationOnMock invocationOnMock) { + AsyncRequestBody AsyncRequestBody = invocationOnMock.getArgument(1); + // Draining the request body + AsyncRequestBody.subscribe(b -> {}); - return CompletableFutureUtils.failedFuture(exception); - } - }); + return CompletableFutureUtils.failedFuture(exception); + } + }); } private static class UnknownContentLengthAsyncRequestBody implements AsyncRequestBody { @@ -425,4 +465,39 @@ public void cancel() { } } -} + + private static class TestPartPublisher implements SdkPublisher { + private int existingParts; + private int currentPart = 1; + + TestPartPublisher(int existingParts) { + this.existingParts = existingParts; + } + + @Override + public void subscribe(Subscriber subscriber) { + subscriber.onSubscribe(new Subscription() { + @Override + public void request(long n) { + if (n <= 0) { + subscriber.onError(new IllegalArgumentException("Demand must be positive")); + return; + } + + if (existingParts == 0) { + subscriber.onComplete(); + } + + while(existingParts > 0) { + existingParts--; + subscriber.onNext(Part.builder().partNumber(currentPart++).build()); + } + } + + @Override + public void cancel() {} + }); + } + } + +} \ No newline at end of file diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/plugins/S3SignerPropertiesPluginsTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/plugins/S3SignerPropertiesPluginsTest.java new file mode 100644 index 000000000000..89ef600522da --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/plugins/S3SignerPropertiesPluginsTest.java @@ -0,0 +1,418 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.internal.plugins; + +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.core.SelectedAuthScheme; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; +import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; +import software.amazon.awssdk.core.sync.RequestBody; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.aws.signer.AwsV4FamilyHttpSigner; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.SignerProperty; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.S3Client; +import software.amazon.awssdk.services.s3.S3ClientBuilder; +import software.amazon.awssdk.services.s3.S3Configuration; +import software.amazon.awssdk.services.s3.model.GetObjectRequest; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.services.s3.model.UploadPartRequest; +import software.amazon.awssdk.utils.Validate; + +class S3SignerPropertiesPluginsTest { + private static final String PUT_BODY = "put body"; + private static String DEFAULT_BUCKET = "bucket"; + private static String DEFAULT_KEY = "key"; + private static final AwsCredentialsProvider CREDENTIALS_PROVIDER = + StaticCredentialsProvider.create(AwsBasicCredentials.create("akid", "skid")); + + @ParameterizedTest + @MethodSource("testCases") + public void validateTestCase(TestCase testCase) { + CapturingInterceptor capturingInterceptor = new CapturingInterceptor(); + S3ClientBuilder clientBuilder = getS3ClientBuilder(capturingInterceptor); + testCase.configureClient().accept(clientBuilder); + S3Client client = clientBuilder.build(); + assertThatThrownBy(() -> testCase.useClient().accept(client)) + .hasMessageContaining("boom") + .as(testCase.name()); + + AuthSchemeOption expectedValues = testCase.expectedSignerProperties(); + Map, Object> expectedProperties = signerProperties(expectedValues); + + assertThat(selectSignerProperties(signerProperties(capturingInterceptor.authSchemeOption()), expectedProperties.keySet())) + .isEqualTo(expectedProperties) + .as(testCase.name()); + assertThat(selectSignerProperties(signerProperties(capturingInterceptor.authSchemeOption()), testCase.unsetProperties())) + .isEqualTo(Collections.emptyMap()) + .as(testCase.name()); + } + + static Map, Object> signerProperties(AuthSchemeOption option) { + return SignerPropertiesBuilder.from(option).build(); + } + + static Map, Object> selectSignerProperties( + Map, Object> signerProperties, + Collection> keys + ) { + Map, Object> result = new HashMap<>(); + for (SignerProperty key : keys) { + if (signerProperties.containsKey(key)) { + result.put(key, signerProperties.get(key)); + } + } + return result; + } + + public static Collection testCases() { + return Arrays.asList( + // S3DisableChunkEncodingIfConfiguredPlugin, honors + // S#Configuration.enableChunkEncoding(false) + testUploadPartEnablesChunkEncodingByDefault(), + testUploadPartDisablesChunkEncodingWhenConfigured(), + testPutObjectEnablesChunkEncodingByDefault(), + testPutObjectDisablesChunkEncodingWhenConfigured(), + testGetObjectDoesNotSetChunkEncoding(), + testGetObjectDoesNotSetChunkEncodingIfNotConfigured(), + testGetObjectDoesNotSetChunkEncodingIfConfigured(), + // S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin() + testUploadPartDisablesPayloadSigningByDefault(), + testUploadPartEnablesPayloadSigningUsingPlugin(), + // S3OverrideAuthSchemePropertiesPlugin.disableChunkEncoding() + testUploadPartDisablesChunkEncodingUsingPlugin(), + testPutObjectDisablesChunkEncodingUsingPlugin() , + testGetObjectDoesNotDisablesChunkEncodingUsingPlugin() + ); + } + + // S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin() + private static TestCase testUploadPartDisablesPayloadSigningByDefault() { + return forUploadPart("UploadPartDisablesPayloadSigningByDefault") + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.PAYLOAD_SIGNING_ENABLED, false) + .build()) + .build(); + } + + private static TestCase testUploadPartEnablesPayloadSigningUsingPlugin() { + return forUploadPart("UploadPartEnablesPayloadSigningUsingPlugin") + .configureClient(c -> c.addPlugin(S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin())) + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.PAYLOAD_SIGNING_ENABLED, true) + .build()) + .build(); + + } + + + // S3OverrideAuthSchemePropertiesPlugin.disableChunkEncoding() + private static TestCase testUploadPartDisablesChunkEncodingUsingPlugin() { + return forUploadPart("UploadPartDisablesChunkEncodingUsingPlugin") + .configureClient(c -> c.addPlugin(S3OverrideAuthSchemePropertiesPlugin.disableChunkEncodingPlugin())) + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.CHUNK_ENCODING_ENABLED, false) + .build()) + .build(); + + } + + static TestCase testPutObjectDisablesChunkEncodingUsingPlugin() { + return forPutObject("PutObjectDisablesChunkEncodingUsingPlugin") + .configureClient(c -> c.addPlugin(S3OverrideAuthSchemePropertiesPlugin.disableChunkEncodingPlugin())) + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.CHUNK_ENCODING_ENABLED, false) + .build()) + .build(); + } + + static TestCase testGetObjectDoesNotDisablesChunkEncodingUsingPlugin() { + return forGetObject("GetObjectDoesNotDisablesChunkEncodingUsingPlugin") + .configureClient(c -> c.addPlugin(S3OverrideAuthSchemePropertiesPlugin.disableChunkEncodingPlugin())) + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder() + .build()) + .addUnsetProperty(AwsV4FamilyHttpSigner.CHUNK_ENCODING_ENABLED) + .build(); + } + + // S3DisableChunkEncodingIfConfiguredPlugin + static TestCase testUploadPartEnablesChunkEncodingByDefault() { + return forUploadPart("UploadPartEnablesChunkEncodingByDefault") + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.CHUNK_ENCODING_ENABLED, true) + .build()) + .build(); + } + + static TestCase testUploadPartDisablesChunkEncodingWhenConfigured() { + return forUploadPart("UploadPartDisablesChunkEncodingWhenConfigured") + .configureClient(c -> c.serviceConfiguration(S3Configuration.builder() + .chunkedEncodingEnabled(false) + .build())) + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.CHUNK_ENCODING_ENABLED, false) + .build()) + .build(); + + } + + static TestCase testPutObjectEnablesChunkEncodingByDefault() { + return forPutObject("PutObjectEnablesChunkEncodingByDefault") + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.CHUNK_ENCODING_ENABLED, true) + .build()) + .build(); + } + + static TestCase testPutObjectDisablesChunkEncodingWhenConfigured() { + return forPutObject("PutObjectDisablesChunkEncodingWhenConfigured") + .configureClient(c -> c.serviceConfiguration(S3Configuration.builder() + .chunkedEncodingEnabled(false) + .build())) + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder() + .putSignerProperty(AwsV4FamilyHttpSigner.CHUNK_ENCODING_ENABLED, false) + .build()) + .build(); + } + + static TestCase testGetObjectDoesNotSetChunkEncoding() { + return forGetObject("GetObjectDoesNotSetChunkEncoding") + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder().build()) + .build(); + } + + static TestCase testGetObjectDoesNotSetChunkEncodingIfNotConfigured() { + return forGetObject("GetObjectDoesNotSetChunkEncodingIfNotConfigured") + .configureClient(c -> c.serviceConfiguration(S3Configuration.builder() + .chunkedEncodingEnabled(true) + .build())) + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder().build()) + .build(); + } + + static TestCase testGetObjectDoesNotSetChunkEncodingIfConfigured() { + return forGetObject("GetObjectDoesNotSetChunkEncodingIfConfigured") + .configureClient(c -> c.serviceConfiguration(S3Configuration.builder() + .chunkedEncodingEnabled(false) + .build())) + .expectedSignerProperties(defaultExpectedAuthSchemeOptionBuilder().build()) + .build(); + } + + // End of tests, utils next + static TestCaseBuilder forUploadPart(String name) { + return testCaseBuilder(name) + .useClient(c -> { + UploadPartRequest.Builder requestBuilder = + UploadPartRequest.builder().bucket(DEFAULT_BUCKET).key(DEFAULT_KEY).partNumber(0).uploadId("test"); + c.uploadPart(requestBuilder.build(), RequestBody.fromString(PUT_BODY)); + }); + } + + static TestCaseBuilder forPutObject(String name) { + return testCaseBuilder(name) + .useClient(c -> { + PutObjectRequest.Builder requestBuilder = + PutObjectRequest.builder().bucket(DEFAULT_BUCKET).key(DEFAULT_KEY); + c.putObject(requestBuilder.build(), RequestBody.fromString(PUT_BODY)); + }); + } + + static TestCaseBuilder forGetObject(String name) { + return testCaseBuilder(name) + .useClient(c -> { + GetObjectRequest.Builder requestBuilder = + GetObjectRequest.builder().bucket(DEFAULT_BUCKET).key(DEFAULT_KEY); + c.getObject(requestBuilder.build()); + }); + } + + public static TestCaseBuilder testCaseBuilder(String name) { + return new TestCaseBuilder(name); + } + + static AuthSchemeOption.Builder defaultExpectedAuthSchemeOptionBuilder() { + return AuthSchemeOption.builder() + .schemeId(AwsV4AuthScheme.SCHEME_ID) + .putSignerProperty(AwsV4FamilyHttpSigner.NORMALIZE_PATH, false) + .putSignerProperty(AwsV4FamilyHttpSigner.DOUBLE_URL_ENCODE, false) + .putSignerProperty(AwsV4FamilyHttpSigner.PAYLOAD_SIGNING_ENABLED, false); + } + + static S3ClientBuilder getS3ClientBuilder(CapturingInterceptor capturingInterceptor) { + return S3Client.builder() + .region(Region.US_EAST_1) + .overrideConfiguration(c -> c.addExecutionInterceptor(capturingInterceptor)) + .credentialsProvider(CREDENTIALS_PROVIDER); + } + + public static class TestCaseBuilder { + private final String name; + private Consumer configureClient = c -> { + }; + private Consumer useClient; + private AuthSchemeOption expectedSignerProperties = defaultExpectedAuthSchemeOptionBuilder().build(); + private Set> unsetProperties = new HashSet<>(); + + public TestCaseBuilder(String name) { + this.name = name; + } + + public Consumer configureClient() { + return configureClient; + } + + public TestCaseBuilder configureClient(Consumer configureClient) { + this.configureClient = configureClient; + return this; + } + + public Consumer useClient() { + return useClient; + } + + public TestCaseBuilder useClient(Consumer useClient) { + this.useClient = useClient; + return this; + } + + public AuthSchemeOption expectedSignerProperties() { + return expectedSignerProperties; + } + + public TestCaseBuilder expectedSignerProperties(AuthSchemeOption expectedSignerProperties) { + this.expectedSignerProperties = expectedSignerProperties; + return this; + } + + public Set> unsetProperties() { + if (unsetProperties.isEmpty()) { + return Collections.emptySet(); + } + return Collections.unmodifiableSet(new HashSet<>(this.unsetProperties)); + } + + public TestCaseBuilder unsetProperties(Set> unsetProperties) { + this.unsetProperties.clear(); + this.unsetProperties.addAll(unsetProperties); + return this; + } + + public TestCaseBuilder addUnsetProperty(SignerProperty unsetProperty) { + this.unsetProperties.add(unsetProperty); + return this; + } + + public String name() { + return name; + } + + public TestCase build() { + return new TestCase(this); + } + } + + static class TestCase { + private final String name; + private final Consumer configureClient; + private final Consumer useClient; + private final AuthSchemeOption expectedSignerProperties; + private final Set> unsetProperties; + + public TestCase(TestCaseBuilder builder) { + this.name = Validate.paramNotNull(builder.name(), "name"); + this.configureClient = Validate.paramNotNull(builder.configureClient(), "configureClient"); + this.useClient = Validate.paramNotNull(builder.useClient(), "useClient"); + this.expectedSignerProperties = Validate.paramNotNull(builder.expectedSignerProperties(), "expectedSignerProperties"); + this.unsetProperties = Validate.paramNotNull(builder.unsetProperties(), "unsetProperties"); + } + + public String name() { + return name; + } + + public Consumer configureClient() { + return configureClient; + } + + public Consumer useClient() { + return useClient; + } + + public AuthSchemeOption expectedSignerProperties() { + return expectedSignerProperties; + } + + public Set> unsetProperties() { + return unsetProperties; + } + } + + static class SignerPropertiesBuilder { + Map, Object> map = new HashMap<>(); + + static SignerPropertiesBuilder from(AuthSchemeOption option) { + SignerPropertiesBuilder builder = + new SignerPropertiesBuilder(); + option.forEachSignerProperty(builder::putSignerProperty); + return builder; + } + + public void putSignerProperty(SignerProperty key, T value) { + map.put(key, value); + } + + public Map, Object> build() { + return map; + } + } + + static class CapturingInterceptor implements ExecutionInterceptor { + private static final RuntimeException RTE = new RuntimeException("boom"); + private SelectedAuthScheme selectedAuthScheme; + + @Override + public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) { + selectedAuthScheme = executionAttributes.getAttribute(SdkInternalExecutionAttribute.SELECTED_AUTH_SCHEME); + throw RTE; + } + + public AuthSchemeOption authSchemeOption() { + if (selectedAuthScheme == null) { + return null; + } + return selectedAuthScheme.authSchemeOption(); + } + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/s3express/S3ExpressAuthSchemeProviderTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/s3express/S3ExpressAuthSchemeProviderTest.java index d427e5b8b7de..3c0ea297b530 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/s3express/S3ExpressAuthSchemeProviderTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/s3express/S3ExpressAuthSchemeProviderTest.java @@ -38,6 +38,7 @@ import software.amazon.awssdk.services.s3.auth.scheme.internal.DefaultS3AuthSchemeProvider; import software.amazon.awssdk.services.s3.auth.scheme.internal.S3AuthSchemeInterceptor; import software.amazon.awssdk.services.s3.endpoints.S3ClientContextParams; +import software.amazon.awssdk.services.s3.endpoints.S3EndpointProvider; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.s3express.S3ExpressAuthScheme; import software.amazon.awssdk.services.s3.s3express.S3ExpressSessionCredentials; @@ -71,6 +72,8 @@ private ExecutionAttributes requiredExecutionAttributes(AttributeMap clientConte DefaultIdentityProviders.builder() .putIdentityProvider(DefaultCredentialsProvider.create()) .build()); + executionAttributes.putAttribute(SdkInternalExecutionAttribute.ENDPOINT_PROVIDER, + S3EndpointProvider.defaultProvider()); return executionAttributes; } diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/multipart/S3ResumeTokenTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/multipart/S3ResumeTokenTest.java new file mode 100644 index 000000000000..d31e3be7f2f2 --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/multipart/S3ResumeTokenTest.java @@ -0,0 +1,59 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.multipart; + +import static org.assertj.core.api.Assertions.assertThat; + +import nl.jqno.equalsverifier.EqualsVerifier; +import org.junit.jupiter.api.Test; + +public class S3ResumeTokenTest { + + private static final String UPLOAD_ID = "uploadId"; + private static final long PART_SIZE = 99; + private static final long TOTAL_NUM_PARTS = 20; + private static final long NUM_PARTS_COMPLETED = 2; + + @Test + public void s3ResumeToken_withValues_buildsCorrectly() { + S3ResumeToken token = S3ResumeToken.builder() + .uploadId(UPLOAD_ID) + .partSize(PART_SIZE) + .totalNumParts(TOTAL_NUM_PARTS) + .numPartsCompleted(NUM_PARTS_COMPLETED) + .build(); + + assertThat(token.uploadId()).isEqualTo(UPLOAD_ID); + assertThat(token.partSize()).isEqualTo(PART_SIZE); + assertThat(token.totalNumParts()).isEqualTo(TOTAL_NUM_PARTS); + assertThat(token.numPartsCompleted()).isEqualTo(NUM_PARTS_COMPLETED); + } + + @Test + public void s3ResumeToken_default_buildsCorrectly() { + S3ResumeToken token = S3ResumeToken.builder().build(); + + assertThat(token.uploadId()).isNull(); + assertThat(token.partSize()).isNull(); + assertThat(token.totalNumParts()).isNull(); + assertThat(token.numPartsCompleted()).isNull(); + } + + @Test + void testEqualsAndHashCodeContract() { + EqualsVerifier.forClass(S3ResumeToken.class); + } +} diff --git a/services/s3/src/test/resources/__files/part1 b/services/s3/src/test/resources/__files/part1 new file mode 100644 index 000000000000..93cadc986855 Binary files /dev/null and b/services/s3/src/test/resources/__files/part1 differ diff --git a/services/s3/src/test/resources/__files/part2 b/services/s3/src/test/resources/__files/part2 new file mode 100644 index 000000000000..ebd8722df565 Binary files /dev/null and b/services/s3/src/test/resources/__files/part2 differ diff --git a/services/s3/src/test/resources/__files/part3 b/services/s3/src/test/resources/__files/part3 new file mode 100644 index 000000000000..065033159e6b Binary files /dev/null and b/services/s3/src/test/resources/__files/part3 differ diff --git a/services/s3control/pom.xml b/services/s3control/pom.xml index 1a14c6c421cb..b71f49e3585f 100644 --- a/services/s3control/pom.xml +++ b/services/s3control/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT s3control AWS Java SDK :: Services :: Amazon S3 Control diff --git a/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3MrapIntegrationTest.java b/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3MrapIntegrationTest.java index af18e2257d91..3b59ea2c593c 100644 --- a/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3MrapIntegrationTest.java +++ b/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3MrapIntegrationTest.java @@ -22,10 +22,8 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.time.Duration; -import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.Optional; import java.util.stream.Stream; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -33,10 +31,9 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute; -import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute; import software.amazon.awssdk.auth.signer.internal.SignerConstant; import software.amazon.awssdk.awscore.presigner.PresignedRequest; -import software.amazon.awssdk.core.SdkRequest; +import software.amazon.awssdk.core.SdkPlugin; import software.amazon.awssdk.core.interceptor.Context; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; @@ -46,16 +43,14 @@ import software.amazon.awssdk.core.waiters.WaiterAcceptor; import software.amazon.awssdk.http.HttpExecuteRequest; import software.amazon.awssdk.http.HttpExecuteResponse; -import software.amazon.awssdk.http.SdkHttpMethod; import software.amazon.awssdk.http.SdkHttpRequest; import software.amazon.awssdk.http.apache.ApacheHttpClient; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.S3Configuration; +import software.amazon.awssdk.services.s3.internal.plugins.S3OverrideAuthSchemePropertiesPlugin; import software.amazon.awssdk.services.s3.model.BucketAlreadyOwnedByYouException; import software.amazon.awssdk.services.s3.model.NoSuchKeyException; -import software.amazon.awssdk.services.s3.model.PutObjectRequest; -import software.amazon.awssdk.services.s3.model.UploadPartRequest; import software.amazon.awssdk.services.s3.presigner.S3Presigner; import software.amazon.awssdk.services.s3.presigner.model.PresignedGetObjectRequest; import software.amazon.awssdk.services.s3control.model.BucketAlreadyExistsException; @@ -99,7 +94,7 @@ public static void setupFixture() { .build(); s3Client = mrapEnabledS3Client(Collections.singletonList(captureInterceptor)); - s3ClientWithPayloadSigning = mrapEnabledS3Client(Arrays.asList(captureInterceptor, new PayloadSigningInterceptor())); + s3ClientWithPayloadSigning = mrapEnabledS3ClientWithPayloadSigning(captureInterceptor); stsClient = StsClient.builder() .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) @@ -309,6 +304,25 @@ private static S3Client mrapEnabledS3Client(List execution .build(); } + private static S3Client mrapEnabledS3ClientWithPayloadSigning(ExecutionInterceptor executionInterceptor) { + // We can't use here `S3OverrideAuthSchemePropertiesPlugin.enablePayloadSigningPlugin()` since + // it enables payload signing for *all* operations. + SdkPlugin plugin = S3OverrideAuthSchemePropertiesPlugin.builder() + .payloadSigningEnabled(true) + .addOperationConstraint("UploadPart") + .addOperationConstraint("PutObject") + .build(); + return S3Client.builder() + .region(REGION) + .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) + .serviceConfiguration(S3Configuration.builder() + .useArnRegionEnabled(true) + .build()) + .overrideConfiguration(o -> o.addExecutionInterceptor(executionInterceptor)) + .addPlugin(plugin) + .build(); + } + private void deleteObjectIfExists(S3Client s31, String bucket1, String key) { System.out.println(bucket1); try { @@ -341,21 +355,4 @@ public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttr this.normalizePath = executionAttributes.getAttribute(AwsSignerExecutionAttribute.SIGNER_NORMALIZE_PATH); } } - - private static class PayloadSigningInterceptor implements ExecutionInterceptor { - - public Optional modifyHttpContent(Context.ModifyHttpRequest context, - ExecutionAttributes executionAttributes) { - SdkRequest sdkRequest = context.request(); - - if (sdkRequest instanceof PutObjectRequest || sdkRequest instanceof UploadPartRequest) { - executionAttributes.putAttribute(S3SignerExecutionAttribute.ENABLE_PAYLOAD_SIGNING, true); - } - if (!context.requestBody().isPresent() && context.httpRequest().method().equals(SdkHttpMethod.POST)) { - return Optional.of(RequestBody.fromBytes(new byte[0])); - } - - return context.requestBody(); - } - } } diff --git a/services/s3control/src/main/java/software/amazon/awssdk/services/s3control/internal/interceptors/PayloadSigningInterceptor.java b/services/s3control/src/main/java/software/amazon/awssdk/services/s3control/internal/interceptors/PayloadSigningInterceptor.java index 5b3cb9f88444..6c0f91ed9f0b 100644 --- a/services/s3control/src/main/java/software/amazon/awssdk/services/s3control/internal/interceptors/PayloadSigningInterceptor.java +++ b/services/s3control/src/main/java/software/amazon/awssdk/services/s3control/internal/interceptors/PayloadSigningInterceptor.java @@ -17,7 +17,6 @@ import java.util.Optional; import software.amazon.awssdk.annotations.SdkInternalApi; -import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute; import software.amazon.awssdk.core.interceptor.Context; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; @@ -25,7 +24,7 @@ import software.amazon.awssdk.http.SdkHttpMethod; /** - * Turns on payload signing and prevents moving query params to body during a POST which S3 doesn't like. + * Prevents moving query params to body during a POST which S3 doesn't like. */ @SdkInternalApi public class PayloadSigningInterceptor implements ExecutionInterceptor { @@ -33,11 +32,10 @@ public class PayloadSigningInterceptor implements ExecutionInterceptor { @Override public Optional modifyHttpContent(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) { - executionAttributes.putAttribute(S3SignerExecutionAttribute.ENABLE_PAYLOAD_SIGNING, true); - if (!context.requestBody().isPresent() && context.httpRequest().method() == SdkHttpMethod.POST) { + Optional bodyOptional = context.requestBody(); + if (context.httpRequest().method() == SdkHttpMethod.POST && !bodyOptional.isPresent()) { return Optional.of(RequestBody.fromBytes(new byte[0])); } - - return context.requestBody(); + return bodyOptional; } } diff --git a/services/s3control/src/test/java/software/amazon/awssdk/services/s3control/internal/interceptors/PayloadSigningInterceptorTest.java b/services/s3control/src/test/java/software/amazon/awssdk/services/s3control/internal/interceptors/PayloadSigningInterceptorTest.java index a7acddb6e4ab..bc5ee8275b77 100644 --- a/services/s3control/src/test/java/software/amazon/awssdk/services/s3control/internal/interceptors/PayloadSigningInterceptorTest.java +++ b/services/s3control/src/test/java/software/amazon/awssdk/services/s3control/internal/interceptors/PayloadSigningInterceptorTest.java @@ -19,7 +19,6 @@ import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute; import software.amazon.awssdk.core.Protocol; import software.amazon.awssdk.core.SdkRequest; import software.amazon.awssdk.core.async.AsyncRequestBody; @@ -53,7 +52,6 @@ public void modifyHttpContent_AddsExecutionAttributeAndPayload() { assertThat(modified.isPresent()).isTrue(); assertThat(modified.get().contentLength()).isEqualTo(0); - assertThat(executionAttributes.getAttribute(S3SignerExecutionAttribute.ENABLE_PAYLOAD_SIGNING)).isTrue(); } @Test @@ -65,7 +63,6 @@ public void modifyHttpContent_DoesNotReplaceBody() { assertThat(modified.isPresent()).isTrue(); assertThat(modified.get().contentLength()).isEqualTo(5); - assertThat(executionAttributes.getAttribute(S3SignerExecutionAttribute.ENABLE_PAYLOAD_SIGNING)).isTrue(); } public final class Context implements software.amazon.awssdk.core.interceptor.Context.ModifyHttpRequest { diff --git a/services/s3outposts/pom.xml b/services/s3outposts/pom.xml index 564324b083c9..6d771976a984 100644 --- a/services/s3outposts/pom.xml +++ b/services/s3outposts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT s3outposts AWS Java SDK :: Services :: S3 Outposts diff --git a/services/s3outposts/src/main/resources/codegen-resources/customization.config b/services/s3outposts/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/s3outposts/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/sagemaker/pom.xml b/services/sagemaker/pom.xml index 76c7e8b5d7e1..96271cac5176 100644 --- a/services/sagemaker/pom.xml +++ b/services/sagemaker/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 sagemaker diff --git a/services/sagemaker/src/main/resources/codegen-resources/customization.config b/services/sagemaker/src/main/resources/codegen-resources/customization.config index dba136e03bb2..26ae44a207a6 100644 --- a/services/sagemaker/src/main/resources/codegen-resources/customization.config +++ b/services/sagemaker/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,5 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listAlgorithms", "listCodeRepositories", "listCompilationJobs", @@ -20,5 +20,6 @@ "TrialComponentParameterValue": { "union": true } - } + }, + "useSraAuth": true } diff --git a/services/sagemaker/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/sagemaker/src/main/resources/codegen-resources/endpoint-rule-set.json index 7294ee06334a..bc8c1980127a 100644 --- a/services/sagemaker/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/sagemaker/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -262,7 +262,7 @@ } ], "endpoint": { - "url": "https://api-fips.sagemaker.{Region}.amazonaws.com", + "url": "https://api.sagemaker.{Region}.amazonaws.com", "properties": {}, "headers": {} }, diff --git a/services/sagemaker/src/main/resources/codegen-resources/endpoint-tests.json b/services/sagemaker/src/main/resources/codegen-resources/endpoint-tests.json index 4a1c50b294b9..18f157429bf6 100644 --- a/services/sagemaker/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/sagemaker/src/main/resources/codegen-resources/endpoint-tests.json @@ -433,7 +433,7 @@ "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api-fips.sagemaker.us-gov-west-1.amazonaws.com" + "url": "https://api.sagemaker.us-gov-west-1.amazonaws.com" } }, "params": { @@ -459,7 +459,7 @@ "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api-fips.sagemaker.us-gov-east-1.amazonaws.com" + "url": "https://api.sagemaker.us-gov-east-1.amazonaws.com" } }, "params": { diff --git a/services/sagemaker/src/main/resources/codegen-resources/service-2.json b/services/sagemaker/src/main/resources/codegen-resources/service-2.json index 114f2a6baafc..2d32a93f54b6 100644 --- a/services/sagemaker/src/main/resources/codegen-resources/service-2.json +++ b/services/sagemaker/src/main/resources/codegen-resources/service-2.json @@ -110,7 +110,7 @@ "errors":[ {"shape":"ResourceInUse"} ], - "documentation":"

    Creates a configuration for running a SageMaker image as a KernelGateway app. The configuration specifies the Amazon Elastic File System (EFS) storage volume on the image, and a list of the kernels in the image.

    " + "documentation":"

    Creates a configuration for running a SageMaker image as a KernelGateway app. The configuration specifies the Amazon Elastic File System storage volume on the image, and a list of the kernels in the image.

    " }, "CreateArtifact":{ "name":"CreateArtifact", @@ -243,7 +243,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceInUse"} ], - "documentation":"

    Creates a Domain. A domain consists of an associated Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.

    EFS storage

    When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.

    SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services KMS) to encrypt the EFS volume attached to the domain with an Amazon Web Services managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption.

    VPC configuration

    All traffic between the domain and the EFS volume is through the specified VPC and subnets. For other traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to the domain. The following options are available:

    • PublicInternetOnly - Non-EFS traffic goes through a VPC managed by Amazon SageMaker, which allows internet access. This is the default value.

    • VpcOnly - All traffic is through the specified VPC and subnets. Internet access is disabled by default. To allow internet access, you must specify a NAT gateway.

      When internet access is disabled, you won't be able to run a Amazon SageMaker Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker API and runtime or a NAT gateway and your security groups allow outbound connections.

    NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a Amazon SageMaker Studio app successfully.

    For more information, see Connect Amazon SageMaker Studio Notebooks to Resources in a VPC.

    " + "documentation":"

    Creates a Domain. A domain consists of an associated Amazon Elastic File System volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.

    EFS storage

    When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.

    SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services KMS) to encrypt the EFS volume attached to the domain with an Amazon Web Services managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption.

    VPC configuration

    All traffic between the domain and the Amazon EFS volume is through the specified VPC and subnets. For other traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to the domain. The following options are available:

    • PublicInternetOnly - Non-EFS traffic goes through a VPC managed by Amazon SageMaker, which allows internet access. This is the default value.

    • VpcOnly - All traffic is through the specified VPC and subnets. Internet access is disabled by default. To allow internet access, you must specify a NAT gateway.

      When internet access is disabled, you won't be able to run a Amazon SageMaker Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker API and runtime or a NAT gateway and your security groups allow outbound connections.

    NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a Amazon SageMaker Studio app successfully.

    For more information, see Connect Amazon SageMaker Studio Notebooks to Resources in a VPC.

    " }, "CreateEdgeDeploymentPlan":{ "name":"CreateEdgeDeploymentPlan", @@ -403,7 +403,7 @@ {"shape":"ResourceInUse"}, {"shape":"ResourceLimitExceeded"} ], - "documentation":"

    Creates a custom SageMaker image. A SageMaker image is a set of image versions. Each image version represents a container image stored in Amazon Elastic Container Registry (ECR). For more information, see Bring your own SageMaker image.

    " + "documentation":"

    Creates a custom SageMaker image. A SageMaker image is a set of image versions. Each image version represents a container image stored in Amazon ECR. For more information, see Bring your own SageMaker image.

    " }, "CreateImageVersion":{ "name":"CreateImageVersion", @@ -418,7 +418,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceNotFound"} ], - "documentation":"

    Creates a version of the SageMaker image specified by ImageName. The version represents the Amazon Elastic Container Registry (ECR) container image specified by BaseImage.

    " + "documentation":"

    Creates a version of the SageMaker image specified by ImageName. The version represents the Amazon ECR container image specified by BaseImage.

    " }, "CreateInferenceComponent":{ "name":"CreateInferenceComponent", @@ -624,7 +624,7 @@ "errors":[ {"shape":"ResourceLimitExceeded"} ], - "documentation":"

    Creates a lifecycle configuration that you can associate with a notebook instance. A lifecycle configuration is a collection of shell scripts that run when you create or start a notebook instance.

    Each lifecycle configuration script has a limit of 16384 characters.

    The value of the $PATH environment variable that is available to both scripts is /sbin:bin:/usr/sbin:/usr/bin.

    View CloudWatch Logs for notebook instance lifecycle configurations in log group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook].

    Lifecycle configuration scripts cannot run for longer than 5 minutes. If a script runs for longer than 5 minutes, it fails and the notebook instance is not created or started.

    For information about notebook instance lifestyle configurations, see Step 2.1: (Optional) Customize a Notebook Instance.

    " + "documentation":"

    Creates a lifecycle configuration that you can associate with a notebook instance. A lifecycle configuration is a collection of shell scripts that run when you create or start a notebook instance.

    Each lifecycle configuration script has a limit of 16384 characters.

    The value of the $PATH environment variable that is available to both scripts is /sbin:bin:/usr/sbin:/usr/bin.

    View Amazon CloudWatch Logs for notebook instance lifecycle configurations in log group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook].

    Lifecycle configuration scripts cannot run for longer than 5 minutes. If a script runs for longer than 5 minutes, it fails and the notebook instance is not created or started.

    For information about notebook instance lifestyle configurations, see Step 2.1: (Optional) Customize a Notebook Instance.

    " }, "CreatePipeline":{ "name":"CreatePipeline", @@ -652,7 +652,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

    Creates a URL for a specified UserProfile in a Domain. When accessed in a web browser, the user will be automatically signed in to the domain, and granted access to all of the Apps and files associated with the Domain's Amazon Elastic File System (EFS) volume. This operation can only be called when the authentication mode equals IAM.

    The IAM role or user passed to this API defines the permissions to access the app. Once the presigned URL is created, no additional permission is required to access this URL. IAM authorization policies for this API are also enforced for every HTTP request and WebSocket frame that attempts to connect to the app.

    You can restrict access to this API and to the URL that it returns to a list of IP addresses, Amazon VPCs or Amazon VPC Endpoints that you specify. For more information, see Connect to Amazon SageMaker Studio Through an Interface VPC Endpoint .

    The URL that you get from a call to CreatePresignedDomainUrl has a default timeout of 5 minutes. You can configure this value using ExpiresInSeconds. If you try to use the URL after the timeout limit expires, you are directed to the Amazon Web Services console sign-in page.

    " + "documentation":"

    Creates a URL for a specified UserProfile in a Domain. When accessed in a web browser, the user will be automatically signed in to the domain, and granted access to all of the Apps and files associated with the Domain's Amazon Elastic File System volume. This operation can only be called when the authentication mode equals IAM.

    The IAM role or user passed to this API defines the permissions to access the app. Once the presigned URL is created, no additional permission is required to access this URL. IAM authorization policies for this API are also enforced for every HTTP request and WebSocket frame that attempts to connect to the app.

    You can restrict access to this API and to the URL that it returns to a list of IP addresses, Amazon VPCs or Amazon VPC Endpoints that you specify. For more information, see Connect to Amazon SageMaker Studio Through an Interface VPC Endpoint .

    The URL that you get from a call to CreatePresignedDomainUrl has a default timeout of 5 minutes. You can configure this value using ExpiresInSeconds. If you try to use the URL after the timeout limit expires, you are directed to the Amazon Web Services console sign-in page.

    " }, "CreatePresignedNotebookInstanceUrl":{ "name":"CreatePresignedNotebookInstanceUrl", @@ -704,7 +704,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceInUse"} ], - "documentation":"

    Creates a space used for real time collaboration in a Domain.

    " + "documentation":"

    Creates a space used for real time collaboration in a domain.

    " }, "CreateStudioLifecycleConfig":{ "name":"CreateStudioLifecycleConfig", @@ -788,7 +788,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceInUse"} ], - "documentation":"

    Creates a user profile. A user profile represents a single user within a domain, and is the main way to reference a \"person\" for the purposes of sharing, reporting, and other user-oriented features. This entity is created when a user onboards to a domain. If an administrator invites a person by email or imports them from IAM Identity Center, a user profile is automatically created. A user profile is the primary holder of settings for an individual user and has a reference to the user's private Amazon Elastic File System (EFS) home directory.

    " + "documentation":"

    Creates a user profile. A user profile represents a single user within a domain, and is the main way to reference a \"person\" for the purposes of sharing, reporting, and other user-oriented features. This entity is created when a user onboards to a domain. If an administrator invites a person by email or imports them from IAM Identity Center, a user profile is automatically created. A user profile is the primary holder of settings for an individual user and has a reference to the user's private Amazon Elastic File System home directory.

    " }, "CreateWorkforce":{ "name":"CreateWorkforce", @@ -1095,6 +1095,15 @@ ], "documentation":"

    Use this operation to delete a human task user interface (worker task template).

    To see a list of human task user interfaces (work task templates) in your account, use ListHumanTaskUis. When you delete a worker task template, it no longer appears when you call ListHumanTaskUis.

    " }, + "DeleteHyperParameterTuningJob":{ + "name":"DeleteHyperParameterTuningJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteHyperParameterTuningJobRequest"}, + "documentation":"

    Deletes a hyperparameter tuning job. The DeleteHyperParameterTuningJob API deletes only the tuning job entry that was created in SageMaker when you called the CreateHyperParameterTuningJob API. It does not delete training jobs, artifacts, or the IAM role that you specified when creating the model.

    " + }, "DeleteImage":{ "name":"DeleteImage", "http":{ @@ -3467,7 +3476,21 @@ {"shape":"ResourceNotFound"}, {"shape":"ConflictException"} ], - "documentation":"

    Update a SageMaker HyperPod cluster.

    " + "documentation":"

    Updates a SageMaker HyperPod cluster.

    " + }, + "UpdateClusterSoftware":{ + "name":"UpdateClusterSoftware", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateClusterSoftwareRequest"}, + "output":{"shape":"UpdateClusterSoftwareResponse"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"ConflictException"} + ], + "documentation":"

    Updates the platform software of a SageMaker HyperPod cluster for security patching. To learn how to use this API, see Update the SageMaker HyperPod platform software of a cluster.

    " }, "UpdateCodeRepository":{ "name":"UpdateCodeRepository", @@ -3543,7 +3566,7 @@ "errors":[ {"shape":"ResourceLimitExceeded"} ], - "documentation":"

    Deploys the new EndpointConfig specified in the request, switches to using newly created endpoint, and then deletes resources provisioned for the endpoint using the previous EndpointConfig (there is no availability loss).

    When SageMaker receives the request, it sets the endpoint status to Updating. After updating the endpoint, it sets the status to InService. To check the status of an endpoint, use the DescribeEndpoint API.

    You must not delete an EndpointConfig in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint operations are being performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.

    If you delete the EndpointConfig of an endpoint that is active or being created or updated you may lose visibility into the instance type the endpoint is using. The endpoint must be deleted in order to stop incurring charges.

    " + "documentation":"

    Deploys the EndpointConfig specified in the request to a new fleet of instances. SageMaker shifts endpoint traffic to the new instances with the updated endpoint configuration and then deletes the old instances using the previous EndpointConfig (there is no availability loss). For more information about how to control the update and traffic shifting process, see Update models in production.

    When SageMaker receives the request, it sets the endpoint status to Updating. After updating the endpoint, it sets the status to InService. To check the status of an endpoint, use the DescribeEndpoint API.

    You must not delete an EndpointConfig in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint operations are being performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.

    If you delete the EndpointConfig of an endpoint that is active or being created or updated you may lose visibility into the instance type the endpoint is using. The endpoint must be deleted in order to stop incurring charges.

    " }, "UpdateEndpointWeightsAndCapacities":{ "name":"UpdateEndpointWeightsAndCapacities", @@ -4433,7 +4456,7 @@ "members":{ "AppImageConfigArn":{ "shape":"AppImageConfigArn", - "documentation":"

    The Amazon Resource Name (ARN) of the AppImageConfig.

    " + "documentation":"

    The ARN of the AppImageConfig.

    " }, "AppImageConfigName":{ "shape":"AppImageConfigName", @@ -5532,7 +5555,7 @@ "members":{ "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

    The Key Management Service (KMS) encryption key ID.

    " + "documentation":"

    The Key Management Service encryption key ID.

    " }, "S3OutputPath":{ "shape":"S3Uri", @@ -6157,6 +6180,10 @@ "KendraSettings":{ "shape":"KendraSettings", "documentation":"

    The settings for document querying.

    " + }, + "GenerativeAiSettings":{ + "shape":"GenerativeAiSettings", + "documentation":"

    The generative AI settings for the SageMaker Canvas application.

    " } }, "documentation":"

    The SageMaker Canvas application settings.

    " @@ -7861,7 +7888,7 @@ "members":{ "AppImageConfigArn":{ "shape":"AppImageConfigArn", - "documentation":"

    The Amazon Resource Name (ARN) of the AppImageConfig.

    " + "documentation":"

    The ARN of the AppImageConfig.

    " } } }, @@ -7974,7 +8001,7 @@ }, "ProblemType":{ "shape":"ProblemType", - "documentation":"

    Defines the type of supervised learning problem available for the candidates. For more information, see Amazon SageMaker Autopilot problem types.

    " + "documentation":"

    Defines the type of supervised learning problem available for the candidates. For more information, see SageMaker Autopilot problem types.

    " }, "AutoMLJobObjective":{ "shape":"AutoMLJobObjective", @@ -8889,7 +8916,7 @@ "members":{ "BaseImage":{ "shape":"ImageBaseImage", - "documentation":"

    The registry path of the container image to use as the starting point for this version. The path is an Amazon Elastic Container Registry (ECR) URI in the following format:

    <acct-id>.dkr.ecr.<region>.amazonaws.com/<repo-name[:tag] or [@digest]>

    " + "documentation":"

    The registry path of the container image to use as the starting point for this version. The path is an Amazon ECR URI in the following format:

    <acct-id>.dkr.ecr.<region>.amazonaws.com/<repo-name[:tag] or [@digest]>

    " }, "ClientToken":{ "shape":"ClientToken", @@ -9950,7 +9977,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The ID of the associated Domain.

    " + "documentation":"

    The ID of the associated domain.

    " }, "SpaceName":{ "shape":"SpaceName", @@ -10926,12 +10953,12 @@ }, "SecurityGroups":{ "shape":"SecurityGroupIds", - "documentation":"

    The security group IDs for the Amazon Virtual Private Cloud that the space uses for communication.

    " + "documentation":"

    The security group IDs for the Amazon VPC that the space uses for communication.

    " }, "JupyterServerAppSettings":{"shape":"JupyterServerAppSettings"}, "KernelGatewayAppSettings":{"shape":"KernelGatewayAppSettings"} }, - "documentation":"

    A collection of settings that apply to spaces created in the Domain.

    " + "documentation":"

    A collection of settings that apply to spaces created in the domain.

    " }, "DefaultSpaceStorageSettings":{ "type":"structure", @@ -11305,6 +11332,16 @@ "members":{ } }, + "DeleteHyperParameterTuningJobRequest":{ + "type":"structure", + "required":["HyperParameterTuningJobName"], + "members":{ + "HyperParameterTuningJobName":{ + "shape":"HyperParameterTuningJobName", + "documentation":"

    The name of the hyperparameter tuning job that you want to delete.

    " + } + } + }, "DeleteImageRequest":{ "type":"structure", "required":["ImageName"], @@ -11529,7 +11566,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The ID of the associated Domain.

    " + "documentation":"

    The ID of the associated domain.

    " }, "SpaceName":{ "shape":"SpaceName", @@ -11953,7 +11990,7 @@ "members":{ "AppImageConfigArn":{ "shape":"AppImageConfigArn", - "documentation":"

    The Amazon Resource Name (ARN) of the AppImageConfig.

    " + "documentation":"

    The ARN of the AppImageConfig.

    " }, "AppImageConfigName":{ "shape":"AppImageConfigName", @@ -12152,7 +12189,7 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.

    " + "documentation":"

    The ARN of the IAM role that has read permission to the input data location and write permission to the output data location in Amazon S3.

    " }, "AutoMLJobObjective":{ "shape":"AutoMLJobObjective", @@ -12262,7 +12299,7 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

    The ARN of the Identity and Access Management role that has read permission to the input data location and write permission to the output data location in Amazon S3.

    " + "documentation":"

    The ARN of the IAM role that has read permission to the input data location and write permission to the output data location in Amazon S3.

    " }, "AutoMLJobObjective":{ "shape":"AutoMLJobObjective", @@ -12813,7 +12850,7 @@ }, "HomeEfsFileSystemId":{ "shape":"ResourceId", - "documentation":"

    The ID of the Amazon Elastic File System (EFS) managed by this Domain.

    " + "documentation":"

    The ID of the Amazon Elastic File System managed by this Domain.

    " }, "SingleSignOnManagedApplicationInstanceId":{ "shape":"String256", @@ -13707,7 +13744,7 @@ }, "HyperParameterTuningJobStatus":{ "shape":"HyperParameterTuningJobStatus", - "documentation":"

    The status of the tuning job: InProgress, Completed, Failed, Stopping, or Stopped.

    " + "documentation":"

    The status of the tuning job.

    " }, "CreationTime":{ "shape":"Timestamp", @@ -14587,7 +14624,7 @@ "members":{ "ModelPackageGroupName":{ "shape":"ArnOrName", - "documentation":"

    The name of gthe model group to describe.

    " + "documentation":"

    The name of the model group to describe.

    " } } }, @@ -15325,7 +15362,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The ID of the associated Domain.

    " + "documentation":"

    The ID of the associated domain.

    " }, "SpaceName":{ "shape":"SpaceName", @@ -15338,7 +15375,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The ID of the associated Domain.

    " + "documentation":"

    The ID of the associated domain.

    " }, "SpaceArn":{ "shape":"SpaceArn", @@ -15350,7 +15387,7 @@ }, "HomeEfsFileSystemUid":{ "shape":"EfsUid", - "documentation":"

    The ID of the space's profile in the Amazon Elastic File System volume.

    " + "documentation":"

    The ID of the space's profile in the Amazon EFS volume.

    " }, "Status":{ "shape":"SpaceStatus", @@ -15904,7 +15941,7 @@ }, "HomeEfsFileSystemUid":{ "shape":"EfsUid", - "documentation":"

    The ID of the user's profile in the Amazon Elastic File System (EFS) volume.

    " + "documentation":"

    The ID of the user's profile in the Amazon Elastic File System volume.

    " }, "Status":{ "shape":"UserProfileStatus", @@ -18032,7 +18069,7 @@ "box":true } }, - "documentation":"

    The Amazon Elastic File System (EFS) storage configuration for a SageMaker image.

    " + "documentation":"

    The Amazon Elastic File System storage configuration for a SageMaker image.

    " }, "FileSystemDataSource":{ "type":"structure", @@ -18358,6 +18395,16 @@ "pattern":"[0-9]\\.[A-Za-z0-9.]+" }, "GenerateCandidateDefinitionsOnly":{"type":"boolean"}, + "GenerativeAiSettings":{ + "type":"structure", + "members":{ + "AmazonBedrockRoleArn":{ + "shape":"RoleArn", + "documentation":"

    The ARN of an Amazon Web Services IAM role that allows fine-tuning of large language models (LLMs) in Amazon Bedrock. The IAM role should have Amazon S3 read and write permissions, as well as a trust relationship that establishes bedrock.amazonaws.com as a service principal.

    " + } + }, + "documentation":"

    The generative AI settings for the SageMaker Canvas application.

    Configure these settings for Canvas users starting chats with generative AI foundation models. For more information, see Use generative AI with foundation models.

    " + }, "GetDeviceFleetReportRequest":{ "type":"structure", "required":["DeviceFleetName"], @@ -19704,7 +19751,7 @@ }, "MaxResource":{ "shape":"HyperbandStrategyMaxResource", - "documentation":"

    The maximum number of resources (such as epochs) that can be used by a training job launched by a hyperparameter tuning job. Once a job reaches the MaxResource value, it is stopped. If a value for MaxResource is not provided, and Hyperband is selected as the hyperparameter tuning strategy, HyperbandTrainingJ attempts to infer MaxResource from the following keys (if present) in StaticsHyperParameters:

    • epochs

    • numepochs

    • n-epochs

    • n_epochs

    • num_epochs

    If HyperbandStrategyConfig is unable to infer a value for MaxResource, it generates a validation error. The maximum value is 20,000 epochs. All metrics that correspond to an objective metric are used to derive early stopping decisions. For distributive training jobs, ensure that duplicate metrics are not printed in the logs across the individual nodes in a training job. If multiple nodes are publishing duplicate or incorrect metrics, training jobs may make an incorrect stopping decision and stop the job prematurely.

    " + "documentation":"

    The maximum number of resources (such as epochs) that can be used by a training job launched by a hyperparameter tuning job. Once a job reaches the MaxResource value, it is stopped. If a value for MaxResource is not provided, and Hyperband is selected as the hyperparameter tuning strategy, HyperbandTraining attempts to infer MaxResource from the following keys (if present) in StaticsHyperParameters:

    • epochs

    • numepochs

    • n-epochs

    • n_epochs

    • num_epochs

    If HyperbandStrategyConfig is unable to infer a value for MaxResource, it generates a validation error. The maximum value is 20,000 epochs. All metrics that correspond to an objective metric are used to derive early stopping decisions. For distributed training jobs, ensure that duplicate metrics are not printed in the logs across the individual nodes in a training job. If multiple nodes are publishing duplicate or incorrect metrics, training jobs may make an incorrect stopping decision and stop the job prematurely.

    " } }, "documentation":"

    The configuration for Hyperband, a multi-fidelity based hyperparameter tuning strategy. Hyperband uses the final and intermediate results of a training job to dynamically allocate resources to utilized hyperparameter configurations while automatically stopping under-performing configurations. This parameter should be provided only if Hyperband is selected as the StrategyConfig under the HyperParameterTuningJobConfig API.

    " @@ -21046,7 +21093,7 @@ "members":{ "DefaultResourceSpec":{ "shape":"ResourceSpec", - "documentation":"

    The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.

    The Amazon SageMaker Studio UI does not use the default instance type value set here. The default instance type set here is used when Apps are created using the Amazon Web Services Command Line Interface or Amazon Web Services CloudFormation and the instance type parameter value is not passed.

    " + "documentation":"

    The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.

    The Amazon SageMaker Studio UI does not use the default instance type value set here. The default instance type set here is used when Apps are created using the CLI or CloudFormation and the instance type parameter value is not passed.

    " }, "CustomImages":{ "shape":"CustomImages", @@ -21069,7 +21116,7 @@ }, "FileSystemConfig":{ "shape":"FileSystemConfig", - "documentation":"

    The Amazon Elastic File System (EFS) storage configuration for a SageMaker image.

    " + "documentation":"

    The Amazon Elastic File System storage configuration for a SageMaker image.

    " } }, "documentation":"

    The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app.

    " @@ -24839,7 +24886,7 @@ }, "DomainIdEquals":{ "shape":"DomainId", - "documentation":"

    A parameter to search for the Domain ID.

    " + "documentation":"

    A parameter to search for the domain ID.

    " }, "SpaceNameContains":{ "shape":"SpaceName", @@ -25795,7 +25842,7 @@ "documentation":"

    Specifies agreement to the model end-user license agreement (EULA). The AcceptEula value must be explicitly defined as True in order to accept the EULA that this model requires. You are responsible for reviewing and complying with any applicable license terms and making sure they are acceptable for your use case before downloading or using a model.

    " } }, - "documentation":"

    The access configuration file for the ML model. You can explicitly accept the model end-user license agreement (EULA) within the ModelAccessConfig. For more information, see End-user license agreements.

    " + "documentation":"

    The access configuration file to control access to the ML model. You can explicitly accept the model end-user license agreement (EULA) within the ModelAccessConfig.

    " }, "ModelApprovalStatus":{ "type":"string", @@ -25820,7 +25867,7 @@ "documentation":"

    The path of the S3 object that contains the model artifacts. For example, s3://bucket-name/keynameprefix/model.tar.gz.

    " } }, - "documentation":"

    Provides information about the location that is configured for storing model artifacts.

    Model artifacts are the output that results from training a model, and typically consist of trained parameters, a model definition that describes how to compute inferences, and other metadata.

    " + "documentation":"

    Provides information about the location that is configured for storing model artifacts.

    Model artifacts are outputs that result from training a model. They typically consist of trained parameters, a model definition that describes how to compute inferences, and other metadata. A SageMaker container stores your trained model artifacts in the /opt/ml/model directory. After training has completed, by default, these artifacts are uploaded to your Amazon S3 bucket as compressed files.

    " }, "ModelBiasAppSpecification":{ "type":"structure", @@ -28262,7 +28309,7 @@ "documentation":"

    A base64-encoded string that contains a shell script for a notebook instance lifecycle configuration.

    " } }, - "documentation":"

    Contains the notebook instance lifecycle configuration script.

    Each lifecycle configuration script has a limit of 16384 characters.

    The value of the $PATH environment variable that is available to both scripts is /sbin:bin:/usr/sbin:/usr/bin.

    View CloudWatch Logs for notebook instance lifecycle configurations in log group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook].

    Lifecycle configuration scripts cannot run for longer than 5 minutes. If a script runs for longer than 5 minutes, it fails and the notebook instance is not created or started.

    For information about notebook instance lifestyle configurations, see Step 2.1: (Optional) Customize a Notebook Instance.

    " + "documentation":"

    Contains the notebook instance lifecycle configuration script.

    Each lifecycle configuration script has a limit of 16384 characters.

    The value of the $PATH environment variable that is available to both scripts is /sbin:bin:/usr/sbin:/usr/bin.

    View Amazon CloudWatch Logs for notebook instance lifecycle configurations in log group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook].

    Lifecycle configuration scripts cannot run for longer than 5 minutes. If a script runs for longer than 5 minutes, it fails and the notebook instance is not created or started.

    For information about notebook instance lifestyle configurations, see Step 2.1: (Optional) Customize a Notebook Instance.

    " }, "NotebookInstanceName":{ "type":"string", @@ -31881,10 +31928,10 @@ "members":{ "HomeEfsFileSystem":{ "shape":"RetentionType", - "documentation":"

    The default is Retain, which specifies to keep the data stored on the EFS volume.

    Specify Delete to delete the data stored on the EFS volume.

    " + "documentation":"

    The default is Retain, which specifies to keep the data stored on the Amazon EFS volume.

    Specify Delete to delete the data stored on the Amazon EFS volume.

    " } }, - "documentation":"

    The retention policy for data stored on an Amazon Elastic File System (EFS) volume.

    " + "documentation":"

    The retention policy for data stored on an Amazon Elastic File System volume.

    " }, "RetentionType":{ "type":"string", @@ -32025,7 +32072,7 @@ }, "S3Uri":{ "shape":"S3Uri", - "documentation":"

    Depending on the value specified for the S3DataType, identifies either a key name prefix or a manifest. For example:

    • A key name prefix might look like this: s3://bucketname/exampleprefix

    • A manifest might look like this: s3://bucketname/example.manifest

      A manifest is an S3 object which is a JSON file consisting of an array of elements. The first element is a prefix which is followed by one or more suffixes. SageMaker appends the suffix elements to the prefix to get a full set of S3Uri. Note that the prefix must be a valid non-empty S3Uri that precludes users from specifying a manifest whose individual S3Uri is sourced from different S3 buckets.

      The following code example shows a valid manifest format:

      [ {\"prefix\": \"s3://customer_bucket/some/prefix/\"},

      \"relative/path/to/custdata-1\",

      \"relative/path/custdata-2\",

      ...

      \"relative/path/custdata-N\"

      ]

      This JSON is equivalent to the following S3Uri list:

      s3://customer_bucket/some/prefix/relative/path/to/custdata-1

      s3://customer_bucket/some/prefix/relative/path/custdata-2

      ...

      s3://customer_bucket/some/prefix/relative/path/custdata-N

      The complete set of S3Uri in this manifest is the input data for the channel for this data source. The object that each S3Uri points to must be readable by the IAM role that SageMaker uses to perform tasks on your behalf.

    Your input bucket must be located in same Amazon Web Services region as your training job.

    " + "documentation":"

    Depending on the value specified for the S3DataType, identifies either a key name prefix or a manifest. For example:

    • A key name prefix might look like this: s3://bucketname/exampleprefix/

    • A manifest might look like this: s3://bucketname/example.manifest

      A manifest is an S3 object which is a JSON file consisting of an array of elements. The first element is a prefix which is followed by one or more suffixes. SageMaker appends the suffix elements to the prefix to get a full set of S3Uri. Note that the prefix must be a valid non-empty S3Uri that precludes users from specifying a manifest whose individual S3Uri is sourced from different S3 buckets.

      The following code example shows a valid manifest format:

      [ {\"prefix\": \"s3://customer_bucket/some/prefix/\"},

      \"relative/path/to/custdata-1\",

      \"relative/path/custdata-2\",

      ...

      \"relative/path/custdata-N\"

      ]

      This JSON is equivalent to the following S3Uri list:

      s3://customer_bucket/some/prefix/relative/path/to/custdata-1

      s3://customer_bucket/some/prefix/relative/path/custdata-2

      ...

      s3://customer_bucket/some/prefix/relative/path/custdata-N

      The complete set of S3Uri in this manifest is the input data for the channel for this data source. The object that each S3Uri points to must be readable by the IAM role that SageMaker uses to perform tasks on your behalf.

    Your input bucket must be located in same Amazon Web Services region as your training job.

    " }, "S3DataDistributionType":{ "shape":"S3DataDistribution", @@ -32863,7 +32910,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The ID of the associated Domain.

    " + "documentation":"

    The ID of the associated domain.

    " }, "SpaceName":{ "shape":"SpaceName", @@ -33627,7 +33674,7 @@ }, "ProblemType":{ "shape":"ProblemType", - "documentation":"

    The type of supervised learning problem available for the model candidates of the AutoML job V2. For more information, see Amazon SageMaker Autopilot problem types.

    You must either specify the type of supervised learning problem in ProblemType and provide the AutoMLJobObjective metric, or none at all.

    " + "documentation":"

    The type of supervised learning problem available for the model candidates of the AutoML job V2. For more information, see SageMaker Autopilot problem types.

    You must either specify the type of supervised learning problem in ProblemType and provide the AutoMLJobObjective metric, or none at all.

    " }, "TargetAttributeName":{ "shape":"TargetAttributeName", @@ -33645,7 +33692,7 @@ "members":{ "ProblemType":{ "shape":"ProblemType", - "documentation":"

    The type of supervised learning problem available for the model candidates of the AutoML job V2 (Binary Classification, Multiclass Classification, Regression). For more information, see Amazon SageMaker Autopilot problem types.

    " + "documentation":"

    The type of supervised learning problem available for the model candidates of the AutoML job V2 (Binary Classification, Multiclass Classification, Regression). For more information, see SageMaker Autopilot problem types.

    " } }, "documentation":"

    The resolved attributes specific to the tabular problem type.

    " @@ -34008,7 +34055,7 @@ "documentation":"

    For provisioned feature groups, this indicates the write throughput you are billed for and can consume without throttling.

    This field is not applicable for on-demand feature groups.

    " } }, - "documentation":"

    Active throughput configuration of the feature group. Used to set feature group throughput configuration. There are two modes: ON_DEMAND and PROVISIONED. With on-demand mode, you are charged for data reads and writes that your application performs on your feature group. You do not need to specify read and write throughput because Feature Store accommodates your workloads as they ramp up and down. You can switch a feature group to on-demand only once in a 24 hour period. With provisioned throughput mode, you specify the read and write capacity per second that you expect your application to require, and you are billed based on those limits. Exceeding provisioned throughput will result in your requests being throttled.

    Note: PROVISIONED throughput mode is supported only for feature groups that are offline-only, or use the Standard tier online store.

    " + "documentation":"

    Active throughput configuration of the feature group. There are two modes: ON_DEMAND and PROVISIONED. With on-demand mode, you are charged for data reads and writes that your application performs on your feature group. You do not need to specify read and write throughput because Feature Store accommodates your workloads as they ramp up and down. You can switch a feature group to on-demand only once in a 24 hour period. With provisioned throughput mode, you specify the read and write capacity per second that you expect your application to require, and you are billed based on those limits. Exceeding provisioned throughput will result in your requests being throttled.

    Note: PROVISIONED throughput mode is supported only for feature groups that are offline-only, or use the Standard tier online store.

    " }, "ThroughputConfigUpdate":{ "type":"structure", @@ -35057,7 +35104,7 @@ }, "S3Uri":{ "shape":"S3Uri", - "documentation":"

    Depending on the value specified for the S3DataType, identifies either a key name prefix or a manifest. For example:

    • A key name prefix might look like this: s3://bucketname/exampleprefix.

    • A manifest might look like this: s3://bucketname/example.manifest

      The manifest is an S3 object which is a JSON file with the following format:

      [ {\"prefix\": \"s3://customer_bucket/some/prefix/\"},

      \"relative/path/to/custdata-1\",

      \"relative/path/custdata-2\",

      ...

      \"relative/path/custdata-N\"

      ]

      The preceding JSON matches the following S3Uris:

      s3://customer_bucket/some/prefix/relative/path/to/custdata-1

      s3://customer_bucket/some/prefix/relative/path/custdata-2

      ...

      s3://customer_bucket/some/prefix/relative/path/custdata-N

      The complete set of S3Uris in this manifest constitutes the input data for the channel for this datasource. The object that each S3Uris points to must be readable by the IAM role that Amazon SageMaker uses to perform tasks on your behalf.

    " + "documentation":"

    Depending on the value specified for the S3DataType, identifies either a key name prefix or a manifest. For example:

    • A key name prefix might look like this: s3://bucketname/exampleprefix/.

    • A manifest might look like this: s3://bucketname/example.manifest

      The manifest is an S3 object which is a JSON file with the following format:

      [ {\"prefix\": \"s3://customer_bucket/some/prefix/\"},

      \"relative/path/to/custdata-1\",

      \"relative/path/custdata-2\",

      ...

      \"relative/path/custdata-N\"

      ]

      The preceding JSON matches the following S3Uris:

      s3://customer_bucket/some/prefix/relative/path/to/custdata-1

      s3://customer_bucket/some/prefix/relative/path/custdata-2

      ...

      s3://customer_bucket/some/prefix/relative/path/custdata-N

      The complete set of S3Uris in this manifest constitutes the input data for the channel for this datasource. The object that each S3Uris points to must be readable by the IAM role that Amazon SageMaker uses to perform tasks on your behalf.

    " } }, "documentation":"

    Describes the S3 data source.

    " @@ -35687,7 +35734,7 @@ "members":{ "AppImageConfigArn":{ "shape":"AppImageConfigArn", - "documentation":"

    The Amazon Resource Name (ARN) for the AppImageConfig.

    " + "documentation":"

    The ARN for the AppImageConfig.

    " } } }, @@ -35749,6 +35796,26 @@ } } }, + "UpdateClusterSoftwareRequest":{ + "type":"structure", + "required":["ClusterName"], + "members":{ + "ClusterName":{ + "shape":"ClusterNameOrArn", + "documentation":"

    Specify the name or the Amazon Resource Name (ARN) of the SageMaker HyperPod cluster you want to update for security patching.

    " + } + } + }, + "UpdateClusterSoftwareResponse":{ + "type":"structure", + "required":["ClusterArn"], + "members":{ + "ClusterArn":{ + "shape":"ClusterArn", + "documentation":"

    The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster being updated for security patching.

    " + } + } + }, "UpdateCodeRepositoryInput":{ "type":"structure", "required":["CodeRepositoryName"], @@ -35872,7 +35939,7 @@ }, "DefaultSpaceSettings":{ "shape":"DefaultSpaceSettings", - "documentation":"

    The default settings used to create a space within the Domain.

    " + "documentation":"

    The default settings used to create a space within the domain.

    " }, "SubnetIds":{ "shape":"Subnets", @@ -36614,7 +36681,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The ID of the associated Domain.

    " + "documentation":"

    The ID of the associated domain.

    " }, "SpaceName":{ "shape":"SpaceName", @@ -37133,7 +37200,7 @@ "members":{ "Key":{ "shape":"VisibilityConditionsKey", - "documentation":"

    The key for that specifies the tag that you're using to filter the search results. The key must start with Tags..

    " + "documentation":"

    The key that specifies the tag that you're using to filter the search results. It must be in the following format: Tags.<key>/EqualsIfExists.

    " }, "Value":{ "shape":"VisibilityConditionsValue", diff --git a/services/sagemakera2iruntime/pom.xml b/services/sagemakera2iruntime/pom.xml index 11fdaac3944a..6d92dea84f24 100644 --- a/services/sagemakera2iruntime/pom.xml +++ b/services/sagemakera2iruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sagemakera2iruntime AWS Java SDK :: Services :: SageMaker A2I Runtime diff --git a/services/sagemakera2iruntime/src/main/resources/codegen-resources/customization.config b/services/sagemakera2iruntime/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/sagemakera2iruntime/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/sagemakeredge/pom.xml b/services/sagemakeredge/pom.xml index 8018cbcff8fc..8c96c957f155 100644 --- a/services/sagemakeredge/pom.xml +++ b/services/sagemakeredge/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sagemakeredge AWS Java SDK :: Services :: Sagemaker Edge diff --git a/services/sagemakeredge/src/main/resources/codegen-resources/customization.config b/services/sagemakeredge/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/sagemakeredge/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/sagemakerfeaturestoreruntime/pom.xml b/services/sagemakerfeaturestoreruntime/pom.xml index 943fb274e7ed..c210ec5e7e3d 100644 --- a/services/sagemakerfeaturestoreruntime/pom.xml +++ b/services/sagemakerfeaturestoreruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sagemakerfeaturestoreruntime AWS Java SDK :: Services :: Sage Maker Feature Store Runtime diff --git a/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/customization.config b/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/sagemakergeospatial/pom.xml b/services/sagemakergeospatial/pom.xml index c7f3d0f98698..0c7bf81a864f 100644 --- a/services/sagemakergeospatial/pom.xml +++ b/services/sagemakergeospatial/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sagemakergeospatial AWS Java SDK :: Services :: Sage Maker Geospatial diff --git a/services/sagemakergeospatial/src/main/resources/codegen-resources/customization.config b/services/sagemakergeospatial/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/sagemakergeospatial/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/sagemakermetrics/pom.xml b/services/sagemakermetrics/pom.xml index 2589f2e4c56c..98783fabd275 100644 --- a/services/sagemakermetrics/pom.xml +++ b/services/sagemakermetrics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sagemakermetrics AWS Java SDK :: Services :: Sage Maker Metrics diff --git a/services/sagemakermetrics/src/main/resources/codegen-resources/customization.config b/services/sagemakermetrics/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/sagemakermetrics/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/sagemakerruntime/pom.xml b/services/sagemakerruntime/pom.xml index 8e7f4f440e08..728d0594eac8 100644 --- a/services/sagemakerruntime/pom.xml +++ b/services/sagemakerruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sagemakerruntime AWS Java SDK :: Services :: SageMaker Runtime diff --git a/services/sagemakerruntime/src/main/resources/codegen-resources/customization.config b/services/sagemakerruntime/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/sagemakerruntime/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/savingsplans/pom.xml b/services/savingsplans/pom.xml index 0d4c02421e46..cccf9f490843 100644 --- a/services/savingsplans/pom.xml +++ b/services/savingsplans/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT savingsplans AWS Java SDK :: Services :: Savingsplans diff --git a/services/savingsplans/src/main/resources/codegen-resources/customization.config b/services/savingsplans/src/main/resources/codegen-resources/customization.config index 89f59320725a..a79457ef90ad 100644 --- a/services/savingsplans/src/main/resources/codegen-resources/customization.config +++ b/services/savingsplans/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "customServiceMetadata": {"contentType" : "application/json"} -} \ No newline at end of file + "customServiceMetadata": { + "contentType": "application/json" + }, + "useSraAuth": true +} diff --git a/services/scheduler/pom.xml b/services/scheduler/pom.xml index a014b2401eaf..a33cbb5fbc5c 100644 --- a/services/scheduler/pom.xml +++ b/services/scheduler/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT scheduler AWS Java SDK :: Services :: Scheduler diff --git a/services/scheduler/src/main/resources/codegen-resources/customization.config b/services/scheduler/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/scheduler/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/schemas/pom.xml b/services/schemas/pom.xml index a88b7b04fd7a..13ee7e9014b3 100644 --- a/services/schemas/pom.xml +++ b/services/schemas/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT schemas AWS Java SDK :: Services :: Schemas diff --git a/services/schemas/src/main/resources/codegen-resources/customization.config b/services/schemas/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/schemas/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/secretsmanager/pom.xml b/services/secretsmanager/pom.xml index 5d8aeae1f9a6..7f8db10ef862 100644 --- a/services/secretsmanager/pom.xml +++ b/services/secretsmanager/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT secretsmanager AWS Java SDK :: Services :: AWS Secrets Manager diff --git a/services/secretsmanager/src/main/resources/codegen-resources/customization.config b/services/secretsmanager/src/main/resources/codegen-resources/customization.config index 8398ab40cbc7..47f739751163 100644 --- a/services/secretsmanager/src/main/resources/codegen-resources/customization.config +++ b/services/secretsmanager/src/main/resources/codegen-resources/customization.config @@ -1,6 +1,9 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "getRandomPassword", "listSecrets" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/secretsmanager/src/main/resources/codegen-resources/service-2.json b/services/secretsmanager/src/main/resources/codegen-resources/service-2.json index b836713b02a2..0f5e987afb04 100644 --- a/services/secretsmanager/src/main/resources/codegen-resources/service-2.json +++ b/services/secretsmanager/src/main/resources/codegen-resources/service-2.json @@ -194,7 +194,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"InternalServiceError"} ], - "documentation":"

    Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account, not including secrets that are marked for deletion. To see secrets marked for deletion, use the Secrets Manager console.

    ListSecrets is eventually consistent, however it might not reflect changes from the last five minutes. To get the latest information for a specific secret, use DescribeSecret.

    To list the versions of a secret, use ListSecretVersionIds.

    To retrieve the values for the secrets, call BatchGetSecretValue or GetSecretValue.

    For information about finding secrets in the console, see Find secrets in Secrets Manager.

    Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

    Required permissions: secretsmanager:ListSecrets. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

    " + "documentation":"

    Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account, not including secrets that are marked for deletion. To see secrets marked for deletion, use the Secrets Manager console.

    All Secrets Manager operations are eventually consistent. ListSecrets might not reflect changes from the last five minutes. You can get more recent information for a specific secret by calling DescribeSecret.

    To list the versions of a secret, use ListSecretVersionIds.

    To retrieve the values for the secrets, call BatchGetSecretValue or GetSecretValue.

    For information about finding secrets in the console, see Find secrets in Secrets Manager.

    Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

    Required permissions: secretsmanager:ListSecrets. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

    " }, "PutResourcePolicy":{ "name":"PutResourcePolicy", @@ -706,7 +706,7 @@ }, "NextRotationDate":{ "shape":"NextRotationDateType", - "documentation":"

    The next rotation is scheduled to occur on or before this date. If the secret isn't configured for rotation or rotation has been disabled, Secrets Manager returns null.

    " + "documentation":"

    The next rotation is scheduled to occur on or before this date. If the secret isn't configured for rotation or rotation has been disabled, Secrets Manager returns null. If rotation fails, Secrets Manager retries the entire rotation process multiple times. If rotation is unsuccessful, this date may be in the past.

    " }, "Tags":{ "shape":"TagListType", diff --git a/services/securityhub/pom.xml b/services/securityhub/pom.xml index 6fbb6dd8974e..2d8d27f9bb0c 100644 --- a/services/securityhub/pom.xml +++ b/services/securityhub/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT securityhub AWS Java SDK :: Services :: SecurityHub diff --git a/services/securityhub/src/main/resources/codegen-resources/customization.config b/services/securityhub/src/main/resources/codegen-resources/customization.config index 4f8246fb980f..57d2b7d2eeab 100644 --- a/services/securityhub/src/main/resources/codegen-resources/customization.config +++ b/services/securityhub/src/main/resources/codegen-resources/customization.config @@ -1,16 +1,18 @@ { - "verifiedSimpleMethods": [ - "getFindings", - "disableSecurityHub", - "enableSecurityHub", - "getInvitationsCount", - "getMasterAccount", - "listEnabledProductsForImport", - "listInvitations", - "listMembers" - ], - "excludedSimpleMethods": [ - "getEnabledStandards", - "getInsights" - ] + "verifiedSimpleMethods": [ + "getFindings", + "disableSecurityHub", + "enableSecurityHub", + "getInvitationsCount", + "getMasterAccount", + "listEnabledProductsForImport", + "listInvitations", + "listMembers" + ], + "excludedSimpleMethods": [ + "getEnabledStandards", + "getInsights" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true } diff --git a/services/securitylake/pom.xml b/services/securitylake/pom.xml index 9103a995cb03..ce3d9f62788e 100644 --- a/services/securitylake/pom.xml +++ b/services/securitylake/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT securitylake AWS Java SDK :: Services :: Security Lake diff --git a/services/securitylake/src/main/resources/codegen-resources/customization.config b/services/securitylake/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/securitylake/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/securitylake/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/securitylake/src/main/resources/codegen-resources/endpoint-rule-set.json index 565deb8ab107..f72c5adafeed 100644 --- a/services/securitylake/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/securitylake/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -59,7 +58,6 @@ }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -87,13 +85,14 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -106,7 +105,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -120,7 +118,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -143,7 +140,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -178,11 +174,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -193,16 +187,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -216,14 +213,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -232,15 +227,14 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -251,16 +245,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -274,7 +271,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -294,11 +290,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -309,20 +303,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -333,18 +329,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "Invalid Configuration: Missing Region", "type": "error" } - ] + ], + "type": "tree" } ] } \ No newline at end of file diff --git a/services/securitylake/src/main/resources/codegen-resources/service-2.json b/services/securitylake/src/main/resources/codegen-resources/service-2.json index 2aadfa9cc226..165dbb19051e 100644 --- a/services/securitylake/src/main/resources/codegen-resources/service-2.json +++ b/services/securitylake/src/main/resources/codegen-resources/service-2.json @@ -1217,14 +1217,14 @@ "members":{ "regions":{ "shape":"RegionList", - "documentation":"

    Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. Amazon S3 buckets that are configured for object replication can be owned by the same Amazon Web Services account or by different accounts. You can replicate objects to a single destination bucket or to multiple destination buckets. The destination buckets can be in different Amazon Web Services Regions or within the same Region as the source bucket.

    Set up one or more rollup Regions by providing the Region or Regions that should contribute to the central rollup Region.

    " + "documentation":"

    Specifies one or more centralized rollup Regions. The Amazon Web Services Region specified in the region parameter of the CreateDataLake or UpdateDataLake operations contributes data to the rollup Region or Regions specified in this parameter.

    Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. S3 buckets that are configured for object replication can be owned by the same Amazon Web Services account or by different accounts. You can replicate objects to a single destination bucket or to multiple destination buckets. The destination buckets can be in different Regions or within the same Region as the source bucket.

    " }, "roleArn":{ "shape":"RoleArn", "documentation":"

    Replication settings for the Amazon S3 buckets. This parameter uses the Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct.

    " } }, - "documentation":"

    Provides replication details of Amazon Security Lake object.

    " + "documentation":"

    Provides replication details for objects stored in the Amazon Security Lake data lake.

    " }, "DataLakeResource":{ "type":"structure", @@ -1654,7 +1654,7 @@ }, "regions":{ "shape":"RegionList", - "documentation":"

    List the Amazon Web Services Regions from which exceptions are retrieved.

    " + "documentation":"

    The Amazon Web Services Regions from which exceptions are retrieved.

    " } } }, @@ -1676,7 +1676,7 @@ "members":{ "regions":{ "shape":"RegionList", - "documentation":"

    The list of regions where Security Lake is enabled.

    ", + "documentation":"

    The list of Regions where Security Lake is enabled.

    ", "location":"querystring", "locationName":"regions" } @@ -1708,7 +1708,7 @@ }, "regions":{ "shape":"RegionList", - "documentation":"

    The list of regions for which log sources are displayed.

    " + "documentation":"

    The list of Regions for which log sources are displayed.

    " }, "sources":{ "shape":"LogSourceResourceList", diff --git a/services/serverlessapplicationrepository/pom.xml b/services/serverlessapplicationrepository/pom.xml index a93dee4796af..d5d901fc8caa 100644 --- a/services/serverlessapplicationrepository/pom.xml +++ b/services/serverlessapplicationrepository/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 serverlessapplicationrepository diff --git a/services/serverlessapplicationrepository/src/main/resources/codegen-resources/customization.config b/services/serverlessapplicationrepository/src/main/resources/codegen-resources/customization.config index 2fb45a9d3f02..d588af5c4086 100644 --- a/services/serverlessapplicationrepository/src/main/resources/codegen-resources/customization.config +++ b/services/serverlessapplicationrepository/src/main/resources/codegen-resources/customization.config @@ -1,4 +1,9 @@ { - "excludedSimpleMethods" : ["createApplication"], - "verifiedSimpleMethods" : ["listApplications"] + "excludedSimpleMethods": [ + "createApplication" + ], + "verifiedSimpleMethods": [ + "listApplications" + ], + "useSraAuth": true } diff --git a/services/servicecatalog/pom.xml b/services/servicecatalog/pom.xml index 36257ac1a748..23f3a3b29770 100644 --- a/services/servicecatalog/pom.xml +++ b/services/servicecatalog/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT servicecatalog AWS Java SDK :: Services :: AWS Service Catalog diff --git a/services/servicecatalog/src/main/resources/codegen-resources/customization.config b/services/servicecatalog/src/main/resources/codegen-resources/customization.config index c0f905687005..ce7e33c65ce0 100644 --- a/services/servicecatalog/src/main/resources/codegen-resources/customization.config +++ b/services/servicecatalog/src/main/resources/codegen-resources/customization.config @@ -1,15 +1,18 @@ { - "verifiedSimpleMethods": [ - "listAcceptedPortfolioShares", - "listPortfolios", - "listProvisionedProductPlans", - "listRecordHistory", - "listServiceActions", - "scanProvisionedProducts", - "searchProducts", - "searchProductsAsAdmin", - "listTagOptions", - "searchProvisionedProducts", - "getAWSOrganizationsAccessStatus" - ] + "verifiedSimpleMethods": [ + "listAcceptedPortfolioShares", + "listPortfolios", + "listProvisionedProductPlans", + "listRecordHistory", + "listServiceActions", + "scanProvisionedProducts", + "searchProducts", + "searchProductsAsAdmin", + "listTagOptions", + "searchProvisionedProducts", + "getAWSOrganizationsAccessStatus" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/servicecatalogappregistry/pom.xml b/services/servicecatalogappregistry/pom.xml index 25291e0ca829..5f25d6d71134 100644 --- a/services/servicecatalogappregistry/pom.xml +++ b/services/servicecatalogappregistry/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT servicecatalogappregistry AWS Java SDK :: Services :: Service Catalog App Registry diff --git a/services/servicecatalogappregistry/src/main/resources/codegen-resources/customization.config b/services/servicecatalogappregistry/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/servicecatalogappregistry/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/servicediscovery/pom.xml b/services/servicediscovery/pom.xml index ce7011253f37..920ef3f6a147 100644 --- a/services/servicediscovery/pom.xml +++ b/services/servicediscovery/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 servicediscovery diff --git a/services/servicediscovery/src/main/resources/codegen-resources/customization.config b/services/servicediscovery/src/main/resources/codegen-resources/customization.config index 91ee5edcc086..0c7bd026fa1a 100644 --- a/services/servicediscovery/src/main/resources/codegen-resources/customization.config +++ b/services/servicediscovery/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listNamespaces", "listOperations", "listServices" ], - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true } diff --git a/services/servicequotas/pom.xml b/services/servicequotas/pom.xml index db3e9affad7e..c6689c3d2ffc 100644 --- a/services/servicequotas/pom.xml +++ b/services/servicequotas/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT servicequotas AWS Java SDK :: Services :: Service Quotas diff --git a/services/servicequotas/src/main/resources/codegen-resources/customization.config b/services/servicequotas/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/servicequotas/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/ses/pom.xml b/services/ses/pom.xml index 115cc76065bd..53066979bb52 100644 --- a/services/ses/pom.xml +++ b/services/ses/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ses AWS Java SDK :: Services :: Amazon SES diff --git a/services/ses/src/main/resources/codegen-resources/customization.config b/services/ses/src/main/resources/codegen-resources/customization.config index 232f5a35cdbd..4664eeb6ba21 100644 --- a/services/ses/src/main/resources/codegen-resources/customization.config +++ b/services/ses/src/main/resources/codegen-resources/customization.config @@ -1,19 +1,20 @@ { - "verifiedSimpleMethods": [ - "setActiveReceiptRuleSet", - "describeActiveReceiptRuleSet", - "getAccountSendingEnabled", - "getSendQuota", - "getSendStatistics", - "listConfigurationSets", - "listCustomVerificationEmailTemplates", - "listIdentities", - "listReceiptFilters", - "listReceiptRuleSets", - "listTemplates", - "listVerifiedEmailAddresses" - ], - "excludedSimpleMethods": [ - "updateAccountSendingEnabled" - ] + "verifiedSimpleMethods": [ + "setActiveReceiptRuleSet", + "describeActiveReceiptRuleSet", + "getAccountSendingEnabled", + "getSendQuota", + "getSendStatistics", + "listConfigurationSets", + "listCustomVerificationEmailTemplates", + "listIdentities", + "listReceiptFilters", + "listReceiptRuleSets", + "listTemplates", + "listVerifiedEmailAddresses" + ], + "excludedSimpleMethods": [ + "updateAccountSendingEnabled" + ], + "useSraAuth": true } diff --git a/services/sesv2/pom.xml b/services/sesv2/pom.xml index f0bd2da3fd44..1fa8bbe391ad 100644 --- a/services/sesv2/pom.xml +++ b/services/sesv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sesv2 AWS Java SDK :: Services :: SESv2 diff --git a/services/sesv2/src/main/resources/codegen-resources/customization.config b/services/sesv2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/sesv2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/sfn/pom.xml b/services/sfn/pom.xml index 5cd8dab41f71..44a38d1a3b19 100644 --- a/services/sfn/pom.xml +++ b/services/sfn/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sfn AWS Java SDK :: Services :: AWS Step Functions diff --git a/services/sfn/src/main/resources/codegen-resources/customization.config b/services/sfn/src/main/resources/codegen-resources/customization.config index e6d719333524..31a8e93e8105 100644 --- a/services/sfn/src/main/resources/codegen-resources/customization.config +++ b/services/sfn/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listActivities", "listStateMachines" ], "serviceSpecificHttpConfig": "software.amazon.awssdk.services.sfn.internal.SfnHttpConfigurationOptions", - "generateEndpointClientTests": true + "generateEndpointClientTests": true, + "useSraAuth": true } diff --git a/services/shield/pom.xml b/services/shield/pom.xml index 18a315818f1d..9008684636c1 100644 --- a/services/shield/pom.xml +++ b/services/shield/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT shield AWS Java SDK :: Services :: AWS Shield diff --git a/services/shield/src/main/resources/codegen-resources/customization.config b/services/shield/src/main/resources/codegen-resources/customization.config index 541a64eac33c..073266e199eb 100644 --- a/services/shield/src/main/resources/codegen-resources/customization.config +++ b/services/shield/src/main/resources/codegen-resources/customization.config @@ -1,20 +1,23 @@ { - "verifiedSimpleMethods": [ - "createSubscription", - "deleteSubscription", - "describeSubscription", - "listProtections", - "disassociateDRTRole", - "listAttacks", - "getSubscriptionState" - ], - "excludedSimpleMethods": [ - "updateEmergencyContactSettings", - "updateSubscription", - "describeDRTAccess", - "describeEmergencyContactSettings" - ], - "deprecatedOperations": [ - "DeleteSubscription" - ] + "verifiedSimpleMethods": [ + "createSubscription", + "deleteSubscription", + "describeSubscription", + "listProtections", + "disassociateDRTRole", + "listAttacks", + "getSubscriptionState" + ], + "excludedSimpleMethods": [ + "updateEmergencyContactSettings", + "updateSubscription", + "describeDRTAccess", + "describeEmergencyContactSettings" + ], + "deprecatedOperations": [ + "DeleteSubscription" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/signer/pom.xml b/services/signer/pom.xml index 1c2473f6b133..b04a9178f302 100644 --- a/services/signer/pom.xml +++ b/services/signer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT signer AWS Java SDK :: Services :: Signer diff --git a/services/signer/src/main/resources/codegen-resources/customization.config b/services/signer/src/main/resources/codegen-resources/customization.config index 2f6eb56c8ecb..b254df639aff 100644 --- a/services/signer/src/main/resources/codegen-resources/customization.config +++ b/services/signer/src/main/resources/codegen-resources/customization.config @@ -1,7 +1,10 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listSigningJobs", "listSigningPlatforms", "listSigningProfiles" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/simspaceweaver/pom.xml b/services/simspaceweaver/pom.xml index 80d92d84cc61..19cbff157f60 100644 --- a/services/simspaceweaver/pom.xml +++ b/services/simspaceweaver/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT simspaceweaver AWS Java SDK :: Services :: Sim Space Weaver diff --git a/services/simspaceweaver/src/main/resources/codegen-resources/customization.config b/services/simspaceweaver/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/simspaceweaver/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/sms/pom.xml b/services/sms/pom.xml index 53be1355d88f..4ecc82152ed4 100644 --- a/services/sms/pom.xml +++ b/services/sms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sms AWS Java SDK :: Services :: AWS Server Migration diff --git a/services/sms/src/main/resources/codegen-resources/customization.config b/services/sms/src/main/resources/codegen-resources/customization.config index 6e997de2f31f..a25e0e35b17e 100644 --- a/services/sms/src/main/resources/codegen-resources/customization.config +++ b/services/sms/src/main/resources/codegen-resources/customization.config @@ -1,13 +1,16 @@ { - "verifiedSimpleMethods": [ - "deleteServerCatalog", - "importServerCatalog", - "getAppLaunchConfiguration", - "getAppReplicationConfiguration", - "getApp", - "getConnectors", - "getReplicationJobs", - "getServers", - "listApps" - ] + "verifiedSimpleMethods": [ + "deleteServerCatalog", + "importServerCatalog", + "getAppLaunchConfiguration", + "getAppReplicationConfiguration", + "getApp", + "getConnectors", + "getReplicationJobs", + "getServers", + "listApps" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/snowball/pom.xml b/services/snowball/pom.xml index d4374f19f4cf..d0e202b45237 100644 --- a/services/snowball/pom.xml +++ b/services/snowball/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT snowball AWS Java SDK :: Services :: Amazon Snowball diff --git a/services/snowball/src/main/resources/codegen-resources/customization.config b/services/snowball/src/main/resources/codegen-resources/customization.config index 50142bb8bc88..dc2ce10a2eb9 100644 --- a/services/snowball/src/main/resources/codegen-resources/customization.config +++ b/services/snowball/src/main/resources/codegen-resources/customization.config @@ -1,23 +1,24 @@ { - "verifiedSimpleMethods": [ - "describeAddresses", - "getSnowballUsage", - "listClusters", - "listCompatibleImages", - "listJobs" - ], - "shapeModifiers": { - "Notification": { - "modify": [ - { - "NotifyAll": { - "emitPropertyName": "NotifyAllJobStates" - } + "verifiedSimpleMethods": [ + "describeAddresses", + "getSnowballUsage", + "listClusters", + "listCompatibleImages", + "listJobs" + ], + "shapeModifiers": { + "Notification": { + "modify": [ + { + "NotifyAll": { + "emitPropertyName": "NotifyAllJobStates" + } + } + ] } - ] - } - }, - "excludedSimpleMethods": [ - "createJob" - ] + }, + "excludedSimpleMethods": [ + "createJob" + ], + "useSraAuth": true } diff --git a/services/snowball/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/snowball/src/main/resources/codegen-resources/endpoint-rule-set.json index 7e3189b1cc02..b595b63732eb 100644 --- a/services/snowball/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/snowball/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/snowball/src/main/resources/codegen-resources/service-2.json b/services/snowball/src/main/resources/codegen-resources/service-2.json index c64ba0e33266..58b4cba9a513 100644 --- a/services/snowball/src/main/resources/codegen-resources/service-2.json +++ b/services/snowball/src/main/resources/codegen-resources/service-2.json @@ -55,7 +55,7 @@ {"shape":"InvalidAddressException"}, {"shape":"UnsupportedAddressException"} ], - "documentation":"

    Creates an address for a Snow device to be shipped to. In most regions, addresses are validated at the time of creation. The address you provide must be located within the serviceable area of your region. If the address is invalid or unsupported, then an exception is thrown.

    " + "documentation":"

    Creates an address for a Snow device to be shipped to. In most regions, addresses are validated at the time of creation. The address you provide must be located within the serviceable area of your region. If the address is invalid or unsupported, then an exception is thrown. If providing an address as a JSON file through the cli-input-json option, include the full file path. For example, --cli-input-json file://create-address.json.

    " }, "CreateCluster":{ "name":"CreateCluster", diff --git a/services/snowdevicemanagement/pom.xml b/services/snowdevicemanagement/pom.xml index 98d3cb092a81..4e05d0be7529 100644 --- a/services/snowdevicemanagement/pom.xml +++ b/services/snowdevicemanagement/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT snowdevicemanagement AWS Java SDK :: Services :: Snow Device Management diff --git a/services/snowdevicemanagement/src/main/resources/codegen-resources/customization.config b/services/snowdevicemanagement/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/snowdevicemanagement/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/sns/pom.xml b/services/sns/pom.xml index f6aef6daa68a..a4364ebfdf84 100644 --- a/services/sns/pom.xml +++ b/services/sns/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sns AWS Java SDK :: Services :: Amazon SNS diff --git a/services/sns/src/main/resources/codegen-resources/customization.config b/services/sns/src/main/resources/codegen-resources/customization.config index d9c57a07275b..07b720a1f72e 100644 --- a/services/sns/src/main/resources/codegen-resources/customization.config +++ b/services/sns/src/main/resources/codegen-resources/customization.config @@ -1,23 +1,26 @@ { - "verifiedSimpleMethods": [ - "getSMSAttributes", - "listPhoneNumbersOptedOut", - "listPlatformApplications", - "listSubscriptions", - "listTopics" - ], - "shapeModifiers": { - "AddPermissionInput": { - "modify": [ - { - "AWSAccountId": { - "emitPropertyName": "AWSAccountIds" - }, - "ActionName": { - "emitPropertyName": "ActionNames" - } + "verifiedSimpleMethods": [ + "getSMSAttributes", + "listPhoneNumbersOptedOut", + "listPlatformApplications", + "listSubscriptions", + "listTopics" + ], + "shapeModifiers": { + "AddPermissionInput": { + "modify": [ + { + "AWSAccountId": { + "emitPropertyName": "AWSAccountIds" + }, + "ActionName": { + "emitPropertyName": "ActionNames" + } + } + ] } - ] - } - } + }, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/sns/src/main/resources/codegen-resources/service-2.json b/services/sns/src/main/resources/codegen-resources/service-2.json index 00c166bd6c15..c97124fa7656 100644 --- a/services/sns/src/main/resources/codegen-resources/service-2.json +++ b/services/sns/src/main/resources/codegen-resources/service-2.json @@ -84,7 +84,7 @@ {"shape":"InternalErrorException"}, {"shape":"AuthorizationErrorException"} ], - "documentation":"

    Creates a platform application object for one of the supported push notification services, such as APNS and GCM (Firebase Cloud Messaging), to which devices and mobile apps may register. You must specify PlatformPrincipal and PlatformCredential attributes when using the CreatePlatformApplication action.

    PlatformPrincipal and PlatformCredential are received from the notification service.

    • For ADM, PlatformPrincipal is client id and PlatformCredential is client secret.

    • For Baidu, PlatformPrincipal is API key and PlatformCredential is secret key.

    • For APNS and APNS_SANDBOX using certificate credentials, PlatformPrincipal is SSL certificate and PlatformCredential is private key.

    • For APNS and APNS_SANDBOX using token credentials, PlatformPrincipal is signing key ID and PlatformCredential is signing key.

    • For GCM (Firebase Cloud Messaging), there is no PlatformPrincipal and the PlatformCredential is API key.

    • For MPNS, PlatformPrincipal is TLS certificate and PlatformCredential is private key.

    • For WNS, PlatformPrincipal is Package Security Identifier and PlatformCredential is secret key.

    You can use the returned PlatformApplicationArn as an attribute for the CreatePlatformEndpoint action.

    " + "documentation":"

    Creates a platform application object for one of the supported push notification services, such as APNS and GCM (Firebase Cloud Messaging), to which devices and mobile apps may register. You must specify PlatformPrincipal and PlatformCredential attributes when using the CreatePlatformApplication action.

    PlatformPrincipal and PlatformCredential are received from the notification service.

    • For ADM, PlatformPrincipal is client id and PlatformCredential is client secret.

    • For Baidu, PlatformPrincipal is API key and PlatformCredential is secret key.

    • For APNS and APNS_SANDBOX using certificate credentials, PlatformPrincipal is SSL certificate and PlatformCredential is private key.

    • For APNS and APNS_SANDBOX using token credentials, PlatformPrincipal is signing key ID and PlatformCredential is signing key.

    • For GCM (Firebase Cloud Messaging) using key credentials, there is no PlatformPrincipal. The PlatformCredential is API key.

    • For GCM (Firebase Cloud Messaging) using token credentials, there is no PlatformPrincipal. The PlatformCredential is a JSON formatted private key file. When using the Amazon Web Services CLI, the file must be in string format and special characters must be ignored. To format the file correctly, Amazon SNS recommends using the following command: SERVICE_JSON=`jq @json <<< cat service.json`.

    • For MPNS, PlatformPrincipal is TLS certificate and PlatformCredential is private key.

    • For WNS, PlatformPrincipal is Package Security Identifier and PlatformCredential is secret key.

    You can use the returned PlatformApplicationArn as an attribute for the CreatePlatformEndpoint action.

    " }, "CreatePlatformEndpoint":{ "name":"CreatePlatformEndpoint", @@ -1027,7 +1027,7 @@ }, "Attributes":{ "shape":"MapStringToString", - "documentation":"

    For a list of attributes, see SetPlatformApplicationAttributes.

    " + "documentation":"

    For a list of attributes, see SetPlatformApplicationAttributes .

    " } }, "documentation":"

    Input for CreatePlatformApplication action.

    " @@ -1037,7 +1037,7 @@ "members":{ "PlatformApplicationArn":{ "shape":"String", - "documentation":"

    PlatformApplicationArn is returned.

    " + "documentation":"

    PlatformApplicationArn is returned.

    " } }, "documentation":"

    Response from CreatePlatformApplication action.

    " @@ -1051,7 +1051,7 @@ "members":{ "PlatformApplicationArn":{ "shape":"String", - "documentation":"

    PlatformApplicationArn returned from CreatePlatformApplication is used to create a an endpoint.

    " + "documentation":"

    PlatformApplicationArn returned from CreatePlatformApplication is used to create a an endpoint.

    " }, "Token":{ "shape":"String", @@ -1063,7 +1063,7 @@ }, "Attributes":{ "shape":"MapStringToString", - "documentation":"

    For a list of attributes, see SetEndpointAttributes.

    " + "documentation":"

    For a list of attributes, see SetEndpointAttributes .

    " } }, "documentation":"

    Input for CreatePlatformEndpoint action.

    " @@ -1130,10 +1130,10 @@ "members":{ "EndpointArn":{ "shape":"String", - "documentation":"

    EndpointArn of endpoint to delete.

    " + "documentation":"

    EndpointArn of endpoint to delete.

    " } }, - "documentation":"

    Input for DeleteEndpoint action.

    " + "documentation":"

    Input for DeleteEndpoint action.

    " }, "DeletePlatformApplicationInput":{ "type":"structure", @@ -1141,10 +1141,10 @@ "members":{ "PlatformApplicationArn":{ "shape":"String", - "documentation":"

    PlatformApplicationArn of platform application object to delete.

    " + "documentation":"

    PlatformApplicationArn of platform application object to delete.

    " } }, - "documentation":"

    Input for DeletePlatformApplication action.

    " + "documentation":"

    Input for DeletePlatformApplication action.

    " }, "DeleteSMSSandboxPhoneNumberInput":{ "type":"structure", @@ -1252,10 +1252,10 @@ "members":{ "EndpointArn":{ "shape":"String", - "documentation":"

    EndpointArn for GetEndpointAttributes input.

    " + "documentation":"

    EndpointArn for GetEndpointAttributes input.

    " } }, - "documentation":"

    Input for GetEndpointAttributes action.

    " + "documentation":"

    Input for GetEndpointAttributes action.

    " }, "GetEndpointAttributesResponse":{ "type":"structure", @@ -1265,7 +1265,7 @@ "documentation":"

    Attributes include the following:

    • CustomUserData – arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.

    • Enabled – flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token.

    • Token – device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service.

      The device token for the iOS platform is returned in lowercase.

    " } }, - "documentation":"

    Response from GetEndpointAttributes of the EndpointArn.

    " + "documentation":"

    Response from GetEndpointAttributes of the EndpointArn.

    " }, "GetPlatformApplicationAttributesInput":{ "type":"structure", @@ -1273,20 +1273,20 @@ "members":{ "PlatformApplicationArn":{ "shape":"String", - "documentation":"

    PlatformApplicationArn for GetPlatformApplicationAttributesInput.

    " + "documentation":"

    PlatformApplicationArn for GetPlatformApplicationAttributesInput.

    " } }, - "documentation":"

    Input for GetPlatformApplicationAttributes action.

    " + "documentation":"

    Input for GetPlatformApplicationAttributes action.

    " }, "GetPlatformApplicationAttributesResponse":{ "type":"structure", "members":{ "Attributes":{ "shape":"MapStringToString", - "documentation":"

    Attributes include the following:

    • AppleCertificateExpiryDate – The expiry date of the SSL certificate used to configure certificate-based authentication.

    • ApplePlatformTeamID – The Apple developer account ID used to configure token-based authentication.

    • ApplePlatformBundleID – The app identifier used to configure token-based authentication.

    • EventEndpointCreated – Topic ARN to which EndpointCreated event notifications should be sent.

    • EventEndpointDeleted – Topic ARN to which EndpointDeleted event notifications should be sent.

    • EventEndpointUpdated – Topic ARN to which EndpointUpdate event notifications should be sent.

    • EventDeliveryFailure – Topic ARN to which DeliveryFailure event notifications should be sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints.

    " + "documentation":"

    Attributes include the following:

    • AppleCertificateExpiryDate – The expiry date of the SSL certificate used to configure certificate-based authentication.

    • ApplePlatformTeamID – The Apple developer account ID used to configure token-based authentication.

    • ApplePlatformBundleID – The app identifier used to configure token-based authentication.

    • AuthenticationMethod – Returns the credential type used when sending push notifications from application to APNS/APNS_Sandbox, or application to GCM.

      • APNS – Returns the token or certificate.

      • GCM – Returns the token or key.

    • EventEndpointCreated – Topic ARN to which EndpointCreated event notifications should be sent.

    • EventEndpointDeleted – Topic ARN to which EndpointDeleted event notifications should be sent.

    • EventEndpointUpdated – Topic ARN to which EndpointUpdate event notifications should be sent.

    • EventDeliveryFailure – Topic ARN to which DeliveryFailure event notifications should be sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints.

    " } }, - "documentation":"

    Response for GetPlatformApplicationAttributes action.

    " + "documentation":"

    Response for GetPlatformApplicationAttributes action.

    " }, "GetSMSAttributesInput":{ "type":"structure", @@ -1555,28 +1555,28 @@ "members":{ "PlatformApplicationArn":{ "shape":"String", - "documentation":"

    PlatformApplicationArn for ListEndpointsByPlatformApplicationInput action.

    " + "documentation":"

    PlatformApplicationArn for ListEndpointsByPlatformApplicationInput action.

    " }, "NextToken":{ "shape":"String", - "documentation":"

    NextToken string is used when calling ListEndpointsByPlatformApplication action to retrieve additional records that are available after the first page results.

    " + "documentation":"

    NextToken string is used when calling ListEndpointsByPlatformApplication action to retrieve additional records that are available after the first page results.

    " } }, - "documentation":"

    Input for ListEndpointsByPlatformApplication action.

    " + "documentation":"

    Input for ListEndpointsByPlatformApplication action.

    " }, "ListEndpointsByPlatformApplicationResponse":{ "type":"structure", "members":{ "Endpoints":{ "shape":"ListOfEndpoints", - "documentation":"

    Endpoints returned for ListEndpointsByPlatformApplication action.

    " + "documentation":"

    Endpoints returned for ListEndpointsByPlatformApplication action.

    " }, "NextToken":{ "shape":"String", - "documentation":"

    NextToken string is returned when calling ListEndpointsByPlatformApplication action if additional records are available after the first page results.

    " + "documentation":"

    NextToken string is returned when calling ListEndpointsByPlatformApplication action if additional records are available after the first page results.

    " } }, - "documentation":"

    Response for ListEndpointsByPlatformApplication action.

    " + "documentation":"

    Response for ListEndpointsByPlatformApplication action.

    " }, "ListOfEndpoints":{ "type":"list", @@ -1641,24 +1641,24 @@ "members":{ "NextToken":{ "shape":"String", - "documentation":"

    NextToken string is used when calling ListPlatformApplications action to retrieve additional records that are available after the first page results.

    " + "documentation":"

    NextToken string is used when calling ListPlatformApplications action to retrieve additional records that are available after the first page results.

    " } }, - "documentation":"

    Input for ListPlatformApplications action.

    " + "documentation":"

    Input for ListPlatformApplications action.

    " }, "ListPlatformApplicationsResponse":{ "type":"structure", "members":{ "PlatformApplications":{ "shape":"ListOfPlatformApplications", - "documentation":"

    Platform applications returned when calling ListPlatformApplications action.

    " + "documentation":"

    Platform applications returned when calling ListPlatformApplications action.

    " }, "NextToken":{ "shape":"String", - "documentation":"

    NextToken string is returned when calling ListPlatformApplications action if additional records are available after the first page results.

    " + "documentation":"

    NextToken string is returned when calling ListPlatformApplications action if additional records are available after the first page results.

    " } }, - "documentation":"

    Response for ListPlatformApplications action.

    " + "documentation":"

    Response for ListPlatformApplications action.

    " }, "ListSMSSandboxPhoneNumbersInput":{ "type":"structure", @@ -1895,7 +1895,10 @@ }, "exception":true }, - "PhoneNumber":{"type":"string"}, + "PhoneNumber":{ + "type":"string", + "sensitive":true + }, "PhoneNumberInformation":{ "type":"structure", "members":{ @@ -1904,7 +1907,7 @@ "documentation":"

    The date and time when the phone number was created.

    " }, "PhoneNumber":{ - "shape":"String", + "shape":"PhoneNumber", "documentation":"

    The phone number.

    " }, "Status":{ @@ -1938,7 +1941,8 @@ "PhoneNumberString":{ "type":"string", "max":20, - "pattern":"^(\\+[0-9]{8,}|[0-9]{0,9})$" + "pattern":"^(\\+[0-9]{8,}|[0-9]{0,9})$", + "sensitive":true }, "PlatformApplication":{ "type":"structure", @@ -2077,7 +2081,7 @@ "documentation":"

    If you don't specify a value for the TargetArn parameter, you must specify a value for the PhoneNumber or TopicArn parameters.

    " }, "PhoneNumber":{ - "shape":"String", + "shape":"PhoneNumber", "documentation":"

    The phone number to which you want to deliver an SMS message. Use E.164 format.

    If you don't specify a value for the PhoneNumber parameter, you must specify a value for the TargetArn or TopicArn parameters.

    " }, "Message":{ @@ -2226,14 +2230,14 @@ "members":{ "EndpointArn":{ "shape":"String", - "documentation":"

    EndpointArn used for SetEndpointAttributes action.

    " + "documentation":"

    EndpointArn used for SetEndpointAttributes action.

    " }, "Attributes":{ "shape":"MapStringToString", "documentation":"

    A map of the endpoint attributes. Attributes in this map include the following:

    • CustomUserData – arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.

    • Enabled – flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token.

    • Token – device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service.

    " } }, - "documentation":"

    Input for SetEndpointAttributes action.

    " + "documentation":"

    Input for SetEndpointAttributes action.

    " }, "SetPlatformApplicationAttributesInput":{ "type":"structure", @@ -2244,14 +2248,14 @@ "members":{ "PlatformApplicationArn":{ "shape":"String", - "documentation":"

    PlatformApplicationArn for SetPlatformApplicationAttributes action.

    " + "documentation":"

    PlatformApplicationArn for SetPlatformApplicationAttributes action.

    " }, "Attributes":{ "shape":"MapStringToString", - "documentation":"

    A map of the platform application attributes. Attributes in this map include the following:

    • PlatformCredential – The credential received from the notification service.

      • For ADM, PlatformCredentialis client secret.

      • For Apple Services using certificate credentials, PlatformCredential is private key.

      • For Apple Services using token credentials, PlatformCredential is signing key.

      • For GCM (Firebase Cloud Messaging), PlatformCredential is API key.

    • PlatformPrincipal – The principal received from the notification service.

      • For ADM, PlatformPrincipalis client id.

      • For Apple Services using certificate credentials, PlatformPrincipal is SSL certificate.

      • For Apple Services using token credentials, PlatformPrincipal is signing key ID.

      • For GCM (Firebase Cloud Messaging), there is no PlatformPrincipal.

    • EventEndpointCreated – Topic ARN to which EndpointCreated event notifications are sent.

    • EventEndpointDeleted – Topic ARN to which EndpointDeleted event notifications are sent.

    • EventEndpointUpdated – Topic ARN to which EndpointUpdate event notifications are sent.

    • EventDeliveryFailure – Topic ARN to which DeliveryFailure event notifications are sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints.

    • SuccessFeedbackRoleArn – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf.

    • FailureFeedbackRoleArn – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf.

    • SuccessFeedbackSampleRate – Sample rate percentage (0-100) of successfully delivered messages.

    The following attributes only apply to APNs token-based authentication:

    • ApplePlatformTeamID – The identifier that's assigned to your Apple developer account team.

    • ApplePlatformBundleID – The bundle identifier that's assigned to your iOS app.

    " + "documentation":"

    A map of the platform application attributes. Attributes in this map include the following:

    • PlatformCredential – The credential received from the notification service.

      • For ADM, PlatformCredentialis client secret.

      • For Apple Services using certificate credentials, PlatformCredential is private key.

      • For Apple Services using token credentials, PlatformCredential is signing key.

      • For GCM (Firebase Cloud Messaging) using key credentials, there is no PlatformPrincipal. The PlatformCredential is API key.

      • For GCM (Firebase Cloud Messaging) using token credentials, there is no PlatformPrincipal. The PlatformCredential is a JSON formatted private key file. When using the Amazon Web Services CLI, the file must be in string format and special characters must be ignored. To format the file correctly, Amazon SNS recommends using the following command: SERVICE_JSON=`jq @json <<< cat service.json`.

    • PlatformPrincipal – The principal received from the notification service.

      • For ADM, PlatformPrincipalis client id.

      • For Apple Services using certificate credentials, PlatformPrincipal is SSL certificate.

      • For Apple Services using token credentials, PlatformPrincipal is signing key ID.

      • For GCM (Firebase Cloud Messaging), there is no PlatformPrincipal.

    • EventEndpointCreated – Topic ARN to which EndpointCreated event notifications are sent.

    • EventEndpointDeleted – Topic ARN to which EndpointDeleted event notifications are sent.

    • EventEndpointUpdated – Topic ARN to which EndpointUpdate event notifications are sent.

    • EventDeliveryFailure – Topic ARN to which DeliveryFailure event notifications are sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints.

    • SuccessFeedbackRoleArn – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf.

    • FailureFeedbackRoleArn – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf.

    • SuccessFeedbackSampleRate – Sample rate percentage (0-100) of successfully delivered messages.

    The following attributes only apply to APNs token-based authentication:

    • ApplePlatformTeamID – The identifier that's assigned to your Apple developer account team.

    • ApplePlatformBundleID – The bundle identifier that's assigned to your iOS app.

    " } }, - "documentation":"

    Input for SetPlatformApplicationAttributes action.

    " + "documentation":"

    Input for SetPlatformApplicationAttributes action.

    " }, "SetSMSAttributesInput":{ "type":"structure", diff --git a/services/sqs/pom.xml b/services/sqs/pom.xml index feaf41877fb6..f7a6a5c7e237 100644 --- a/services/sqs/pom.xml +++ b/services/sqs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sqs AWS Java SDK :: Services :: Amazon SQS diff --git a/services/sqs/src/main/resources/codegen-resources/customization.config b/services/sqs/src/main/resources/codegen-resources/customization.config index 27dae604ffc9..ec54445d7516 100644 --- a/services/sqs/src/main/resources/codegen-resources/customization.config +++ b/services/sqs/src/main/resources/codegen-resources/customization.config @@ -1,14 +1,15 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listQueues" ], "interceptors": [ "software.amazon.awssdk.services.sqs.internal.MessageMD5ChecksumInterceptor" ], - "customClientContextParams":{ - "checksumValidationEnabled":{ - "documentation":"Enable message MD5 checksum validation.

    Checksum validation for messages defaults to true. Only set to false if required, for instance if your cryptographic library does not support MD5.

    Supported operations are SendMessage, ReceiveMessage and SendMessageBatch.", - "type":"boolean" - } - } + "customClientContextParams": { + "checksumValidationEnabled": { + "documentation": "Enable message MD5 checksum validation.

    Checksum validation for messages defaults to true. Only set to false if required, for instance if your cryptographic library does not support MD5.

    Supported operations are SendMessage, ReceiveMessage and SendMessageBatch.", + "type": "boolean" + } + }, + "useSraAuth": true } diff --git a/services/ssm/pom.xml b/services/ssm/pom.xml index 4e9b9982091b..aec506a63dab 100644 --- a/services/ssm/pom.xml +++ b/services/ssm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ssm AWS Java SDK :: Services :: AWS Simple Systems Management (SSM) diff --git a/services/ssm/src/main/resources/codegen-resources/customization.config b/services/ssm/src/main/resources/codegen-resources/customization.config index 0f8e54aef312..c28bfc08286d 100644 --- a/services/ssm/src/main/resources/codegen-resources/customization.config +++ b/services/ssm/src/main/resources/codegen-resources/customization.config @@ -1,29 +1,32 @@ { - "verifiedSimpleMethods": [ - "describeActivations", - "describeAutomationExecutions", - "describeAvailablePatches", - "describeInstanceInformation", - "describeInventoryDeletions", - "describeMaintenanceWindows", - "describeParameters", - "describePatchBaselines", - "describePatchGroups", - "getDefaultPatchBaseline", - "getInventory", - "getInventorySchema", - "listAssociations", - "listCommandInvocations", - "listCommands", - "listComplianceSummaries", - "listDocuments", - "listResourceComplianceSummaries", - "listResourceDataSync" - ], - "excludedSimpleMethods": [ - "deleteAssociation", - "describeAssociation", - "listComplianceItems", - "describeMaintenanceWindowSchedule" - ] + "verifiedSimpleMethods": [ + "describeActivations", + "describeAutomationExecutions", + "describeAvailablePatches", + "describeInstanceInformation", + "describeInventoryDeletions", + "describeMaintenanceWindows", + "describeParameters", + "describePatchBaselines", + "describePatchGroups", + "getDefaultPatchBaseline", + "getInventory", + "getInventorySchema", + "listAssociations", + "listCommandInvocations", + "listCommands", + "listComplianceSummaries", + "listDocuments", + "listResourceComplianceSummaries", + "listResourceDataSync" + ], + "excludedSimpleMethods": [ + "deleteAssociation", + "describeAssociation", + "listComplianceItems", + "describeMaintenanceWindowSchedule" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/ssm/src/main/resources/codegen-resources/service-2.json b/services/ssm/src/main/resources/codegen-resources/service-2.json index 44e6dbde8670..dd9be8febd00 100644 --- a/services/ssm/src/main/resources/codegen-resources/service-2.json +++ b/services/ssm/src/main/resources/codegen-resources/service-2.json @@ -414,9 +414,12 @@ "errors":[ {"shape":"InternalServerError"}, {"shape":"ResourcePolicyInvalidParameterException"}, - {"shape":"ResourcePolicyConflictException"} + {"shape":"ResourcePolicyConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"MalformedResourcePolicyDocumentException"}, + {"shape":"ResourcePolicyNotFoundException"} ], - "documentation":"

    Deletes a Systems Manager resource policy. A resource policy helps you to define the IAM entity (for example, an Amazon Web Services account) that can manage your Systems Manager resources. Currently, OpsItemGroup is the only resource that supports Systems Manager resource policies. The resource policy for OpsItemGroup enables Amazon Web Services accounts to view and interact with OpsCenter operational work items (OpsItems).

    " + "documentation":"

    Deletes a Systems Manager resource policy. A resource policy helps you to define the IAM entity (for example, an Amazon Web Services account) that can manage your Systems Manager resources. The following resources support Systems Manager resource policies.

    • OpsItemGroup - The resource policy for OpsItemGroup enables Amazon Web Services accounts to view and interact with OpsCenter operational work items (OpsItems).

    • Parameter - The resource policy is used to share a parameter with other accounts using Resource Access Manager (RAM). For more information about cross-account sharing of parameters, see Working with shared parameters in the Amazon Web Services Systems Manager User Guide.

    " }, "DeregisterManagedInstance":{ "name":"DeregisterManagedInstance", @@ -582,7 +585,7 @@ "errors":[ {"shape":"InternalServerError"} ], - "documentation":"

    Lists all patches eligible to be included in a patch baseline.

    " + "documentation":"

    Lists all patches eligible to be included in a patch baseline.

    Currently, DescribeAvailablePatches supports only the Amazon Linux 1, Amazon Linux 2, and Windows Server operating systems.

    " }, "DescribeDocument":{ "name":"DescribeDocument", @@ -876,7 +879,7 @@ {"shape":"InvalidFilterValue"}, {"shape":"InvalidNextToken"} ], - "documentation":"

    Get information about a parameter.

    Request results are returned on a best-effort basis. If you specify MaxResults in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of MaxResults. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a NextToken. You can specify the NextToken in a subsequent call to get the next set of results.

    If you change the KMS key alias for the KMS key used to encrypt a parameter, then you must also update the key alias the parameter uses to reference KMS. Otherwise, DescribeParameters retrieves whatever the original key alias was referencing.

    " + "documentation":"

    Lists the parameters in your Amazon Web Services account or the parameters shared with you when you enable the Shared option.

    Request results are returned on a best-effort basis. If you specify MaxResults in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of MaxResults. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a NextToken. You can specify the NextToken in a subsequent call to get the next set of results.

    If you change the KMS key alias for the KMS key used to encrypt a parameter, then you must also update the key alias the parameter uses to reference KMS. Otherwise, DescribeParameters retrieves whatever the original key alias was referencing.

    " }, "DescribePatchBaselines":{ "name":"DescribePatchBaselines", @@ -1320,7 +1323,8 @@ "output":{"shape":"GetResourcePoliciesResponse"}, "errors":[ {"shape":"InternalServerError"}, - {"shape":"ResourcePolicyInvalidParameterException"} + {"shape":"ResourcePolicyInvalidParameterException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

    Returns an array of the Policy object.

    " }, @@ -1701,9 +1705,12 @@ {"shape":"InternalServerError"}, {"shape":"ResourcePolicyInvalidParameterException"}, {"shape":"ResourcePolicyLimitExceededException"}, - {"shape":"ResourcePolicyConflictException"} + {"shape":"ResourcePolicyConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"MalformedResourcePolicyDocumentException"}, + {"shape":"ResourcePolicyNotFoundException"} ], - "documentation":"

    Creates or updates a Systems Manager resource policy. A resource policy helps you to define the IAM entity (for example, an Amazon Web Services account) that can manage your Systems Manager resources. Currently, OpsItemGroup is the only resource that supports Systems Manager resource policies. The resource policy for OpsItemGroup enables Amazon Web Services accounts to view and interact with OpsCenter operational work items (OpsItems).

    " + "documentation":"

    Creates or updates a Systems Manager resource policy. A resource policy helps you to define the IAM entity (for example, an Amazon Web Services account) that can manage your Systems Manager resources. The following resources support Systems Manager resource policies.

    • OpsItemGroup - The resource policy for OpsItemGroup enables Amazon Web Services accounts to view and interact with OpsCenter operational work items (OpsItems).

    • Parameter - The resource policy is used to share a parameter with other accounts using Resource Access Manager (RAM).

      To share a parameter, it must be in the advanced parameter tier. For information about parameter tiers, see Managing parameter tiers. For information about changing an existing standard parameter to an advanced parameter, see Changing a standard parameter to an advanced parameter.

      To share a SecureString parameter, it must be encrypted with a customer managed key, and you must share the key separately through Key Management Service. Amazon Web Services managed keys cannot be shared. Parameters encrypted with the default Amazon Web Services managed key can be updated to use a customer managed key instead. For KMS key definitions, see KMS concepts in the Key Management Service Developer Guide.

      While you can share a parameter using the Systems Manager PutResourcePolicy operation, we recommend using Resource Access Manager (RAM) instead. This is because using PutResourcePolicy requires the extra step of promoting the parameter to a standard RAM Resource Share using the RAM PromoteResourceShareCreatedFromPolicy API operation. Otherwise, the parameter won't be returned by the Systems Manager DescribeParameters API operation using the --shared option.

      For more information, see Sharing a parameter in the Amazon Web Services Systems Manager User Guide

    " }, "RegisterDefaultPatchBaseline":{ "name":"RegisterDefaultPatchBaseline", @@ -2504,6 +2511,11 @@ "documentation":"

    Number of days to wait after the scheduled day to run an association.

    ", "box":true }, + "Duration":{ + "shape":"Duration", + "documentation":"

    The number of hours that an association can run on specified targets. After the resulting cutoff time passes, associations that are currently running are cancelled, and no pending executions are started on remaining targets.

    ", + "box":true + }, "TargetMaps":{ "shape":"TargetMaps", "documentation":"

    A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

    ", @@ -2633,6 +2645,11 @@ "documentation":"

    Number of days to wait after the scheduled day to run an association.

    ", "box":true }, + "Duration":{ + "shape":"Duration", + "documentation":"

    The number of hours that an association can run on specified targets. After the resulting cutoff time passes, associations that are currently running are cancelled, and no pending executions are started on remaining targets.

    ", + "box":true + }, "TargetMaps":{ "shape":"TargetMaps", "documentation":"

    A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

    ", @@ -3066,6 +3083,11 @@ "documentation":"

    Number of days to wait after the scheduled day to run an association.

    ", "box":true }, + "Duration":{ + "shape":"Duration", + "documentation":"

    The number of hours that an association can run on specified targets. After the resulting cutoff time passes, associations that are currently running are cancelled, and no pending executions are started on remaining targets.

    ", + "box":true + }, "TargetMaps":{ "shape":"TargetMaps", "documentation":"

    A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

    ", @@ -4560,6 +4582,11 @@ "documentation":"

    Number of days to wait after the scheduled day to run an association.

    ", "box":true }, + "Duration":{ + "shape":"Duration", + "documentation":"

    The number of hours the association can run before it is canceled. Duration applies to associations that are currently running, and any pending and in progress commands on all targets. If a target was taken offline for the association to run, it is made available again immediately, without a reboot.

    The Duration parameter applies only when both these conditions are true:

    • The association for which you specify a duration is cancelable according to the parameters of the SSM command document or Automation runbook associated with this execution.

    • The command specifies the ApplyOnlyAtCronInterval parameter, which means that the association doesn't run immediately after it is created, but only according to the specified schedule.

    ", + "box":true + }, "TargetMaps":{ "shape":"TargetMaps", "documentation":"

    A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

    ", @@ -4655,6 +4682,11 @@ "documentation":"

    Number of days to wait after the scheduled day to run an association. For example, if you specified a cron schedule of cron(0 0 ? * THU#2 *), you could specify an offset of 3 to run the association each Sunday after the second Thursday of the month. For more information about cron schedules for associations, see Reference: Cron and rate expressions for Systems Manager in the Amazon Web Services Systems Manager User Guide.

    To use offsets, you must specify the ApplyOnlyAtCronInterval parameter. This option tells the system not to run an association immediately after you create it.

    ", "box":true }, + "Duration":{ + "shape":"Duration", + "documentation":"

    The number of hours the association can run before it is canceled. Duration applies to associations that are currently running, and any pending and in progress commands on all targets. If a target was taken offline for the association to run, it is made available again immediately, without a reboot.

    The Duration parameter applies only when both these conditions are true:

    • The association for which you specify a duration is cancelable according to the parameters of the SSM command document or Automation runbook associated with this execution.

    • The command specifies the ApplyOnlyAtCronInterval parameter, which means that the association doesn't run immediately after it is created, but only according to the specified schedule.

    ", + "box":true + }, "TargetMaps":{ "shape":"TargetMaps", "documentation":"

    A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

    ", @@ -5192,7 +5224,7 @@ "members":{ "Name":{ "shape":"PSParameterName", - "documentation":"

    The name of the parameter to delete.

    " + "documentation":"

    The name of the parameter to delete.

    You can't enter the Amazon Resource Name (ARN) for a parameter, only the parameter name itself.

    " } } }, @@ -5207,7 +5239,7 @@ "members":{ "Names":{ "shape":"ParameterNameList", - "documentation":"

    The names of the parameters to delete. After deleting a parameter, wait for at least 30 seconds to create a parameter with the same name.

    " + "documentation":"

    The names of the parameters to delete. After deleting a parameter, wait for at least 30 seconds to create a parameter with the same name.

    You can't enter the Amazon Resource Name (ARN) for a parameter, only the parameter name itself.

    " } } }, @@ -5726,7 +5758,7 @@ }, "VersionName":{ "shape":"DocumentVersionName", - "documentation":"

    An optional field specifying the version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and can't be changed.

    " + "documentation":"

    An optional field specifying the version of the artifact associated with the document. For example, 12.6. This value is unique across all versions of a document, and can't be changed.

    " } } }, @@ -6354,6 +6386,11 @@ "NextToken":{ "shape":"NextToken", "documentation":"

    The token for the next set of items to return. (You received this token from a previous call.)

    " + }, + "Shared":{ + "shape":"Boolean", + "documentation":"

    Lists parameters that are shared with you.

    By default when using this option, the command returns parameters that have been shared using a standard Resource Access Manager Resource Share. In order for a parameter that was shared using the PutResourcePolicy command to be returned, the associated RAM Resource Share Created From Policy must have been promoted to a standard Resource Share using the RAM PromoteResourceShareCreatedFromPolicy API operation.

    For more information about sharing parameters, see Working with shared parameters in the Amazon Web Services Systems Manager User Guide.

    ", + "box":true } } }, @@ -6845,7 +6882,7 @@ }, "VersionName":{ "shape":"DocumentVersionName", - "documentation":"

    An optional field specifying the version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and can't be changed.

    " + "documentation":"

    An optional field specifying the version of the artifact associated with the document. For example, 12.6. This value is unique across all versions of a document, and can't be changed.

    " }, "PlatformTypes":{ "shape":"PlatformTypeList", @@ -7026,7 +7063,7 @@ }, "VersionName":{ "shape":"DocumentVersionName", - "documentation":"

    An optional field specifying the version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and can't be changed.

    " + "documentation":"

    An optional field specifying the version of the artifact associated with the document. For example, 12.6. This value is unique across all versions of a document, and can't be changed.

    " } }, "documentation":"

    An SSM document required by the current document.

    " @@ -7178,7 +7215,7 @@ }, "VersionName":{ "shape":"DocumentVersionName", - "documentation":"

    The version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and can't be changed.

    " + "documentation":"

    The version of the artifact associated with the document. For example, 12.6. This value is unique across all versions of a document, and can't be changed.

    " }, "CreatedDate":{ "shape":"DateTime", @@ -7260,6 +7297,12 @@ "documentation":"

    You can't specify a managed node ID in more than one association.

    ", "exception":true }, + "Duration":{ + "type":"integer", + "box":true, + "max":24, + "min":1 + }, "EffectiveInstanceAssociationMaxResults":{ "type":"integer", "max":5, @@ -7524,7 +7567,7 @@ }, "Status":{ "shape":"ConnectionStatus", - "documentation":"

    The status of the connection to the managed node. For example, 'Connected' or 'Not Connected'.

    " + "documentation":"

    The status of the connection to the managed node.

    " } } }, @@ -7602,7 +7645,7 @@ }, "VersionName":{ "shape":"DocumentVersionName", - "documentation":"

    An optional field specifying the version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document and can't be changed.

    " + "documentation":"

    An optional field specifying the version of the artifact associated with the document. For example, 12.6. This value is unique across all versions of a document and can't be changed.

    " }, "DocumentVersion":{ "shape":"DocumentVersion", @@ -7631,7 +7674,7 @@ }, "VersionName":{ "shape":"DocumentVersionName", - "documentation":"

    The version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and can't be changed.

    " + "documentation":"

    The version of the artifact associated with the document. For example, 12.6. This value is unique across all versions of a document, and can't be changed.

    " }, "DocumentVersion":{ "shape":"DocumentVersion", @@ -8227,7 +8270,7 @@ "members":{ "Name":{ "shape":"PSParameterName", - "documentation":"

    The name of the parameter for which you want to review history.

    " + "documentation":"

    The name or Amazon Resource Name (ARN) of the parameter for which you want to review history. For parameters shared with you from another account, you must use the full ARN.

    " }, "WithDecryption":{ "shape":"Boolean", @@ -8264,7 +8307,7 @@ "members":{ "Name":{ "shape":"PSParameterName", - "documentation":"

    The name of the parameter you want to query.

    To query by parameter label, use \"Name\": \"name:label\". To query by parameter version, use \"Name\": \"name:version\".

    " + "documentation":"

    The name or Amazon Resource Name (ARN) of the parameter that you want to query. For parameters shared with you from another account, you must use the full ARN.

    To query by parameter label, use \"Name\": \"name:label\". To query by parameter version, use \"Name\": \"name:version\".

    For more information about shared parameters, see Working with shared parameters in the Amazon Web Services Systems Manager User Guide.

    " }, "WithDecryption":{ "shape":"Boolean", @@ -8339,7 +8382,7 @@ "members":{ "Names":{ "shape":"ParameterNameList", - "documentation":"

    Names of the parameters for which you want to query information.

    To query by parameter label, use \"Name\": \"name:label\". To query by parameter version, use \"Name\": \"name:version\".

    " + "documentation":"

    The names or Amazon Resource Names (ARNs) of the parameters that you want to query. For parameters shared with you from another account, you must use the full ARNs.

    To query by parameter label, use \"Name\": \"name:label\". To query by parameter version, use \"Name\": \"name:version\".

    For more information about shared parameters, see Working with shared parameters in the Amazon Web Services Systems Manager User Guide.

    " }, "WithDecryption":{ "shape":"Boolean", @@ -9942,7 +9985,7 @@ "members":{ "Name":{ "shape":"PSParameterName", - "documentation":"

    The parameter name on which you want to attach one or more labels.

    " + "documentation":"

    The parameter name on which you want to attach one or more labels.

    You can't enter the Amazon Resource Name (ARN) for a parameter, only the parameter name itself.

    " }, "ParameterVersion":{ "shape":"PSParameterVersion", @@ -11271,6 +11314,14 @@ "type":"list", "member":{"shape":"MaintenanceWindowIdentityForTarget"} }, + "MalformedResourcePolicyDocumentException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

    The specified policy document is malformed or invalid, or excessive PutResourcePolicy or DeleteResourcePolicy calls have been made.

    ", + "exception":true + }, "ManagedInstanceId":{ "type":"string", "max":124, @@ -12551,7 +12602,7 @@ }, "KeyId":{ "shape":"ParameterKeyId", - "documentation":"

    The ID of the query key used for this parameter.

    " + "documentation":"

    The alias of the Key Management Service (KMS) key used to encrypt the parameter. Applies to SecureString parameters only

    " }, "LastModifiedDate":{ "shape":"DateTime", @@ -12662,13 +12713,17 @@ "shape":"PSParameterName", "documentation":"

    The parameter name.

    " }, + "ARN":{ + "shape":"String", + "documentation":"

    The (ARN) of the last user to update the parameter.

    " + }, "Type":{ "shape":"ParameterType", "documentation":"

    The type of parameter. Valid parameter types include the following: String, StringList, and SecureString.

    " }, "KeyId":{ "shape":"ParameterKeyId", - "documentation":"

    The ID of the query key used for this parameter.

    " + "documentation":"

    The alias of the Key Management Service (KMS) key used to encrypt the parameter. Applies to SecureString parameters only.

    " }, "LastModifiedDate":{ "shape":"DateTime", @@ -12703,7 +12758,7 @@ "documentation":"

    The data type of the parameter, such as text or aws:ec2:image. The default is text.

    " } }, - "documentation":"

    Metadata includes information like the ARN of the last user and the date/time the parameter was last used.

    " + "documentation":"

    Metadata includes information like the Amazon Resource Name (ARN) of the last user to update the parameter and the date and time the parameter was last used.

    " }, "ParameterMetadataList":{ "type":"list", @@ -13095,7 +13150,7 @@ }, "CVEIds":{ "shape":"PatchCVEIds", - "documentation":"

    The IDs of one or more Common Vulnerabilities and Exposure (CVE) issues that are resolved by the patch.

    " + "documentation":"

    The IDs of one or more Common Vulnerabilities and Exposure (CVE) issues that are resolved by the patch.

    Currently, CVE ID values are reported only for patches with a status of Missing or Failed.

    " } }, "documentation":"

    Information about the state of a patch on a particular managed node as it relates to the patch baseline used to patch the node.

    " @@ -13499,7 +13554,7 @@ }, "Policy":{ "type":"string", - "pattern":"\\S+" + "pattern":"^(?!\\s*$).+" }, "PolicyHash":{"type":"string"}, "PolicyId":{"type":"string"}, @@ -13612,7 +13667,7 @@ "members":{ "Name":{ "shape":"PSParameterName", - "documentation":"

    The fully qualified name of the parameter that you want to add to the system. The fully qualified name includes the complete hierarchy of the parameter path and name. For parameters in a hierarchy, you must include a leading forward slash character (/) when you create or reference a parameter. For example: /Dev/DBServer/MySQL/db-string13

    Naming Constraints:

    • Parameter names are case sensitive.

    • A parameter name must be unique within an Amazon Web Services Region

    • A parameter name can't be prefixed with \"aws\" or \"ssm\" (case-insensitive).

    • Parameter names can include only the following symbols and letters: a-zA-Z0-9_.-

      In addition, the slash character ( / ) is used to delineate hierarchies in parameter names. For example: /Dev/Production/East/Project-ABC/MyParameter

    • A parameter name can't include spaces.

    • Parameter hierarchies are limited to a maximum depth of fifteen levels.

    For additional information about valid values for parameter names, see Creating Systems Manager parameters in the Amazon Web Services Systems Manager User Guide.

    The maximum length constraint of 2048 characters listed below includes 1037 characters reserved for internal use by Systems Manager. The maximum length for a parameter name that you create is 1011 characters. This includes the characters in the ARN that precede the name you specify, such as arn:aws:ssm:us-east-2:111122223333:parameter/.

    " + "documentation":"

    The fully qualified name of the parameter that you want to add to the system.

    You can't enter the Amazon Resource Name (ARN) for a parameter, only the parameter name itself.

    The fully qualified name includes the complete hierarchy of the parameter path and name. For parameters in a hierarchy, you must include a leading forward slash character (/) when you create or reference a parameter. For example: /Dev/DBServer/MySQL/db-string13

    Naming Constraints:

    • Parameter names are case sensitive.

    • A parameter name must be unique within an Amazon Web Services Region

    • A parameter name can't be prefixed with \"aws\" or \"ssm\" (case-insensitive).

    • Parameter names can include only the following symbols and letters: a-zA-Z0-9_.-

      In addition, the slash character ( / ) is used to delineate hierarchies in parameter names. For example: /Dev/Production/East/Project-ABC/MyParameter

    • A parameter name can't include spaces.

    • Parameter hierarchies are limited to a maximum depth of fifteen levels.

    For additional information about valid values for parameter names, see Creating Systems Manager parameters in the Amazon Web Services Systems Manager User Guide.

    The maximum length constraint of 2048 characters listed below includes 1037 characters reserved for internal use by Systems Manager. The maximum length for a parameter name that you create is 1011 characters. This includes the characters in the ARN that precede the name you specify, such as arn:aws:ssm:us-east-2:111122223333:parameter/.

    " }, "Description":{ "shape":"ParameterDescription", @@ -14403,6 +14458,14 @@ "documentation":"

    Error returned when the caller has exceeded the default resource quotas. For example, too many maintenance windows or patch baselines have been created.

    For information about resource quotas in Systems Manager, see Systems Manager service quotas in the Amazon Web Services General Reference.

    ", "exception":true }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

    The specified parameter to be shared could not be found.

    ", + "exception":true + }, "ResourcePolicyConflictException":{ "type":"structure", "members":{ @@ -14435,6 +14498,14 @@ "max":50, "min":1 }, + "ResourcePolicyNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

    No policies with the specified policy ID and hash could be found.

    ", + "exception":true + }, "ResourcePolicyParameterNamesList":{ "type":"list", "member":{"shape":"String"} @@ -15734,7 +15805,7 @@ "members":{ "Name":{ "shape":"PSParameterName", - "documentation":"

    The name of the parameter from which you want to delete one or more labels.

    " + "documentation":"

    The name of the parameter from which you want to delete one or more labels.

    You can't enter the Amazon Resource Name (ARN) for a parameter, only the parameter name itself.

    " }, "ParameterVersion":{ "shape":"PSParameterVersion", @@ -15894,6 +15965,11 @@ "documentation":"

    Number of days to wait after the scheduled day to run an association. For example, if you specified a cron schedule of cron(0 0 ? * THU#2 *), you could specify an offset of 3 to run the association each Sunday after the second Thursday of the month. For more information about cron schedules for associations, see Reference: Cron and rate expressions for Systems Manager in the Amazon Web Services Systems Manager User Guide.

    To use offsets, you must specify the ApplyOnlyAtCronInterval parameter. This option tells the system not to run an association immediately after you create it.

    ", "box":true }, + "Duration":{ + "shape":"Duration", + "documentation":"

    The number of hours the association can run before it is canceled. Duration applies to associations that are currently running, and any pending and in progress commands on all targets. If a target was taken offline for the association to run, it is made available again immediately, without a reboot.

    The Duration parameter applies only when both these conditions are true:

    • The association for which you specify a duration is cancelable according to the parameters of the SSM command document or Automation runbook associated with this execution.

    • The command specifies the ApplyOnlyAtCronInterval parameter, which means that the association doesn't run immediately after it is updated, but only according to the specified schedule.

    ", + "box":true + }, "TargetMaps":{ "shape":"TargetMaps", "documentation":"

    A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

    ", @@ -16019,7 +16095,7 @@ }, "VersionName":{ "shape":"DocumentVersionName", - "documentation":"

    An optional field specifying the version of the artifact you are updating with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and can't be changed.

    " + "documentation":"

    An optional field specifying the version of the artifact you are updating with the document. For example, 12.6. This value is unique across all versions of a document, and can't be changed.

    " }, "DocumentVersion":{ "shape":"DocumentVersion", diff --git a/services/ssmcontacts/pom.xml b/services/ssmcontacts/pom.xml index d0c3dfae1fc1..acd4c31c700e 100644 --- a/services/ssmcontacts/pom.xml +++ b/services/ssmcontacts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ssmcontacts AWS Java SDK :: Services :: SSM Contacts diff --git a/services/ssmcontacts/src/main/resources/codegen-resources/customization.config b/services/ssmcontacts/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/ssmcontacts/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/ssmincidents/pom.xml b/services/ssmincidents/pom.xml index b835e0263784..082e873eb575 100644 --- a/services/ssmincidents/pom.xml +++ b/services/ssmincidents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ssmincidents AWS Java SDK :: Services :: SSM Incidents diff --git a/services/ssmincidents/src/main/resources/codegen-resources/customization.config b/services/ssmincidents/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/ssmincidents/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/ssmsap/pom.xml b/services/ssmsap/pom.xml index 712b0ee433b0..00e43065ffac 100644 --- a/services/ssmsap/pom.xml +++ b/services/ssmsap/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ssmsap AWS Java SDK :: Services :: Ssm Sap diff --git a/services/ssmsap/src/main/resources/codegen-resources/customization.config b/services/ssmsap/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/ssmsap/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/sso/pom.xml b/services/sso/pom.xml index 7dda0b6d9846..5fe559844a07 100644 --- a/services/sso/pom.xml +++ b/services/sso/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sso AWS Java SDK :: Services :: SSO diff --git a/services/sso/src/main/resources/codegen-resources/customization.config b/services/sso/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/sso/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/ssoadmin/pom.xml b/services/ssoadmin/pom.xml index e99c18544f94..85729b650990 100644 --- a/services/ssoadmin/pom.xml +++ b/services/ssoadmin/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ssoadmin AWS Java SDK :: Services :: SSO Admin diff --git a/services/ssoadmin/src/main/resources/codegen-resources/customization.config b/services/ssoadmin/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/ssoadmin/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/ssooidc/pom.xml b/services/ssooidc/pom.xml index b6bcc1af3e50..46523f1af061 100644 --- a/services/ssooidc/pom.xml +++ b/services/ssooidc/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ssooidc AWS Java SDK :: Services :: SSO OIDC diff --git a/services/ssooidc/src/main/resources/codegen-resources/customization.tmp b/services/ssooidc/src/main/resources/codegen-resources/customization.tmp new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/services/storagegateway/pom.xml b/services/storagegateway/pom.xml index b85524d162d1..6d1cd92403a9 100644 --- a/services/storagegateway/pom.xml +++ b/services/storagegateway/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT storagegateway AWS Java SDK :: Services :: AWS Storage Gateway diff --git a/services/storagegateway/src/main/resources/codegen-resources/customization.config b/services/storagegateway/src/main/resources/codegen-resources/customization.config index b2f06f5894a2..3e80c42c93ff 100644 --- a/services/storagegateway/src/main/resources/codegen-resources/customization.config +++ b/services/storagegateway/src/main/resources/codegen-resources/customization.config @@ -1,21 +1,24 @@ { - "verifiedSimpleMethods": [ - "describeTapeArchives", - "listFileShares", - "listGateways", - "listTapes", - "listVolumes" - ], - "shapeModifiers": { - "InternalServerError": { - "exclude": [ - "error" - ] + "verifiedSimpleMethods": [ + "describeTapeArchives", + "listFileShares", + "listGateways", + "listTapes", + "listVolumes" + ], + "shapeModifiers": { + "InternalServerError": { + "exclude": [ + "error" + ] + }, + "InvalidGatewayRequestException": { + "exclude": [ + "error" + ] + } }, - "InvalidGatewayRequestException": { - "exclude": [ - "error" - ] - } - } + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/storagegateway/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/storagegateway/src/main/resources/codegen-resources/endpoint-rule-set.json index 9f3c8e2c2b97..b0a53a28b972 100644 --- a/services/storagegateway/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/storagegateway/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/services/storagegateway/src/main/resources/codegen-resources/service-2.json b/services/storagegateway/src/main/resources/codegen-resources/service-2.json index 153f65c18cf2..f86ef02157a4 100644 --- a/services/storagegateway/src/main/resources/codegen-resources/service-2.json +++ b/services/storagegateway/src/main/resources/codegen-resources/service-2.json @@ -656,7 +656,7 @@ {"shape":"InvalidGatewayRequestException"}, {"shape":"InternalServerError"} ], - "documentation":"

    Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a TapeARN is not specified, returns a description of all virtual tapes associated with the specified gateway. This operation is only supported in the tape gateway type.

    " + "documentation":"

    Returns a description of virtual tapes that correspond to the specified Amazon Resource Names (ARNs). If TapeARN is not specified, returns a description of the virtual tapes associated with the specified gateway. This operation is only supported for the tape gateway type.

    The operation supports pagination. By default, the operation returns a maximum of up to 100 tapes. You can optionally specify the Limit field in the body to limit the number of tapes in the response. If the number of tapes returned in the response is truncated, the response includes a Marker field. You can use this Marker value in your subsequent request to retrieve the next set of tapes.

    " }, "DescribeUploadBuffer":{ "name":"DescribeUploadBuffer", @@ -922,7 +922,7 @@ {"shape":"InvalidGatewayRequestException"}, {"shape":"InternalServerError"} ], - "documentation":"

    Sends you notification through CloudWatch Events when all files written to your file share have been uploaded to S3. Amazon S3.

    Storage Gateway can send a notification through Amazon CloudWatch Events when all files written to your file share up to that point in time have been uploaded to Amazon S3. These files include files written to the file share up to the time that you make a request for notification. When the upload is done, Storage Gateway sends you notification through an Amazon CloudWatch Event. You can configure CloudWatch Events to send the notification through event targets such as Amazon SNS or Lambda function. This operation is only supported for S3 File Gateways.

    For more information, see Getting file upload notification in the Amazon S3 File Gateway User Guide.

    " + "documentation":"

    Sends you notification through CloudWatch Events when all files written to your file share have been uploaded to Amazon S3.

    Storage Gateway can send a notification through Amazon CloudWatch Events when all files written to your file share up to that point in time have been uploaded to Amazon S3. These files include files written to the file share up to the time that you make a request for notification. When the upload is done, Storage Gateway sends you notification through an Amazon CloudWatch Event. You can configure CloudWatch Events to send the notification through event targets such as Amazon SNS or Lambda function. This operation is only supported for S3 File Gateways.

    For more information, see Getting file upload notification in the Amazon S3 File Gateway User Guide.

    " }, "RefreshCache":{ "name":"RefreshCache", @@ -936,7 +936,7 @@ {"shape":"InvalidGatewayRequestException"}, {"shape":"InternalServerError"} ], - "documentation":"

    Refreshes the cached inventory of objects for the specified file share. This operation finds objects in the Amazon S3 bucket that were added, removed, or replaced since the gateway last listed the bucket's contents and cached the results. This operation does not import files into the S3 File Gateway cache storage. It only updates the cached inventory to reflect changes in the inventory of the objects in the S3 bucket. This operation is only supported in the S3 File Gateway types.

    You can subscribe to be notified through an Amazon CloudWatch event when your RefreshCache operation completes. For more information, see Getting notified about file operations in the Storage Gateway User Guide. This operation is Only supported for S3 File Gateways.

    When this API is called, it only initiates the refresh operation. When the API call completes and returns a success code, it doesn't necessarily mean that the file refresh has completed. You should use the refresh-complete notification to determine that the operation has completed before you check for new files on the gateway file share. You can subscribe to be notified through a CloudWatch event when your RefreshCache operation completes.

    Throttle limit: This API is asynchronous, so the gateway will accept no more than two refreshes at any time. We recommend using the refresh-complete CloudWatch event notification before issuing additional requests. For more information, see Getting notified about file operations in the Storage Gateway User Guide.

    • Wait at least 60 seconds between consecutive RefreshCache API requests.

    • If you invoke the RefreshCache API when two requests are already being processed, any new request will cause an InvalidGatewayRequestException error because too many requests were sent to the server.

    The S3 bucket name does not need to be included when entering the list of folders in the FolderList parameter.

    For more information, see Getting notified about file operations in the Storage Gateway User Guide.

    " + "documentation":"

    Refreshes the cached inventory of objects for the specified file share. This operation finds objects in the Amazon S3 bucket that were added, removed, or replaced since the gateway last listed the bucket's contents and cached the results. This operation does not import files into the S3 File Gateway cache storage. It only updates the cached inventory to reflect changes in the inventory of the objects in the S3 bucket. This operation is only supported in the S3 File Gateway types.

    You can subscribe to be notified through an Amazon CloudWatch event when your RefreshCache operation completes. For more information, see Getting notified about file operations in the Amazon S3 File Gateway User Guide. This operation is Only supported for S3 File Gateways.

    When this API is called, it only initiates the refresh operation. When the API call completes and returns a success code, it doesn't necessarily mean that the file refresh has completed. You should use the refresh-complete notification to determine that the operation has completed before you check for new files on the gateway file share. You can subscribe to be notified through a CloudWatch event when your RefreshCache operation completes.

    Throttle limit: This API is asynchronous, so the gateway will accept no more than two refreshes at any time. We recommend using the refresh-complete CloudWatch event notification before issuing additional requests. For more information, see Getting notified about file operations in the Amazon S3 File Gateway User Guide.

    • Wait at least 60 seconds between consecutive RefreshCache API requests.

    • If you invoke the RefreshCache API when two requests are already being processed, any new request will cause an InvalidGatewayRequestException error because too many requests were sent to the server.

    The S3 bucket name does not need to be included when entering the list of folders in the FolderList parameter.

    For more information, see Getting notified about file operations in the Amazon S3 File Gateway User Guide.

    " }, "RemoveTagsFromResource":{ "name":"RemoveTagsFromResource", @@ -1034,7 +1034,7 @@ {"shape":"InvalidGatewayRequestException"}, {"shape":"InternalServerError"} ], - "documentation":"

    Shuts down a gateway. To specify which gateway to shut down, use the Amazon Resource Name (ARN) of the gateway in the body of your request.

    The operation shuts down the gateway service component running in the gateway's virtual machine (VM) and not the host VM.

    If you want to shut down the VM, it is recommended that you first shut down the gateway component in the VM to avoid unpredictable conditions.

    After the gateway is shutdown, you cannot call any other API except StartGateway, DescribeGatewayInformation, and ListGateways. For more information, see ActivateGateway. Your applications cannot read from or write to the gateway's storage volumes, and there are no snapshots taken.

    When you make a shutdown request, you will get a 200 OK success response immediately. However, it might take some time for the gateway to shut down. You can call the DescribeGatewayInformation API to check the status. For more information, see ActivateGateway.

    If do not intend to use the gateway again, you must delete the gateway (using DeleteGateway) to no longer pay software charges associated with the gateway.

    " + "documentation":"

    Shuts down a Tape Gateway or Volume Gateway. To specify which gateway to shut down, use the Amazon Resource Name (ARN) of the gateway in the body of your request.

    This API action cannot be used to shut down S3 File Gateway or FSx File Gateway.

    The operation shuts down the gateway service component running in the gateway's virtual machine (VM) and not the host VM.

    If you want to shut down the VM, it is recommended that you first shut down the gateway component in the VM to avoid unpredictable conditions.

    After the gateway is shutdown, you cannot call any other API except StartGateway, DescribeGatewayInformation, and ListGateways. For more information, see ActivateGateway. Your applications cannot read from or write to the gateway's storage volumes, and there are no snapshots taken.

    When you make a shutdown request, you will get a 200 OK success response immediately. However, it might take some time for the gateway to shut down. You can call the DescribeGatewayInformation API to check the status. For more information, see ActivateGateway.

    If do not intend to use the gateway again, you must delete the gateway (using DeleteGateway) to no longer pay software charges associated with the gateway.

    " }, "StartAvailabilityMonitorTest":{ "name":"StartAvailabilityMonitorTest", @@ -3808,6 +3808,14 @@ "HostEnvironmentId":{ "shape":"HostEnvironmentId", "documentation":"

    A unique identifier for the specific instance of the host platform running the gateway. This value is only available for certain host environments, and its format depends on the host environment type.

    " + }, + "DeprecationDate":{ + "shape":"DeprecationDate", + "documentation":"

    Date after which this gateway will not receive software updates for new features and bug fixes.

    " + }, + "SoftwareVersion":{ + "shape":"SoftwareVersion", + "documentation":"

    The version number of the software running on the gateway appliance.

    " } }, "documentation":"

    Describes a gateway object.

    " diff --git a/services/sts/pom.xml b/services/sts/pom.xml index 2d2cad7df32a..ecafff343266 100644 --- a/services/sts/pom.xml +++ b/services/sts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT sts AWS Java SDK :: Services :: AWS STS diff --git a/services/sts/src/main/resources/codegen-resources/customization.config b/services/sts/src/main/resources/codegen-resources/customization.config index 9c9074fe8951..338b12430b1c 100644 --- a/services/sts/src/main/resources/codegen-resources/customization.config +++ b/services/sts/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "verifiedSimpleMethods" : ["getSessionToken", "getCallerIdentity"], + "verifiedSimpleMethods": [ + "getSessionToken", + "getCallerIdentity" + ], "skipEndpointTests": { "UseGlobalEndpoint with legacy region `ap-northeast-1`": "V2 does not support setting UseGlobalEndpoint. It's regional only/by default", "UseGlobalEndpoint with legacy region `ap-south-1`": "V2 does not support setting UseGlobalEndpoint. It's regional only/by default", @@ -16,5 +19,6 @@ "UseGlobalEndpoint with legacy region `us-east-2`": "V2 does not support setting UseGlobalEndpoint. It's regional only/by default", "UseGlobalEndpoint with legacy region `us-west-1`": "V2 does not support setting UseGlobalEndpoint. It's regional only/by default", "UseGlobalEndpoint with legacy region `us-west-2`": "V2 does not support setting UseGlobalEndpoint. It's regional only/by default" - } + }, + "useSraAuth": true } diff --git a/services/supplychain/pom.xml b/services/supplychain/pom.xml index 98fba4423d14..cfa03e17b78f 100644 --- a/services/supplychain/pom.xml +++ b/services/supplychain/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT supplychain AWS Java SDK :: Services :: Supply Chain diff --git a/services/supplychain/src/main/resources/codegen-resources/customization.config b/services/supplychain/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/supplychain/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/support/pom.xml b/services/support/pom.xml index 64dea6368a85..66fe429d40f3 100644 --- a/services/support/pom.xml +++ b/services/support/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT support AWS Java SDK :: Services :: AWS Support diff --git a/services/support/src/main/resources/codegen-resources/customization.config b/services/support/src/main/resources/codegen-resources/customization.config index 62198e1a488e..4ba7e14ff151 100644 --- a/services/support/src/main/resources/codegen-resources/customization.config +++ b/services/support/src/main/resources/codegen-resources/customization.config @@ -1,8 +1,9 @@ { - "excludedSimpleMethods" : [ + "excludedSimpleMethods": [ "resolveCase", "describeSeverityLevels", "describeCases", "describeServices" - ] -} \ No newline at end of file + ], + "useSraAuth": true +} diff --git a/services/supportapp/pom.xml b/services/supportapp/pom.xml index 0ec282a47403..090301f2d527 100644 --- a/services/supportapp/pom.xml +++ b/services/supportapp/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT supportapp AWS Java SDK :: Services :: Support App diff --git a/services/supportapp/src/main/resources/codegen-resources/customization.config b/services/supportapp/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/supportapp/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/swf/pom.xml b/services/swf/pom.xml index e468f2bf7bd8..53cb0765d6a5 100644 --- a/services/swf/pom.xml +++ b/services/swf/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT swf AWS Java SDK :: Services :: Amazon SWF diff --git a/services/swf/src/main/resources/codegen-resources/customization.config b/services/swf/src/main/resources/codegen-resources/customization.config index f2b99d866f9c..80fefe191145 100644 --- a/services/swf/src/main/resources/codegen-resources/customization.config +++ b/services/swf/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,4 @@ { - "serviceSpecificHttpConfig": "software.amazon.awssdk.services.swf.internal.SwfHttpConfigurationOptions" + "serviceSpecificHttpConfig": "software.amazon.awssdk.services.swf.internal.SwfHttpConfigurationOptions", + "useSraAuth": true } diff --git a/services/synthetics/pom.xml b/services/synthetics/pom.xml index dcc4431b3876..d1fce26d4c0e 100644 --- a/services/synthetics/pom.xml +++ b/services/synthetics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT synthetics AWS Java SDK :: Services :: Synthetics diff --git a/services/synthetics/src/main/resources/codegen-resources/customization.config b/services/synthetics/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/synthetics/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/textract/pom.xml b/services/textract/pom.xml index f51987148a09..c30111645d2d 100644 --- a/services/textract/pom.xml +++ b/services/textract/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT textract AWS Java SDK :: Services :: Textract diff --git a/services/textract/src/main/resources/codegen-resources/customization.config b/services/textract/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/textract/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/timestreamquery/pom.xml b/services/timestreamquery/pom.xml index 663131e3553d..3143461da98d 100644 --- a/services/timestreamquery/pom.xml +++ b/services/timestreamquery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT timestreamquery AWS Java SDK :: Services :: Timestream Query diff --git a/services/timestreamquery/src/main/resources/codegen-resources/customization.config b/services/timestreamquery/src/main/resources/codegen-resources/customization.config index 8175efc28858..d9a3bc76cacf 100644 --- a/services/timestreamquery/src/main/resources/codegen-resources/customization.config +++ b/services/timestreamquery/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,4 @@ { - "allowEndpointOverrideForEndpointDiscoveryRequiredOperations": true -} \ No newline at end of file + "allowEndpointOverrideForEndpointDiscoveryRequiredOperations": true, + "useSraAuth": true +} diff --git a/services/timestreamwrite/pom.xml b/services/timestreamwrite/pom.xml index 33c336d00ed1..c2e02486ca95 100644 --- a/services/timestreamwrite/pom.xml +++ b/services/timestreamwrite/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT timestreamwrite AWS Java SDK :: Services :: Timestream Write diff --git a/services/timestreamwrite/src/main/resources/codegen-resources/customization.config b/services/timestreamwrite/src/main/resources/codegen-resources/customization.config index 8175efc28858..69659dba1dbf 100644 --- a/services/timestreamwrite/src/main/resources/codegen-resources/customization.config +++ b/services/timestreamwrite/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "allowEndpointOverrideForEndpointDiscoveryRequiredOperations": true -} \ No newline at end of file + "allowEndpointOverrideForEndpointDiscoveryRequiredOperations": true, + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/tnb/pom.xml b/services/tnb/pom.xml index a16e6f6701e5..a76895fe5fd4 100644 --- a/services/tnb/pom.xml +++ b/services/tnb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT tnb AWS Java SDK :: Services :: Tnb diff --git a/services/tnb/src/main/resources/codegen-resources/customization.config b/services/tnb/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/tnb/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/transcribe/pom.xml b/services/transcribe/pom.xml index 168bb82ee1e1..95f556d511a3 100644 --- a/services/transcribe/pom.xml +++ b/services/transcribe/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT transcribe AWS Java SDK :: Services :: Transcribe diff --git a/services/transcribe/src/main/resources/codegen-resources/customization.config b/services/transcribe/src/main/resources/codegen-resources/customization.config index 541175cdecce..0c4b4badce52 100644 --- a/services/transcribe/src/main/resources/codegen-resources/customization.config +++ b/services/transcribe/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true, "verifiedSimpleMethods" : [ "listTranscriptionJobs", "listVocabularies" diff --git a/services/transcribestreaming/pom.xml b/services/transcribestreaming/pom.xml index d67d1b116562..f55175e84d3b 100644 --- a/services/transcribestreaming/pom.xml +++ b/services/transcribestreaming/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT transcribestreaming AWS Java SDK :: Services :: AWS Transcribe Streaming diff --git a/services/transcribestreaming/src/main/resources/codegen-resources/customization.config b/services/transcribestreaming/src/main/resources/codegen-resources/customization.config index 20377792a23f..3fe68da28963 100644 --- a/services/transcribestreaming/src/main/resources/codegen-resources/customization.config +++ b/services/transcribestreaming/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true, "serviceSpecificHttpConfig": "software.amazon.awssdk.services.transcribestreaming.internal.DefaultHttpConfigurationOptions", "skipSyncClientGeneration": true, "useLegacyEventGenerationScheme": { diff --git a/services/transfer/pom.xml b/services/transfer/pom.xml index 81399a760e5c..7d25893966ad 100644 --- a/services/transfer/pom.xml +++ b/services/transfer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT transfer AWS Java SDK :: Services :: Transfer diff --git a/services/transfer/src/main/resources/codegen-resources/customization.config b/services/transfer/src/main/resources/codegen-resources/customization.config index 5433b8e01c77..52ee44027389 100644 --- a/services/transfer/src/main/resources/codegen-resources/customization.config +++ b/services/transfer/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listServers" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/translate/pom.xml b/services/translate/pom.xml index 8a7df85ebeae..4a0c77216702 100644 --- a/services/translate/pom.xml +++ b/services/translate/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 translate diff --git a/services/translate/src/main/resources/codegen-resources/customization.config b/services/translate/src/main/resources/codegen-resources/customization.config index ecd583dc0b3b..2c80e49370d4 100644 --- a/services/translate/src/main/resources/codegen-resources/customization.config +++ b/services/translate/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listTerminologies" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/trustedadvisor/pom.xml b/services/trustedadvisor/pom.xml index 99b6fbec9687..0c87dd3cafc6 100644 --- a/services/trustedadvisor/pom.xml +++ b/services/trustedadvisor/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT trustedadvisor AWS Java SDK :: Services :: Trusted Advisor diff --git a/services/trustedadvisor/src/main/resources/codegen-resources/customization.config b/services/trustedadvisor/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/trustedadvisor/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/verifiedpermissions/pom.xml b/services/verifiedpermissions/pom.xml index b86109359a07..c86e8d8bbcbf 100644 --- a/services/verifiedpermissions/pom.xml +++ b/services/verifiedpermissions/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT verifiedpermissions AWS Java SDK :: Services :: Verified Permissions diff --git a/services/verifiedpermissions/src/main/resources/codegen-resources/customization.config b/services/verifiedpermissions/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/verifiedpermissions/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/voiceid/pom.xml b/services/voiceid/pom.xml index 8ab1abefed73..4bb66be9023f 100644 --- a/services/voiceid/pom.xml +++ b/services/voiceid/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT voiceid AWS Java SDK :: Services :: Voice ID diff --git a/services/voiceid/src/main/resources/codegen-resources/customization.config b/services/voiceid/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/voiceid/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/vpclattice/pom.xml b/services/vpclattice/pom.xml index 9c98ed4fe908..3e0c5f1a8568 100644 --- a/services/vpclattice/pom.xml +++ b/services/vpclattice/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT vpclattice AWS Java SDK :: Services :: VPC Lattice diff --git a/services/vpclattice/src/main/resources/codegen-resources/customization.config b/services/vpclattice/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/vpclattice/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/waf/pom.xml b/services/waf/pom.xml index d874ae872d76..e315c0e63576 100644 --- a/services/waf/pom.xml +++ b/services/waf/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT waf AWS Java SDK :: Services :: AWS WAF diff --git a/services/waf/src/main/resources/codegen-resources/customization.config b/services/waf/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/waf/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/wafv2/pom.xml b/services/wafv2/pom.xml index 8e0ba24ea51a..8aa466f211e5 100644 --- a/services/wafv2/pom.xml +++ b/services/wafv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT wafv2 AWS Java SDK :: Services :: WAFV2 diff --git a/services/wafv2/src/main/resources/codegen-resources/customization.config b/services/wafv2/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/wafv2/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/wafv2/src/main/resources/codegen-resources/service-2.json b/services/wafv2/src/main/resources/codegen-resources/service-2.json index 5cbb21f3a8f2..a75899c9d4b1 100644 --- a/services/wafv2/src/main/resources/codegen-resources/service-2.json +++ b/services/wafv2/src/main/resources/codegen-resources/service-2.json @@ -156,6 +156,23 @@ ], "documentation":"

    Creates a WebACL per the specifications provided.

    A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has a statement that defines what to look for in web requests and an action that WAF applies to requests that match the statement. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, an Amazon Cognito user pool, an App Runner service, or an Amazon Web Services Verified Access instance.

    " }, + "DeleteAPIKey":{ + "name":"DeleteAPIKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAPIKeyRequest"}, + "output":{"shape":"DeleteAPIKeyResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFInvalidOperationException"} + ], + "documentation":"

    Deletes the specified API key.

    After you delete a key, it can take up to 24 hours for WAF to disallow use of the key in all regions.

    " + }, "DeleteFirewallManagerRuleGroups":{ "name":"DeleteFirewallManagerRuleGroups", "http":{ @@ -1680,7 +1697,7 @@ }, "TokenDomains":{ "shape":"APIKeyTokenDomains", - "documentation":"

    The client application domains that you want to use this API key for.

    Example JSON: \"TokenDomains\": [\"abc.com\", \"store.abc.com\"]

    Public suffixes aren't allowed. For example, you can't use usa.gov or co.uk as token domains.

    " + "documentation":"

    The client application domains that you want to use this API key for.

    Example JSON: \"TokenDomains\": [\"abc.com\", \"store.abc.com\"]

    Public suffixes aren't allowed. For example, you can't use gov.au or co.uk as token domains.

    " } } }, @@ -1879,7 +1896,7 @@ }, "TokenDomains":{ "shape":"TokenDomains", - "documentation":"

    Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

    Example JSON: \"TokenDomains\": { \"mywebsite.com\", \"myotherwebsite.com\" }

    Public suffixes aren't allowed. For example, you can't use usa.gov or co.uk as token domains.

    " + "documentation":"

    Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

    Example JSON: \"TokenDomains\": { \"mywebsite.com\", \"myotherwebsite.com\" }

    Public suffixes aren't allowed. For example, you can't use gov.au or co.uk as token domains.

    " }, "AssociationConfig":{ "shape":"AssociationConfig", @@ -2005,6 +2022,28 @@ }, "documentation":"

    In a WebACL, this is the action that you want WAF to perform when a web request doesn't match any of the rules in the WebACL. The default action must be a terminating action.

    " }, + "DeleteAPIKeyRequest":{ + "type":"structure", + "required":[ + "Scope", + "APIKey" + ], + "members":{ + "Scope":{ + "shape":"Scope", + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, an App Runner service, or an Amazon Web Services Verified Access instance.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + }, + "APIKey":{ + "shape":"APIKey", + "documentation":"

    The encrypted API key that you want to delete.

    " + } + } + }, + "DeleteAPIKeyResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteFirewallManagerRuleGroupsRequest":{ "type":"structure", "required":[ @@ -6054,7 +6093,7 @@ }, "TokenDomains":{ "shape":"TokenDomains", - "documentation":"

    Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

    Example JSON: \"TokenDomains\": { \"mywebsite.com\", \"myotherwebsite.com\" }

    Public suffixes aren't allowed. For example, you can't use usa.gov or co.uk as token domains.

    " + "documentation":"

    Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

    Example JSON: \"TokenDomains\": { \"mywebsite.com\", \"myotherwebsite.com\" }

    Public suffixes aren't allowed. For example, you can't use gov.au or co.uk as token domains.

    " }, "AssociationConfig":{ "shape":"AssociationConfig", diff --git a/services/wellarchitected/pom.xml b/services/wellarchitected/pom.xml index 6104461357d7..1830d755945e 100644 --- a/services/wellarchitected/pom.xml +++ b/services/wellarchitected/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT wellarchitected AWS Java SDK :: Services :: Well Architected diff --git a/services/wellarchitected/src/main/resources/codegen-resources/customization.config b/services/wellarchitected/src/main/resources/codegen-resources/customization.config index 89f59320725a..a79457ef90ad 100644 --- a/services/wellarchitected/src/main/resources/codegen-resources/customization.config +++ b/services/wellarchitected/src/main/resources/codegen-resources/customization.config @@ -1,3 +1,6 @@ { - "customServiceMetadata": {"contentType" : "application/json"} -} \ No newline at end of file + "customServiceMetadata": { + "contentType": "application/json" + }, + "useSraAuth": true +} diff --git a/services/wisdom/pom.xml b/services/wisdom/pom.xml index 0bf732e03a70..67a69c3f0a52 100644 --- a/services/wisdom/pom.xml +++ b/services/wisdom/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT wisdom AWS Java SDK :: Services :: Wisdom diff --git a/services/wisdom/src/main/resources/codegen-resources/customization.config b/services/wisdom/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/wisdom/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/workdocs/pom.xml b/services/workdocs/pom.xml index b52dcb03debf..a331f26e4983 100644 --- a/services/workdocs/pom.xml +++ b/services/workdocs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT workdocs AWS Java SDK :: Services :: Amazon WorkDocs diff --git a/services/workdocs/src/main/resources/codegen-resources/customization.config b/services/workdocs/src/main/resources/codegen-resources/customization.config index 304bdf6f931b..706186a46317 100644 --- a/services/workdocs/src/main/resources/codegen-resources/customization.config +++ b/services/workdocs/src/main/resources/codegen-resources/customization.config @@ -1,7 +1,10 @@ { - "excludedSimpleMethods" : [ - "describeUsers", - "describeActivities", - "getResources" - ] + "excludedSimpleMethods": [ + "describeUsers", + "describeActivities", + "getResources" + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/worklink/pom.xml b/services/worklink/pom.xml index 5205b539e281..c5eab7a98445 100644 --- a/services/worklink/pom.xml +++ b/services/worklink/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT worklink AWS Java SDK :: Services :: WorkLink diff --git a/services/worklink/src/main/resources/codegen-resources/customization.config b/services/worklink/src/main/resources/codegen-resources/customization.config index dfecb83bee07..26f75dd032e7 100644 --- a/services/worklink/src/main/resources/codegen-resources/customization.config +++ b/services/worklink/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,6 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listFleets" - ] + ], + "useSraAuth": true } diff --git a/services/workmail/pom.xml b/services/workmail/pom.xml index 343c2d3c74a0..4ecc3af7de7b 100644 --- a/services/workmail/pom.xml +++ b/services/workmail/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 workmail diff --git a/services/workmail/src/main/resources/codegen-resources/customization.config b/services/workmail/src/main/resources/codegen-resources/customization.config index 853d06179ea7..f642f63709f0 100644 --- a/services/workmail/src/main/resources/codegen-resources/customization.config +++ b/services/workmail/src/main/resources/codegen-resources/customization.config @@ -1,5 +1,8 @@ { - "verifiedSimpleMethods" : [ + "verifiedSimpleMethods": [ "listOrganizations" - ] + ], + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + } diff --git a/services/workmailmessageflow/pom.xml b/services/workmailmessageflow/pom.xml index a5f7a428a7ad..0350416f0278 100644 --- a/services/workmailmessageflow/pom.xml +++ b/services/workmailmessageflow/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT workmailmessageflow AWS Java SDK :: Services :: WorkMailMessageFlow diff --git a/services/workmailmessageflow/src/main/resources/codegen-resources/customization.config b/services/workmailmessageflow/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..01fa7bb78dbb --- /dev/null +++ b/services/workmailmessageflow/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,5 @@ +{ + "useSraAuth": true, + "enableGenerateCompiledEndpointRules": true + +} diff --git a/services/workspaces/pom.xml b/services/workspaces/pom.xml index f5852f9cc13c..f681692fb6c3 100644 --- a/services/workspaces/pom.xml +++ b/services/workspaces/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT workspaces AWS Java SDK :: Services :: Amazon WorkSpaces diff --git a/services/workspaces/src/main/resources/codegen-resources/customization.config b/services/workspaces/src/main/resources/codegen-resources/customization.config index ab4975037913..a6a11d7c7089 100644 --- a/services/workspaces/src/main/resources/codegen-resources/customization.config +++ b/services/workspaces/src/main/resources/codegen-resources/customization.config @@ -1,14 +1,15 @@ { - "verifiedSimpleMethods": [ - "describeIpGroups", - "describeWorkspaceBundles", - "describeWorkspaceDirectories", - "describeWorkspaceImages", - "describeWorkspaces", - "describeWorkspacesConnectionStatus" - ], - "excludedSimpleMethods": [ - "describeAccountModifications", - "describeAccount" - ] + "verifiedSimpleMethods": [ + "describeIpGroups", + "describeWorkspaceBundles", + "describeWorkspaceDirectories", + "describeWorkspaceImages", + "describeWorkspaces", + "describeWorkspacesConnectionStatus" + ], + "excludedSimpleMethods": [ + "describeAccountModifications", + "describeAccount" + ], + "useSraAuth": true } diff --git a/services/workspaces/src/main/resources/codegen-resources/service-2.json b/services/workspaces/src/main/resources/codegen-resources/service-2.json index f8afa4967fd6..bdadf3446e54 100644 --- a/services/workspaces/src/main/resources/codegen-resources/service-2.json +++ b/services/workspaces/src/main/resources/codegen-resources/service-2.json @@ -980,7 +980,7 @@ "errors":[ {"shape":"OperationNotSupportedException"} ], - "documentation":"

    Reboots the specified WorkSpaces.

    You cannot reboot a WorkSpace unless its state is AVAILABLE, UNHEALTHY, or REBOOTING. Reboot a WorkSpace in the REBOOTING state only if your WorkSpace has been stuck in the REBOOTING state for over 20 minutes.

    This operation is asynchronous and returns before the WorkSpaces have rebooted.

    " + "documentation":"

    Reboots the specified WorkSpaces.

    You cannot reboot a WorkSpace unless its state is AVAILABLE or UNHEALTHY.

    This operation is asynchronous and returns before the WorkSpaces have rebooted.

    " }, "RebuildWorkspaces":{ "name":"RebuildWorkspaces", @@ -3074,6 +3074,10 @@ "NextToken":{ "shape":"PaginationToken", "documentation":"

    If you received a NextToken from a previous call that was paginated, provide this token to receive the next set of results.

    " + }, + "WorkspaceName":{ + "shape":"WorkspaceName", + "documentation":"

    The name of the user-decoupled WorkSpace.

    " } } }, @@ -4955,6 +4959,10 @@ "shape":"BooleanObject", "documentation":"

    Indicates whether the data stored on the root volume is encrypted.

    " }, + "WorkspaceName":{ + "shape":"WorkspaceName", + "documentation":"

    The name of the user-decoupled WorkSpace.

    " + }, "WorkspaceProperties":{ "shape":"WorkspaceProperties", "documentation":"

    The properties of the WorkSpace.

    " @@ -5395,6 +5403,10 @@ "type":"list", "member":{"shape":"Workspace"} }, + "WorkspaceName":{ + "type":"string", + "pattern":"^[a-zA-Z0-9_()][a-zA-Z0-9_.()-]{1,63}$" + }, "WorkspaceProperties":{ "type":"structure", "members":{ @@ -5443,7 +5455,7 @@ }, "UserName":{ "shape":"UserName", - "documentation":"

    The user name of the user for the WorkSpace. This user name must exist in the Directory Service directory for the WorkSpace.

    " + "documentation":"

    The user name of the user for the WorkSpace. This user name must exist in the Directory Service directory for the WorkSpace.

    The reserved keyword, [UNDEFINED], is used when creating user-decoupled WorkSpaces.

    " }, "BundleId":{ "shape":"BundleId", @@ -5468,6 +5480,10 @@ "Tags":{ "shape":"TagList", "documentation":"

    The tags for the WorkSpace.

    " + }, + "WorkspaceName":{ + "shape":"WorkspaceName", + "documentation":"

    The name of the user-decoupled WorkSpace.

    " } }, "documentation":"

    Describes the information used to create a WorkSpace.

    " diff --git a/services/workspacesthinclient/pom.xml b/services/workspacesthinclient/pom.xml index 505daa43e8be..358a50b123a5 100644 --- a/services/workspacesthinclient/pom.xml +++ b/services/workspacesthinclient/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT workspacesthinclient AWS Java SDK :: Services :: Work Spaces Thin Client diff --git a/services/workspacesthinclient/src/main/resources/codegen-resources/customization.config b/services/workspacesthinclient/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/workspacesthinclient/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/workspacesweb/pom.xml b/services/workspacesweb/pom.xml index e6ba14ea6dff..ce5ab40fc867 100644 --- a/services/workspacesweb/pom.xml +++ b/services/workspacesweb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT workspacesweb AWS Java SDK :: Services :: Work Spaces Web diff --git a/services/workspacesweb/src/main/resources/codegen-resources/customization.config b/services/workspacesweb/src/main/resources/codegen-resources/customization.config new file mode 100644 index 000000000000..fb50d0a7a6eb --- /dev/null +++ b/services/workspacesweb/src/main/resources/codegen-resources/customization.config @@ -0,0 +1,3 @@ +{ + "useSraAuth": true +} diff --git a/services/xray/pom.xml b/services/xray/pom.xml index 915b1d89d923..63fcdc6f7196 100644 --- a/services/xray/pom.xml +++ b/services/xray/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT xray AWS Java SDK :: Services :: AWS X-Ray diff --git a/services/xray/src/main/resources/codegen-resources/customization.config b/services/xray/src/main/resources/codegen-resources/customization.config index 323772188ef2..35d2a18245c9 100644 --- a/services/xray/src/main/resources/codegen-resources/customization.config +++ b/services/xray/src/main/resources/codegen-resources/customization.config @@ -1,17 +1,18 @@ { - "verifiedSimpleMethods": [ - "getEncryptionConfig", - "getGroups", - "getSamplingRules", - "getSamplingStatisticSummaries" - ], - "excludedSimpleMethods": [ - "deleteSamplingRule", - "getGroup" - ], - "shapeModifiers": { - "AnnotationValue": { - "union": true - } - } + "verifiedSimpleMethods": [ + "getEncryptionConfig", + "getGroups", + "getSamplingRules", + "getSamplingStatisticSummaries" + ], + "excludedSimpleMethods": [ + "deleteSamplingRule", + "getGroup" + ], + "shapeModifiers": { + "AnnotationValue": { + "union": true + } + }, + "useSraAuth": true } diff --git a/test/auth-tests/pom.xml b/test/auth-tests/pom.xml index b30e545ce5e5..a9ebc3b52208 100644 --- a/test/auth-tests/pom.xml +++ b/test/auth-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/auth-tests/src/it/java/software/amazon/awssdk/auth/sts/ProfileCredentialsProviderIntegrationTest.java b/test/auth-tests/src/it/java/software/amazon/awssdk/auth/sts/ProfileCredentialsProviderIntegrationTest.java index 6247a50da682..a8683e414af0 100644 --- a/test/auth-tests/src/it/java/software/amazon/awssdk/auth/sts/ProfileCredentialsProviderIntegrationTest.java +++ b/test/auth-tests/src/it/java/software/amazon/awssdk/auth/sts/ProfileCredentialsProviderIntegrationTest.java @@ -22,18 +22,23 @@ import static com.github.tomakehurst.wiremock.client.WireMock.put; import static com.github.tomakehurst.wiremock.client.WireMock.putRequestedFor; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import com.github.tomakehurst.wiremock.WireMockServer; -import com.github.tomakehurst.wiremock.core.WireMockConfiguration; -import java.io.ByteArrayInputStream; -import java.nio.charset.StandardCharsets; +import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; +import static org.assertj.core.api.Assertions.assertThat; + +import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder; +import com.github.tomakehurst.wiremock.client.WireMock; +import com.github.tomakehurst.wiremock.junit5.WireMockExtension; import java.time.Duration; import java.time.Instant; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; +import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.core.util.SdkUserAgent; import software.amazon.awssdk.profiles.ProfileFile; import software.amazon.awssdk.services.sts.model.StsException; import software.amazon.awssdk.utils.DateUtils; +import software.amazon.awssdk.utils.StringInputStream; public class ProfileCredentialsProviderIntegrationTest { private static final String TOKEN_RESOURCE_PATH = "/latest/api/token"; @@ -41,48 +46,134 @@ public class ProfileCredentialsProviderIntegrationTest { private static final String STUB_CREDENTIALS = "{\"AccessKeyId\":\"ACCESS_KEY_ID\",\"SecretAccessKey\":\"SECRET_ACCESS_KEY\"," + "\"Expiration\":\"" + DateUtils.formatIso8601Date(Instant.now().plus(Duration.ofDays(1))) + "\"}"; + private static final String USER_AGENT_HEADER = "User-Agent"; + private static final String USER_AGENT = SdkUserAgent.create().userAgent(); + private static final String PROFILE_NAME = "some-profile"; + private static final String TOKEN_HEADER = "x-aws-ec2-metadata-token"; + private static final String TOKEN_STUB = "some-token"; + + @RegisterExtension + static WireMockExtension wireMockServer = WireMockExtension.newInstance() + .options(wireMockConfig().dynamicPort().dynamicPort()) + .configureStaticDsl(true) + .build(); + + private void stubSecureCredentialsResponse(ResponseDefinitionBuilder responseDefinitionBuilder) { + wireMockServer.stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody(TOKEN_STUB))); + stubCredentialsResponse(responseDefinitionBuilder); + } + + private void stubTokenFetchErrorResponse(ResponseDefinitionBuilder responseDefinitionBuilder, int statusCode) { + wireMockServer.stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withStatus(statusCode) + .withBody("oops"))); + stubCredentialsResponse(responseDefinitionBuilder); + } + + private void stubCredentialsResponse(ResponseDefinitionBuilder responseDefinitionBuilder) { + wireMockServer.stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody(PROFILE_NAME))); + wireMockServer.stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + PROFILE_NAME)).willReturn(responseDefinitionBuilder)); + } @Test - public void profileWithCredentialSourceUsingEc2InstanceMetadataAndCustomEndpoint_usesEndpointInSourceProfile() { + public void resolveCredentials_instanceMetadataSourceAndCustomEndpoint_usesSourceEndpointAndMakesSecureCall() { String testFileContentsTemplate = "" + - "[profile a]\n" + + "[profile ec2Test]\n" + "role_arn=arn:aws:iam::123456789012:role/testRole3\n" + "credential_source = ec2instancemetadata\n" + "ec2_metadata_service_endpoint = http://localhost:%d\n"; + String profileFileContents = String.format(testFileContentsTemplate, wireMockServer.getPort()); + + ProfileCredentialsProvider profileCredentialsProvider = ProfileCredentialsProvider.builder() + .profileFile(configFile(profileFileContents)) + .profileName("ec2Test") + .build(); - WireMockServer mockMetadataEndpoint = new WireMockServer(WireMockConfiguration.options().dynamicPort()); - mockMetadataEndpoint.start(); + stubSecureCredentialsResponse(aResponse().withBody(STUB_CREDENTIALS)); - String profileFileContents = String.format(testFileContentsTemplate, mockMetadataEndpoint.port()); + try { + profileCredentialsProvider.resolveCredentials(); + } catch (StsException e) { + // ignored + } + verifyImdsCallWithToken(); + } - ProfileFile profileFile = ProfileFile.builder() - .type(ProfileFile.Type.CONFIGURATION) - .content(new ByteArrayInputStream(profileFileContents.getBytes(StandardCharsets.UTF_8))) - .build(); + @Test + public void resolveCredentials_instanceMetadataSource_fallbackToInsecureWhenTokenFails() { + String testFileContentsTemplate = "" + + "[profile ec2Test]\n" + + "role_arn=arn:aws:iam::123456789012:role/testRole3\n" + + "credential_source = ec2instancemetadata\n" + + "ec2_metadata_service_endpoint = http://localhost:%d\n"; + String profileFileContents = String.format(testFileContentsTemplate, wireMockServer.getPort()); ProfileCredentialsProvider profileCredentialsProvider = ProfileCredentialsProvider.builder() - .profileFile(profileFile) - .profileName("a") - .build(); + .profileFile(configFile(profileFileContents)) + .profileName("ec2Test") + .build(); - String stubToken = "some-token"; - mockMetadataEndpoint.stubFor(put(urlPathEqualTo(TOKEN_RESOURCE_PATH)).willReturn(aResponse().withBody(stubToken))); - mockMetadataEndpoint.stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).willReturn(aResponse().withBody("some-profile"))); - mockMetadataEndpoint.stubFor(get(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).willReturn(aResponse().withBody(STUB_CREDENTIALS))); + stubTokenFetchErrorResponse(aResponse().withBody(STUB_CREDENTIALS), 403); try { profileCredentialsProvider.resolveCredentials(); - } catch (StsException e) { // ignored - } finally { - mockMetadataEndpoint.stop(); } + verifyImdsCallInsecure(); + } + + @Test + public void resolveCredentials_instanceMetadataSourceAndFallbackToInsecureDisabled_throwsWhenTokenFails() { + String testFileContentsTemplate = "" + + "[profile ec2Test]\n" + + "role_arn=arn:aws:iam::123456789012:role/testRole3\n" + + "credential_source = ec2instancemetadata\n" + + "ec2_metadata_v1_disabled = true\n" + + "ec2_metadata_service_endpoint = http://localhost:%d\n"; + String profileFileContents = String.format(testFileContentsTemplate, wireMockServer.getPort()); + + ProfileCredentialsProvider profileCredentialsProvider = ProfileCredentialsProvider.builder() + .profileFile(configFile(profileFileContents)) + .profileName("ec2Test") + .build(); - String userAgentHeader = "User-Agent"; - String userAgent = SdkUserAgent.create().userAgent(); - mockMetadataEndpoint.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - mockMetadataEndpoint.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)).withHeader(userAgentHeader, equalTo(userAgent))); - mockMetadataEndpoint.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")).withHeader(userAgentHeader, equalTo(userAgent))); + stubTokenFetchErrorResponse(aResponse().withBody(STUB_CREDENTIALS), 403); + + try { + profileCredentialsProvider.resolveCredentials(); + } catch (Exception e) { + assertThat(e).isInstanceOf(SdkClientException.class); + Throwable cause = e.getCause(); + assertThat(cause).isInstanceOf(SdkClientException.class); + assertThat(cause).hasMessageContaining("fallback to IMDS v1 is disabled"); + } } + + private void verifyImdsCallWithToken() { + WireMock.verify(putRequestedFor(urlPathEqualTo(TOKEN_RESOURCE_PATH)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)) + .withHeader(TOKEN_HEADER, equalTo(TOKEN_STUB)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")) + .withHeader(TOKEN_HEADER, equalTo(TOKEN_STUB)) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + } + + private void verifyImdsCallInsecure() { + WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH)) + .withoutHeader(TOKEN_HEADER) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + WireMock.verify(getRequestedFor(urlPathEqualTo(CREDENTIALS_RESOURCE_PATH + "some-profile")) + .withoutHeader(TOKEN_HEADER) + .withHeader(USER_AGENT_HEADER, equalTo(USER_AGENT))); + } + + private ProfileFile configFile(String credentialFile) { + return ProfileFile.builder() + .content(new StringInputStream(credentialFile)) + .type(ProfileFile.Type.CONFIGURATION) + .build(); + } + } diff --git a/test/bundle-logging-bridge-binding-test/pom.xml b/test/bundle-logging-bridge-binding-test/pom.xml index 5efd1b0eb9b9..71489fac1a45 100644 --- a/test/bundle-logging-bridge-binding-test/pom.xml +++ b/test/bundle-logging-bridge-binding-test/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/codegen-generated-classes-test/pom.xml b/test/codegen-generated-classes-test/pom.xml index 13d60a0901e5..c73ff92f7a47 100644 --- a/test/codegen-generated-classes-test/pom.xml +++ b/test/codegen-generated-classes-test/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml @@ -235,6 +235,12 @@ ${awsjavasdk.version} test
    + + software.amazon.awssdk + netty-nio-client + ${awsjavasdk.version} + test + io.reactivex.rxjava2 rxjava @@ -305,6 +311,17 @@ true + + + org.apache.maven.plugins + maven-dependency-plugin + ${maven-dependency-plugin.version} + + false + false + + + diff --git a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/customresponsemetadata/service-2.json b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/customresponsemetadata/service-2.json index 11d12c84f6ce..1a0e39d83572 100644 --- a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/customresponsemetadata/service-2.json +++ b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/customresponsemetadata/service-2.json @@ -294,7 +294,7 @@ }, "input":{"shape":"RequestCompressionStructure"}, "output":{"shape":"RequestCompressionStructure"}, - "requestCompression": { + "requestcompression": { "encodings": ["gzip"] } }, @@ -306,7 +306,7 @@ }, "input":{"shape":"RequestCompressionStructureWithStreaming"}, "output":{"shape":"RequestCompressionStructureWithStreaming"}, - "requestCompression": { + "requestcompression": { "encodings": ["gzip"] }, "authtype":"v4-unsigned-body" diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/AuthSchemeInterceptorTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/AuthSchemeInterceptorTest.java new file mode 100644 index 000000000000..e187ab4435d5 --- /dev/null +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/AuthSchemeInterceptorTest.java @@ -0,0 +1,108 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider; +import software.amazon.awssdk.core.SelectedAuthScheme; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute; +import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4AuthScheme; +import software.amazon.awssdk.http.auth.spi.scheme.AuthScheme; +import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption; +import software.amazon.awssdk.http.auth.spi.signer.HttpSigner; +import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; +import software.amazon.awssdk.identity.spi.IdentityProvider; +import software.amazon.awssdk.identity.spi.IdentityProviders; +import software.amazon.awssdk.services.protocolrestjson.auth.scheme.ProtocolRestJsonAuthSchemeParams; +import software.amazon.awssdk.services.protocolrestjson.auth.scheme.ProtocolRestJsonAuthSchemeProvider; +import software.amazon.awssdk.services.protocolrestjson.auth.scheme.internal.ProtocolRestJsonAuthSchemeInterceptor; + +public class AuthSchemeInterceptorTest { + private static final ProtocolRestJsonAuthSchemeInterceptor INTERCEPTOR = new ProtocolRestJsonAuthSchemeInterceptor(); + + private Context.BeforeExecution mockContext; + + @BeforeEach + public void setup() { + mockContext = mock(Context.BeforeExecution.class); + } + + @Test + public void resolveAuthScheme_authSchemeSignerThrows_continuesToNextAuthScheme() { + ProtocolRestJsonAuthSchemeProvider mockAuthSchemeProvider = mock(ProtocolRestJsonAuthSchemeProvider.class); + List authSchemeOptions = Arrays.asList( + AuthSchemeOption.builder().schemeId(TestAuthScheme.SCHEME_ID).build(), + AuthSchemeOption.builder().schemeId(AwsV4AuthScheme.SCHEME_ID).build() + ); + when(mockAuthSchemeProvider.resolveAuthScheme(any(ProtocolRestJsonAuthSchemeParams.class))).thenReturn(authSchemeOptions); + + IdentityProviders mockIdentityProviders = mock(IdentityProviders.class); + when(mockIdentityProviders.identityProvider(any(Class.class))).thenReturn(AnonymousCredentialsProvider.create()); + + Map> authSchemes = new HashMap<>(); + authSchemes.put(AwsV4AuthScheme.SCHEME_ID, AwsV4AuthScheme.create()); + + TestAuthScheme notProvidedAuthScheme = spy(new TestAuthScheme()); + authSchemes.put(TestAuthScheme.SCHEME_ID, notProvidedAuthScheme); + + ExecutionAttributes attributes = new ExecutionAttributes(); + attributes.putAttribute(SdkExecutionAttribute.OPERATION_NAME, "GetFoo"); + attributes.putAttribute(SdkInternalExecutionAttribute.AUTH_SCHEME_RESOLVER, mockAuthSchemeProvider); + attributes.putAttribute(SdkInternalExecutionAttribute.IDENTITY_PROVIDERS, mockIdentityProviders); + attributes.putAttribute(SdkInternalExecutionAttribute.AUTH_SCHEMES, authSchemes); + + INTERCEPTOR.beforeExecution(mockContext, attributes); + + SelectedAuthScheme selectedAuthScheme = attributes.getAttribute(SdkInternalExecutionAttribute.SELECTED_AUTH_SCHEME); + + verify(notProvidedAuthScheme).signer(); + assertThat(selectedAuthScheme.authSchemeOption().schemeId()).isEqualTo(AwsV4AuthScheme.SCHEME_ID); + } + + private static class TestAuthScheme implements AuthScheme { + public static final String SCHEME_ID = "codegen-test-scheme"; + + @Override + public String schemeId() { + return SCHEME_ID; + } + + @Override + public IdentityProvider identityProvider(IdentityProviders providers) { + return providers.identityProvider(AwsCredentialsIdentity.class); + } + + @Override + public HttpSigner signer() { + throw new RuntimeException("Not on classpath"); + } + } +} diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/BlockingAsyncRequestResponseBodyResourceManagementTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/BlockingAsyncRequestResponseBodyResourceManagementTest.java new file mode 100644 index 000000000000..7818c3140b2e --- /dev/null +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/BlockingAsyncRequestResponseBodyResourceManagementTest.java @@ -0,0 +1,206 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services; + +import static io.netty.handler.codec.http.HttpHeaderNames.CONTENT_LENGTH; +import static io.netty.handler.codec.http.HttpHeaderNames.CONTENT_TYPE; +import static io.netty.handler.codec.http.HttpHeaderValues.TEXT_PLAIN; +import static io.netty.handler.codec.http.HttpResponseStatus.OK; +import static org.assertj.core.api.Assertions.assertThat; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.buffer.Unpooled; +import io.netty.channel.Channel; +import io.netty.channel.ChannelDuplexHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelOption; +import io.netty.channel.ChannelPipeline; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.ServerSocketChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.handler.codec.http.DefaultFullHttpResponse; +import io.netty.handler.codec.http.DefaultHttpResponse; +import io.netty.handler.codec.http.FullHttpResponse; +import io.netty.handler.codec.http.HttpMethod; +import io.netty.handler.codec.http.HttpRequest; +import io.netty.handler.codec.http.HttpServerCodec; +import io.netty.handler.codec.http.HttpVersion; +import io.netty.handler.logging.LogLevel; +import io.netty.handler.logging.LoggingHandler; +import java.io.IOException; +import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Consumer; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; +import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider; +import software.amazon.awssdk.core.ResponseInputStream; +import software.amazon.awssdk.core.async.AsyncResponseTransformer; +import software.amazon.awssdk.core.retry.RetryPolicy; +import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonAsyncClient; +import software.amazon.awssdk.services.protocolrestjson.model.StreamingOutputOperationRequest; +import software.amazon.awssdk.services.protocolrestjson.model.StreamingOutputOperationResponse; + +@Timeout(10) +public class BlockingAsyncRequestResponseBodyResourceManagementTest { + private ProtocolRestJsonAsyncClient client; + private Server server; + + + @AfterEach + void tearDownPerTest() throws InterruptedException { + server.shutdown(); + server = null; + client.close();; + + } + + @BeforeEach + void setUpPerTest() throws Exception { + server = new Server(); + server.init(); + + client = ProtocolRestJsonAsyncClient.builder() + .region(Region.US_WEST_2) + .credentialsProvider(AnonymousCredentialsProvider.create()) + .endpointOverride(URI.create("http://localhost:" + server.port())) + .overrideConfiguration(o -> o.retryPolicy(RetryPolicy.none())) + .httpClientBuilder(NettyNioAsyncHttpClient.builder().putChannelOption(ChannelOption.SO_RCVBUF, 8)) + .build(); + } + + + @Test + void blockingResponseTransformer_abort_shouldCloseUnderlyingConnection() throws IOException { + verifyConnection(r -> r.abort()); + } + + @Test + void blockingResponseTransformer_close_shouldCloseUnderlyingConnection() throws IOException { + Consumer> closeInputStream = closeInputStraem(); + verifyConnection(closeInputStream); + } + + + private static Consumer> closeInputStraem() { + Consumer> closeInputStream = r -> { + try { + r.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + }; + return closeInputStream; + } + + + void verifyConnection(Consumer> consumer) throws IOException { + + CompletableFuture> responseFuture = + client.streamingOutputOperation(StreamingOutputOperationRequest.builder().build(), + AsyncResponseTransformer.toBlockingInputStream()); + ResponseInputStream responseStream = responseFuture.join(); + + + consumer.accept(responseStream); + + try { + client.headOperation().join(); + } catch (Exception exception) { + // Doesn't matter if the request succeeds or not + } + + // Total of 2 connections got established. + assertThat(server.channels.size()).isEqualTo(2); + } + + private static class Server extends ChannelInitializer { + private static final byte[] CONTENT = ("{ " + + "\"foo\": " + RandomStringUtils.randomAscii(1024 * 1024 * 10) + + "}").getBytes(StandardCharsets.UTF_8); + private ServerBootstrap bootstrap; + private ServerSocketChannel serverSock; + private Set channels = ConcurrentHashMap.newKeySet(); + private final NioEventLoopGroup group = new NioEventLoopGroup(3); + + public void init() throws Exception { + bootstrap = new ServerBootstrap() + .channel(NioServerSocketChannel.class) + .group(group) + .childHandler(this); + + serverSock = (ServerSocketChannel) bootstrap.bind(0).sync().channel(); + } + + public void shutdown() throws InterruptedException { + group.shutdownGracefully().await(); + serverSock.close(); + } + + public int port() { + return serverSock.localAddress().getPort(); + } + + @Override + protected void initChannel(Channel ch) { + channels.add(ch); + ChannelPipeline pipeline = ch.pipeline(); + pipeline.addLast(new HttpServerCodec()); + pipeline.addLast(new BehaviorTestChannelHandler()); + pipeline.addLast(new LoggingHandler(LogLevel.INFO)); + } + + private class BehaviorTestChannelHandler extends ChannelDuplexHandler { + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) { + + if (!(msg instanceof HttpRequest)) { + return; + } + + HttpMethod method = ((HttpRequest) msg).method(); + + if (Objects.equals(method, HttpMethod.HEAD)) { + DefaultHttpResponse response = new DefaultHttpResponse(HttpVersion.HTTP_1_1, OK); + ctx.writeAndFlush(response); + return; + } + + FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, OK, + Unpooled.wrappedBuffer(CONTENT)); + + response.headers() + .set(CONTENT_TYPE, TEXT_PLAIN) + .setInt(CONTENT_LENGTH, response.content().readableBytes()); + + ctx.writeAndFlush(response); + } + } + } +} diff --git a/test/crt-unavailable-tests/pom.xml b/test/crt-unavailable-tests/pom.xml new file mode 100644 index 000000000000..68bedea239d6 --- /dev/null +++ b/test/crt-unavailable-tests/pom.xml @@ -0,0 +1,92 @@ + + + + + + aws-sdk-java-pom + software.amazon.awssdk + 2.24.13-SNAPSHOT + ../../pom.xml + + 4.0.0 + + crt-unavailable-tests + AWS Java SDK :: Test :: Crt Unavailable Tests + Test package for testing components that use CRT when CRT is not on the classpath. + + + + software.amazon.awssdk + bom-internal + ${project.version} + pom + import + + + + + + + software.amazon.awssdk + http-auth-aws + ${awsjavasdk.version} + test + + + org.assertj + assertj-core + test + + + org.hamcrest + hamcrest-all + test + + + org.junit.jupiter + junit-jupiter + test + + + org.junit.vintage + junit-vintage-engine + test + + + com.github.tomakehurst + wiremock-jre8 + test + + + org.apache.logging.log4j + log4j-api + test + + + org.apache.logging.log4j + log4j-core + test + + + org.apache.logging.log4j + log4j-slf4j-impl + test + + + + diff --git a/test/crt-unavailable-tests/src/test/java/software/amazon/awssdk/auth/aws/AwsV4aAuthSchemeTest.java b/test/crt-unavailable-tests/src/test/java/software/amazon/awssdk/auth/aws/AwsV4aAuthSchemeTest.java new file mode 100644 index 000000000000..ba407ce64bc4 --- /dev/null +++ b/test/crt-unavailable-tests/src/test/java/software/amazon/awssdk/auth/aws/AwsV4aAuthSchemeTest.java @@ -0,0 +1,28 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.auth.aws; + +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.http.auth.aws.scheme.AwsV4aAuthScheme; + +public class AwsV4aAuthSchemeTest { + @Test + public void signer_throwsRuntimeException() { + assertThatThrownBy(AwsV4aAuthScheme.create()::signer).hasMessageContaining("Could not load class"); + } +} diff --git a/test/http-client-tests/pom.xml b/test/http-client-tests/pom.xml index 47a1c2249d9b..e84881e5f11e 100644 --- a/test/http-client-tests/pom.xml +++ b/test/http-client-tests/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml http-client-tests diff --git a/test/module-path-tests/pom.xml b/test/module-path-tests/pom.xml index 34396b36d4b7..569ab3419875 100644 --- a/test/module-path-tests/pom.xml +++ b/test/module-path-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/old-client-version-compatibility-test/pom.xml b/test/old-client-version-compatibility-test/pom.xml index 97318359f95b..5c6416340600 100644 --- a/test/old-client-version-compatibility-test/pom.xml +++ b/test/old-client-version-compatibility-test/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml diff --git a/test/protocol-tests-core/pom.xml b/test/protocol-tests-core/pom.xml index f2ef18d5dff2..67370609a9b4 100644 --- a/test/protocol-tests-core/pom.xml +++ b/test/protocol-tests-core/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/rest-core-input.json b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/rest-core-input.json index 4c58440beb23..8528b322c376 100644 --- a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/rest-core-input.json +++ b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/rest-core-input.json @@ -442,6 +442,11 @@ }, "then": { "serializedAs": { + "headers": { + "contains": { + "content-length": "8" + } + }, "body": { "equals": "contents" } diff --git a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/rest-json-input.json b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/rest-json-input.json index fdf6882d7306..de141ecdbfa3 100644 --- a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/rest-json-input.json +++ b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/rest-json-input.json @@ -52,6 +52,11 @@ }, "then": { "serializedAs": { + "headers": { + "contains": { + "Content-length": "22" + } + }, "body": { "jsonEquals": "{\"StringMember\": \"foo\"}" } diff --git a/test/protocol-tests/pom.xml b/test/protocol-tests/pom.xml index 4531727b0aef..432791b4dd7f 100644 --- a/test/protocol-tests/pom.xml +++ b/test/protocol-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 @@ -219,6 +219,12 @@ rxjava test + + software.amazon.awssdk + aws-crt-client + ${awsjavasdk.version} + test + diff --git a/test/protocol-tests/src/main/resources/codegen-resources/restjson/contenttype/service-2.json b/test/protocol-tests/src/main/resources/codegen-resources/restjson/contenttype/service-2.json index 65d3bc977488..04415d6a3f00 100644 --- a/test/protocol-tests/src/main/resources/codegen-resources/restjson/contenttype/service-2.json +++ b/test/protocol-tests/src/main/resources/codegen-resources/restjson/contenttype/service-2.json @@ -223,6 +223,9 @@ "HeadersOnlyEvent": { "shape": "HeadersOnlyEvent" }, + "EndEvent": { + "shape": "EndEvent" + }, "ImplicitPayloadAndHeadersEvent": { "shape": "ImplicitPayloadAndHeadersEvent" } @@ -280,6 +283,12 @@ }, "event": true }, + "EndEvent":{ + "type":"structure", + "members":{ + }, + "event":true + }, "BlobPayloadMember":{"type":"blob"}, "EventStream": { "type": "structure", diff --git a/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/RestJsonEventStreamProtocolTest.java b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/RestJsonEventStreamProtocolTest.java index 53a19f98f5ae..0b2ddebb80e8 100644 --- a/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/RestJsonEventStreamProtocolTest.java +++ b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/RestJsonEventStreamProtocolTest.java @@ -15,10 +15,22 @@ package software.amazon.awssdk.protocol.tests; +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.any; +import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; +import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static com.github.tomakehurst.wiremock.client.WireMock.verify; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.in; +import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; +import io.reactivex.Flowable; import java.net.URI; import java.nio.charset.StandardCharsets; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import software.amazon.awssdk.core.SdkBytes; import software.amazon.awssdk.core.client.config.SdkClientConfiguration; @@ -27,6 +39,7 @@ import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.protocols.json.AwsJsonProtocol; import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory; +import software.amazon.awssdk.services.protocolrestjsoncontenttype.ProtocolRestJsonContentTypeAsyncClient; import software.amazon.awssdk.services.protocolrestjsoncontenttype.model.BlobAndHeadersEvent; import software.amazon.awssdk.services.protocolrestjsoncontenttype.model.HeadersOnlyEvent; import software.amazon.awssdk.services.protocolrestjsoncontenttype.model.ImplicitPayloadAndHeadersEvent; @@ -38,9 +51,19 @@ import software.amazon.awssdk.services.protocolrestjsoncontenttype.transform.ImplicitPayloadAndHeadersEventMarshaller; import software.amazon.awssdk.services.protocolrestjsoncontenttype.transform.StringAndHeadersEventMarshaller; +@WireMockTest public class RestJsonEventStreamProtocolTest { private static final String EVENT_CONTENT_TYPE_HEADER = ":content-type"; + private ProtocolRestJsonContentTypeAsyncClient client; + + @BeforeEach + void setup(WireMockRuntimeInfo info) { + client = ProtocolRestJsonContentTypeAsyncClient.builder() + .endpointOverride(URI.create("http://localhost:" + info.getHttpPort())) + .build(); + } + @Test public void implicitPayloadAndHeaders_payloadMemberPresent() { ImplicitPayloadAndHeadersEventMarshaller marshaller = new ImplicitPayloadAndHeadersEventMarshaller(protocolFactory()); @@ -91,6 +114,18 @@ public void blobAndHeadersEvent() { assertThat(content).isEqualTo("hello rest-json"); } + @Test + public void containsEmptyEvent_shouldEncodeSuccessfully() { + stubFor(any(anyUrl()).willReturn(aResponse().withStatus(200))); + client.testEventStream(b -> { + }, Flowable.fromArray(InputEventStream.stringAndHeadersEventBuilder().stringPayloadMember( + "test").build(), + InputEventStream.endEventBuilder().build())).join(); + + verify(postRequestedFor(anyUrl()) + .withHeader("Content-Type", equalTo("application/vnd.amazon.eventstream"))); + } + @Test public void stringAndHeadersEvent() { StringAndHeadersEventMarshaller marshaller = new StringAndHeadersEventMarshaller(protocolFactory()); diff --git a/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/contentlength/MarshallersAddContentLengthTest.java b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/contentlength/MarshallersAddContentLengthTest.java new file mode 100644 index 000000000000..8e8b44208ee3 --- /dev/null +++ b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/contentlength/MarshallersAddContentLengthTest.java @@ -0,0 +1,136 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.protocol.tests.contentlength; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static com.github.tomakehurst.wiremock.client.WireMock.verify; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import static software.amazon.awssdk.http.Header.CONTENT_LENGTH; + +import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; +import java.net.URI; +import java.nio.charset.StandardCharsets; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; +import software.amazon.awssdk.http.SdkHttpRequest; +import software.amazon.awssdk.http.crt.AwsCrtHttpClient; +import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonClient; +import software.amazon.awssdk.services.protocolrestjson.model.OperationWithExplicitPayloadStructureResponse; +import software.amazon.awssdk.services.protocolrestjson.model.SimpleStruct; +import software.amazon.awssdk.services.protocolrestxml.ProtocolRestXmlClient; +import software.amazon.awssdk.services.protocolrestxml.model.OperationWithExplicitPayloadStringResponse; + +@WireMockTest +public class MarshallersAddContentLengthTest { + public static final String STRING_PAYLOAD = "TEST_STRING_PAYLOAD"; + + @Test + void jsonMarshallers_AddContentLength_for_explicitBinaryPayload(WireMockRuntimeInfo wireMock) { + stubSuccessfulResponse(); + CaptureRequestInterceptor captureRequestInterceptor = new CaptureRequestInterceptor(); + ProtocolRestJsonClient client = ProtocolRestJsonClient.builder() + .httpClient(AwsCrtHttpClient.builder().build()) + .overrideConfiguration(o -> o.addExecutionInterceptor(captureRequestInterceptor)) + .endpointOverride(URI.create("http://localhost:" + wireMock.getHttpPort())) + .build(); + client.operationWithExplicitPayloadBlob(p -> p.payloadMember(SdkBytes.fromString(STRING_PAYLOAD, + StandardCharsets.UTF_8))); + verify(postRequestedFor(anyUrl()).withHeader(CONTENT_LENGTH, equalTo(String.valueOf(STRING_PAYLOAD.length())))); + assertThat(captureRequestInterceptor.requestAfterMarshalling().firstMatchingHeader(CONTENT_LENGTH)) + .contains(String.valueOf(STRING_PAYLOAD.length())); + } + + @Test + void jsonMarshallers_AddContentLength_for_explicitStringPayload(WireMockRuntimeInfo wireMock) { + stubSuccessfulResponse(); + String expectedPayload = String.format("{\"StringMember\":\"%s\"}", STRING_PAYLOAD); + CaptureRequestInterceptor captureRequestInterceptor = new CaptureRequestInterceptor(); + ProtocolRestJsonClient client = ProtocolRestJsonClient.builder() + .httpClient(AwsCrtHttpClient.builder().build()) + .overrideConfiguration(o -> o.addExecutionInterceptor(captureRequestInterceptor)) + .endpointOverride(URI.create("http://localhost:" + wireMock.getHttpPort())) + .build(); + OperationWithExplicitPayloadStructureResponse response = + client.operationWithExplicitPayloadStructure(p -> p.payloadMember(SimpleStruct.builder().stringMember(STRING_PAYLOAD).build())); + verify(postRequestedFor(anyUrl()) + .withRequestBody(equalTo(expectedPayload)) + .withHeader(CONTENT_LENGTH, equalTo(String.valueOf(expectedPayload.length())))); + assertThat(captureRequestInterceptor.requestAfterMarshalling().firstMatchingHeader(CONTENT_LENGTH)) + .contains(String.valueOf(expectedPayload.length())); + } + + @Test + void xmlMarshallers_AddContentLength_for_explicitBinaryPayload(WireMockRuntimeInfo wireMock) { + stubSuccessfulResponse(); + CaptureRequestInterceptor captureRequestInterceptor = new CaptureRequestInterceptor(); + ProtocolRestXmlClient client = ProtocolRestXmlClient.builder() + .httpClient(AwsCrtHttpClient.builder().build()) + .overrideConfiguration(o -> o.addExecutionInterceptor(captureRequestInterceptor)) + .endpointOverride(URI.create("http://localhost:" + wireMock.getHttpPort())) + .build(); + client.operationWithExplicitPayloadBlob(r -> r.payloadMember(SdkBytes.fromString(STRING_PAYLOAD, + StandardCharsets.UTF_8))); + verify(postRequestedFor(anyUrl()).withRequestBody(equalTo(STRING_PAYLOAD)) + .withHeader(CONTENT_LENGTH, equalTo(String.valueOf(STRING_PAYLOAD.length())))); + assertThat(captureRequestInterceptor.requestAfterMarshalling().firstMatchingHeader(CONTENT_LENGTH)) + .contains(String.valueOf(STRING_PAYLOAD.length())); + } + + @Test + void xmlMarshallers_AddContentLength_for_explicitStringPayload(WireMockRuntimeInfo wireMock) { + stubSuccessfulResponse(); + String expectedPayload = STRING_PAYLOAD; + CaptureRequestInterceptor captureRequestInterceptor = new CaptureRequestInterceptor(); + ProtocolRestXmlClient client = ProtocolRestXmlClient.builder() + .httpClient(AwsCrtHttpClient.builder().build()) + .overrideConfiguration(o -> o.addExecutionInterceptor(captureRequestInterceptor)) + .endpointOverride(URI.create("http://localhost:" + wireMock.getHttpPort())) + .build(); + OperationWithExplicitPayloadStringResponse stringResponse = + client.operationWithExplicitPayloadString(p -> p.payloadMember(STRING_PAYLOAD)); + verify(postRequestedFor(anyUrl()) + .withRequestBody(equalTo(expectedPayload)) + .withHeader(CONTENT_LENGTH, equalTo(String.valueOf(expectedPayload.length())))); + assertThat(captureRequestInterceptor.requestAfterMarshalling().firstMatchingHeader(CONTENT_LENGTH)) + .contains(String.valueOf(expectedPayload.length())); + } + + private void stubSuccessfulResponse() { + stubFor(post(anyUrl()).willReturn(aResponse().withStatus(200))); + } + + private static class CaptureRequestInterceptor implements ExecutionInterceptor { + private SdkHttpRequest requestAfterMarshilling; + + public SdkHttpRequest requestAfterMarshalling() { + return requestAfterMarshilling; + } + + @Override + public void afterMarshalling(Context.AfterMarshalling context, ExecutionAttributes executionAttributes) { + this.requestAfterMarshilling = context.httpRequest(); + } + } +} diff --git a/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/timeout/CrtHttpClientApiCallTimeoutTest.java b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/timeout/CrtHttpClientApiCallTimeoutTest.java new file mode 100644 index 000000000000..847fc9be45ad --- /dev/null +++ b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/timeout/CrtHttpClientApiCallTimeoutTest.java @@ -0,0 +1,73 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * 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 "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.protocol.tests.timeout; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.any; +import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; +import java.net.URI; +import java.time.Duration; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.core.exception.ApiCallAttemptTimeoutException; +import software.amazon.awssdk.core.exception.ApiCallTimeoutException; +import software.amazon.awssdk.http.crt.AwsCrtHttpClient; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonClient; +import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonClientBuilder; + +@WireMockTest +public class CrtHttpClientApiCallTimeoutTest { + + private ProtocolRestJsonClientBuilder clientBuilder; + + @BeforeEach + public void setup(WireMockRuntimeInfo wiremock) { + clientBuilder = ProtocolRestJsonClient.builder() + .region(Region.US_WEST_1) + .endpointOverride(URI.create("http://localhost:" + wiremock.getHttpPort())) + .httpClientBuilder(AwsCrtHttpClient.builder()) + .credentialsProvider(() -> AwsBasicCredentials.create("akid", "skid")); + } + + @Test + void apiCallAttemptExceeded_shouldThrowApiCallAttemptTimeoutException() { + stubFor(any(anyUrl()).willReturn(aResponse().withStatus(200).withBody("{}").withFixedDelay(2000))); + try (ProtocolRestJsonClient client = + clientBuilder.overrideConfiguration(b -> b.apiCallAttemptTimeout(Duration.ofMillis(10))) + .build()) { + + + assertThatThrownBy(() -> client.allTypes()).isInstanceOf(ApiCallAttemptTimeoutException.class); + } + } + + @Test + void apiCallExceeded_shouldThrowApiCallAttemptTimeoutException() { + stubFor(any(anyUrl()).willReturn(aResponse().withStatus(200).withBody("{}").withFixedDelay(2000))); + try (ProtocolRestJsonClient client = clientBuilder.overrideConfiguration(b -> b.apiCallTimeout(Duration.ofMillis(10))) + .build()) { + + assertThatThrownBy(() -> client.allTypes()).isInstanceOf(ApiCallTimeoutException.class); + } + } +} diff --git a/test/region-testing/pom.xml b/test/region-testing/pom.xml index 62308e3bd268..0f328a7c3583 100644 --- a/test/region-testing/pom.xml +++ b/test/region-testing/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/ruleset-testing-core/pom.xml b/test/ruleset-testing-core/pom.xml index bfc824b8fe5e..12dd9b9d67b7 100644 --- a/test/ruleset-testing-core/pom.xml +++ b/test/ruleset-testing-core/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/s3-benchmarks/pom.xml b/test/s3-benchmarks/pom.xml index 7c1bf23574aa..99c8cb226c4b 100644 --- a/test/s3-benchmarks/pom.xml +++ b/test/s3-benchmarks/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/sdk-benchmarks/pom.xml b/test/sdk-benchmarks/pom.xml index a472bca126ea..389cdd161a48 100644 --- a/test/sdk-benchmarks/pom.xml +++ b/test/sdk-benchmarks/pom.xml @@ -19,7 +19,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml diff --git a/test/sdk-native-image-test/pom.xml b/test/sdk-native-image-test/pom.xml index ff8ad0b4bec5..89f02e2d9094 100644 --- a/test/sdk-native-image-test/pom.xml +++ b/test/sdk-native-image-test/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/service-test-utils/pom.xml b/test/service-test-utils/pom.xml index 33047c21eb95..4efb418d278a 100644 --- a/test/service-test-utils/pom.xml +++ b/test/service-test-utils/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml service-test-utils diff --git a/test/stability-tests/pom.xml b/test/stability-tests/pom.xml index 17f6eec98395..e5b201fc8a70 100644 --- a/test/stability-tests/pom.xml +++ b/test/stability-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/test-utils/pom.xml b/test/test-utils/pom.xml index 79870030a22b..38c21ad364be 100644 --- a/test/test-utils/pom.xml +++ b/test/test-utils/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml test-utils diff --git a/test/tests-coverage-reporting/pom.xml b/test/tests-coverage-reporting/pom.xml index 3e2ac1dfd993..563cde2a4f84 100644 --- a/test/tests-coverage-reporting/pom.xml +++ b/test/tests-coverage-reporting/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT ../../pom.xml 4.0.0 @@ -291,6 +291,11 @@ imds ${awsjavasdk.version} + + software.amazon.awssdk + http-client-spi + ${awsjavasdk.version} + diff --git a/third-party/pom.xml b/third-party/pom.xml index 0e242d7f2c52..b45391d518ac 100644 --- a/third-party/pom.xml +++ b/third-party/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT third-party diff --git a/third-party/third-party-jackson-core/pom.xml b/third-party/third-party-jackson-core/pom.xml index 8078fff4ed7f..229256ad31cd 100644 --- a/third-party/third-party-jackson-core/pom.xml +++ b/third-party/third-party-jackson-core/pom.xml @@ -20,7 +20,7 @@ third-party software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/third-party/third-party-jackson-dataformat-cbor/pom.xml b/third-party/third-party-jackson-dataformat-cbor/pom.xml index e0fd40307098..3686b11a1da6 100644 --- a/third-party/third-party-jackson-dataformat-cbor/pom.xml +++ b/third-party/third-party-jackson-dataformat-cbor/pom.xml @@ -20,7 +20,7 @@ third-party software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/third-party/third-party-slf4j-api/pom.xml b/third-party/third-party-slf4j-api/pom.xml index 8e69748795b0..42c1385e8a9c 100644 --- a/third-party/third-party-slf4j-api/pom.xml +++ b/third-party/third-party-slf4j-api/pom.xml @@ -20,7 +20,7 @@ third-party software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0 diff --git a/utils/pom.xml b/utils/pom.xml index 0ce7ba54611d..ea39360a209d 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.23.8-SNAPSHOT + 2.24.13-SNAPSHOT 4.0.0