From 594a22e1ab2e0bfe599212ffb2b9ccb632333669 Mon Sep 17 00:00:00 2001 From: sbiscigl Date: Mon, 21 Sep 2026 12:19:20 -0400 Subject: [PATCH] fix operations with optional auth --- .changelog/bugfix-fix-noauth.json | 6 + cmake/sdksCommon.cmake | 1 + .../aws/codecatalyst/CodeCatalystClient.h | 2 +- .../source/CodeCatalystClient.cpp | 80 +++++----- .../cognito-identity/CognitoIdentityClient.h | 3 +- .../source/CognitoIdentityClient.cpp | 13 +- .../CognitoIdentityProviderClient.h | 3 +- .../source/CognitoIdentityProviderClient.cpp | 68 ++++----- .../include/aws/signin/SigninClient.h | 2 +- .../source/SigninClient.cpp | 6 +- .../include/aws/sso-oidc/SSOOIDCClient.h | 2 +- .../source/SSOOIDCClient.cpp | 10 +- .../include/aws/sso/SSOClient.h | 2 +- .../src/aws-cpp-sdk-sso/source/SSOClient.cpp | 12 +- .../CMakeLists.txt | 34 +++++ .../SSOOIDCUnitTests.cpp | 140 ++++++++++++++++++ .../common/ServiceInvokeOperationHeader.vm | 9 +- .../common/ServiceInvokeOperationMethod.vm | 15 +- .../common/ServiceInvokeOperationSource.vm | 11 +- 19 files changed, 311 insertions(+), 108 deletions(-) create mode 100644 .changelog/bugfix-fix-noauth.json create mode 100644 tests/aws-cpp-sdk-sso-oidc-unit-tests/CMakeLists.txt create mode 100644 tests/aws-cpp-sdk-sso-oidc-unit-tests/SSOOIDCUnitTests.cpp diff --git a/.changelog/bugfix-fix-noauth.json b/.changelog/bugfix-fix-noauth.json new file mode 100644 index 000000000000..387cc1e158c7 --- /dev/null +++ b/.changelog/bugfix-fix-noauth.json @@ -0,0 +1,6 @@ +{ + "type": "bugfix", + "category": "aws-cpp-sdk-core", + "contributor": "sbiscigl", + "description": "fix noauth in operations that support it" +} diff --git a/cmake/sdksCommon.cmake b/cmake/sdksCommon.cmake index 01af661e9a24..1c4804b6c599 100644 --- a/cmake/sdksCommon.cmake +++ b/cmake/sdksCommon.cmake @@ -124,6 +124,7 @@ list(APPEND SDK_TEST_PROJECT_LIST "timestream-query:tests/aws-cpp-sdk-timestream list(APPEND SDK_TEST_PROJECT_LIST "transcribestreaming:tests/aws-cpp-sdk-transcribestreaming-integ-tests") list(APPEND SDK_TEST_PROJECT_LIST "eventbridge:tests/aws-cpp-sdk-eventbridge-tests") list(APPEND SDK_TEST_PROJECT_LIST "dsql:tests/aws-cpp-sdk-dsql-unit-tests") +list(APPEND SDK_TEST_PROJECT_LIST "sso-oidc:tests/aws-cpp-sdk-sso-oidc-unit-tests") list(APPEND SDK_TEST_PROJECT_LIST "bedrock-runtime:tests/aws-cpp-sdk-bedrock-runtime-integration-tests") diff --git a/generated/src/aws-cpp-sdk-codecatalyst/include/aws/codecatalyst/CodeCatalystClient.h b/generated/src/aws-cpp-sdk-codecatalyst/include/aws/codecatalyst/CodeCatalystClient.h index be5f14300934..992bc812f1f8 100644 --- a/generated/src/aws-cpp-sdk-codecatalyst/include/aws/codecatalyst/CodeCatalystClient.h +++ b/generated/src/aws-cpp-sdk-codecatalyst/include/aws/codecatalyst/CodeCatalystClient.h @@ -1179,7 +1179,7 @@ class AWS_CODECATALYST_API CodeCatalystClient : public Aws::Client::AWSJsonClien InvokeOperationOutcome InvokeServiceOperation(const AmazonWebServiceRequest& request, const std::function& resolveUri, - Aws::Http::HttpMethod httpMethod) const; + Aws::Http::HttpMethod httpMethod, const char* signerName = Aws::Auth::SIGV4_SIGNER) const; CodeCatalystClientConfiguration m_clientConfiguration; std::shared_ptr m_endpointProvider; diff --git a/generated/src/aws-cpp-sdk-codecatalyst/source/CodeCatalystClient.cpp b/generated/src/aws-cpp-sdk-codecatalyst/source/CodeCatalystClient.cpp index 072f6aa57f45..a912b9db220f 100644 --- a/generated/src/aws-cpp-sdk-codecatalyst/source/CodeCatalystClient.cpp +++ b/generated/src/aws-cpp-sdk-codecatalyst/source/CodeCatalystClient.cpp @@ -127,7 +127,7 @@ void CodeCatalystClient::OverrideEndpoint(const Aws::String& endpoint) { } CodeCatalystClient::InvokeOperationOutcome CodeCatalystClient::InvokeServiceOperation( const AmazonWebServiceRequest& request, const std::function& resolveUri, - Aws::Http::HttpMethod httpMethod) const { + Aws::Http::HttpMethod httpMethod, const char* signerName) const { auto operationName = request.GetServiceRequestName(); auto serviceName = GetServiceClientName(); @@ -158,7 +158,7 @@ CodeCatalystClient::InvokeOperationOutcome CodeCatalystClient::InvokeServiceOper resolveUri(endpointResolutionOutcome); - return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, Aws::Auth::SIGV4_SIGNER)}; + return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, signerName)}; }, TracingUtils::SMITHY_CLIENT_DURATION_METRIC, *meter, {{TracingUtils::SMITHY_METHOD_DIMENSION, operationName}, {TracingUtils::SMITHY_SERVICE_DIMENSION, serviceName}}); @@ -170,7 +170,7 @@ CreateAccessTokenOutcome CodeCatalystClient::CreateAccessToken(const CreateAcces endpointResolutionOutcome.GetResult().AddPathSegments("/v1/accessTokens"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? CreateAccessTokenOutcome(result.GetResultWithOwnership()) : CreateAccessTokenOutcome(std::move(result.GetError())); } @@ -196,7 +196,7 @@ CreateDevEnvironmentOutcome CodeCatalystClient::CreateDevEnvironment(const Creat endpointResolutionOutcome.GetResult().AddPathSegments("/devEnvironments"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? CreateDevEnvironmentOutcome(result.GetResultWithOwnership()) : CreateDevEnvironmentOutcome(std::move(result.GetError())); } @@ -215,7 +215,7 @@ CreateProjectOutcome CodeCatalystClient::CreateProject(const CreateProjectReques endpointResolutionOutcome.GetResult().AddPathSegments("/projects"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? CreateProjectOutcome(result.GetResultWithOwnership()) : CreateProjectOutcome(std::move(result.GetError())); } @@ -246,7 +246,7 @@ CreateSourceRepositoryOutcome CodeCatalystClient::CreateSourceRepository(const C endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? CreateSourceRepositoryOutcome(result.GetResultWithOwnership()) : CreateSourceRepositoryOutcome(std::move(result.GetError())); } @@ -286,7 +286,7 @@ CreateSourceRepositoryBranchOutcome CodeCatalystClient::CreateSourceRepositoryBr endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? CreateSourceRepositoryBranchOutcome(result.GetResultWithOwnership()) : CreateSourceRepositoryBranchOutcome(std::move(result.GetError())); } @@ -304,7 +304,7 @@ DeleteAccessTokenOutcome CodeCatalystClient::DeleteAccessToken(const DeleteAcces endpointResolutionOutcome.GetResult().AddPathSegment(request.GetId()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? DeleteAccessTokenOutcome(result.GetResultWithOwnership()) : DeleteAccessTokenOutcome(std::move(result.GetError())); } @@ -336,7 +336,7 @@ DeleteDevEnvironmentOutcome CodeCatalystClient::DeleteDevEnvironment(const Delet endpointResolutionOutcome.GetResult().AddPathSegment(request.GetId()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? DeleteDevEnvironmentOutcome(result.GetResultWithOwnership()) : DeleteDevEnvironmentOutcome(std::move(result.GetError())); } @@ -361,7 +361,7 @@ DeleteProjectOutcome CodeCatalystClient::DeleteProject(const DeleteProjectReques endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? DeleteProjectOutcome(result.GetResultWithOwnership()) : DeleteProjectOutcome(std::move(result.GetError())); } @@ -392,7 +392,7 @@ DeleteSourceRepositoryOutcome CodeCatalystClient::DeleteSourceRepository(const D endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? DeleteSourceRepositoryOutcome(result.GetResultWithOwnership()) : DeleteSourceRepositoryOutcome(std::move(result.GetError())); } @@ -410,7 +410,7 @@ DeleteSpaceOutcome CodeCatalystClient::DeleteSpace(const DeleteSpaceRequest& req endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? DeleteSpaceOutcome(result.GetResultWithOwnership()) : DeleteSpaceOutcome(std::move(result.GetError())); } @@ -441,7 +441,7 @@ GetDevEnvironmentOutcome CodeCatalystClient::GetDevEnvironment(const GetDevEnvir endpointResolutionOutcome.GetResult().AddPathSegment(request.GetId()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? GetDevEnvironmentOutcome(result.GetResultWithOwnership()) : GetDevEnvironmentOutcome(std::move(result.GetError())); } @@ -466,7 +466,7 @@ GetProjectOutcome CodeCatalystClient::GetProject(const GetProjectRequest& reques endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? GetProjectOutcome(result.GetResultWithOwnership()) : GetProjectOutcome(std::move(result.GetError())); } @@ -497,7 +497,7 @@ GetSourceRepositoryOutcome CodeCatalystClient::GetSourceRepository(const GetSour endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? GetSourceRepositoryOutcome(result.GetResultWithOwnership()) : GetSourceRepositoryOutcome(std::move(result.GetError())); } @@ -531,7 +531,7 @@ GetSourceRepositoryCloneUrlsOutcome CodeCatalystClient::GetSourceRepositoryClone endpointResolutionOutcome.GetResult().AddPathSegments("/cloneUrls"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? GetSourceRepositoryCloneUrlsOutcome(result.GetResultWithOwnership()) : GetSourceRepositoryCloneUrlsOutcome(std::move(result.GetError())); } @@ -549,7 +549,7 @@ GetSpaceOutcome CodeCatalystClient::GetSpace(const GetSpaceRequest& request) con endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? GetSpaceOutcome(result.GetResultWithOwnership()) : GetSpaceOutcome(std::move(result.GetError())); } @@ -567,7 +567,7 @@ GetSubscriptionOutcome CodeCatalystClient::GetSubscription(const GetSubscription endpointResolutionOutcome.GetResult().AddPathSegments("/subscription"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? GetSubscriptionOutcome(result.GetResultWithOwnership()) : GetSubscriptionOutcome(std::move(result.GetError())); } @@ -578,7 +578,7 @@ GetUserDetailsOutcome CodeCatalystClient::GetUserDetails(const GetUserDetailsReq endpointResolutionOutcome.GetResult().AddPathSegments("/userDetails"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? GetUserDetailsOutcome(result.GetResultWithOwnership()) : GetUserDetailsOutcome(std::move(result.GetError())); } @@ -609,7 +609,7 @@ GetWorkflowOutcome CodeCatalystClient::GetWorkflow(const GetWorkflowRequest& req endpointResolutionOutcome.GetResult().AddPathSegment(request.GetId()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? GetWorkflowOutcome(result.GetResultWithOwnership()) : GetWorkflowOutcome(std::move(result.GetError())); } @@ -640,7 +640,7 @@ GetWorkflowRunOutcome CodeCatalystClient::GetWorkflowRun(const GetWorkflowRunReq endpointResolutionOutcome.GetResult().AddPathSegment(request.GetId()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? GetWorkflowRunOutcome(result.GetResultWithOwnership()) : GetWorkflowRunOutcome(std::move(result.GetError())); } @@ -650,7 +650,7 @@ ListAccessTokensOutcome CodeCatalystClient::ListAccessTokens(const ListAccessTok endpointResolutionOutcome.GetResult().AddPathSegments("/v1/accessTokens"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListAccessTokensOutcome(result.GetResultWithOwnership()) : ListAccessTokensOutcome(std::move(result.GetError())); } @@ -683,7 +683,7 @@ ListDevEnvironmentSessionsOutcome CodeCatalystClient::ListDevEnvironmentSessions endpointResolutionOutcome.GetResult().AddPathSegments("/sessions"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListDevEnvironmentSessionsOutcome(result.GetResultWithOwnership()) : ListDevEnvironmentSessionsOutcome(std::move(result.GetError())); } @@ -702,7 +702,7 @@ ListDevEnvironmentsOutcome CodeCatalystClient::ListDevEnvironments(const ListDev endpointResolutionOutcome.GetResult().AddPathSegments("/devEnvironments"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListDevEnvironmentsOutcome(result.GetResultWithOwnership()) : ListDevEnvironmentsOutcome(std::move(result.GetError())); } @@ -721,7 +721,7 @@ ListEventLogsOutcome CodeCatalystClient::ListEventLogs(const ListEventLogsReques endpointResolutionOutcome.GetResult().AddPathSegments("/eventLogs"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListEventLogsOutcome(result.GetResultWithOwnership()) : ListEventLogsOutcome(std::move(result.GetError())); } @@ -739,7 +739,7 @@ ListProjectsOutcome CodeCatalystClient::ListProjects(const ListProjectsRequest& endpointResolutionOutcome.GetResult().AddPathSegments("/projects"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListProjectsOutcome(result.GetResultWithOwnership()) : ListProjectsOutcome(std::move(result.GetError())); } @@ -764,7 +764,7 @@ ListSourceRepositoriesOutcome CodeCatalystClient::ListSourceRepositories(const L endpointResolutionOutcome.GetResult().AddPathSegments("/sourceRepositories"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListSourceRepositoriesOutcome(result.GetResultWithOwnership()) : ListSourceRepositoriesOutcome(std::move(result.GetError())); } @@ -798,7 +798,7 @@ ListSourceRepositoryBranchesOutcome CodeCatalystClient::ListSourceRepositoryBran endpointResolutionOutcome.GetResult().AddPathSegments("/branches"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListSourceRepositoryBranchesOutcome(result.GetResultWithOwnership()) : ListSourceRepositoryBranchesOutcome(std::move(result.GetError())); } @@ -809,7 +809,7 @@ ListSpacesOutcome CodeCatalystClient::ListSpaces(const ListSpacesRequest& reques endpointResolutionOutcome.GetResult().AddPathSegments("/v1/spaces"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListSpacesOutcome(result.GetResultWithOwnership()) : ListSpacesOutcome(std::move(result.GetError())); } @@ -834,7 +834,7 @@ ListWorkflowRunsOutcome CodeCatalystClient::ListWorkflowRuns(const ListWorkflowR endpointResolutionOutcome.GetResult().AddPathSegments("/workflowRuns"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListWorkflowRunsOutcome(result.GetResultWithOwnership()) : ListWorkflowRunsOutcome(std::move(result.GetError())); } @@ -860,7 +860,7 @@ ListWorkflowsOutcome CodeCatalystClient::ListWorkflows(const ListWorkflowsReques endpointResolutionOutcome.GetResult().AddPathSegments("/workflows"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? ListWorkflowsOutcome(result.GetResultWithOwnership()) : ListWorkflowsOutcome(std::move(result.GetError())); } @@ -892,7 +892,7 @@ StartDevEnvironmentOutcome CodeCatalystClient::StartDevEnvironment(const StartDe endpointResolutionOutcome.GetResult().AddPathSegments("/start"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? StartDevEnvironmentOutcome(result.GetResultWithOwnership()) : StartDevEnvironmentOutcome(std::move(result.GetError())); } @@ -925,7 +925,7 @@ StartDevEnvironmentSessionOutcome CodeCatalystClient::StartDevEnvironmentSession endpointResolutionOutcome.GetResult().AddPathSegments("/session"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? StartDevEnvironmentSessionOutcome(result.GetResultWithOwnership()) : StartDevEnvironmentSessionOutcome(std::move(result.GetError())); } @@ -956,7 +956,7 @@ StartWorkflowRunOutcome CodeCatalystClient::StartWorkflowRun(const StartWorkflow endpointResolutionOutcome.GetResult().AddPathSegments("/workflowRuns"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? StartWorkflowRunOutcome(result.GetResultWithOwnership()) : StartWorkflowRunOutcome(std::move(result.GetError())); } @@ -989,7 +989,7 @@ StopDevEnvironmentOutcome CodeCatalystClient::StopDevEnvironment(const StopDevEn endpointResolutionOutcome.GetResult().AddPathSegments("/stop"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? StopDevEnvironmentOutcome(result.GetResultWithOwnership()) : StopDevEnvironmentOutcome(std::move(result.GetError())); } @@ -1028,7 +1028,7 @@ StopDevEnvironmentSessionOutcome CodeCatalystClient::StopDevEnvironmentSession(c endpointResolutionOutcome.GetResult().AddPathSegment(request.GetSessionId()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? StopDevEnvironmentSessionOutcome(result.GetResultWithOwnership()) : StopDevEnvironmentSessionOutcome(std::move(result.GetError())); } @@ -1060,7 +1060,7 @@ UpdateDevEnvironmentOutcome CodeCatalystClient::UpdateDevEnvironment(const Updat endpointResolutionOutcome.GetResult().AddPathSegment(request.GetId()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PATCH); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PATCH, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? UpdateDevEnvironmentOutcome(result.GetResultWithOwnership()) : UpdateDevEnvironmentOutcome(std::move(result.GetError())); } @@ -1085,7 +1085,7 @@ UpdateProjectOutcome CodeCatalystClient::UpdateProject(const UpdateProjectReques endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PATCH); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PATCH, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? UpdateProjectOutcome(result.GetResultWithOwnership()) : UpdateProjectOutcome(std::move(result.GetError())); } @@ -1102,7 +1102,7 @@ UpdateSpaceOutcome CodeCatalystClient::UpdateSpace(const UpdateSpaceRequest& req endpointResolutionOutcome.GetResult().AddPathSegment(request.GetName()); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PATCH); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_PATCH, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? UpdateSpaceOutcome(result.GetResultWithOwnership()) : UpdateSpaceOutcome(std::move(result.GetError())); } @@ -1112,6 +1112,6 @@ VerifySessionOutcome CodeCatalystClient::VerifySession(const VerifySessionReques endpointResolutionOutcome.GetResult().AddPathSegments("/session"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::BEARER_SIGNER); return result.IsSuccess() ? VerifySessionOutcome(result.GetResultWithOwnership()) : VerifySessionOutcome(std::move(result.GetError())); } diff --git a/generated/src/aws-cpp-sdk-cognito-identity/include/aws/cognito-identity/CognitoIdentityClient.h b/generated/src/aws-cpp-sdk-cognito-identity/include/aws/cognito-identity/CognitoIdentityClient.h index 10c45be67419..c0571409713a 100644 --- a/generated/src/aws-cpp-sdk-cognito-identity/include/aws/cognito-identity/CognitoIdentityClient.h +++ b/generated/src/aws-cpp-sdk-cognito-identity/include/aws/cognito-identity/CognitoIdentityClient.h @@ -824,7 +824,8 @@ class AWS_COGNITOIDENTITY_API CognitoIdentityClient : public Aws::Client::AWSJso typedef Aws::Utils::Outcome, CognitoIdentityError> InvokeOperationOutcome; - InvokeOperationOutcome InvokeServiceOperation(const AmazonWebServiceRequest& request, Aws::Http::HttpMethod httpMethod) const; + InvokeOperationOutcome InvokeServiceOperation(const AmazonWebServiceRequest& request, Aws::Http::HttpMethod httpMethod, + const char* signerName = Aws::Auth::SIGV4_SIGNER) const; CognitoIdentityClientConfiguration m_clientConfiguration; std::shared_ptr m_endpointProvider; diff --git a/generated/src/aws-cpp-sdk-cognito-identity/source/CognitoIdentityClient.cpp b/generated/src/aws-cpp-sdk-cognito-identity/source/CognitoIdentityClient.cpp index 39c4a4f9e410..453605780e57 100644 --- a/generated/src/aws-cpp-sdk-cognito-identity/source/CognitoIdentityClient.cpp +++ b/generated/src/aws-cpp-sdk-cognito-identity/source/CognitoIdentityClient.cpp @@ -163,7 +163,8 @@ void CognitoIdentityClient::OverrideEndpoint(const Aws::String& endpoint) { m_endpointProvider->OverrideEndpoint(endpoint); } CognitoIdentityClient::InvokeOperationOutcome CognitoIdentityClient::InvokeServiceOperation(const AmazonWebServiceRequest& request, - Aws::Http::HttpMethod httpMethod) const { + Aws::Http::HttpMethod httpMethod, + const char* signerName) const { auto operationName = request.GetServiceRequestName(); auto serviceName = GetServiceClientName(); @@ -192,7 +193,7 @@ CognitoIdentityClient::InvokeOperationOutcome CognitoIdentityClient::InvokeServi AWS_OPERATION_CHECK_SUCCESS_DYNAMIC(endpointResolutionOutcome, operationName, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); - return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, Aws::Auth::SIGV4_SIGNER)}; + return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, signerName)}; }, TracingUtils::SMITHY_CLIENT_DURATION_METRIC, *meter, {{TracingUtils::SMITHY_METHOD_DIMENSION, operationName}, {TracingUtils::SMITHY_SERVICE_DIMENSION, serviceName}}); @@ -229,13 +230,13 @@ DescribeIdentityPoolOutcome CognitoIdentityClient::DescribeIdentityPool(const De } GetCredentialsForIdentityOutcome CognitoIdentityClient::GetCredentialsForIdentity(const GetCredentialsForIdentityRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GetCredentialsForIdentityOutcome(result.GetResultWithOwnership()) : GetCredentialsForIdentityOutcome(std::move(result.GetError())); } GetIdOutcome CognitoIdentityClient::GetId(const GetIdRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GetIdOutcome(result.GetResultWithOwnership()) : GetIdOutcome(std::move(result.GetError())); } @@ -246,7 +247,7 @@ GetIdentityPoolRolesOutcome CognitoIdentityClient::GetIdentityPoolRoles(const Ge } GetOpenIdTokenOutcome CognitoIdentityClient::GetOpenIdToken(const GetOpenIdTokenRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GetOpenIdTokenOutcome(result.GetResultWithOwnership()) : GetOpenIdTokenOutcome(std::move(result.GetError())); } @@ -318,7 +319,7 @@ UnlinkDeveloperIdentityOutcome CognitoIdentityClient::UnlinkDeveloperIdentity(co } UnlinkIdentityOutcome CognitoIdentityClient::UnlinkIdentity(const UnlinkIdentityRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? UnlinkIdentityOutcome(result.GetResultWithOwnership()) : UnlinkIdentityOutcome(std::move(result.GetError())); } diff --git a/generated/src/aws-cpp-sdk-cognito-idp/include/aws/cognito-idp/CognitoIdentityProviderClient.h b/generated/src/aws-cpp-sdk-cognito-idp/include/aws/cognito-idp/CognitoIdentityProviderClient.h index 625c74e2964c..d8791d16d741 100644 --- a/generated/src/aws-cpp-sdk-cognito-idp/include/aws/cognito-idp/CognitoIdentityProviderClient.h +++ b/generated/src/aws-cpp-sdk-cognito-idp/include/aws/cognito-idp/CognitoIdentityProviderClient.h @@ -5509,7 +5509,8 @@ class AWS_COGNITOIDENTITYPROVIDER_API CognitoIdentityProviderClient typedef Aws::Utils::Outcome, CognitoIdentityProviderError> InvokeOperationOutcome; - InvokeOperationOutcome InvokeServiceOperation(const AmazonWebServiceRequest& request, Aws::Http::HttpMethod httpMethod) const; + InvokeOperationOutcome InvokeServiceOperation(const AmazonWebServiceRequest& request, Aws::Http::HttpMethod httpMethod, + const char* signerName = Aws::Auth::SIGV4_SIGNER) const; CognitoIdentityProviderClientConfiguration m_clientConfiguration; std::shared_ptr m_endpointProvider; diff --git a/generated/src/aws-cpp-sdk-cognito-idp/source/CognitoIdentityProviderClient.cpp b/generated/src/aws-cpp-sdk-cognito-idp/source/CognitoIdentityProviderClient.cpp index 79bb3996b328..5370d86c8770 100644 --- a/generated/src/aws-cpp-sdk-cognito-idp/source/CognitoIdentityProviderClient.cpp +++ b/generated/src/aws-cpp-sdk-cognito-idp/source/CognitoIdentityProviderClient.cpp @@ -277,7 +277,7 @@ void CognitoIdentityProviderClient::OverrideEndpoint(const Aws::String& endpoint m_endpointProvider->OverrideEndpoint(endpoint); } CognitoIdentityProviderClient::InvokeOperationOutcome CognitoIdentityProviderClient::InvokeServiceOperation( - const AmazonWebServiceRequest& request, Aws::Http::HttpMethod httpMethod) const { + const AmazonWebServiceRequest& request, Aws::Http::HttpMethod httpMethod, const char* signerName) const { auto operationName = request.GetServiceRequestName(); auto serviceName = GetServiceClientName(); @@ -306,7 +306,7 @@ CognitoIdentityProviderClient::InvokeOperationOutcome CognitoIdentityProviderCli AWS_OPERATION_CHECK_SUCCESS_DYNAMIC(endpointResolutionOutcome, operationName, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); - return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, Aws::Auth::SIGV4_SIGNER)}; + return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, signerName)}; }, TracingUtils::SMITHY_CLIENT_DURATION_METRIC, *meter, {{TracingUtils::SMITHY_METHOD_DIMENSION, operationName}, {TracingUtils::SMITHY_SERVICE_DIMENSION, serviceName}}); @@ -500,36 +500,36 @@ AdminUserGlobalSignOutOutcome CognitoIdentityProviderClient::AdminUserGlobalSign } AssociateSoftwareTokenOutcome CognitoIdentityProviderClient::AssociateSoftwareToken(const AssociateSoftwareTokenRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? AssociateSoftwareTokenOutcome(result.GetResultWithOwnership()) : AssociateSoftwareTokenOutcome(std::move(result.GetError())); } ChangePasswordOutcome CognitoIdentityProviderClient::ChangePassword(const ChangePasswordRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ChangePasswordOutcome(result.GetResultWithOwnership()) : ChangePasswordOutcome(std::move(result.GetError())); } CompleteWebAuthnRegistrationOutcome CognitoIdentityProviderClient::CompleteWebAuthnRegistration( const CompleteWebAuthnRegistrationRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? CompleteWebAuthnRegistrationOutcome(result.GetResultWithOwnership()) : CompleteWebAuthnRegistrationOutcome(std::move(result.GetError())); } ConfirmDeviceOutcome CognitoIdentityProviderClient::ConfirmDevice(const ConfirmDeviceRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ConfirmDeviceOutcome(result.GetResultWithOwnership()) : ConfirmDeviceOutcome(std::move(result.GetError())); } ConfirmForgotPasswordOutcome CognitoIdentityProviderClient::ConfirmForgotPassword(const ConfirmForgotPasswordRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ConfirmForgotPasswordOutcome(result.GetResultWithOwnership()) : ConfirmForgotPasswordOutcome(std::move(result.GetError())); } ConfirmSignUpOutcome CognitoIdentityProviderClient::ConfirmSignUp(const ConfirmSignUpRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ConfirmSignUpOutcome(result.GetResultWithOwnership()) : ConfirmSignUpOutcome(std::move(result.GetError())); } @@ -621,12 +621,12 @@ DeleteTermsOutcome CognitoIdentityProviderClient::DeleteTerms(const DeleteTermsR } DeleteUserOutcome CognitoIdentityProviderClient::DeleteUser(const DeleteUserRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? DeleteUserOutcome(result.GetResultWithOwnership()) : DeleteUserOutcome(std::move(result.GetError())); } DeleteUserAttributesOutcome CognitoIdentityProviderClient::DeleteUserAttributes(const DeleteUserAttributesRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? DeleteUserAttributesOutcome(result.GetResultWithOwnership()) : DeleteUserAttributesOutcome(std::move(result.GetError())); } @@ -663,7 +663,7 @@ DeleteUserPoolReplicaOutcome CognitoIdentityProviderClient::DeleteUserPoolReplic DeleteWebAuthnCredentialOutcome CognitoIdentityProviderClient::DeleteWebAuthnCredential( const DeleteWebAuthnCredentialRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? DeleteWebAuthnCredentialOutcome(result.GetResultWithOwnership()) : DeleteWebAuthnCredentialOutcome(std::move(result.GetError())); } @@ -738,12 +738,12 @@ DescribeUserPoolDomainOutcome CognitoIdentityProviderClient::DescribeUserPoolDom } ForgetDeviceOutcome CognitoIdentityProviderClient::ForgetDevice(const ForgetDeviceRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ForgetDeviceOutcome(result.GetResultWithOwnership()) : ForgetDeviceOutcome(std::move(result.GetError())); } ForgotPasswordOutcome CognitoIdentityProviderClient::ForgotPassword(const ForgotPasswordRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ForgotPasswordOutcome(result.GetResultWithOwnership()) : ForgotPasswordOutcome(std::move(result.GetError())); } @@ -758,7 +758,7 @@ GetClientTokenOutcome CognitoIdentityProviderClient::GetClientToken(const GetCli } GetDeviceOutcome CognitoIdentityProviderClient::GetDevice(const GetDeviceRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GetDeviceOutcome(result.GetResultWithOwnership()) : GetDeviceOutcome(std::move(result.GetError())); } @@ -795,7 +795,7 @@ GetSigningCertificateOutcome CognitoIdentityProviderClient::GetSigningCertificat GetTokensFromRefreshTokenOutcome CognitoIdentityProviderClient::GetTokensFromRefreshToken( const GetTokensFromRefreshTokenRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GetTokensFromRefreshTokenOutcome(result.GetResultWithOwnership()) : GetTokensFromRefreshTokenOutcome(std::move(result.GetError())); } @@ -807,19 +807,19 @@ GetUICustomizationOutcome CognitoIdentityProviderClient::GetUICustomization(cons } GetUserOutcome CognitoIdentityProviderClient::GetUser(const GetUserRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GetUserOutcome(result.GetResultWithOwnership()) : GetUserOutcome(std::move(result.GetError())); } GetUserAttributeVerificationCodeOutcome CognitoIdentityProviderClient::GetUserAttributeVerificationCode( const GetUserAttributeVerificationCodeRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GetUserAttributeVerificationCodeOutcome(result.GetResultWithOwnership()) : GetUserAttributeVerificationCodeOutcome(std::move(result.GetError())); } GetUserAuthFactorsOutcome CognitoIdentityProviderClient::GetUserAuthFactors(const GetUserAuthFactorsRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GetUserAuthFactorsOutcome(result.GetResultWithOwnership()) : GetUserAuthFactorsOutcome(std::move(result.GetError())); } @@ -831,17 +831,17 @@ GetUserPoolMfaConfigOutcome CognitoIdentityProviderClient::GetUserPoolMfaConfig( } GlobalSignOutOutcome CognitoIdentityProviderClient::GlobalSignOut(const GlobalSignOutRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GlobalSignOutOutcome(result.GetResultWithOwnership()) : GlobalSignOutOutcome(std::move(result.GetError())); } InitiateAuthOutcome CognitoIdentityProviderClient::InitiateAuth(const InitiateAuthRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? InitiateAuthOutcome(result.GetResultWithOwnership()) : InitiateAuthOutcome(std::move(result.GetError())); } ListDevicesOutcome CognitoIdentityProviderClient::ListDevices(const ListDevicesRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ListDevicesOutcome(result.GetResultWithOwnership()) : ListDevicesOutcome(std::move(result.GetError())); } @@ -915,25 +915,25 @@ ListUsersInGroupOutcome CognitoIdentityProviderClient::ListUsersInGroup(const Li } ListWebAuthnCredentialsOutcome CognitoIdentityProviderClient::ListWebAuthnCredentials(const ListWebAuthnCredentialsRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ListWebAuthnCredentialsOutcome(result.GetResultWithOwnership()) : ListWebAuthnCredentialsOutcome(std::move(result.GetError())); } ResendConfirmationCodeOutcome CognitoIdentityProviderClient::ResendConfirmationCode(const ResendConfirmationCodeRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ResendConfirmationCodeOutcome(result.GetResultWithOwnership()) : ResendConfirmationCodeOutcome(std::move(result.GetError())); } RespondToAuthChallengeOutcome CognitoIdentityProviderClient::RespondToAuthChallenge(const RespondToAuthChallengeRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? RespondToAuthChallengeOutcome(result.GetResultWithOwnership()) : RespondToAuthChallengeOutcome(std::move(result.GetError())); } RevokeTokenOutcome CognitoIdentityProviderClient::RevokeToken(const RevokeTokenRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? RevokeTokenOutcome(result.GetResultWithOwnership()) : RevokeTokenOutcome(std::move(result.GetError())); } @@ -957,7 +957,7 @@ SetUICustomizationOutcome CognitoIdentityProviderClient::SetUICustomization(cons } SetUserMFAPreferenceOutcome CognitoIdentityProviderClient::SetUserMFAPreference(const SetUserMFAPreferenceRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? SetUserMFAPreferenceOutcome(result.GetResultWithOwnership()) : SetUserMFAPreferenceOutcome(std::move(result.GetError())); } @@ -969,13 +969,13 @@ SetUserPoolMfaConfigOutcome CognitoIdentityProviderClient::SetUserPoolMfaConfig( } SetUserSettingsOutcome CognitoIdentityProviderClient::SetUserSettings(const SetUserSettingsRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? SetUserSettingsOutcome(result.GetResultWithOwnership()) : SetUserSettingsOutcome(std::move(result.GetError())); } SignUpOutcome CognitoIdentityProviderClient::SignUp(const SignUpRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? SignUpOutcome(result.GetResultWithOwnership()) : SignUpOutcome(std::move(result.GetError())); } @@ -987,7 +987,7 @@ StartUserImportJobOutcome CognitoIdentityProviderClient::StartUserImportJob(cons StartWebAuthnRegistrationOutcome CognitoIdentityProviderClient::StartWebAuthnRegistration( const StartWebAuthnRegistrationRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? StartWebAuthnRegistrationOutcome(result.GetResultWithOwnership()) : StartWebAuthnRegistrationOutcome(std::move(result.GetError())); } @@ -1009,13 +1009,13 @@ UntagResourceOutcome CognitoIdentityProviderClient::UntagResource(const UntagRes } UpdateAuthEventFeedbackOutcome CognitoIdentityProviderClient::UpdateAuthEventFeedback(const UpdateAuthEventFeedbackRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? UpdateAuthEventFeedbackOutcome(result.GetResultWithOwnership()) : UpdateAuthEventFeedbackOutcome(std::move(result.GetError())); } UpdateDeviceStatusOutcome CognitoIdentityProviderClient::UpdateDeviceStatus(const UpdateDeviceStatusRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? UpdateDeviceStatusOutcome(result.GetResultWithOwnership()) : UpdateDeviceStatusOutcome(std::move(result.GetError())); } @@ -1056,7 +1056,7 @@ UpdateTermsOutcome CognitoIdentityProviderClient::UpdateTerms(const UpdateTermsR } UpdateUserAttributesOutcome CognitoIdentityProviderClient::UpdateUserAttributes(const UpdateUserAttributesRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? UpdateUserAttributesOutcome(result.GetResultWithOwnership()) : UpdateUserAttributesOutcome(std::move(result.GetError())); } @@ -1085,13 +1085,13 @@ UpdateUserPoolReplicaOutcome CognitoIdentityProviderClient::UpdateUserPoolReplic } VerifySoftwareTokenOutcome CognitoIdentityProviderClient::VerifySoftwareToken(const VerifySoftwareTokenRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? VerifySoftwareTokenOutcome(result.GetResultWithOwnership()) : VerifySoftwareTokenOutcome(std::move(result.GetError())); } VerifyUserAttributeOutcome CognitoIdentityProviderClient::VerifyUserAttribute(const VerifyUserAttributeRequest& request) const { - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? VerifyUserAttributeOutcome(result.GetResultWithOwnership()) : VerifyUserAttributeOutcome(std::move(result.GetError())); } diff --git a/generated/src/aws-cpp-sdk-signin/include/aws/signin/SigninClient.h b/generated/src/aws-cpp-sdk-signin/include/aws/signin/SigninClient.h index b1982aa026a9..edff16af4b3d 100644 --- a/generated/src/aws-cpp-sdk-signin/include/aws/signin/SigninClient.h +++ b/generated/src/aws-cpp-sdk-signin/include/aws/signin/SigninClient.h @@ -440,7 +440,7 @@ class AWS_SIGNIN_API SigninClient : public Aws::Client::AWSJsonClient, InvokeOperationOutcome InvokeServiceOperation(const AmazonWebServiceRequest& request, const std::function& resolveUri, - Aws::Http::HttpMethod httpMethod) const; + Aws::Http::HttpMethod httpMethod, const char* signerName = Aws::Auth::SIGV4_SIGNER) const; SigninClientConfiguration m_clientConfiguration; std::shared_ptr m_endpointProvider; diff --git a/generated/src/aws-cpp-sdk-signin/source/SigninClient.cpp b/generated/src/aws-cpp-sdk-signin/source/SigninClient.cpp index 7150e6cc6dce..36a127db2489 100644 --- a/generated/src/aws-cpp-sdk-signin/source/SigninClient.cpp +++ b/generated/src/aws-cpp-sdk-signin/source/SigninClient.cpp @@ -148,7 +148,7 @@ void SigninClient::OverrideEndpoint(const Aws::String& endpoint) { } SigninClient::InvokeOperationOutcome SigninClient::InvokeServiceOperation( const AmazonWebServiceRequest& request, const std::function& resolveUri, - Aws::Http::HttpMethod httpMethod) const { + Aws::Http::HttpMethod httpMethod, const char* signerName) const { auto operationName = request.GetServiceRequestName(); auto serviceName = GetServiceClientName(); @@ -179,7 +179,7 @@ SigninClient::InvokeOperationOutcome SigninClient::InvokeServiceOperation( resolveUri(endpointResolutionOutcome); - return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, Aws::Auth::SIGV4_SIGNER)}; + return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, signerName)}; }, TracingUtils::SMITHY_CLIENT_DURATION_METRIC, *meter, {{TracingUtils::SMITHY_METHOD_DIMENSION, operationName}, {TracingUtils::SMITHY_SERVICE_DIMENSION, serviceName}}); @@ -191,7 +191,7 @@ CreateOAuth2TokenOutcome SigninClient::CreateOAuth2Token(const CreateOAuth2Token endpointResolutionOutcome.GetResult().AddPathSegments("/v1/token"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? CreateOAuth2TokenOutcome(result.GetResultWithOwnership()) : CreateOAuth2TokenOutcome(std::move(result.GetError())); } diff --git a/generated/src/aws-cpp-sdk-sso-oidc/include/aws/sso-oidc/SSOOIDCClient.h b/generated/src/aws-cpp-sdk-sso-oidc/include/aws/sso-oidc/SSOOIDCClient.h index d6c8dde5162d..b4e19822f4f9 100644 --- a/generated/src/aws-cpp-sdk-sso-oidc/include/aws/sso-oidc/SSOOIDCClient.h +++ b/generated/src/aws-cpp-sdk-sso-oidc/include/aws/sso-oidc/SSOOIDCClient.h @@ -239,7 +239,7 @@ class AWS_SSOOIDC_API SSOOIDCClient : public Aws::Client::AWSJsonClient, InvokeOperationOutcome InvokeServiceOperation(const AmazonWebServiceRequest& request, const std::function& resolveUri, - Aws::Http::HttpMethod httpMethod) const; + Aws::Http::HttpMethod httpMethod, const char* signerName = Aws::Auth::SIGV4_SIGNER) const; SSOOIDCClientConfiguration m_clientConfiguration; std::shared_ptr m_endpointProvider; diff --git a/generated/src/aws-cpp-sdk-sso-oidc/source/SSOOIDCClient.cpp b/generated/src/aws-cpp-sdk-sso-oidc/source/SSOOIDCClient.cpp index c030c46f12b5..033704a1623a 100644 --- a/generated/src/aws-cpp-sdk-sso-oidc/source/SSOOIDCClient.cpp +++ b/generated/src/aws-cpp-sdk-sso-oidc/source/SSOOIDCClient.cpp @@ -141,7 +141,7 @@ void SSOOIDCClient::OverrideEndpoint(const Aws::String& endpoint) { } SSOOIDCClient::InvokeOperationOutcome SSOOIDCClient::InvokeServiceOperation( const AmazonWebServiceRequest& request, const std::function& resolveUri, - Aws::Http::HttpMethod httpMethod) const { + Aws::Http::HttpMethod httpMethod, const char* signerName) const { auto operationName = request.GetServiceRequestName(); auto serviceName = GetServiceClientName(); @@ -172,7 +172,7 @@ SSOOIDCClient::InvokeOperationOutcome SSOOIDCClient::InvokeServiceOperation( resolveUri(endpointResolutionOutcome); - return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, Aws::Auth::SIGV4_SIGNER)}; + return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, signerName)}; }, TracingUtils::SMITHY_CLIENT_DURATION_METRIC, *meter, {{TracingUtils::SMITHY_METHOD_DIMENSION, operationName}, {TracingUtils::SMITHY_SERVICE_DIMENSION, serviceName}}); @@ -184,7 +184,7 @@ CreateTokenOutcome SSOOIDCClient::CreateToken(const CreateTokenRequest& request) endpointResolutionOutcome.GetResult().AddPathSegments("/token"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? CreateTokenOutcome(result.GetResultWithOwnership()) : CreateTokenOutcome(std::move(result.GetError())); } @@ -208,7 +208,7 @@ RegisterClientOutcome SSOOIDCClient::RegisterClient(const RegisterClientRequest& endpointResolutionOutcome.GetResult().AddPathSegments("/client/register"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? RegisterClientOutcome(result.GetResultWithOwnership()) : RegisterClientOutcome(std::move(result.GetError())); } @@ -218,7 +218,7 @@ StartDeviceAuthorizationOutcome SSOOIDCClient::StartDeviceAuthorization(const St endpointResolutionOutcome.GetResult().AddPathSegments("/device_authorization"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? StartDeviceAuthorizationOutcome(result.GetResultWithOwnership()) : StartDeviceAuthorizationOutcome(std::move(result.GetError())); } diff --git a/generated/src/aws-cpp-sdk-sso/include/aws/sso/SSOClient.h b/generated/src/aws-cpp-sdk-sso/include/aws/sso/SSOClient.h index 585a0510c4d9..1468b43b046d 100644 --- a/generated/src/aws-cpp-sdk-sso/include/aws/sso/SSOClient.h +++ b/generated/src/aws-cpp-sdk-sso/include/aws/sso/SSOClient.h @@ -223,7 +223,7 @@ class AWS_SSO_API SSOClient : public Aws::Client::AWSJsonClient, InvokeOperationOutcome InvokeServiceOperation(const AmazonWebServiceRequest& request, const std::function& resolveUri, - Aws::Http::HttpMethod httpMethod) const; + Aws::Http::HttpMethod httpMethod, const char* signerName = Aws::Auth::SIGV4_SIGNER) const; SSOClientConfiguration m_clientConfiguration; std::shared_ptr m_endpointProvider; diff --git a/generated/src/aws-cpp-sdk-sso/source/SSOClient.cpp b/generated/src/aws-cpp-sdk-sso/source/SSOClient.cpp index bc1ec1d778f5..02b5a3366f3b 100644 --- a/generated/src/aws-cpp-sdk-sso/source/SSOClient.cpp +++ b/generated/src/aws-cpp-sdk-sso/source/SSOClient.cpp @@ -139,7 +139,7 @@ void SSOClient::OverrideEndpoint(const Aws::String& endpoint) { } SSOClient::InvokeOperationOutcome SSOClient::InvokeServiceOperation( const AmazonWebServiceRequest& request, const std::function& resolveUri, - Aws::Http::HttpMethod httpMethod) const { + Aws::Http::HttpMethod httpMethod, const char* signerName) const { auto operationName = request.GetServiceRequestName(); auto serviceName = GetServiceClientName(); @@ -170,7 +170,7 @@ SSOClient::InvokeOperationOutcome SSOClient::InvokeServiceOperation( resolveUri(endpointResolutionOutcome); - return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, Aws::Auth::SIGV4_SIGNER)}; + return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, signerName)}; }, TracingUtils::SMITHY_CLIENT_DURATION_METRIC, *meter, {{TracingUtils::SMITHY_METHOD_DIMENSION, operationName}, {TracingUtils::SMITHY_SERVICE_DIMENSION, serviceName}}); @@ -198,7 +198,7 @@ GetRoleCredentialsOutcome SSOClient::GetRoleCredentials(const GetRoleCredentials endpointResolutionOutcome.GetResult().AddPathSegments("/federation/credentials"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? GetRoleCredentialsOutcome(result.GetResultWithOwnership()) : GetRoleCredentialsOutcome(std::move(result.GetError())); } @@ -220,7 +220,7 @@ ListAccountRolesOutcome SSOClient::ListAccountRoles(const ListAccountRolesReques endpointResolutionOutcome.GetResult().AddPathSegments("/assignment/roles"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ListAccountRolesOutcome(result.GetResultWithOwnership()) : ListAccountRolesOutcome(std::move(result.GetError())); } @@ -237,7 +237,7 @@ ListAccountsOutcome SSOClient::ListAccounts(const ListAccountsRequest& request) endpointResolutionOutcome.GetResult().AddPathSegments("/assignment/accounts"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? ListAccountsOutcome(result.GetResultWithOwnership()) : ListAccountsOutcome(std::move(result.GetError())); } @@ -253,6 +253,6 @@ LogoutOutcome SSOClient::Logout(const LogoutRequest& request) const { endpointResolutionOutcome.GetResult().AddPathSegments("/logout"); }; - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::NULL_SIGNER); return result.IsSuccess() ? LogoutOutcome(result.GetResultWithOwnership()) : LogoutOutcome(std::move(result.GetError())); } diff --git a/tests/aws-cpp-sdk-sso-oidc-unit-tests/CMakeLists.txt b/tests/aws-cpp-sdk-sso-oidc-unit-tests/CMakeLists.txt new file mode 100644 index 000000000000..300d99ee3d17 --- /dev/null +++ b/tests/aws-cpp-sdk-sso-oidc-unit-tests/CMakeLists.txt @@ -0,0 +1,34 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0. +# +add_project(aws-cpp-sdk-sso-oidc-unit-tests + "Unit Tests for the sso-oidc SDK Client" + aws-cpp-sdk-sso-oidc + testing-resources + aws_test_main + aws-cpp-sdk-core) + +if(MSVC AND BUILD_SHARED_LIBS) + add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY=1) +endif() + +enable_testing() + +if(PLATFORM_ANDROID AND BUILD_SHARED_LIBS) + add_library(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/SSOOIDCUnitTests.cpp) +else() + add_executable(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/SSOOIDCUnitTests.cpp) +endif() + +set_compiler_flags(${PROJECT_NAME}) +set_compiler_warnings(${PROJECT_NAME}) + +target_link_libraries(${PROJECT_NAME} ${PROJECT_LIBS}) + +if(MSVC AND BUILD_SHARED_LIBS) + set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DELAYLOAD:aws-cpp-sdk-sso-oidc.dll /DELAYLOAD:aws-cpp-sdk-core.dll") + target_link_libraries(${PROJECT_NAME} delayimp.lib) +endif() + +include(GoogleTest) +gtest_add_tests(TARGET ${PROJECT_NAME}) diff --git a/tests/aws-cpp-sdk-sso-oidc-unit-tests/SSOOIDCUnitTests.cpp b/tests/aws-cpp-sdk-sso-oidc-unit-tests/SSOOIDCUnitTests.cpp new file mode 100644 index 000000000000..d4e704b4850a --- /dev/null +++ b/tests/aws-cpp-sdk-sso-oidc-unit-tests/SSOOIDCUnitTests.cpp @@ -0,0 +1,140 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace Aws; +using namespace Aws::Auth; +using namespace Aws::Http; +using namespace Aws::SSOOIDC; +using namespace Aws::SSOOIDC::Model; + +namespace { +const char* ALLOCATION_TAG = "SSOOIDCUnitTest"; + +class SSOOIDCUnitTest : public testing::Test { + protected: + static void SetUpTestSuite() { +#ifdef USE_AWS_MEMORY_MANAGEMENT + testMemorySystem_.reset(new ExactTestMemorySystem(1024, 128)); + options_.memoryManagementOptions.memoryManager = testMemorySystem_.get(); +#endif + InitAPI(options_); + mockClientFactory_ = Aws::MakeShared(ALLOCATION_TAG); + mockHttpClient_ = Aws::MakeShared(ALLOCATION_TAG); + mockClientFactory_->SetClient(mockHttpClient_); + SetHttpClientFactory(mockClientFactory_); + + AWSCredentials credentials{"AKIDEXAMPLE", "secret", "session-token"}; + const auto epProvider = Aws::MakeShared(ALLOCATION_TAG); + SSOOIDCClientConfiguration config; + config.region = "us-west-2"; + client_ = Aws::MakeShared(ALLOCATION_TAG, credentials, epProvider, config); + } + + static void TearDownTestSuite() { + mockClientFactory_.reset(); + mockHttpClient_.reset(); + client_.reset(); + ShutdownAPI(options_); +#ifdef USE_AWS_MEMORY_MANAGEMENT + EXPECT_TRUE(testMemorySystem_->IsClean()); + if (!testMemorySystem_->IsClean()) FAIL(); + testMemorySystem_.reset(); +#endif + } + + void SetUp() override { mockHttpClient_->Reset(); } + + static void EnqueueOkResponse() { + auto mockRequest = + Aws::MakeShared(ALLOCATION_TAG, "mockuri", HttpMethod::HTTP_POST); + mockRequest->SetResponseStreamFactory( + []() -> IOStream* { return Aws::New(ALLOCATION_TAG, "{}", std::ios_base::in | std::ios_base::binary); }); + auto mockResponse = Aws::MakeShared(ALLOCATION_TAG, mockRequest); + mockResponse->SetResponseCode(HttpResponseCode::OK); + mockHttpClient_->AddResponseToReturn(mockResponse); + } + + static SDKOptions options_; + static std::shared_ptr mockHttpClient_; + static std::shared_ptr mockClientFactory_; + static std::shared_ptr client_; +#ifdef USE_AWS_MEMORY_MANAGEMENT + static std::unique_ptr testMemorySystem_; +#endif +}; + +SDKOptions SSOOIDCUnitTest::options_; +std::shared_ptr SSOOIDCUnitTest::mockHttpClient_ = nullptr; +std::shared_ptr SSOOIDCUnitTest::mockClientFactory_ = nullptr; +std::shared_ptr SSOOIDCUnitTest::client_ = nullptr; +#ifdef USE_AWS_MEMORY_MANAGEMENT +std::unique_ptr SSOOIDCUnitTest::testMemorySystem_ = nullptr; +#endif +} // namespace + +TEST_F(SSOOIDCUnitTest, CreateTokenMustBeUnsigned) { + EnqueueOkResponse(); + client_->CreateToken(CreateTokenRequest() + .WithClientId("client-id") + .WithClientSecret("client-secret") + .WithGrantType("authorization_code") + .WithCode("auth-code")); + + const auto seenRequest = mockHttpClient_->GetMostRecentHttpRequest(); + EXPECT_FALSE(seenRequest.HasAuthorization()) << "CreateToken must use NULL_SIGNER; found: " << seenRequest.GetAuthorization(); + EXPECT_FALSE(seenRequest.HasHeader("X-Amz-Security-Token")); +} + +TEST_F(SSOOIDCUnitTest, RegisterClientMustBeUnsigned) { + EnqueueOkResponse(); + client_->RegisterClient(RegisterClientRequest() + .WithClientName("client-name") + .WithClientType("public")); + + const auto seenRequest = mockHttpClient_->GetMostRecentHttpRequest(); + EXPECT_FALSE(seenRequest.HasAuthorization()) << "RegisterClient must use NULL_SIGNER; found: " << seenRequest.GetAuthorization(); + EXPECT_FALSE(seenRequest.HasHeader("X-Amz-Security-Token")); +} + +TEST_F(SSOOIDCUnitTest, StartDeviceAuthorizationMustBeUnsigned) { + EnqueueOkResponse(); + client_->StartDeviceAuthorization(StartDeviceAuthorizationRequest() + .WithClientId("client-id") + .WithClientSecret("client-secret") + .WithStartUrl("https://d-0000000000.awsapps.com/start")); + + const auto seenRequest = mockHttpClient_->GetMostRecentHttpRequest(); + EXPECT_FALSE(seenRequest.HasAuthorization()) << "StartDeviceAuthorization must use NULL_SIGNER; found: " << seenRequest.GetAuthorization(); + EXPECT_FALSE(seenRequest.HasHeader("X-Amz-Security-Token")); +} + +TEST_F(SSOOIDCUnitTest, CreateTokenWithIAMMustBeSigned) { + EnqueueOkResponse(); + client_->CreateTokenWithIAM(CreateTokenWithIAMRequest() + .WithClientId("client-id") + .WithGrantType("authorization_code") + .WithCode("auth-code")); + + const auto seenRequest = mockHttpClient_->GetMostRecentHttpRequest(); + ASSERT_TRUE(seenRequest.HasAuthorization()) << "CreateTokenWithIAM must be SigV4-signed"; + EXPECT_NE(Aws::String::npos, seenRequest.GetAuthorization().find("AWS4-HMAC-SHA256")); + EXPECT_TRUE(seenRequest.HasHeader("X-Amz-Security-Token")); +} diff --git a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationHeader.vm b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationHeader.vm index f6797c02ef0c..2b4028a202df 100644 --- a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationHeader.vm +++ b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationHeader.vm @@ -2,6 +2,12 @@ ## Be careful to not have this outcome name clash with an operation outcome name (specifically lambda:Invoke) typedef Aws::Utils::Outcome, ${metadata.classNamePrefix}Error> InvokeOperationOutcome; +#set($serviceHasNonDefaultSigner = false) +#foreach($signerOp in $serviceModel.operations) +#if($signerOp.signerName != "Aws::Auth::SIGV4_SIGNER") +#set($serviceHasNonDefaultSigner = true) +#end +#end InvokeOperationOutcome InvokeServiceOperation( const AmazonWebServiceRequest& request, #if($metadata.protocol == "rest-json" || $metadata.protocol == "rest-xml") @@ -10,5 +16,6 @@ InvokeOperationOutcome InvokeServiceOperation( #if($serviceModel.metadata.namespace == "S3" || $serviceModel.metadata.namespace == "S3Crt") Aws::String bucketName, #end - Aws::Http::HttpMethod httpMethod + Aws::Http::HttpMethod httpMethod#if($serviceHasNonDefaultSigner), + const char* signerName = Aws::Auth::SIGV4_SIGNER#end ) const; diff --git a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationMethod.vm b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationMethod.vm index f2453b3f1277..e5a0d024e192 100644 --- a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationMethod.vm +++ b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationMethod.vm @@ -1,6 +1,11 @@ #set($emitGenericOperation = true) #parse("com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceClientOperationRequestRequiredMemberValidate.vm") #set($emitGenericOperation = false) +#if($operation.signerName == "Aws::Auth::SIGV4_SIGNER") +#set($signerArg = "") +#else +#set($signerArg = ", ${operation.signerName}") +#end #if($serviceModel.metadata.serviceId == "EC2") #set($presignSpelling = "PresignedUrl") @@ -30,13 +35,13 @@ Aws::Http::HttpMethod::HTTP_GET, request.GetSourceRegion().c_str(), {{ "DestinationRegion", m_region }}, 3600)); - auto result = InvokeServiceOperation(newRequest, Aws::Http::HttpMethod::HTTP_${operation.http.method}); + auto result = InvokeServiceOperation(newRequest, Aws::Http::HttpMethod::HTTP_${operation.http.method}${signerArg}); return result.IsSuccess() ? ${operation.name}Outcome(result.GetResultWithOwnership()) : ${operation.name}Outcome(std::move(result.GetError())); } #end #if($metadata.protocol == "ec2" || $metadata.protocol == "json" || $metadata.protocol == "query" || $metadata.protocol == "smithy-rpc-v2-cbor") - auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_${operation.http.method}); + auto result = InvokeServiceOperation(request, Aws::Http::HttpMethod::HTTP_${operation.http.method}${signerArg}); return result.IsSuccess() ? ${operation.name}Outcome(result.GetResultWithOwnership()) : ${operation.name}Outcome(std::move(result.GetError())); #elseif($metadata.protocol == "rest-json" || $metadata.protocol == "rest-xml") auto uriResolver = [&](Aws::Endpoint::ResolveEndpointOutcome& endpointResolutionOutcome) { @@ -46,14 +51,14 @@ #if($serviceModel.metadata.namespace == "S3" || $serviceModel.metadata.namespace == "S3Crt") #if(($serviceModel.metadata.namespace == "S3" || ($serviceModel.metadata.namespace == "S3Crt" && !$operation.s3CrtEnabled)) && $operation.shouldUsePropertyBag) - auto result = InvokeServiceOperation(request, uriResolver, request.GetBucket(), Aws::Http::HttpMethod::HTTP_${operation.http.method}); + auto result = InvokeServiceOperation(request, uriResolver, request.GetBucket(), Aws::Http::HttpMethod::HTTP_${operation.http.method}${signerArg}); return result.IsSuccess() ? ${operation.name}Outcome(result.GetResultWithOwnership()) : ${operation.name}Outcome(std::move(result.GetError())); #else - auto result = InvokeServiceOperation(request, uriResolver, "", Aws::Http::HttpMethod::HTTP_${operation.http.method}); + auto result = InvokeServiceOperation(request, uriResolver, "", Aws::Http::HttpMethod::HTTP_${operation.http.method}${signerArg}); return result.IsSuccess() ? ${operation.name}Outcome(result.GetResultWithOwnership()) : ${operation.name}Outcome(std::move(result.GetError())); #end #else - auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_${operation.http.method}); + auto result = InvokeServiceOperation(request, uriResolver, Aws::Http::HttpMethod::HTTP_${operation.http.method}${signerArg}); return result.IsSuccess() ? ${operation.name}Outcome(result.GetResultWithOwnership()) : ${operation.name}Outcome(std::move(result.GetError())); #end #end diff --git a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationSource.vm b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationSource.vm index 2f055aac4170..ce2f8b5e2169 100644 --- a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationSource.vm +++ b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationSource.vm @@ -1,3 +1,9 @@ +#set($serviceHasNonDefaultSigner = false) +#foreach($signerOp in $serviceModel.operations) +#if($signerOp.signerName != "Aws::Auth::SIGV4_SIGNER") +#set($serviceHasNonDefaultSigner = true) +#end +#end ${className}::InvokeOperationOutcome ${className}::InvokeServiceOperation( const AmazonWebServiceRequest& request, #if($metadata.protocol == "rest-json" || $metadata.protocol == "rest-xml") @@ -6,7 +12,8 @@ ${className}::InvokeOperationOutcome ${className}::InvokeServiceOperation( #if($serviceModel.metadata.namespace == "S3" || $serviceModel.metadata.namespace == "S3Crt") Aws::String bucketName, #end - Aws::Http::HttpMethod httpMethod + Aws::Http::HttpMethod httpMethod#if($serviceHasNonDefaultSigner), + const char* signerName#end ) const { auto operationName = request.GetServiceRequestName(); @@ -58,7 +65,7 @@ ${className}::InvokeOperationOutcome ${className}::InvokeServiceOperation( resolveUri(endpointResolutionOutcome); #end - return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, Aws::Auth::SIGV4_SIGNER)}; + return InvokeOperationOutcome{MakeRequest(request, endpointResolutionOutcome.GetResult(), httpMethod, #if($serviceHasNonDefaultSigner)signerName#{else}Aws::Auth::SIGV4_SIGNER#end)}; }, TracingUtils::SMITHY_CLIENT_DURATION_METRIC, *meter, {{TracingUtils::SMITHY_METHOD_DIMENSION, operationName},