From 0d5e0c1d7b959c5b1de299e9a6be7648d2a80051 Mon Sep 17 00:00:00 2001 From: Yangtao-Hua Date: Fri, 13 Oct 2023 09:38:37 -0700 Subject: [PATCH 1/3] Pass StartSession response as env variable Pass the StartSession API response as environment variable to the session-manager-plugin --- .../enhancement-ssmSessionManager-47156.json | 5 + awscli/customizations/sessionmanager.py | 75 ++++- tests/functional/ssm/test_start_session.py | 115 ++++++-- .../customizations/test_sessionmanager.py | 270 +++++++++++++++++- 4 files changed, 441 insertions(+), 24 deletions(-) create mode 100644 .changes/next-release/enhancement-ssmSessionManager-47156.json diff --git a/.changes/next-release/enhancement-ssmSessionManager-47156.json b/.changes/next-release/enhancement-ssmSessionManager-47156.json new file mode 100644 index 000000000000..d4870e19b6b3 --- /dev/null +++ b/.changes/next-release/enhancement-ssmSessionManager-47156.json @@ -0,0 +1,5 @@ +{ + "type": "enhancement", + "category": "``ssm`` Session Manager", + "description": "Pass StartSession API response as environment variable to session-manager-plugin" +} diff --git a/awscli/customizations/sessionmanager.py b/awscli/customizations/sessionmanager.py index c33aaca590c7..92a8f8ffbe8a 100644 --- a/awscli/customizations/sessionmanager.py +++ b/awscli/customizations/sessionmanager.py @@ -13,8 +13,10 @@ import logging import json import errno +import os +import re -from subprocess import check_call +from subprocess import check_call, check_output from awscli.compat import ignore_user_entered_signals from awscli.clidriver import ServiceOperation, CLIOperationCaller @@ -44,8 +46,43 @@ def add_custom_start_session(session, command_table, **kwargs): ) -class StartSessionCommand(ServiceOperation): +class VersionRequirement: + WHITESPACE_REGEX = re.compile(r"\s+") + SSM_SESSION_PLUGIN_VERSION_REGEX = re.compile(r"^\d+(\.\d+){0,3}$") + + def __init__(self, min_version): + self.min_version = min_version + + def meets_requirement(self, version): + ssm_plugin_version = self._sanitize_plugin_version(version) + if self._is_valid_version(ssm_plugin_version): + norm_version, norm_min_version = self._normalize( + ssm_plugin_version, self.min_version + ) + return norm_version > norm_min_version + else: + return False + + def _sanitize_plugin_version(self, plugin_version): + return re.sub(self.WHITESPACE_REGEX, "", plugin_version) + + def _is_valid_version(self, plugin_version): + return bool( + self.SSM_SESSION_PLUGIN_VERSION_REGEX.match(plugin_version) + ) + + def _normalize(self, v1, v2): + v1_parts = [int(v) for v in v1.split(".")] + v2_parts = [int(v) for v in v2.split(".")] + while len(v1_parts) != len(v2_parts): + if len(v1_parts) - len(v2_parts) > 0: + v2_parts.append(0) + else: + v1_parts.append(0) + return v1_parts, v2_parts + +class StartSessionCommand(ServiceOperation): def create_help_command(self): help_command = super( StartSessionCommand, self).create_help_command() @@ -55,6 +92,9 @@ def create_help_command(self): class StartSessionCaller(CLIOperationCaller): + LAST_PLUGIN_VERSION_WITHOUT_ENV_VAR = "1.2.497.0" + DEFAULT_SSM_ENV_NAME = "AWS_SSM_START_SESSION_RESPONSE" + def invoke(self, service_name, operation_name, parameters, parsed_globals): client = self._session.create_client( @@ -70,8 +110,34 @@ def invoke(self, service_name, operation_name, parameters, profile_name = self._session.profile \ if self._session.profile is not None else '' endpoint_url = client.meta.endpoint_url + ssm_env_name = self.DEFAULT_SSM_ENV_NAME try: + session_parameters = { + "SessionId": response["SessionId"], + "TokenValue": response["TokenValue"], + "StreamUrl": response["StreamUrl"], + } + start_session_response = json.dumps(session_parameters) + + plugin_version = check_output( + ["session-manager-plugin", "--version"], text=True + ) + env = os.environ.copy() + + # Check if this plugin supports passing the start session response + # as an environment variable name. If it does, it will set the + # value to the response from the start_session operation to the env + # variable defined in DEFAULT_SSM_ENV_NAME. If the session plugin + # version is invalid or older than the version defined in + # LAST_PLUGIN_VERSION_WITHOUT_ENV_VAR, it will fall back to + # passing the start_session response directly. + version_requirement = VersionRequirement( + min_version=self.LAST_PLUGIN_VERSION_WITHOUT_ENV_VAR + ) + if version_requirement.meets_requirement(plugin_version): + env[ssm_env_name] = start_session_response + start_session_response = ssm_env_name # ignore_user_entered_signals ignores these signals # because if signals which kills the process are not # captured would kill the foreground process but not the @@ -81,12 +147,13 @@ def invoke(self, service_name, operation_name, parameters, with ignore_user_entered_signals(): # call executable with necessary input check_call(["session-manager-plugin", - json.dumps(response), + start_session_response, region_name, "StartSession", profile_name, json.dumps(parameters), - endpoint_url]) + endpoint_url], env=env) + return 0 except OSError as ex: if ex.errno == errno.ENOENT: diff --git a/tests/functional/ssm/test_start_session.py b/tests/functional/ssm/test_start_session.py index 8c391024eb24..2ed9c9176abe 100644 --- a/tests/functional/ssm/test_start_session.py +++ b/tests/functional/ssm/test_start_session.py @@ -15,38 +15,119 @@ from awscli.testutils import BaseAWSCommandParamsTest from awscli.testutils import BaseAWSHelpOutputTest -from awscli.testutils import mock +from awscli.testutils import mock -class TestSessionManager(BaseAWSCommandParamsTest): +class TestSessionManager(BaseAWSCommandParamsTest): @mock.patch('awscli.customizations.sessionmanager.check_call') - def test_start_session_success(self, mock_check_call): + @mock.patch("awscli.customizations.sessionmanager.check_output") + def test_start_session_success(self, mock_check_output, mock_check_call): cmdline = 'ssm start-session --target instance-id' mock_check_call.return_value = 0 - self.parsed_responses = [{ + mock_check_output.return_value = "1.2.0.0\n" + expected_response = { "SessionId": "session-id", "TokenValue": "token-value", - "StreamUrl": "stream-url" - }] + "StreamUrl": "stream-url", + } + self.parsed_responses = [expected_response] + start_session_params = {"Target": "instance-id"} + + self.run_cmd(cmdline, expected_rc=0) + + mock_check_call.assert_called_once_with( + [ + "session-manager-plugin", + json.dumps(expected_response), + mock.ANY, + "StartSession", + mock.ANY, + json.dumps(start_session_params), + mock.ANY, + ], + env=self.environ, + ) + + @mock.patch("awscli.customizations.sessionmanager.check_call") + @mock.patch("awscli.customizations.sessionmanager.check_output") + def test_start_session_with_new_version_plugin_success( + self, mock_check_output, mock_check_call + ): + cmdline = "ssm start-session --target instance-id" + mock_check_call.return_value = 0 + mock_check_output.return_value = "1.2.500.0\n" + expected_response = { + "SessionId": "session-id", + "TokenValue": "token-value", + "StreamUrl": "stream-url", + } + self.parsed_responses = [expected_response] + + ssm_env_name = "AWS_SSM_START_SESSION_RESPONSE" + start_session_params = {"Target": "instance-id"} + expected_env = self.environ.copy() + expected_env.update({ssm_env_name: json.dumps(expected_response)}) + self.run_cmd(cmdline, expected_rc=0) self.assertEqual(self.operations_called[0][0].name, 'StartSession') self.assertEqual(self.operations_called[0][1], {'Target': 'instance-id'}) - actual_response = json.loads(mock_check_call.call_args[0][0][1]) - self.assertEqual( - {"SessionId": "session-id", - "TokenValue": "token-value", - "StreamUrl": "stream-url"}, - actual_response) + + mock_check_call.assert_called_once_with( + [ + "session-manager-plugin", + ssm_env_name, + mock.ANY, + "StartSession", + mock.ANY, + json.dumps(start_session_params), + mock.ANY, + ], + env=expected_env, + ) @mock.patch('awscli.customizations.sessionmanager.check_call') - def test_start_session_fails(self, mock_check_call): + @mock.patch("awscli.customizations.sessionmanager.check_output") + def test_start_session_fails(self, mock_check_output, mock_check_call): + cmdline = "ssm start-session --target instance-id" + mock_check_output.return_value = "1.2.500.0\n" + mock_check_call.side_effect = OSError(errno.ENOENT, "some error") + self.parsed_responses = [ + { + "SessionId": "session-id", + "TokenValue": "token-value", + "StreamUrl": "stream-url", + } + ] + self.run_cmd(cmdline, expected_rc=255) + self.assertEqual( + self.operations_called[0][0].name, "StartSession" + ) + self.assertEqual( + self.operations_called[0][1], {"Target": "instance-id"} + ) + self.assertEqual( + self.operations_called[1][0].name, "TerminateSession" + ) + self.assertEqual( + self.operations_called[1][1], {"SessionId": "session-id"} + ) + + @mock.patch("awscli.customizations.sessionmanager.check_call") + @mock.patch("awscli.customizations.sessionmanager.check_output") + def test_start_session_when_get_plugin_version_fails( + self, mock_check_output, mock_check_call + ): cmdline = 'ssm start-session --target instance-id' - mock_check_call.side_effect = OSError(errno.ENOENT, 'some error') - self.parsed_responses = [{ - "SessionId": "session-id" - }] + mock_check_output.side_effect = OSError(errno.ENOENT, 'some error') + self.parsed_responses = [ + { + "SessionId": "session-id", + "TokenValue": "token-value", + "StreamUrl": "stream-url", + } + ] self.run_cmd(cmdline, expected_rc=255) self.assertEqual(self.operations_called[0][0].name, 'StartSession') diff --git a/tests/unit/customizations/test_sessionmanager.py b/tests/unit/customizations/test_sessionmanager.py index 85623dee8417..177d33d5ca0a 100644 --- a/tests/unit/customizations/test_sessionmanager.py +++ b/tests/unit/customizations/test_sessionmanager.py @@ -13,6 +13,9 @@ import errno import json import botocore.session +import subprocess + +import pytest from awscli.customizations import sessionmanager from awscli.testutils import mock, unittest @@ -38,8 +41,12 @@ def test_start_session_when_non_custom_start_session_fails(self): with self.assertRaisesRegex(Exception, 'some exception'): self.caller.invoke('ssm', 'StartSession', params, mock.Mock()) + @mock.patch("awscli.customizations.sessionmanager.check_output") @mock.patch('awscli.customizations.sessionmanager.check_call') - def test_start_session_success_scenario(self, mock_check_call): + def test_start_session_success_scenario( + self, mock_check_call, mock_check_output + ): + mock_check_output.return_value = "1.2.0.0\n" mock_check_call.return_value = 0 start_session_params = { @@ -58,6 +65,12 @@ def test_start_session_success_scenario(self, mock_check_call): start_session_params, mock.Mock()) self.assertEqual(rc, 0) self.client.start_session.assert_called_with(**start_session_params) + + mock_check_output_list = mock_check_output.call_args[0] + self.assertEqual( + mock_check_output_list[0], ["session-manager-plugin", "--version"] + ) + mock_check_call_list = mock_check_call.call_args[0][0] mock_check_call_list[1] = json.loads(mock_check_call_list[1]) self.assertEqual( @@ -71,8 +84,12 @@ def test_start_session_success_scenario(self, mock_check_call): self.endpoint_url] ) + @mock.patch("awscli.customizations.sessionmanager.check_output") @mock.patch('awscli.customizations.sessionmanager.check_call') - def test_start_session_when_check_call_fails(self, mock_check_call): + def test_start_session_when_check_call_fails( + self, mock_check_call, mock_check_output + ): + mock_check_output.return_value = "1.2.0.0\n" mock_check_call.side_effect = OSError(errno.ENOENT, 'some error') start_session_params = { @@ -114,7 +131,11 @@ def test_start_session_when_check_call_fails(self, mock_check_call): ) @mock.patch('awscli.customizations.sessionmanager.check_call') - def test_start_session_when_no_profile_is_passed(self, mock_check_call): + @mock.patch("awscli.customizations.sessionmanager.check_output") + def test_start_session_when_no_profile_is_passed( + self, mock_check_output, mock_check_call + ): + mock_check_output.return_value = "1.2.500.0\n" self.session.profile = None mock_check_call.return_value = 0 @@ -136,3 +157,246 @@ def test_start_session_when_no_profile_is_passed(self, mock_check_call): self.client.start_session.assert_called_with(**start_session_params) mock_check_call_list = mock_check_call.call_args[0][0] self.assertEqual(mock_check_call_list[4], '') + + @mock.patch("awscli.customizations.sessionmanager.check_call") + @mock.patch("awscli.customizations.sessionmanager.check_output") + def test_start_session_with_env_variable_success_scenario( + self, mock_check_output, mock_check_call + ): + mock_check_output.return_value = "1.2.500.0\n" + mock_check_call.return_value = 0 + + start_session_params = {"Target": "i-123456789"} + start_session_response = { + "SessionId": "session-id", + "TokenValue": "token-value", + "StreamUrl": "stream-url", + } + ssm_env_name = "AWS_SSM_START_SESSION_RESPONSE" + + self.client.start_session.return_value = start_session_response + rc = self.caller.invoke( + "ssm", "StartSession", start_session_params, mock.Mock() + ) + self.assertEqual(rc, 0) + self.client.start_session.assert_called_with(**start_session_params) + + mock_check_output_list = mock_check_output.call_args[0] + self.assertEqual( + mock_check_output_list[0], ["session-manager-plugin", "--version"] + ) + + mock_check_call_list = mock_check_call.call_args[0][0] + self.assertEqual( + mock_check_call_list, + [ + "session-manager-plugin", + ssm_env_name, + self.region, + "StartSession", + self.profile, + json.dumps(start_session_params), + self.endpoint_url, + ], + ) + env_variable = mock_check_call.call_args[1] + self.assertEqual( + env_variable["env"][ssm_env_name], + json.dumps(start_session_response) + ) + + @mock.patch("awscli.customizations.sessionmanager.check_call") + @mock.patch("awscli.customizations.sessionmanager.check_output") + def test_start_session_when_check_output_fails( + self, mock_check_output, mock_check_call + ): + mock_check_output.side_effect = subprocess.CalledProcessError( + returncode=1, cmd="session-manager-plugin", output="some error" + ) + + start_session_params = {"Target": "i-123456789"} + start_session_response = { + "SessionId": "session-id", + "TokenValue": "token-value", + "StreamUrl": "stream-url", + } + + self.client.start_session.return_value = start_session_response + with self.assertRaises(subprocess.CalledProcessError): + self.caller.invoke( + "ssm", "StartSession", start_session_params, mock.Mock() + ) + + self.client.start_session.assert_called_with(**start_session_params) + self.client.terminate_session.assert_not_called() + mock_check_output.assert_called_with( + ["session-manager-plugin", "--version"], text=True + ) + mock_check_call.assert_not_called() + + @mock.patch("awscli.customizations.sessionmanager.check_call") + @mock.patch("awscli.customizations.sessionmanager.check_output") + def test_start_session_when_response_not_json( + self, mock_check_output, mock_check_call + ): + mock_check_output.return_value = "1.2.500.0\n" + start_session_params = {"Target": "i-123456789"} + start_session_response = { + "SessionId": "session-id", + "TokenValue": "token-value", + "StreamUrl": "stream-url", + "para2": {"Not a json format"}, + } + expected_env_value = { + "SessionId": "session-id", + "TokenValue": "token-value", + "StreamUrl": "stream-url", + } + + ssm_env_name = "AWS_SSM_START_SESSION_RESPONSE" + + self.client.start_session.return_value = start_session_response + rc = self.caller.invoke( + "ssm", "StartSession", start_session_params, mock.Mock() + ) + self.assertEqual(rc, 0) + self.client.start_session.assert_called_with(**start_session_params) + + mock_check_output_list = mock_check_output.call_args[0] + self.assertEqual( + mock_check_output_list[0], ["session-manager-plugin", "--version"] + ) + + mock_check_call_list = mock_check_call.call_args[0][0] + self.assertEqual( + mock_check_call_list, + [ + "session-manager-plugin", + ssm_env_name, + self.region, + "StartSession", + self.profile, + json.dumps(start_session_params), + self.endpoint_url, + ], + ) + env_variable = mock_check_call.call_args[1] + self.assertEqual( + env_variable["env"][ssm_env_name], json.dumps(expected_env_value) + ) + + @mock.patch("awscli.customizations.sessionmanager.check_call") + @mock.patch("awscli.customizations.sessionmanager.check_output") + def test_start_session_when_invalid_plugin_version( + self, mock_check_output, mock_check_call + ): + mock_check_output.return_value = "InvalidVersion" + + start_session_params = {"Target": "i-123456789"} + start_session_response = { + "SessionId": "session-id", + "TokenValue": "token-value", + "StreamUrl": "stream-url", + } + + self.client.start_session.return_value = start_session_response + self.caller.invoke( + "ssm", "StartSession", start_session_params, mock.Mock() + ) + self.client.start_session.assert_called_with(**start_session_params) + self.client.terminate_session.assert_not_called() + mock_check_output.assert_called_with( + ["session-manager-plugin", "--version"], text=True + ) + + mock_check_call_list = mock_check_call.call_args[0][0] + self.assertEqual( + mock_check_call_list, + [ + "session-manager-plugin", + json.dumps(start_session_response), + self.region, + "StartSession", + self.profile, + json.dumps(start_session_params), + self.endpoint_url, + ], + ) + + +class TestVersionRequirement: + version_requirement = \ + sessionmanager.VersionRequirement(min_version="1.2.497.0") + + @pytest.mark.parametrize( + "version, expected_result", + [ + ("2.0.0.0", True), + ("2.1", True), + ("2", True), + ("1.3.1.1", True), + ("\r\n1. 3.1.1", True), + ("1.3.1.0", True), + ("1.3", True), + ("1.2.498.1", True), + ("1.2.498", True), + ("1.2.497.1", True), + ("1.2.497.0", False), + ("1.2.497", False), + ("1.2.1.1", False), + ("1.2.1", False), + ("1.2", False), + ("1.1.1.0", False), + ("1.1.1", False), + ("1.0.497.0", False), + ("1.0. 497.0\r\n", False), + ("1", False), + ("0.3.497.0", False), + ], + ) + def test_meets_requirement(self, version, expected_result): + assert expected_result == \ + self.version_requirement.meets_requirement(version) + + @pytest.mark.parametrize( + "version, expected_result", + [ + ("\r\n1.3.1.1", "1.3.1.1"), + ("\r1.3 .1.1", "1.3.1.1"), + ("1 .3.1.1", "1.3.1.1"), + (" 1.3.1.1", "1.3.1.1"), + ("1.3.1.1 ", "1.3.1.1"), + (" 1.3.1.1 ", "1.3.1.1"), + ("\n1.3.1.1 ", "1.3.1.1"), + ("1.3.1.1\n", "1.3.1.1"), + ("1.3\r\n.1.1", "1.3.1.1"), + (" 1\r. 3", "1.3"), + (" 1. 3. ", "1.3."), + ("1.1.1\r\n", "1.1.1"), + ("1\r", "1"), + ], + ) + def test_sanitize_plugin_version(self, version, expected_result): + assert expected_result == \ + self.version_requirement._sanitize_plugin_version(version) + + @pytest.mark.parametrize( + "version, expected_result", + [ + ("999.99999.99.9", True), + ("2", True), + ("1.1.1.1", True), + ("1.1.1", True), + ("1.1", True), + ("1.1.1.1.1", False), + ("1.1.1.1.0", False), + ("1.1.1.a", False), + ("1.a.1.1", False), + ("1-1.1.1", False), + ("1.1.", False), + ("invalid_version", False), + ], + ) + def test_is_valid_version(self, version, expected_result): + assert expected_result == \ + self.version_requirement._is_valid_version(version) From 11133bbffd3f62a41f5cc9285f2205dd38fdf864 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 17 Nov 2023 22:11:09 +0000 Subject: [PATCH 2/3] Update changelog based on model updates --- .changes/next-release/api-change-appmesh-48349.json | 5 +++++ .changes/next-release/api-change-athena-44641.json | 5 +++++ .changes/next-release/api-change-cloud9-91179.json | 5 +++++ .changes/next-release/api-change-cloudformation-79887.json | 5 +++++ .changes/next-release/api-change-codepipeline-90478.json | 5 +++++ .../next-release/api-change-codestarconnections-95552.json | 5 +++++ .changes/next-release/api-change-connect-88121.json | 5 +++++ .changes/next-release/api-change-dlm-2068.json | 5 +++++ .changes/next-release/api-change-ec2-17140.json | 5 +++++ .changes/next-release/api-change-ecr-96365.json | 5 +++++ .changes/next-release/api-change-emr-11574.json | 5 +++++ .changes/next-release/api-change-endpointrules-65457.json | 5 +++++ .changes/next-release/api-change-events-22865.json | 5 +++++ .changes/next-release/api-change-internetmonitor-19782.json | 5 +++++ .changes/next-release/api-change-ivs-6398.json | 5 +++++ .changes/next-release/api-change-ivschat-31342.json | 5 +++++ .changes/next-release/api-change-kinesisvideo-84822.json | 5 +++++ .changes/next-release/api-change-location-13541.json | 5 +++++ .changes/next-release/api-change-medialive-38750.json | 5 +++++ .changes/next-release/api-change-mgn-81869.json | 5 +++++ .changes/next-release/api-change-osis-13479.json | 5 +++++ .changes/next-release/api-change-pipes-80986.json | 5 +++++ .changes/next-release/api-change-rds-47103.json | 5 +++++ .changes/next-release/api-change-redshift-43652.json | 5 +++++ .../next-release/api-change-redshiftserverless-66469.json | 5 +++++ .changes/next-release/api-change-s3-89648.json | 5 +++++ .changes/next-release/api-change-ssoadmin-44694.json | 5 +++++ .changes/next-release/api-change-ssooidc-6136.json | 5 +++++ .changes/next-release/api-change-sts-46371.json | 5 +++++ .changes/next-release/api-change-trustedadvisor-55447.json | 5 +++++ .../next-release/api-change-verifiedpermissions-82409.json | 5 +++++ .changes/next-release/api-change-wisdom-14948.json | 5 +++++ 32 files changed, 160 insertions(+) create mode 100644 .changes/next-release/api-change-appmesh-48349.json create mode 100644 .changes/next-release/api-change-athena-44641.json create mode 100644 .changes/next-release/api-change-cloud9-91179.json create mode 100644 .changes/next-release/api-change-cloudformation-79887.json create mode 100644 .changes/next-release/api-change-codepipeline-90478.json create mode 100644 .changes/next-release/api-change-codestarconnections-95552.json create mode 100644 .changes/next-release/api-change-connect-88121.json create mode 100644 .changes/next-release/api-change-dlm-2068.json create mode 100644 .changes/next-release/api-change-ec2-17140.json create mode 100644 .changes/next-release/api-change-ecr-96365.json create mode 100644 .changes/next-release/api-change-emr-11574.json create mode 100644 .changes/next-release/api-change-endpointrules-65457.json create mode 100644 .changes/next-release/api-change-events-22865.json create mode 100644 .changes/next-release/api-change-internetmonitor-19782.json create mode 100644 .changes/next-release/api-change-ivs-6398.json create mode 100644 .changes/next-release/api-change-ivschat-31342.json create mode 100644 .changes/next-release/api-change-kinesisvideo-84822.json create mode 100644 .changes/next-release/api-change-location-13541.json create mode 100644 .changes/next-release/api-change-medialive-38750.json create mode 100644 .changes/next-release/api-change-mgn-81869.json create mode 100644 .changes/next-release/api-change-osis-13479.json create mode 100644 .changes/next-release/api-change-pipes-80986.json create mode 100644 .changes/next-release/api-change-rds-47103.json create mode 100644 .changes/next-release/api-change-redshift-43652.json create mode 100644 .changes/next-release/api-change-redshiftserverless-66469.json create mode 100644 .changes/next-release/api-change-s3-89648.json create mode 100644 .changes/next-release/api-change-ssoadmin-44694.json create mode 100644 .changes/next-release/api-change-ssooidc-6136.json create mode 100644 .changes/next-release/api-change-sts-46371.json create mode 100644 .changes/next-release/api-change-trustedadvisor-55447.json create mode 100644 .changes/next-release/api-change-verifiedpermissions-82409.json create mode 100644 .changes/next-release/api-change-wisdom-14948.json diff --git a/.changes/next-release/api-change-appmesh-48349.json b/.changes/next-release/api-change-appmesh-48349.json new file mode 100644 index 000000000000..c3aa04547440 --- /dev/null +++ b/.changes/next-release/api-change-appmesh-48349.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``appmesh``", + "description": "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." +} diff --git a/.changes/next-release/api-change-athena-44641.json b/.changes/next-release/api-change-athena-44641.json new file mode 100644 index 000000000000..f54104078f17 --- /dev/null +++ b/.changes/next-release/api-change-athena-44641.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``athena``", + "description": "Adding SerivicePreProcessing time metric" +} diff --git a/.changes/next-release/api-change-cloud9-91179.json b/.changes/next-release/api-change-cloud9-91179.json new file mode 100644 index 000000000000..011fef4e2f8c --- /dev/null +++ b/.changes/next-release/api-change-cloud9-91179.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``cloud9``", + "description": "A minor doc only update related to changing the date of an API change." +} diff --git a/.changes/next-release/api-change-cloudformation-79887.json b/.changes/next-release/api-change-cloudformation-79887.json new file mode 100644 index 000000000000..b8e391f03bc8 --- /dev/null +++ b/.changes/next-release/api-change-cloudformation-79887.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``cloudformation``", + "description": "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." +} diff --git a/.changes/next-release/api-change-codepipeline-90478.json b/.changes/next-release/api-change-codepipeline-90478.json new file mode 100644 index 000000000000..be70aa42e1a9 --- /dev/null +++ b/.changes/next-release/api-change-codepipeline-90478.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``codepipeline``", + "description": "CodePipeline now supports overriding source revisions to achieve manual re-deploy of a past revision" +} diff --git a/.changes/next-release/api-change-codestarconnections-95552.json b/.changes/next-release/api-change-codestarconnections-95552.json new file mode 100644 index 000000000000..04923823b4d7 --- /dev/null +++ b/.changes/next-release/api-change-codestarconnections-95552.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``codestar-connections``", + "description": "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." +} diff --git a/.changes/next-release/api-change-connect-88121.json b/.changes/next-release/api-change-connect-88121.json new file mode 100644 index 000000000000..9ee99d0b00c3 --- /dev/null +++ b/.changes/next-release/api-change-connect-88121.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``connect``", + "description": "This release adds WISDOM_QUICK_RESPONSES as new IntegrationType of Connect IntegrationAssociation resource and bug fixes." +} diff --git a/.changes/next-release/api-change-dlm-2068.json b/.changes/next-release/api-change-dlm-2068.json new file mode 100644 index 000000000000..bcd5d4c8c85b --- /dev/null +++ b/.changes/next-release/api-change-dlm-2068.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``dlm``", + "description": "Added support for SAP HANA in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies with pre and post scripts." +} diff --git a/.changes/next-release/api-change-ec2-17140.json b/.changes/next-release/api-change-ec2-17140.json new file mode 100644 index 000000000000..594914259c8e --- /dev/null +++ b/.changes/next-release/api-change-ec2-17140.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ec2``", + "description": "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." +} diff --git a/.changes/next-release/api-change-ecr-96365.json b/.changes/next-release/api-change-ecr-96365.json new file mode 100644 index 000000000000..6e8d409412aa --- /dev/null +++ b/.changes/next-release/api-change-ecr-96365.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ecr``", + "description": "Documentation and operational updates for Amazon ECR, adding support for pull through cache rules for upstream registries that require authentication." +} diff --git a/.changes/next-release/api-change-emr-11574.json b/.changes/next-release/api-change-emr-11574.json new file mode 100644 index 000000000000..f53e5e2eb6bb --- /dev/null +++ b/.changes/next-release/api-change-emr-11574.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``emr``", + "description": "Update emr command to latest version" +} diff --git a/.changes/next-release/api-change-endpointrules-65457.json b/.changes/next-release/api-change-endpointrules-65457.json new file mode 100644 index 000000000000..dd11872bcff4 --- /dev/null +++ b/.changes/next-release/api-change-endpointrules-65457.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``endpoint-rules``", + "description": "Update endpoint-rules command to latest version" +} diff --git a/.changes/next-release/api-change-events-22865.json b/.changes/next-release/api-change-events-22865.json new file mode 100644 index 000000000000..6f7878af0a24 --- /dev/null +++ b/.changes/next-release/api-change-events-22865.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``events``", + "description": "Update events command to latest version" +} diff --git a/.changes/next-release/api-change-internetmonitor-19782.json b/.changes/next-release/api-change-internetmonitor-19782.json new file mode 100644 index 000000000000..223c2b27d83b --- /dev/null +++ b/.changes/next-release/api-change-internetmonitor-19782.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``internetmonitor``", + "description": "Adds new querying capabilities for running data queries on a monitor" +} diff --git a/.changes/next-release/api-change-ivs-6398.json b/.changes/next-release/api-change-ivs-6398.json new file mode 100644 index 000000000000..dde56c73427e --- /dev/null +++ b/.changes/next-release/api-change-ivs-6398.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ivs``", + "description": "type & defaulting refinement to various range properties" +} diff --git a/.changes/next-release/api-change-ivschat-31342.json b/.changes/next-release/api-change-ivschat-31342.json new file mode 100644 index 000000000000..f8679158483d --- /dev/null +++ b/.changes/next-release/api-change-ivschat-31342.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ivschat``", + "description": "type & defaulting refinement to various range properties" +} diff --git a/.changes/next-release/api-change-kinesisvideo-84822.json b/.changes/next-release/api-change-kinesisvideo-84822.json new file mode 100644 index 000000000000..16eb3cd79d3b --- /dev/null +++ b/.changes/next-release/api-change-kinesisvideo-84822.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``kinesisvideo``", + "description": "Docs only build to bring up-to-date with public docs." +} diff --git a/.changes/next-release/api-change-location-13541.json b/.changes/next-release/api-change-location-13541.json new file mode 100644 index 000000000000..fefdff37e052 --- /dev/null +++ b/.changes/next-release/api-change-location-13541.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``location``", + "description": "Remove default value and allow nullable for request parameters having minimum value larger than zero." +} diff --git a/.changes/next-release/api-change-medialive-38750.json b/.changes/next-release/api-change-medialive-38750.json new file mode 100644 index 000000000000..e32cf3629a99 --- /dev/null +++ b/.changes/next-release/api-change-medialive-38750.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``medialive``", + "description": "MediaLive has now added support for per-output static image overlay." +} diff --git a/.changes/next-release/api-change-mgn-81869.json b/.changes/next-release/api-change-mgn-81869.json new file mode 100644 index 000000000000..d04a860b5b86 --- /dev/null +++ b/.changes/next-release/api-change-mgn-81869.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``mgn``", + "description": "Removed invalid and unnecessary default values." +} diff --git a/.changes/next-release/api-change-osis-13479.json b/.changes/next-release/api-change-osis-13479.json new file mode 100644 index 000000000000..5b6d095b2ee5 --- /dev/null +++ b/.changes/next-release/api-change-osis-13479.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``osis``", + "description": "Add support for enabling a persistent buffer when creating or updating an OpenSearch Ingestion pipeline. Add tags to Pipeline and PipelineSummary response models." +} diff --git a/.changes/next-release/api-change-pipes-80986.json b/.changes/next-release/api-change-pipes-80986.json new file mode 100644 index 000000000000..7b136dc81225 --- /dev/null +++ b/.changes/next-release/api-change-pipes-80986.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``pipes``", + "description": "TargetParameters now properly supports BatchJobParameters.ArrayProperties.Size and BatchJobParameters.RetryStrategy.Attempts being optional, and EcsTaskParameters.Overrides.EphemeralStorage.SizeInGiB now properly required when setting EphemeralStorage" +} diff --git a/.changes/next-release/api-change-rds-47103.json b/.changes/next-release/api-change-rds-47103.json new file mode 100644 index 000000000000..4f252c723c3b --- /dev/null +++ b/.changes/next-release/api-change-rds-47103.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``rds``", + "description": "This release adds support for option groups and replica enhancements to Amazon RDS Custom." +} diff --git a/.changes/next-release/api-change-redshift-43652.json b/.changes/next-release/api-change-redshift-43652.json new file mode 100644 index 000000000000..76d4046425b0 --- /dev/null +++ b/.changes/next-release/api-change-redshift-43652.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``redshift``", + "description": "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." +} diff --git a/.changes/next-release/api-change-redshiftserverless-66469.json b/.changes/next-release/api-change-redshiftserverless-66469.json new file mode 100644 index 000000000000..b753a19a0257 --- /dev/null +++ b/.changes/next-release/api-change-redshiftserverless-66469.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``redshift-serverless``", + "description": "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." +} diff --git a/.changes/next-release/api-change-s3-89648.json b/.changes/next-release/api-change-s3-89648.json new file mode 100644 index 000000000000..2e48579a6a3d --- /dev/null +++ b/.changes/next-release/api-change-s3-89648.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``s3``", + "description": "Removes all default 0 values for numbers and false values for booleans" +} diff --git a/.changes/next-release/api-change-ssoadmin-44694.json b/.changes/next-release/api-change-ssoadmin-44694.json new file mode 100644 index 000000000000..44eda4534cf1 --- /dev/null +++ b/.changes/next-release/api-change-ssoadmin-44694.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sso-admin``", + "description": "Improves support for configuring RefreshToken and TokenExchange grants on applications." +} diff --git a/.changes/next-release/api-change-ssooidc-6136.json b/.changes/next-release/api-change-ssooidc-6136.json new file mode 100644 index 000000000000..b4219e749b11 --- /dev/null +++ b/.changes/next-release/api-change-ssooidc-6136.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sso-oidc``", + "description": "Adding support for `sso-oauth:CreateTokenWithIAM`." +} diff --git a/.changes/next-release/api-change-sts-46371.json b/.changes/next-release/api-change-sts-46371.json new file mode 100644 index 000000000000..09cb280aaf9c --- /dev/null +++ b/.changes/next-release/api-change-sts-46371.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``sts``", + "description": "API updates for the AWS Security Token Service" +} diff --git a/.changes/next-release/api-change-trustedadvisor-55447.json b/.changes/next-release/api-change-trustedadvisor-55447.json new file mode 100644 index 000000000000..1153c57f97ec --- /dev/null +++ b/.changes/next-release/api-change-trustedadvisor-55447.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``trustedadvisor``", + "description": "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." +} diff --git a/.changes/next-release/api-change-verifiedpermissions-82409.json b/.changes/next-release/api-change-verifiedpermissions-82409.json new file mode 100644 index 000000000000..6d1d74971acc --- /dev/null +++ b/.changes/next-release/api-change-verifiedpermissions-82409.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``verifiedpermissions``", + "description": "Adding BatchIsAuthorized API which supports multiple authorization requests against a PolicyStore" +} diff --git a/.changes/next-release/api-change-wisdom-14948.json b/.changes/next-release/api-change-wisdom-14948.json new file mode 100644 index 000000000000..ab1be956ef49 --- /dev/null +++ b/.changes/next-release/api-change-wisdom-14948.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``wisdom``", + "description": "This release adds QuickResponse as a new Wisdom resource and Wisdom APIs for import, create, read, search, update and delete QuickResponse resources." +} From 8a0b9544756c23c2d400650f62405078aa314f74 Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Fri, 17 Nov 2023 22:11:24 +0000 Subject: [PATCH 3/3] Bumping version to 1.30.3 --- .changes/1.30.3.json | 167 ++++++++++++++++++ .../api-change-appmesh-48349.json | 5 - .../next-release/api-change-athena-44641.json | 5 - .../next-release/api-change-cloud9-91179.json | 5 - .../api-change-cloudformation-79887.json | 5 - .../api-change-codepipeline-90478.json | 5 - .../api-change-codestarconnections-95552.json | 5 - .../api-change-connect-88121.json | 5 - .../next-release/api-change-dlm-2068.json | 5 - .../next-release/api-change-ec2-17140.json | 5 - .../next-release/api-change-ecr-96365.json | 5 - .../next-release/api-change-emr-11574.json | 5 - .../api-change-endpointrules-65457.json | 5 - .../next-release/api-change-events-22865.json | 5 - .../api-change-internetmonitor-19782.json | 5 - .../next-release/api-change-ivs-6398.json | 5 - .../api-change-ivschat-31342.json | 5 - .../api-change-kinesisvideo-84822.json | 5 - .../api-change-location-13541.json | 5 - .../api-change-medialive-38750.json | 5 - .../next-release/api-change-mgn-81869.json | 5 - .../next-release/api-change-osis-13479.json | 5 - .../next-release/api-change-pipes-80986.json | 5 - .../next-release/api-change-rds-47103.json | 5 - .../api-change-redshift-43652.json | 5 - .../api-change-redshiftserverless-66469.json | 5 - .../next-release/api-change-s3-89648.json | 5 - .../api-change-ssoadmin-44694.json | 5 - .../next-release/api-change-ssooidc-6136.json | 5 - .../next-release/api-change-sts-46371.json | 5 - .../api-change-trustedadvisor-55447.json | 5 - .../api-change-verifiedpermissions-82409.json | 5 - .../next-release/api-change-wisdom-14948.json | 5 - .../enhancement-ssmSessionManager-47156.json | 5 - CHANGELOG.rst | 38 ++++ awscli/__init__.py | 2 +- doc/source/conf.py | 2 +- setup.cfg | 2 +- setup.py | 2 +- 39 files changed, 209 insertions(+), 169 deletions(-) create mode 100644 .changes/1.30.3.json delete mode 100644 .changes/next-release/api-change-appmesh-48349.json delete mode 100644 .changes/next-release/api-change-athena-44641.json delete mode 100644 .changes/next-release/api-change-cloud9-91179.json delete mode 100644 .changes/next-release/api-change-cloudformation-79887.json delete mode 100644 .changes/next-release/api-change-codepipeline-90478.json delete mode 100644 .changes/next-release/api-change-codestarconnections-95552.json delete mode 100644 .changes/next-release/api-change-connect-88121.json delete mode 100644 .changes/next-release/api-change-dlm-2068.json delete mode 100644 .changes/next-release/api-change-ec2-17140.json delete mode 100644 .changes/next-release/api-change-ecr-96365.json delete mode 100644 .changes/next-release/api-change-emr-11574.json delete mode 100644 .changes/next-release/api-change-endpointrules-65457.json delete mode 100644 .changes/next-release/api-change-events-22865.json delete mode 100644 .changes/next-release/api-change-internetmonitor-19782.json delete mode 100644 .changes/next-release/api-change-ivs-6398.json delete mode 100644 .changes/next-release/api-change-ivschat-31342.json delete mode 100644 .changes/next-release/api-change-kinesisvideo-84822.json delete mode 100644 .changes/next-release/api-change-location-13541.json delete mode 100644 .changes/next-release/api-change-medialive-38750.json delete mode 100644 .changes/next-release/api-change-mgn-81869.json delete mode 100644 .changes/next-release/api-change-osis-13479.json delete mode 100644 .changes/next-release/api-change-pipes-80986.json delete mode 100644 .changes/next-release/api-change-rds-47103.json delete mode 100644 .changes/next-release/api-change-redshift-43652.json delete mode 100644 .changes/next-release/api-change-redshiftserverless-66469.json delete mode 100644 .changes/next-release/api-change-s3-89648.json delete mode 100644 .changes/next-release/api-change-ssoadmin-44694.json delete mode 100644 .changes/next-release/api-change-ssooidc-6136.json delete mode 100644 .changes/next-release/api-change-sts-46371.json delete mode 100644 .changes/next-release/api-change-trustedadvisor-55447.json delete mode 100644 .changes/next-release/api-change-verifiedpermissions-82409.json delete mode 100644 .changes/next-release/api-change-wisdom-14948.json delete mode 100644 .changes/next-release/enhancement-ssmSessionManager-47156.json diff --git a/.changes/1.30.3.json b/.changes/1.30.3.json new file mode 100644 index 000000000000..3c6d4d734293 --- /dev/null +++ b/.changes/1.30.3.json @@ -0,0 +1,167 @@ +[ + { + "category": "``ssm`` Session Manager", + "description": "Pass StartSession API response as environment variable to session-manager-plugin", + "type": "enhancement" + }, + { + "category": "``appmesh``", + "description": "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.", + "type": "api-change" + }, + { + "category": "``athena``", + "description": "Adding SerivicePreProcessing time metric", + "type": "api-change" + }, + { + "category": "``cloud9``", + "description": "A minor doc only update related to changing the date of an API change.", + "type": "api-change" + }, + { + "category": "``cloudformation``", + "description": "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.", + "type": "api-change" + }, + { + "category": "``codepipeline``", + "description": "CodePipeline now supports overriding source revisions to achieve manual re-deploy of a past revision", + "type": "api-change" + }, + { + "category": "``codestar-connections``", + "description": "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.", + "type": "api-change" + }, + { + "category": "``connect``", + "description": "This release adds WISDOM_QUICK_RESPONSES as new IntegrationType of Connect IntegrationAssociation resource and bug fixes.", + "type": "api-change" + }, + { + "category": "``dlm``", + "description": "Added support for SAP HANA in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies with pre and post scripts.", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "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.", + "type": "api-change" + }, + { + "category": "``ecr``", + "description": "Documentation and operational updates for Amazon ECR, adding support for pull through cache rules for upstream registries that require authentication.", + "type": "api-change" + }, + { + "category": "``emr``", + "description": "Update emr command to latest version", + "type": "api-change" + }, + { + "category": "``events``", + "description": "Update events command to latest version", + "type": "api-change" + }, + { + "category": "``internetmonitor``", + "description": "Adds new querying capabilities for running data queries on a monitor", + "type": "api-change" + }, + { + "category": "``ivs``", + "description": "type & defaulting refinement to various range properties", + "type": "api-change" + }, + { + "category": "``ivschat``", + "description": "type & defaulting refinement to various range properties", + "type": "api-change" + }, + { + "category": "``kinesisvideo``", + "description": "Docs only build to bring up-to-date with public docs.", + "type": "api-change" + }, + { + "category": "``location``", + "description": "Remove default value and allow nullable for request parameters having minimum value larger than zero.", + "type": "api-change" + }, + { + "category": "``medialive``", + "description": "MediaLive has now added support for per-output static image overlay.", + "type": "api-change" + }, + { + "category": "``mgn``", + "description": "Removed invalid and unnecessary default values.", + "type": "api-change" + }, + { + "category": "``osis``", + "description": "Add support for enabling a persistent buffer when creating or updating an OpenSearch Ingestion pipeline. Add tags to Pipeline and PipelineSummary response models.", + "type": "api-change" + }, + { + "category": "``pipes``", + "description": "TargetParameters now properly supports BatchJobParameters.ArrayProperties.Size and BatchJobParameters.RetryStrategy.Attempts being optional, and EcsTaskParameters.Overrides.EphemeralStorage.SizeInGiB now properly required when setting EphemeralStorage", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "This release adds support for option groups and replica enhancements to Amazon RDS Custom.", + "type": "api-change" + }, + { + "category": "``redshift-serverless``", + "description": "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.", + "type": "api-change" + }, + { + "category": "``redshift``", + "description": "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.", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "Removes all default 0 values for numbers and false values for booleans", + "type": "api-change" + }, + { + "category": "``sso-admin``", + "description": "Improves support for configuring RefreshToken and TokenExchange grants on applications.", + "type": "api-change" + }, + { + "category": "``sso-oidc``", + "description": "Adding support for `sso-oauth:CreateTokenWithIAM`.", + "type": "api-change" + }, + { + "category": "``sts``", + "description": "API updates for the AWS Security Token Service", + "type": "api-change" + }, + { + "category": "``trustedadvisor``", + "description": "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.", + "type": "api-change" + }, + { + "category": "``verifiedpermissions``", + "description": "Adding BatchIsAuthorized API which supports multiple authorization requests against a PolicyStore", + "type": "api-change" + }, + { + "category": "``wisdom``", + "description": "This release adds QuickResponse as a new Wisdom resource and Wisdom APIs for import, create, read, search, update and delete QuickResponse resources.", + "type": "api-change" + }, + { + "category": "``endpoint-rules``", + "description": "Update endpoint-rules command to latest version", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-appmesh-48349.json b/.changes/next-release/api-change-appmesh-48349.json deleted file mode 100644 index c3aa04547440..000000000000 --- a/.changes/next-release/api-change-appmesh-48349.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``appmesh``", - "description": "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." -} diff --git a/.changes/next-release/api-change-athena-44641.json b/.changes/next-release/api-change-athena-44641.json deleted file mode 100644 index f54104078f17..000000000000 --- a/.changes/next-release/api-change-athena-44641.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``athena``", - "description": "Adding SerivicePreProcessing time metric" -} diff --git a/.changes/next-release/api-change-cloud9-91179.json b/.changes/next-release/api-change-cloud9-91179.json deleted file mode 100644 index 011fef4e2f8c..000000000000 --- a/.changes/next-release/api-change-cloud9-91179.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``cloud9``", - "description": "A minor doc only update related to changing the date of an API change." -} diff --git a/.changes/next-release/api-change-cloudformation-79887.json b/.changes/next-release/api-change-cloudformation-79887.json deleted file mode 100644 index b8e391f03bc8..000000000000 --- a/.changes/next-release/api-change-cloudformation-79887.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``cloudformation``", - "description": "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." -} diff --git a/.changes/next-release/api-change-codepipeline-90478.json b/.changes/next-release/api-change-codepipeline-90478.json deleted file mode 100644 index be70aa42e1a9..000000000000 --- a/.changes/next-release/api-change-codepipeline-90478.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``codepipeline``", - "description": "CodePipeline now supports overriding source revisions to achieve manual re-deploy of a past revision" -} diff --git a/.changes/next-release/api-change-codestarconnections-95552.json b/.changes/next-release/api-change-codestarconnections-95552.json deleted file mode 100644 index 04923823b4d7..000000000000 --- a/.changes/next-release/api-change-codestarconnections-95552.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``codestar-connections``", - "description": "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." -} diff --git a/.changes/next-release/api-change-connect-88121.json b/.changes/next-release/api-change-connect-88121.json deleted file mode 100644 index 9ee99d0b00c3..000000000000 --- a/.changes/next-release/api-change-connect-88121.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``connect``", - "description": "This release adds WISDOM_QUICK_RESPONSES as new IntegrationType of Connect IntegrationAssociation resource and bug fixes." -} diff --git a/.changes/next-release/api-change-dlm-2068.json b/.changes/next-release/api-change-dlm-2068.json deleted file mode 100644 index bcd5d4c8c85b..000000000000 --- a/.changes/next-release/api-change-dlm-2068.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``dlm``", - "description": "Added support for SAP HANA in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies with pre and post scripts." -} diff --git a/.changes/next-release/api-change-ec2-17140.json b/.changes/next-release/api-change-ec2-17140.json deleted file mode 100644 index 594914259c8e..000000000000 --- a/.changes/next-release/api-change-ec2-17140.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ec2``", - "description": "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." -} diff --git a/.changes/next-release/api-change-ecr-96365.json b/.changes/next-release/api-change-ecr-96365.json deleted file mode 100644 index 6e8d409412aa..000000000000 --- a/.changes/next-release/api-change-ecr-96365.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ecr``", - "description": "Documentation and operational updates for Amazon ECR, adding support for pull through cache rules for upstream registries that require authentication." -} diff --git a/.changes/next-release/api-change-emr-11574.json b/.changes/next-release/api-change-emr-11574.json deleted file mode 100644 index f53e5e2eb6bb..000000000000 --- a/.changes/next-release/api-change-emr-11574.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``emr``", - "description": "Update emr command to latest version" -} diff --git a/.changes/next-release/api-change-endpointrules-65457.json b/.changes/next-release/api-change-endpointrules-65457.json deleted file mode 100644 index dd11872bcff4..000000000000 --- a/.changes/next-release/api-change-endpointrules-65457.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``endpoint-rules``", - "description": "Update endpoint-rules command to latest version" -} diff --git a/.changes/next-release/api-change-events-22865.json b/.changes/next-release/api-change-events-22865.json deleted file mode 100644 index 6f7878af0a24..000000000000 --- a/.changes/next-release/api-change-events-22865.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``events``", - "description": "Update events command to latest version" -} diff --git a/.changes/next-release/api-change-internetmonitor-19782.json b/.changes/next-release/api-change-internetmonitor-19782.json deleted file mode 100644 index 223c2b27d83b..000000000000 --- a/.changes/next-release/api-change-internetmonitor-19782.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``internetmonitor``", - "description": "Adds new querying capabilities for running data queries on a monitor" -} diff --git a/.changes/next-release/api-change-ivs-6398.json b/.changes/next-release/api-change-ivs-6398.json deleted file mode 100644 index dde56c73427e..000000000000 --- a/.changes/next-release/api-change-ivs-6398.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ivs``", - "description": "type & defaulting refinement to various range properties" -} diff --git a/.changes/next-release/api-change-ivschat-31342.json b/.changes/next-release/api-change-ivschat-31342.json deleted file mode 100644 index f8679158483d..000000000000 --- a/.changes/next-release/api-change-ivschat-31342.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ivschat``", - "description": "type & defaulting refinement to various range properties" -} diff --git a/.changes/next-release/api-change-kinesisvideo-84822.json b/.changes/next-release/api-change-kinesisvideo-84822.json deleted file mode 100644 index 16eb3cd79d3b..000000000000 --- a/.changes/next-release/api-change-kinesisvideo-84822.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``kinesisvideo``", - "description": "Docs only build to bring up-to-date with public docs." -} diff --git a/.changes/next-release/api-change-location-13541.json b/.changes/next-release/api-change-location-13541.json deleted file mode 100644 index fefdff37e052..000000000000 --- a/.changes/next-release/api-change-location-13541.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``location``", - "description": "Remove default value and allow nullable for request parameters having minimum value larger than zero." -} diff --git a/.changes/next-release/api-change-medialive-38750.json b/.changes/next-release/api-change-medialive-38750.json deleted file mode 100644 index e32cf3629a99..000000000000 --- a/.changes/next-release/api-change-medialive-38750.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``medialive``", - "description": "MediaLive has now added support for per-output static image overlay." -} diff --git a/.changes/next-release/api-change-mgn-81869.json b/.changes/next-release/api-change-mgn-81869.json deleted file mode 100644 index d04a860b5b86..000000000000 --- a/.changes/next-release/api-change-mgn-81869.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``mgn``", - "description": "Removed invalid and unnecessary default values." -} diff --git a/.changes/next-release/api-change-osis-13479.json b/.changes/next-release/api-change-osis-13479.json deleted file mode 100644 index 5b6d095b2ee5..000000000000 --- a/.changes/next-release/api-change-osis-13479.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``osis``", - "description": "Add support for enabling a persistent buffer when creating or updating an OpenSearch Ingestion pipeline. Add tags to Pipeline and PipelineSummary response models." -} diff --git a/.changes/next-release/api-change-pipes-80986.json b/.changes/next-release/api-change-pipes-80986.json deleted file mode 100644 index 7b136dc81225..000000000000 --- a/.changes/next-release/api-change-pipes-80986.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``pipes``", - "description": "TargetParameters now properly supports BatchJobParameters.ArrayProperties.Size and BatchJobParameters.RetryStrategy.Attempts being optional, and EcsTaskParameters.Overrides.EphemeralStorage.SizeInGiB now properly required when setting EphemeralStorage" -} diff --git a/.changes/next-release/api-change-rds-47103.json b/.changes/next-release/api-change-rds-47103.json deleted file mode 100644 index 4f252c723c3b..000000000000 --- a/.changes/next-release/api-change-rds-47103.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``rds``", - "description": "This release adds support for option groups and replica enhancements to Amazon RDS Custom." -} diff --git a/.changes/next-release/api-change-redshift-43652.json b/.changes/next-release/api-change-redshift-43652.json deleted file mode 100644 index 76d4046425b0..000000000000 --- a/.changes/next-release/api-change-redshift-43652.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``redshift``", - "description": "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." -} diff --git a/.changes/next-release/api-change-redshiftserverless-66469.json b/.changes/next-release/api-change-redshiftserverless-66469.json deleted file mode 100644 index b753a19a0257..000000000000 --- a/.changes/next-release/api-change-redshiftserverless-66469.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``redshift-serverless``", - "description": "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." -} diff --git a/.changes/next-release/api-change-s3-89648.json b/.changes/next-release/api-change-s3-89648.json deleted file mode 100644 index 2e48579a6a3d..000000000000 --- a/.changes/next-release/api-change-s3-89648.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``s3``", - "description": "Removes all default 0 values for numbers and false values for booleans" -} diff --git a/.changes/next-release/api-change-ssoadmin-44694.json b/.changes/next-release/api-change-ssoadmin-44694.json deleted file mode 100644 index 44eda4534cf1..000000000000 --- a/.changes/next-release/api-change-ssoadmin-44694.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sso-admin``", - "description": "Improves support for configuring RefreshToken and TokenExchange grants on applications." -} diff --git a/.changes/next-release/api-change-ssooidc-6136.json b/.changes/next-release/api-change-ssooidc-6136.json deleted file mode 100644 index b4219e749b11..000000000000 --- a/.changes/next-release/api-change-ssooidc-6136.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sso-oidc``", - "description": "Adding support for `sso-oauth:CreateTokenWithIAM`." -} diff --git a/.changes/next-release/api-change-sts-46371.json b/.changes/next-release/api-change-sts-46371.json deleted file mode 100644 index 09cb280aaf9c..000000000000 --- a/.changes/next-release/api-change-sts-46371.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``sts``", - "description": "API updates for the AWS Security Token Service" -} diff --git a/.changes/next-release/api-change-trustedadvisor-55447.json b/.changes/next-release/api-change-trustedadvisor-55447.json deleted file mode 100644 index 1153c57f97ec..000000000000 --- a/.changes/next-release/api-change-trustedadvisor-55447.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``trustedadvisor``", - "description": "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." -} diff --git a/.changes/next-release/api-change-verifiedpermissions-82409.json b/.changes/next-release/api-change-verifiedpermissions-82409.json deleted file mode 100644 index 6d1d74971acc..000000000000 --- a/.changes/next-release/api-change-verifiedpermissions-82409.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``verifiedpermissions``", - "description": "Adding BatchIsAuthorized API which supports multiple authorization requests against a PolicyStore" -} diff --git a/.changes/next-release/api-change-wisdom-14948.json b/.changes/next-release/api-change-wisdom-14948.json deleted file mode 100644 index ab1be956ef49..000000000000 --- a/.changes/next-release/api-change-wisdom-14948.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``wisdom``", - "description": "This release adds QuickResponse as a new Wisdom resource and Wisdom APIs for import, create, read, search, update and delete QuickResponse resources." -} diff --git a/.changes/next-release/enhancement-ssmSessionManager-47156.json b/.changes/next-release/enhancement-ssmSessionManager-47156.json deleted file mode 100644 index d4870e19b6b3..000000000000 --- a/.changes/next-release/enhancement-ssmSessionManager-47156.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "enhancement", - "category": "``ssm`` Session Manager", - "description": "Pass StartSession API response as environment variable to session-manager-plugin" -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 835c955ab42b..76c69cd0f342 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,44 @@ CHANGELOG ========= +1.30.3 +====== + +* enhancement:``ssm`` Session Manager: Pass StartSession API response as environment variable to session-manager-plugin +* api-change:``appmesh``: 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. +* api-change:``athena``: Adding SerivicePreProcessing time metric +* api-change:``cloud9``: A minor doc only update related to changing the date of an API change. +* api-change:``cloudformation``: 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. +* api-change:``codepipeline``: CodePipeline now supports overriding source revisions to achieve manual re-deploy of a past revision +* api-change:``codestar-connections``: 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. +* api-change:``connect``: This release adds WISDOM_QUICK_RESPONSES as new IntegrationType of Connect IntegrationAssociation resource and bug fixes. +* api-change:``dlm``: Added support for SAP HANA in Amazon Data Lifecycle Manager EBS snapshot lifecycle policies with pre and post scripts. +* api-change:``ec2``: 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. +* api-change:``ecr``: Documentation and operational updates for Amazon ECR, adding support for pull through cache rules for upstream registries that require authentication. +* api-change:``emr``: Update emr command to latest version +* api-change:``events``: Update events command to latest version +* api-change:``internetmonitor``: Adds new querying capabilities for running data queries on a monitor +* api-change:``ivs``: type & defaulting refinement to various range properties +* api-change:``ivschat``: type & defaulting refinement to various range properties +* api-change:``kinesisvideo``: Docs only build to bring up-to-date with public docs. +* api-change:``location``: Remove default value and allow nullable for request parameters having minimum value larger than zero. +* api-change:``medialive``: MediaLive has now added support for per-output static image overlay. +* api-change:``mgn``: Removed invalid and unnecessary default values. +* api-change:``osis``: Add support for enabling a persistent buffer when creating or updating an OpenSearch Ingestion pipeline. Add tags to Pipeline and PipelineSummary response models. +* api-change:``pipes``: TargetParameters now properly supports BatchJobParameters.ArrayProperties.Size and BatchJobParameters.RetryStrategy.Attempts being optional, and EcsTaskParameters.Overrides.EphemeralStorage.SizeInGiB now properly required when setting EphemeralStorage +* api-change:``rds``: This release adds support for option groups and replica enhancements to Amazon RDS Custom. +* api-change:``redshift-serverless``: 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. +* api-change:``redshift``: 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. +* api-change:``s3``: Removes all default 0 values for numbers and false values for booleans +* api-change:``sso-admin``: Improves support for configuring RefreshToken and TokenExchange grants on applications. +* api-change:``sso-oidc``: Adding support for `sso-oauth:CreateTokenWithIAM`. +* api-change:``sts``: API updates for the AWS Security Token Service +* api-change:``trustedadvisor``: 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. +* api-change:``verifiedpermissions``: Adding BatchIsAuthorized API which supports multiple authorization requests against a PolicyStore +* api-change:``wisdom``: This release adds QuickResponse as a new Wisdom resource and Wisdom APIs for import, create, read, search, update and delete QuickResponse resources. +* api-change:``endpoint-rules``: Update endpoint-rules command to latest version + + 1.30.2 ====== diff --git a/awscli/__init__.py b/awscli/__init__.py index 2fc7f2e5486b..2db35a06ab9c 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -17,7 +17,7 @@ """ import os -__version__ = '1.30.2' +__version__ = '1.30.3' # # Get our data path to be added to botocore's search path diff --git a/doc/source/conf.py b/doc/source/conf.py index 9289c50e5a63..337bb1bd9b62 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -52,7 +52,7 @@ # The short X.Y version. version = '1.30' # The full version, including alpha/beta/rc tags. -release = '1.30.2' +release = '1.30.3' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.cfg b/setup.cfg index d28e640a78d8..ddf814c625e4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,7 +3,7 @@ universal = 0 [metadata] requires_dist = - botocore==1.32.2 + botocore==1.32.3 docutils>=0.10,<0.17 s3transfer>=0.7.0,<0.8.0 PyYAML>=3.10,<6.1 diff --git a/setup.py b/setup.py index 3435c28ee6e8..cc111d98eeae 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ def find_version(*file_paths): install_requires = [ - 'botocore==1.32.2', + 'botocore==1.32.3', 'docutils>=0.10,<0.17', 's3transfer>=0.7.0,<0.8.0', 'PyYAML>=3.10,<6.1',