From fa9c1782ac59835f4a7e82f792890797b7efaa79 Mon Sep 17 00:00:00 2001
From: dinghh
Date: Sun, 8 Oct 2023 17:51:41 +0800
Subject: [PATCH 01/10] [1] iam policy c++ sdk
---
.../include/aws/iam/IAMClient.h | 9 +
.../model/UpdatePolicyDescriptionRequest.h | 180 ++++++++++++++++++
.../aws-cpp-sdk-iam/source/IAMClient.cpp | 28 +++
.../model/UpdatePolicyDescriptionRequest.cpp | 41 ++++
update_policy_description.cpp | 46 +++++
5 files changed, 304 insertions(+)
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/UpdatePolicyDescriptionRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/UpdatePolicyDescriptionRequest.cpp
create mode 100644 update_policy_description.cpp
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h
index 111bfb93d..0a0e5da6a 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h
@@ -180,6 +180,7 @@ namespace Model
class DeleteLoginProfileRequest;
class DeleteOpenIDConnectProviderRequest;
class DeletePolicyRequest;
+ class UpdatePolicyDescriptionRequest;
class DeletePolicyVersionRequest;
class DeleteRoleRequest;
class DeleteRolePermissionsBoundaryRequest;
@@ -344,6 +345,7 @@ namespace Model
typedef Aws::Utils::Outcome DeleteLoginProfileOutcome;
typedef Aws::Utils::Outcome DeleteOpenIDConnectProviderOutcome;
typedef Aws::Utils::Outcome DeletePolicyOutcome;
+ typedef Aws::Utils::Outcome UpdatePolicyDescriptionOutcome;
typedef Aws::Utils::Outcome DeletePolicyVersionOutcome;
typedef Aws::Utils::Outcome DeleteRoleOutcome;
typedef Aws::Utils::Outcome DeleteRolePermissionsBoundaryOutcome;
@@ -508,6 +510,7 @@ namespace Model
typedef std::future DeleteLoginProfileOutcomeCallable;
typedef std::future DeleteOpenIDConnectProviderOutcomeCallable;
typedef std::future DeletePolicyOutcomeCallable;
+ typedef std::future UpdatePolicyDescriptionOutcomeCallable;
typedef std::future DeletePolicyVersionOutcomeCallable;
typedef std::future DeleteRoleOutcomeCallable;
typedef std::future DeleteRolePermissionsBoundaryOutcomeCallable;
@@ -676,6 +679,7 @@ namespace Model
typedef std::function&) > DeleteLoginProfileResponseReceivedHandler;
typedef std::function&) > DeleteOpenIDConnectProviderResponseReceivedHandler;
typedef std::function&) > DeletePolicyResponseReceivedHandler;
+ typedef std::function&) > UpdatePolicyDescriptionResponseReceivedHandler;
typedef std::function&) > DeletePolicyVersionResponseReceivedHandler;
typedef std::function&) > DeleteRoleResponseReceivedHandler;
typedef std::function&) > DeleteRolePermissionsBoundaryResponseReceivedHandler;
@@ -2388,6 +2392,10 @@ namespace Model
*/
virtual void DeletePolicyAsync(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+ virtual Model::UpdatePolicyDescriptionOutcome UpdatePolicyDescription(const Model::UpdatePolicyDescriptionRequest& request) const;
+ virtual Model::DeletePolicyOutcomeCallable UpdatePolicyDescriptionCallable(const Model::UpdatePolicyDescriptionRequest& request) const;
+ virtual void UpdatePolicyDescriptionAsync(const Model::UpdatePolicyDescriptionRequest& request, const UpdatePolicyDescriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
/**
* Deletes the specified version from the specified managed policy.
You
* cannot delete the default version from a policy using this operation. To delete
@@ -9598,6 +9606,7 @@ namespace Model
void DeleteLoginProfileAsyncHelper(const Model::DeleteLoginProfileRequest& request, const DeleteLoginProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteOpenIDConnectProviderAsyncHelper(const Model::DeleteOpenIDConnectProviderRequest& request, const DeleteOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeletePolicyAsyncHelper(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+ void UpdatePolicyDescriptionAsyncHelper(const Model::UpdatePolicyDescriptionRequest& request, const UpdatePolicyDescriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeletePolicyVersionAsyncHelper(const Model::DeletePolicyVersionRequest& request, const DeletePolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteRoleAsyncHelper(const Model::DeleteRoleRequest& request, const DeleteRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteRolePermissionsBoundaryAsyncHelper(const Model::DeleteRolePermissionsBoundaryRequest& request, const DeleteRolePermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context) const;
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/UpdatePolicyDescriptionRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/UpdatePolicyDescriptionRequest.h
new file mode 100644
index 000000000..aaf034702
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/UpdatePolicyDescriptionRequest.h
@@ -0,0 +1,180 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+namespace IAM
+{
+namespace Model
+{
+
+ /**
+ */
+ class AWS_IAM_API UpdatePolicyDescriptionRequest : public IAMRequest
+ {
+ public:
+ UpdatePolicyDescriptionRequest();
+
+ // Service request name is the Operation name which will send this request out,
+ // each operation should has unique request name, so that we can get operation's name from this request.
+ // Note: this is not true for response, multiple operations may have the same response name,
+ // so we can not get operation's name from response.
+ inline virtual const char* GetServiceRequestName() const override { return "UpdatePolicyDescription"; }
+
+ Aws::String SerializePayload() const override;
+
+ protected:
+ void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
+
+ public:
+
+ /**
+ * The friendly name of the policy.
IAM user, group, role, and policy
+ * names must be unique within the account. Names are not distinguished by case.
+ * For example, you cannot create resources named both "MyResource" and
+ * "myresource".
+ */
+ inline const Aws::String& GetPolicyName() const{ return m_policyName; }
+
+ /**
+ * The friendly name of the policy.
IAM user, group, role, and policy
+ * names must be unique within the account. Names are not distinguished by case.
+ * For example, you cannot create resources named both "MyResource" and
+ * "myresource".
+ */
+ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
+
+ /**
+ * The friendly name of the policy.
IAM user, group, role, and policy
+ * names must be unique within the account. Names are not distinguished by case.
+ * For example, you cannot create resources named both "MyResource" and
+ * "myresource".
+ */
+ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
+
+ /**
+ * The friendly name of the policy.
IAM user, group, role, and policy
+ * names must be unique within the account. Names are not distinguished by case.
+ * For example, you cannot create resources named both "MyResource" and
+ * "myresource".
+ */
+ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
+
+ /**
+ * The friendly name of the policy.
IAM user, group, role, and policy
+ * names must be unique within the account. Names are not distinguished by case.
+ * For example, you cannot create resources named both "MyResource" and
+ * "myresource".
+ */
+ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
+
+ /**
+ * The friendly name of the policy.
IAM user, group, role, and policy
+ * names must be unique within the account. Names are not distinguished by case.
+ * For example, you cannot create resources named both "MyResource" and
+ * "myresource".
+ */
+ inline UpdatePolicyDescriptionRequest& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
+
+ /**
+ * The friendly name of the policy.
IAM user, group, role, and policy
+ * names must be unique within the account. Names are not distinguished by case.
+ * For example, you cannot create resources named both "MyResource" and
+ * "myresource".
+ */
+ inline UpdatePolicyDescriptionRequest& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
+
+ /**
+ * The friendly name of the policy.
IAM user, group, role, and policy
+ * names must be unique within the account. Names are not distinguished by case.
+ * For example, you cannot create resources named both "MyResource" and
+ * "myresource".
+ */
+ inline UpdatePolicyDescriptionRequest& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
+
+ /**
+ * A friendly description of the policy.
Typically used to store
+ * information about the permissions defined in the policy. For example, "Grants
+ * access to production DynamoDB tables."
The policy description is
+ * immutable. After a value is assigned, it cannot be changed.
+ */
+ inline const Aws::String& GetDescription() const{ return m_description; }
+
+ /**
+ * A friendly description of the policy.
Typically used to store
+ * information about the permissions defined in the policy. For example, "Grants
+ * access to production DynamoDB tables."
The policy description is
+ * immutable. After a value is assigned, it cannot be changed.
+ */
+ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
+
+ /**
+ * A friendly description of the policy.
Typically used to store
+ * information about the permissions defined in the policy. For example, "Grants
+ * access to production DynamoDB tables."
The policy description is
+ * immutable. After a value is assigned, it cannot be changed.
+ */
+ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
+
+ /**
+ * A friendly description of the policy.
Typically used to store
+ * information about the permissions defined in the policy. For example, "Grants
+ * access to production DynamoDB tables."
The policy description is
+ * immutable. After a value is assigned, it cannot be changed.
+ */
+ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
+
+ /**
+ * A friendly description of the policy.
Typically used to store
+ * information about the permissions defined in the policy. For example, "Grants
+ * access to production DynamoDB tables."
The policy description is
+ * immutable. After a value is assigned, it cannot be changed.
+ */
+ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
+
+ /**
+ * A friendly description of the policy.
Typically used to store
+ * information about the permissions defined in the policy. For example, "Grants
+ * access to production DynamoDB tables."
The policy description is
+ * immutable. After a value is assigned, it cannot be changed.
+ */
+ inline UpdatePolicyDescriptionRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
+
+ /**
+ * A friendly description of the policy.
Typically used to store
+ * information about the permissions defined in the policy. For example, "Grants
+ * access to production DynamoDB tables."
The policy description is
+ * immutable. After a value is assigned, it cannot be changed.
+ */
+ inline UpdatePolicyDescriptionRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
+
+ /**
+ * A friendly description of the policy.
Typically used to store
+ * information about the permissions defined in the policy. For example, "Grants
+ * access to production DynamoDB tables."
The policy description is
+ * immutable. After a value is assigned, it cannot be changed.
+ */
+ inline UpdatePolicyDescriptionRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
+
+ private:
+
+ Aws::String m_policyName;
+ bool m_policyNameHasBeenSet;
+
+ Aws::String m_description;
+ bool m_descriptionHasBeenSet;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/IAMClient.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/IAMClient.cpp
index 6b385871a..eadb746f2 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/IAMClient.cpp
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/IAMClient.cpp
@@ -185,6 +185,7 @@
#include
#include
#include
+#include
using namespace Aws;
using namespace Aws::Auth;
@@ -1139,6 +1140,33 @@ void IAMClient::DeletePolicyAsyncHelper(const DeletePolicyRequest& request, cons
handler(this, request, DeletePolicy(request), context);
}
+UpdatePolicyDescriptionOutcome IAMClient::UpdatePolicyDescription(const UpdatePolicyDescriptionRequest& request) const
+{
+ Aws::Http::URI uri = m_uri;
+ Aws::StringStream ss;
+ ss << "/";
+ uri.SetPath(uri.GetPath() + ss.str());
+ return UpdatePolicyDescriptionOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST));
+}
+
+UpdatePolicyDescriptionOutcomeCallable IAMClient::UpdatePolicyDescriptionCallable(const UpdatePolicyDescriptionRequest& request) const
+{
+ auto task = Aws::MakeShared< std::packaged_task< UpdatePolicyDescriptionOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdatePolicyDescription(request); } );
+ auto packagedFunction = [task]() { (*task)(); };
+ m_executor->Submit(packagedFunction);
+ return task->get_future();
+}
+
+void IAMClient::UpdatePolicyDescriptionAsync(const UpdatePolicyDescriptionRequest& request, const UpdatePolicyDescriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const
+{
+ m_executor->Submit( [this, request, handler, context](){ this->UpdatePolicyDescriptionAsyncHelper( request, handler, context ); } );
+}
+
+void IAMClient::UpdatePolicyDescriptionAsyncHelper(const UpdatePolicyDescriptionRequest& request, const UpdatePolicyDescriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const
+{
+ handler(this, request, UpdatePolicyDescription(request), context);
+}
+
DeletePolicyVersionOutcome IAMClient::DeletePolicyVersion(const DeletePolicyVersionRequest& request) const
{
Aws::Http::URI uri = m_uri;
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/UpdatePolicyDescriptionRequest.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/UpdatePolicyDescriptionRequest.cpp
new file mode 100644
index 000000000..bb003b7c1
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/UpdatePolicyDescriptionRequest.cpp
@@ -0,0 +1,41 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include
+#include
+#include
+
+using namespace Aws::IAM::Model;
+using namespace Aws::Utils;
+
+UpdatePolicyDescriptionRequest::UpdatePolicyDescriptionRequest() :
+ m_policyNameHasBeenSet(false),
+ m_descriptionHasBeenSet(false)
+{
+}
+
+Aws::String UpdatePolicyDescriptionRequest::SerializePayload() const
+{
+ Aws::StringStream ss;
+ ss << "Action=UpdatePolicyDescription&";
+ if(m_policyNameHasBeenSet)
+ {
+ ss << "PolicyName=" << StringUtils::URLEncode(m_policyName.c_str()) << "&";
+ }
+
+ if(m_descriptionHasBeenSet)
+ {
+ ss << "Description=" << StringUtils::URLEncode(m_description.c_str()) << "&";
+ }
+
+ ss << "Version=2010-05-08";
+ return ss.str();
+}
+
+
+void UpdatePolicyDescriptionRequest::DumpBodyToUrl(Aws::Http::URI& uri ) const
+{
+ uri.SetQueryString(SerializePayload());
+}
diff --git a/update_policy_description.cpp b/update_policy_description.cpp
new file mode 100644
index 000000000..5c08f11e5
--- /dev/null
+++ b/update_policy_description.cpp
@@ -0,0 +1,46 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+using namespace Aws::IAM;
+using namespace Aws::IAM::Model;
+using namespace Aws::Utils;
+
+
+int main(int argc, char** argv)
+{
+ Aws::SDKOptions options;
+ options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;
+ InitAPI(options);
+
+ Aws::IAM::IAMClient iamClient = sugonGetIAMClient("Zv33LRIEIjMOOBXX9JmwJlfc048sfUtY", "wikiydsg0u0vmsl0tvaplkkuhh0rhgnf", "http://10.20.0.81:20482");
+
+ Aws::IAM::Model::UpdatePolicyDescriptionRequest request;
+
+ request.SetPolicyName("C_policy1");
+ request.SetDescription("update_description");
+
+ UpdatePolicyDescriptionOutcome outcome = iamClient.UpdatePolicyDescription(request);
+
+ if (!outcome.IsSuccess())
+ {
+ const Aws::IAM::IAMError &err = outcome.GetError();
+ std::cerr << "Error: UpdatePolicyDescription: " <<
+ err.GetExceptionName() << ": " << err.GetMessage() << std::endl;
+ }
+ else
+ {
+ ;
+ }
+
+ std::cout << "success" << std::endl;
+
+ Aws::ShutdownAPI(options);
+
+ return 0;
+}
--
Gitee
From ccedee4ba7569350f7885d85e5997e2b9dd2b515 Mon Sep 17 00:00:00 2001
From: dinghh
Date: Mon, 9 Oct 2023 09:38:25 +0800
Subject: [PATCH 02/10] [1] iam policy c++ sdk attach
---
attach_group_policy.cpp | 46 +++++++++++++++++++
attach_user_policy.cpp | 46 +++++++++++++++++++
.../aws/iam/model/AttachGroupPolicyRequest.h | 20 ++++----
.../aws/iam/model/AttachUserPolicyRequest.h | 20 ++++----
.../aws/iam/model/DetachGroupPolicyRequest.h | 20 ++++----
.../aws/iam/model/DetachUserPolicyRequest.h | 20 ++++----
.../source/model/AttachGroupPolicyRequest.cpp | 6 +--
.../source/model/AttachUserPolicyRequest.cpp | 6 +--
.../source/model/DetachGroupPolicyRequest.cpp | 6 +--
.../source/model/DetachUserPolicyRequest.cpp | 6 +--
detach_group_policy.cpp | 46 +++++++++++++++++++
detach_user_policy.cpp | 46 +++++++++++++++++++
12 files changed, 236 insertions(+), 52 deletions(-)
create mode 100644 attach_group_policy.cpp
create mode 100644 attach_user_policy.cpp
create mode 100644 detach_group_policy.cpp
create mode 100644 detach_user_policy.cpp
diff --git a/attach_group_policy.cpp b/attach_group_policy.cpp
new file mode 100644
index 000000000..a546247f9
--- /dev/null
+++ b/attach_group_policy.cpp
@@ -0,0 +1,46 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+using namespace Aws::IAM;
+using namespace Aws::IAM::Model;
+using namespace Aws::Utils;
+
+
+int main(int argc, char** argv)
+{
+ Aws::SDKOptions options;
+ options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;
+ InitAPI(options);
+
+ Aws::IAM::IAMClient iamClient = sugonGetIAMClient("Zv33LRIEIjMOOBXX9JmwJlfc048sfUtY", "wikiydsg0u0vmsl0tvaplkkuhh0rhgnf", "http://10.20.0.81:20482");
+
+ Aws::IAM::Model::AttachGroupPolicyRequest request;
+
+ request.SetPolicyName("policy1");
+ request.SetGroupName("group1");
+
+ AttachGroupPolicyOutcome outcome = iamClient.AttachGroupPolicy(request);
+
+ if (!outcome.IsSuccess())
+ {
+ const Aws::IAM::IAMError &err = outcome.GetError();
+ std::cerr << "Error: CreatePolicy: " <<
+ err.GetExceptionName() << ": " << err.GetMessage() << std::endl;
+ }
+ else
+ {
+ ;
+ }
+
+ std::cout << "success" << std::endl;
+
+ Aws::ShutdownAPI(options);
+
+ return 0;
+}
diff --git a/attach_user_policy.cpp b/attach_user_policy.cpp
new file mode 100644
index 000000000..a83e8be90
--- /dev/null
+++ b/attach_user_policy.cpp
@@ -0,0 +1,46 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+using namespace Aws::IAM;
+using namespace Aws::IAM::Model;
+using namespace Aws::Utils;
+
+
+int main(int argc, char** argv)
+{
+ Aws::SDKOptions options;
+ options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;
+ InitAPI(options);
+
+ Aws::IAM::IAMClient iamClient = sugonGetIAMClient("Zv33LRIEIjMOOBXX9JmwJlfc048sfUtY", "wikiydsg0u0vmsl0tvaplkkuhh0rhgnf", "http://10.20.0.81:20482");
+
+ Aws::IAM::Model::AttachUserPolicyRequest request;
+
+ request.SetPolicyName("policy1");
+ request.SetUserName("user1");
+
+ AttachUserPolicyOutcome outcome = iamClient.AttachUserPolicy(request);
+
+ if (!outcome.IsSuccess())
+ {
+ const Aws::IAM::IAMError &err = outcome.GetError();
+ std::cerr << "Error: AttachUserPolicy: " <<
+ err.GetExceptionName() << ": " << err.GetMessage() << std::endl;
+ }
+ else
+ {
+ ;
+ }
+
+ std::cout << "success" << std::endl;
+
+ Aws::ShutdownAPI(options);
+
+ return 0;
+}
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/AttachGroupPolicyRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/AttachGroupPolicyRequest.h
index 5a2b5b0e1..3c99161e1 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/AttachGroupPolicyRequest.h
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/AttachGroupPolicyRequest.h
@@ -115,7 +115,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline const Aws::String& GetPolicyArn() const{ return m_policyArn; }
+ inline const Aws::String& GetPolicyName() const{ return m_policyName; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -123,7 +123,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline bool PolicyArnHasBeenSet() const { return m_policyArnHasBeenSet; }
+ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -131,7 +131,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(const Aws::String& value) { m_policyArnHasBeenSet = true; m_policyArn = value; }
+ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -139,7 +139,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(Aws::String&& value) { m_policyArnHasBeenSet = true; m_policyArn = std::move(value); }
+ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -147,7 +147,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(const char* value) { m_policyArnHasBeenSet = true; m_policyArn.assign(value); }
+ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -155,7 +155,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline AttachGroupPolicyRequest& WithPolicyArn(const Aws::String& value) { SetPolicyArn(value); return *this;}
+ inline AttachGroupPolicyRequest& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -163,7 +163,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline AttachGroupPolicyRequest& WithPolicyArn(Aws::String&& value) { SetPolicyArn(std::move(value)); return *this;}
+ inline AttachGroupPolicyRequest& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -171,15 +171,15 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline AttachGroupPolicyRequest& WithPolicyArn(const char* value) { SetPolicyArn(value); return *this;}
+ inline AttachGroupPolicyRequest& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
private:
Aws::String m_groupName;
bool m_groupNameHasBeenSet;
- Aws::String m_policyArn;
- bool m_policyArnHasBeenSet;
+ Aws::String m_policyName;
+ bool m_policyNameHasBeenSet;
};
} // namespace Model
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/AttachUserPolicyRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/AttachUserPolicyRequest.h
index 32e820f4b..2aac6f3af 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/AttachUserPolicyRequest.h
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/AttachUserPolicyRequest.h
@@ -115,7 +115,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline const Aws::String& GetPolicyArn() const{ return m_policyArn; }
+ inline const Aws::String& GetPolicyName() const{ return m_policyName; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -123,7 +123,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline bool PolicyArnHasBeenSet() const { return m_policyArnHasBeenSet; }
+ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -131,7 +131,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(const Aws::String& value) { m_policyArnHasBeenSet = true; m_policyArn = value; }
+ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -139,7 +139,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(Aws::String&& value) { m_policyArnHasBeenSet = true; m_policyArn = std::move(value); }
+ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -147,7 +147,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(const char* value) { m_policyArnHasBeenSet = true; m_policyArn.assign(value); }
+ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -155,7 +155,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline AttachUserPolicyRequest& WithPolicyArn(const Aws::String& value) { SetPolicyArn(value); return *this;}
+ inline AttachUserPolicyRequest& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -163,7 +163,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline AttachUserPolicyRequest& WithPolicyArn(Aws::String&& value) { SetPolicyArn(std::move(value)); return *this;}
+ inline AttachUserPolicyRequest& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to attach.
@@ -171,15 +171,15 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline AttachUserPolicyRequest& WithPolicyArn(const char* value) { SetPolicyArn(value); return *this;}
+ inline AttachUserPolicyRequest& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
private:
Aws::String m_userName;
bool m_userNameHasBeenSet;
- Aws::String m_policyArn;
- bool m_policyArnHasBeenSet;
+ Aws::String m_policyName;
+ bool m_policyNameHasBeenSet;
};
} // namespace Model
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/DetachGroupPolicyRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/DetachGroupPolicyRequest.h
index 8ab132c72..0fbc42345 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/DetachGroupPolicyRequest.h
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/DetachGroupPolicyRequest.h
@@ -115,7 +115,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline const Aws::String& GetPolicyArn() const{ return m_policyArn; }
+ inline const Aws::String& GetPolicyName() const{ return m_policyName; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -123,7 +123,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline bool PolicyArnHasBeenSet() const { return m_policyArnHasBeenSet; }
+ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -131,7 +131,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(const Aws::String& value) { m_policyArnHasBeenSet = true; m_policyArn = value; }
+ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -139,7 +139,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(Aws::String&& value) { m_policyArnHasBeenSet = true; m_policyArn = std::move(value); }
+ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -147,7 +147,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(const char* value) { m_policyArnHasBeenSet = true; m_policyArn.assign(value); }
+ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -155,7 +155,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline DetachGroupPolicyRequest& WithPolicyArn(const Aws::String& value) { SetPolicyArn(value); return *this;}
+ inline DetachGroupPolicyRequest& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -163,7 +163,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline DetachGroupPolicyRequest& WithPolicyArn(Aws::String&& value) { SetPolicyArn(std::move(value)); return *this;}
+ inline DetachGroupPolicyRequest& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -171,15 +171,15 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline DetachGroupPolicyRequest& WithPolicyArn(const char* value) { SetPolicyArn(value); return *this;}
+ inline DetachGroupPolicyRequest& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
private:
Aws::String m_groupName;
bool m_groupNameHasBeenSet;
- Aws::String m_policyArn;
- bool m_policyArnHasBeenSet;
+ Aws::String m_policyName;
+ bool m_policyNameHasBeenSet;
};
} // namespace Model
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/DetachUserPolicyRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/DetachUserPolicyRequest.h
index abb86f802..d38878069 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/DetachUserPolicyRequest.h
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/DetachUserPolicyRequest.h
@@ -115,7 +115,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline const Aws::String& GetPolicyArn() const{ return m_policyArn; }
+ inline const Aws::String& GetPolicyName() const{ return m_policyName; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -123,7 +123,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline bool PolicyArnHasBeenSet() const { return m_policyArnHasBeenSet; }
+ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -131,7 +131,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(const Aws::String& value) { m_policyArnHasBeenSet = true; m_policyArn = value; }
+ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -139,7 +139,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(Aws::String&& value) { m_policyArnHasBeenSet = true; m_policyArn = std::move(value); }
+ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -147,7 +147,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline void SetPolicyArn(const char* value) { m_policyArnHasBeenSet = true; m_policyArn.assign(value); }
+ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -155,7 +155,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline DetachUserPolicyRequest& WithPolicyArn(const Aws::String& value) { SetPolicyArn(value); return *this;}
+ inline DetachUserPolicyRequest& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -163,7 +163,7 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline DetachUserPolicyRequest& WithPolicyArn(Aws::String&& value) { SetPolicyArn(std::move(value)); return *this;}
+ inline DetachUserPolicyRequest& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
/**
* The Amazon Resource Name (ARN) of the IAM policy you want to detach.
@@ -171,15 +171,15 @@ namespace Model
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
* Resource Names (ARNs) in the AWS General Reference.
*/
- inline DetachUserPolicyRequest& WithPolicyArn(const char* value) { SetPolicyArn(value); return *this;}
+ inline DetachUserPolicyRequest& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
private:
Aws::String m_userName;
bool m_userNameHasBeenSet;
- Aws::String m_policyArn;
- bool m_policyArnHasBeenSet;
+ Aws::String m_policyName;
+ bool m_policyNameHasBeenSet;
};
} // namespace Model
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/AttachGroupPolicyRequest.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/AttachGroupPolicyRequest.cpp
index de35ecd96..12b39cbec 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/AttachGroupPolicyRequest.cpp
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/AttachGroupPolicyRequest.cpp
@@ -12,7 +12,7 @@ using namespace Aws::Utils;
AttachGroupPolicyRequest::AttachGroupPolicyRequest() :
m_groupNameHasBeenSet(false),
- m_policyArnHasBeenSet(false)
+ m_policyNameHasBeenSet(false)
{
}
@@ -25,9 +25,9 @@ Aws::String AttachGroupPolicyRequest::SerializePayload() const
ss << "GroupName=" << StringUtils::URLEncode(m_groupName.c_str()) << "&";
}
- if(m_policyArnHasBeenSet)
+ if(m_policyNameHasBeenSet)
{
- ss << "PolicyArn=" << StringUtils::URLEncode(m_policyArn.c_str()) << "&";
+ ss << "PolicyName=" << StringUtils::URLEncode(m_policyName.c_str()) << "&";
}
ss << "Version=2010-05-08";
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/AttachUserPolicyRequest.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/AttachUserPolicyRequest.cpp
index a25d3be46..5b0936ae4 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/AttachUserPolicyRequest.cpp
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/AttachUserPolicyRequest.cpp
@@ -12,7 +12,7 @@ using namespace Aws::Utils;
AttachUserPolicyRequest::AttachUserPolicyRequest() :
m_userNameHasBeenSet(false),
- m_policyArnHasBeenSet(false)
+ m_policyNameHasBeenSet(false)
{
}
@@ -25,9 +25,9 @@ Aws::String AttachUserPolicyRequest::SerializePayload() const
ss << "UserName=" << StringUtils::URLEncode(m_userName.c_str()) << "&";
}
- if(m_policyArnHasBeenSet)
+ if(m_policyNameHasBeenSet)
{
- ss << "PolicyArn=" << StringUtils::URLEncode(m_policyArn.c_str()) << "&";
+ ss << "PolicyName=" << StringUtils::URLEncode(m_policyName.c_str()) << "&";
}
ss << "Version=2010-05-08";
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/DetachGroupPolicyRequest.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/DetachGroupPolicyRequest.cpp
index 4aba85f03..ed4c45fd8 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/DetachGroupPolicyRequest.cpp
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/DetachGroupPolicyRequest.cpp
@@ -12,7 +12,7 @@ using namespace Aws::Utils;
DetachGroupPolicyRequest::DetachGroupPolicyRequest() :
m_groupNameHasBeenSet(false),
- m_policyArnHasBeenSet(false)
+ m_policyNameHasBeenSet(false)
{
}
@@ -25,9 +25,9 @@ Aws::String DetachGroupPolicyRequest::SerializePayload() const
ss << "GroupName=" << StringUtils::URLEncode(m_groupName.c_str()) << "&";
}
- if(m_policyArnHasBeenSet)
+ if(m_policyNameHasBeenSet)
{
- ss << "PolicyArn=" << StringUtils::URLEncode(m_policyArn.c_str()) << "&";
+ ss << "PolicyName=" << StringUtils::URLEncode(m_policyName.c_str()) << "&";
}
ss << "Version=2010-05-08";
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/DetachUserPolicyRequest.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/DetachUserPolicyRequest.cpp
index eddd221e0..8a271362a 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/DetachUserPolicyRequest.cpp
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/DetachUserPolicyRequest.cpp
@@ -12,7 +12,7 @@ using namespace Aws::Utils;
DetachUserPolicyRequest::DetachUserPolicyRequest() :
m_userNameHasBeenSet(false),
- m_policyArnHasBeenSet(false)
+ m_policyNameHasBeenSet(false)
{
}
@@ -25,9 +25,9 @@ Aws::String DetachUserPolicyRequest::SerializePayload() const
ss << "UserName=" << StringUtils::URLEncode(m_userName.c_str()) << "&";
}
- if(m_policyArnHasBeenSet)
+ if(m_policyNameHasBeenSet)
{
- ss << "PolicyArn=" << StringUtils::URLEncode(m_policyArn.c_str()) << "&";
+ ss << "PolicyName=" << StringUtils::URLEncode(m_policyName.c_str()) << "&";
}
ss << "Version=2010-05-08";
diff --git a/detach_group_policy.cpp b/detach_group_policy.cpp
new file mode 100644
index 000000000..352bcc5aa
--- /dev/null
+++ b/detach_group_policy.cpp
@@ -0,0 +1,46 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+using namespace Aws::IAM;
+using namespace Aws::IAM::Model;
+using namespace Aws::Utils;
+
+
+int main(int argc, char** argv)
+{
+ Aws::SDKOptions options;
+ options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;
+ InitAPI(options);
+
+ Aws::IAM::IAMClient iamClient = sugonGetIAMClient("Zv33LRIEIjMOOBXX9JmwJlfc048sfUtY", "wikiydsg0u0vmsl0tvaplkkuhh0rhgnf", "http://10.20.0.81:20482");
+
+ Aws::IAM::Model::DetachGroupPolicyRequest request;
+
+ request.SetPolicyName("policy1");
+ request.SetGroupName("group1");
+
+ DetachGroupPolicyOutcome outcome = iamClient.DetachGroupPolicy(request);
+
+ if (!outcome.IsSuccess())
+ {
+ const Aws::IAM::IAMError &err = outcome.GetError();
+ std::cerr << "Error: DetachGroupPolicy: " <<
+ err.GetExceptionName() << ": " << err.GetMessage() << std::endl;
+ }
+ else
+ {
+ ;
+ }
+
+ std::cout << "success" << std::endl;
+
+ Aws::ShutdownAPI(options);
+
+ return 0;
+}
diff --git a/detach_user_policy.cpp b/detach_user_policy.cpp
new file mode 100644
index 000000000..af3c94afe
--- /dev/null
+++ b/detach_user_policy.cpp
@@ -0,0 +1,46 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+using namespace Aws::IAM;
+using namespace Aws::IAM::Model;
+using namespace Aws::Utils;
+
+
+int main(int argc, char** argv)
+{
+ Aws::SDKOptions options;
+ options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;
+ InitAPI(options);
+
+ Aws::IAM::IAMClient iamClient = sugonGetIAMClient("Zv33LRIEIjMOOBXX9JmwJlfc048sfUtY", "wikiydsg0u0vmsl0tvaplkkuhh0rhgnf", "http://10.20.0.81:20482");
+
+ Aws::IAM::Model::DetachUserPolicyRequest request;
+
+ request.SetPolicyName("policy1");
+ request.SetUserName("user1");
+
+ DetachUserPolicyOutcome outcome = iamClient.DetachUserPolicy(request);
+
+ if (!outcome.IsSuccess())
+ {
+ const Aws::IAM::IAMError &err = outcome.GetError();
+ std::cerr << "Error: DetachUserPolicy: " <<
+ err.GetExceptionName() << ": " << err.GetMessage() << std::endl;
+ }
+ else
+ {
+ ;
+ }
+
+ std::cout << "success" << std::endl;
+
+ Aws::ShutdownAPI(options);
+
+ return 0;
+}
--
Gitee
From 6b73e69bf1031148882337de9fd75455321f1c7e Mon Sep 17 00:00:00 2001
From: dinghh
Date: Mon, 9 Oct 2023 19:11:32 +0800
Subject: [PATCH 03/10] [1] iam policy c++ sdk batch_delete_policies
---
.../include/aws/iam/IAMClient.h | 13 +-
.../iam/model/BatchDeletePoliciesRequest.h | 127 +++++++++
.../aws/iam/model/BatchDeletePoliciesResult.h | 249 ++++++++++++++++++
.../include/aws/iam/model/BatchHandlePolicy.h | 185 +++++++++++++
.../aws/iam/model/BatchHandlePolicyError.h | 226 ++++++++++++++++
.../aws-cpp-sdk-iam/source/IAMClient.cpp | 30 +++
.../model/BatchDeletePoliciesRequest.cpp | 35 +++
.../model/BatchDeletePoliciesResult.cpp | 82 ++++++
.../source/model/BatchHandlePolicy.cpp | 108 ++++++++
.../source/model/BatchHandlePolicyError.cpp | 148 +++++++++++
batch_delete_policies.cpp | 64 +++++
11 files changed, 1266 insertions(+), 1 deletion(-)
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDeletePoliciesRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDeletePoliciesResult.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchHandlePolicy.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchHandlePolicyError.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDeletePoliciesRequest.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDeletePoliciesResult.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchHandlePolicy.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchHandlePolicyError.cpp
create mode 100644 batch_delete_policies.cpp
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h
index 045974489..0969cd9d5 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h
@@ -108,6 +108,7 @@
#include
#include
#include
+#include
namespace Aws
{
@@ -184,6 +185,7 @@ namespace Model
class DeleteOpenIDConnectProviderRequest;
class DeletePolicyRequest;
class UpdatePolicyDescriptionRequest;
+ class BatchDeletePoliciesRequest;
class DeletePolicyVersionRequest;
class DeleteRoleRequest;
class DeleteRolePermissionsBoundaryRequest;
@@ -354,6 +356,7 @@ namespace Model
typedef Aws::Utils::Outcome DeleteOpenIDConnectProviderOutcome;
typedef Aws::Utils::Outcome DeletePolicyOutcome;
typedef Aws::Utils::Outcome UpdatePolicyDescriptionOutcome;
+ typedef Aws::Utils::Outcome BatchDeletePoliciesOutcome;
typedef Aws::Utils::Outcome DeletePolicyVersionOutcome;
typedef Aws::Utils::Outcome DeleteRoleOutcome;
typedef Aws::Utils::Outcome DeleteRolePermissionsBoundaryOutcome;
@@ -524,6 +527,7 @@ namespace Model
typedef std::future DeleteOpenIDConnectProviderOutcomeCallable;
typedef std::future DeletePolicyOutcomeCallable;
typedef std::future UpdatePolicyDescriptionOutcomeCallable;
+ typedef std::future BatchDeletePoliciesOutcomeCallable;
typedef std::future DeletePolicyVersionOutcomeCallable;
typedef std::future DeleteRoleOutcomeCallable;
typedef std::future DeleteRolePermissionsBoundaryOutcomeCallable;
@@ -698,6 +702,7 @@ namespace Model
typedef std::function&) > DeleteOpenIDConnectProviderResponseReceivedHandler;
typedef std::function&) > DeletePolicyResponseReceivedHandler;
typedef std::function&) > UpdatePolicyDescriptionResponseReceivedHandler;
+ typedef std::function&) > BatchDeletePoliciesResponseReceivedHandler;
typedef std::function&) > DeletePolicyVersionResponseReceivedHandler;
typedef std::function&) > DeleteRoleResponseReceivedHandler;
typedef std::function&) > DeleteRolePermissionsBoundaryResponseReceivedHandler;
@@ -2427,9 +2432,14 @@ namespace Model
virtual void DeletePolicyAsync(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
virtual Model::UpdatePolicyDescriptionOutcome UpdatePolicyDescription(const Model::UpdatePolicyDescriptionRequest& request) const;
- virtual Model::DeletePolicyOutcomeCallable UpdatePolicyDescriptionCallable(const Model::UpdatePolicyDescriptionRequest& request) const;
+ virtual Model::UpdatePolicyDescriptionOutcomeCallable UpdatePolicyDescriptionCallable(const Model::UpdatePolicyDescriptionRequest& request) const;
virtual void UpdatePolicyDescriptionAsync(const Model::UpdatePolicyDescriptionRequest& request, const UpdatePolicyDescriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
+ virtual Model::BatchDeletePoliciesOutcome BatchDeletePolicies(const Model::BatchDeletePoliciesRequest& request) const;
+ virtual Model::BatchDeletePoliciesOutcomeCallable BatchDeletePoliciesCallable(const Model::BatchDeletePoliciesRequest& request) const;
+ virtual void BatchDeletePoliciesAsync(const Model::BatchDeletePoliciesRequest& request, const BatchDeletePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
/**
* Deletes the specified version from the specified managed policy.
You
* cannot delete the default version from a policy using this operation. To delete
@@ -9658,6 +9668,7 @@ namespace Model
void DeleteOpenIDConnectProviderAsyncHelper(const Model::DeleteOpenIDConnectProviderRequest& request, const DeleteOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeletePolicyAsyncHelper(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void UpdatePolicyDescriptionAsyncHelper(const Model::UpdatePolicyDescriptionRequest& request, const UpdatePolicyDescriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+ void BatchDeletePoliciesAsyncHelper(const Model::BatchDeletePoliciesRequest& request, const BatchDeletePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeletePolicyVersionAsyncHelper(const Model::DeletePolicyVersionRequest& request, const DeletePolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteRoleAsyncHelper(const Model::DeleteRoleRequest& request, const DeleteRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteRolePermissionsBoundaryAsyncHelper(const Model::DeleteRolePermissionsBoundaryRequest& request, const DeleteRolePermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context) const;
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDeletePoliciesRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDeletePoliciesRequest.h
new file mode 100644
index 000000000..edc4e5973
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDeletePoliciesRequest.h
@@ -0,0 +1,127 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+namespace IAM
+{
+namespace Model
+{
+
+ /**
+ */
+ class AWS_IAM_API BatchDeletePoliciesRequest : public IAMRequest
+ {
+ public:
+ BatchDeletePoliciesRequest();
+
+ // Service request name is the Operation name which will send this request out,
+ // each operation should has unique request name, so that we can get operation's name from this request.
+ // Note: this is not true for response, multiple operations may have the same response name,
+ // so we can not get operation's name from response.
+ inline virtual const char* GetServiceRequestName() const override { return "BatchDeletePolicies"; }
+
+ Aws::String SerializePayload() const override;
+
+ protected:
+ void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
+
+ public:
+
+ /**
+ * The name of the user to get information about.
This parameter is
+ * optional. If it is not included, it defaults to the user making the request.
+ * This parameter allows (through its regex pattern) a string of characters
+ * consisting of upper and lowercase alphanumeric characters with no spaces. You
+ * can also include any of the following characters: _+=,.@-
+ */
+ inline const Aws::String& GetPolicyDocument() const{ return m_policyDocument; }
+
+ /**
+ * The name of the user to get information about.
This parameter is
+ * optional. If it is not included, it defaults to the user making the request.
+ * This parameter allows (through its regex pattern) a string of characters
+ * consisting of upper and lowercase alphanumeric characters with no spaces. You
+ * can also include any of the following characters: _+=,.@-
+ */
+ inline bool PolicyDocumentHasBeenSet() const { return m_policyDocumentHasBeenSet; }
+
+ /**
+ * The name of the user to get information about.
This parameter is
+ * optional. If it is not included, it defaults to the user making the request.
+ * This parameter allows (through its regex pattern) a string of characters
+ * consisting of upper and lowercase alphanumeric characters with no spaces. You
+ * can also include any of the following characters: _+=,.@-
+ */
+ inline void SetPolicyDocument(const Aws::String& value) { m_policyDocumentHasBeenSet = true; m_policyDocument = value; }
+
+ /**
+ * The name of the user to get information about.
This parameter is
+ * optional. If it is not included, it defaults to the user making the request.
+ * This parameter allows (through its regex pattern) a string of characters
+ * consisting of upper and lowercase alphanumeric characters with no spaces. You
+ * can also include any of the following characters: _+=,.@-
+ */
+ inline void SetPolicyDocument(Aws::String&& value) { m_policyDocumentHasBeenSet = true; m_policyDocument = std::move(value); }
+
+ /**
+ * The name of the user to get information about.
This parameter is
+ * optional. If it is not included, it defaults to the user making the request.
+ * This parameter allows (through its regex pattern) a string of characters
+ * consisting of upper and lowercase alphanumeric characters with no spaces. You
+ * can also include any of the following characters: _+=,.@-
+ */
+ inline void SetPolicyDocument(const char* value) { m_policyDocumentHasBeenSet = true; m_policyDocument.assign(value); }
+
+ /**
+ * The name of the user to get information about.
This parameter is
+ * optional. If it is not included, it defaults to the user making the request.
+ * This parameter allows (through its regex pattern) a string of characters
+ * consisting of upper and lowercase alphanumeric characters with no spaces. You
+ * can also include any of the following characters: _+=,.@-
+ */
+ inline BatchDeletePoliciesRequest& WithPolicyDocument(const Aws::String& value) { SetPolicyDocument(value); return *this;}
+
+ /**
+ * The name of the user to get information about.
This parameter is
+ * optional. If it is not included, it defaults to the user making the request.
+ * This parameter allows (through its regex pattern) a string of characters
+ * consisting of upper and lowercase alphanumeric characters with no spaces. You
+ * can also include any of the following characters: _+=,.@-
+ */
+ inline BatchDeletePoliciesRequest& WithPolicyDocument(Aws::String&& value) { SetPolicyDocument(std::move(value)); return *this;}
+
+ /**
+ * The name of the user to get information about.
This parameter is
+ * optional. If it is not included, it defaults to the user making the request.
+ * This parameter allows (through its regex pattern) a string of characters
+ * consisting of upper and lowercase alphanumeric characters with no spaces. You
+ * can also include any of the following characters: _+=,.@-
+ */
+ inline BatchDeletePoliciesRequest& WithPolicyDocument(const char* value) { SetPolicyDocument(value); return *this;}
+
+ private:
+
+ Aws::String m_policyDocument;
+ bool m_policyDocumentHasBeenSet;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDeletePoliciesResult.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDeletePoliciesResult.h
new file mode 100644
index 000000000..b163fdd3a
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDeletePoliciesResult.h
@@ -0,0 +1,249 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+template
+class AmazonWebServiceResult;
+
+namespace Utils
+{
+namespace Xml
+{
+ class XmlDocument;
+} // namespace Xml
+} // namespace Utils
+namespace IAM
+{
+namespace Model
+{
+ /**
+ * Contains the response to a successful GetUser request.
See
+ * Also:
AWS
+ * API Reference
+ */
+ class AWS_IAM_API BatchDeletePoliciesResult
+ {
+ public:
+ BatchDeletePoliciesResult();
+ BatchDeletePoliciesResult(const Aws::AmazonWebServiceResult& result);
+ BatchDeletePoliciesResult& operator=(const Aws::AmazonWebServiceResult& result);
+
+
+ inline const ResponseMetadata& GetResponseMetadata() const{ return m_responseMetadata; }
+
+
+ inline void SetResponseMetadata(const ResponseMetadata& value) { m_responseMetadata = value; }
+
+
+ inline void SetResponseMetadata(ResponseMetadata&& value) { m_responseMetadata = std::move(value); }
+
+
+ inline BatchDeletePoliciesResult& WithResponseMetadata(const ResponseMetadata& value) { SetResponseMetadata(value); return *this;}
+
+
+ inline BatchDeletePoliciesResult& WithResponseMetadata(ResponseMetadata&& value) { SetResponseMetadata(std::move(value)); return *this;}
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline const Account& GetAccount() const{ return m_account; }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline void SetAccount(const Account& value) { m_account = value; }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline void SetAccount(Account&& value) { m_account = std::move(value); }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline BatchDeletePoliciesResult& WithAccount(const Account& value) { SetAccount(value); return *this;}
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline BatchDeletePoliciesResult& WithAccount(Account&& value) { SetAccount(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline const Aws::Vector& GetPolicyDeleted() const{ return m_policyDeleted; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyDeleted(const Aws::Vector& value) { m_policyDeleted = value; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyDeleted(Aws::Vector&& value) { m_policyDeleted = std::move(value); }
+
+ /**
+ * A list of users.
+ */
+ inline BatchDeletePoliciesResult& WithPolicyDeleted(const Aws::Vector& value) { SetPolicyDeleted(value); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchDeletePoliciesResult& WithPolicyDeleted(Aws::Vector&& value) { SetPolicyDeleted(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchDeletePoliciesResult& AddPolicyDeleted(const BatchHandlePolicy& value) { m_policyDeleted.push_back(value); return *this; }
+
+ /**
+ * A list of users.
+ */
+ inline BatchDeletePoliciesResult& AddPolicyDeleted(BatchHandlePolicy&& value) { m_policyDeleted.push_back(std::move(value)); return *this; }
+
+
+ /**
+ * A list of users.
+ */
+ inline const Aws::Vector& GetPolicyError() const{ return m_policyError; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyError(const Aws::Vector& value) { m_policyError = value; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyError(Aws::Vector&& value) { m_policyError = std::move(value); }
+
+ /**
+ * A list of users.
+ */
+ inline BatchDeletePoliciesResult& WithPolicyError(const Aws::Vector& value) { SetPolicyError(value); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchDeletePoliciesResult& WithPolicyError(Aws::Vector&& value) { SetPolicyError(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchDeletePoliciesResult& AddPolicyError(const BatchHandlePolicyError& value) { m_policyError.push_back(value); return *this; }
+
+ /**
+ * A list of users.
+ */
+ inline BatchDeletePoliciesResult& AddPolicyError(BatchHandlePolicyError&& value) { m_policyError.push_back(std::move(value)); return *this; }
+
+ private:
+
+ private:
+
+ Aws::Vector m_policyDeleted;
+
+ Aws::Vector m_policyError;
+
+ Account m_account;
+
+ ResponseMetadata m_responseMetadata;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchHandlePolicy.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchHandlePolicy.h
new file mode 100644
index 000000000..f1ae77f40
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchHandlePolicy.h
@@ -0,0 +1,185 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+namespace Utils
+{
+namespace Xml
+{
+ class XmlNode;
+} // namespace Xml
+} // namespace Utils
+namespace IAM
+{
+namespace Model
+{
+
+ /**
+ * Contains information about a managed policy.
This data type is used as
+ * a response element in the CreatePolicy, GetPolicy, and
+ * ListPolicies operations.
For more information about managed
+ * policies, refer to Managed
+ * policies and inline policies in the IAM User Guide.
See
+ * Also:
AWS API
+ * Reference
+ */
+ class AWS_IAM_API BatchHandlePolicy
+ {
+ public:
+ BatchHandlePolicy();
+ BatchHandlePolicy(const Aws::Utils::Xml::XmlNode& xmlNode);
+ BatchHandlePolicy& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
+
+ void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
+ void OutputToStream(Aws::OStream& oStream, const char* location) const;
+
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline const Aws::String& GetPolicyName() const{ return m_policyName; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicy& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicy& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicy& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
+
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline const Aws::String& GetUserName() const{ return m_userName; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline bool UserNameHasBeenSet() const { return m_userNameHasBeenSet; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetUserName(const Aws::String& value) { m_userNameHasBeenSet = true; m_userName = value; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetUserName(Aws::String&& value) { m_userNameHasBeenSet = true; m_userName = std::move(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetUserName(const char* value) { m_userNameHasBeenSet = true; m_userName.assign(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicy& WithUserName(const Aws::String& value) { SetUserName(value); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicy& WithUserName(Aws::String&& value) { SetUserName(std::move(value)); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicy& WithUserName(const char* value) { SetUserName(value); return *this;}
+
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline const Aws::String& GetGroupName() const{ return m_groupName; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline bool GroupNameHasBeenSet() const { return m_groupNameHasBeenSet; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetGroupName(const Aws::String& value) { m_groupNameHasBeenSet = true; m_groupName = value; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetGroupName(Aws::String&& value) { m_groupNameHasBeenSet = true; m_groupName = std::move(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetGroupName(const char* value) { m_groupNameHasBeenSet = true; m_groupName.assign(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicy& WithGroupName(const Aws::String& value) { SetGroupName(value); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicy& WithGroupName(Aws::String&& value) { SetGroupName(std::move(value)); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicy& WithGroupName(const char* value) { SetGroupName(value); return *this;}
+
+ private:
+ Aws::String m_policyName;
+ bool m_policyNameHasBeenSet;
+
+ Aws::String m_userName;
+ bool m_userNameHasBeenSet;
+
+ Aws::String m_groupName;
+ bool m_groupNameHasBeenSet;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchHandlePolicyError.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchHandlePolicyError.h
new file mode 100644
index 000000000..e50b741ea
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchHandlePolicyError.h
@@ -0,0 +1,226 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+namespace Utils
+{
+namespace Xml
+{
+ class XmlNode;
+} // namespace Xml
+} // namespace Utils
+namespace IAM
+{
+namespace Model
+{
+
+ /**
+ * Contains information about a managed policy.
This data type is used as
+ * a response element in the CreatePolicy, GetPolicy, and
+ * ListPolicies operations.
For more information about managed
+ * policies, refer to Managed
+ * policies and inline policies in the IAM User Guide.
See
+ * Also:
AWS API
+ * Reference
+ */
+ class AWS_IAM_API BatchHandlePolicyError
+ {
+ public:
+ BatchHandlePolicyError();
+ BatchHandlePolicyError(const Aws::Utils::Xml::XmlNode& xmlNode);
+ BatchHandlePolicyError& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
+
+ void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
+ void OutputToStream(Aws::OStream& oStream, const char* location) const;
+
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline const Aws::String& GetPolicyName() const{ return m_policyName; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicyError& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicyError& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicyError& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
+
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline const Aws::String& GetUserName() const{ return m_userName; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline bool UserNameHasBeenSet() const { return m_userNameHasBeenSet; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetUserName(const Aws::String& value) { m_userNameHasBeenSet = true; m_userName = value; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetUserName(Aws::String&& value) { m_userNameHasBeenSet = true; m_userName = std::move(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetUserName(const char* value) { m_userNameHasBeenSet = true; m_userName.assign(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicyError& WithUserName(const Aws::String& value) { SetUserName(value); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicyError& WithUserName(Aws::String&& value) { SetUserName(std::move(value)); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicyError& WithUserName(const char* value) { SetUserName(value); return *this;}
+
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline const Aws::String& GetGroupName() const{ return m_groupName; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline bool GroupNameHasBeenSet() const { return m_groupNameHasBeenSet; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetGroupName(const Aws::String& value) { m_groupNameHasBeenSet = true; m_groupName = value; }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetGroupName(Aws::String&& value) { m_groupNameHasBeenSet = true; m_groupName = std::move(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline void SetGroupName(const char* value) { m_groupNameHasBeenSet = true; m_groupName.assign(value); }
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicyError& WithGroupName(const Aws::String& value) { SetGroupName(value); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicyError& WithGroupName(Aws::String&& value) { SetGroupName(std::move(value)); return *this;}
+
+ /**
+ * The friendly name (not ARN) identifying the policy.
+ */
+ inline BatchHandlePolicyError& WithGroupName(const char* value) { SetGroupName(value); return *this;}
+
+
+ inline const Aws::String& GetCode() const{ return m_code; }
+
+ inline bool CodeHasBeenSet() const { return m_codeHasBeenSet; }
+
+ inline void SetCode(const Aws::String& value) { m_codeHasBeenSet = true; m_code = value; }
+
+ inline void SetCode(Aws::String&& value) { m_codeHasBeenSet = true; m_code = std::move(value); }
+
+ inline void SetCode(const char* value) { m_codeHasBeenSet = true; m_code.assign(value); }
+
+ inline BatchHandlePolicyError& WithCode(const Aws::String& value) { SetCode(value); return *this;}
+
+ inline BatchHandlePolicyError& WithCode(Aws::String&& value) { SetCode(std::move(value)); return *this;}
+
+ inline BatchHandlePolicyError& WithCode(const char* value) { SetCode(value); return *this;}
+
+
+
+ inline const Aws::String& GetMessage() const{ return m_message; }
+
+ inline bool MessageHasBeenSet() const { return m_messageHasBeenSet; }
+
+ inline void SetMessage(const Aws::String& value) { m_messageHasBeenSet = true; m_message = value; }
+
+ inline void SetMessage(Aws::String&& value) { m_messageHasBeenSet = true; m_message = std::move(value); }
+
+ inline void SetMessage(const char* value) { m_messageHasBeenSet = true; m_message.assign(value); }
+
+ inline BatchHandlePolicyError& WithMessage(const Aws::String& value) { SetMessage(value); return *this;}
+
+ inline BatchHandlePolicyError& WithMessage(Aws::String&& value) { SetMessage(std::move(value)); return *this;}
+
+ inline BatchHandlePolicyError& WithMessage(const char* value) { SetMessage(value); return *this;}
+
+ private:
+ Aws::String m_policyName;
+ bool m_policyNameHasBeenSet;
+
+ Aws::String m_userName;
+ bool m_userNameHasBeenSet;
+
+ Aws::String m_groupName;
+ bool m_groupNameHasBeenSet;
+
+ Aws::String m_message;
+ bool m_messageHasBeenSet;
+
+ Aws::String m_code;
+ bool m_codeHasBeenSet;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/IAMClient.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/IAMClient.cpp
index 79f8665f1..077abece6 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/IAMClient.cpp
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/IAMClient.cpp
@@ -192,6 +192,7 @@
#include
#include
#include
+#include
using namespace Aws;
using namespace Aws::Auth;
@@ -1233,6 +1234,35 @@ void IAMClient::UpdatePolicyDescriptionAsyncHelper(const UpdatePolicyDescription
handler(this, request, UpdatePolicyDescription(request), context);
}
+
+BatchDeletePoliciesOutcome IAMClient::BatchDeletePolicies(const BatchDeletePoliciesRequest& request) const
+{
+ Aws::Http::URI uri = m_uri;
+ Aws::StringStream ss;
+ ss << "/";
+ uri.SetPath(uri.GetPath() + ss.str());
+ return BatchDeletePoliciesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST));
+}
+
+BatchDeletePoliciesOutcomeCallable IAMClient::BatchDeletePoliciesCallable(const BatchDeletePoliciesRequest& request) const
+{
+ auto task = Aws::MakeShared< std::packaged_task< BatchDeletePoliciesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->BatchDeletePolicies(request); } );
+ auto packagedFunction = [task]() { (*task)(); };
+ m_executor->Submit(packagedFunction);
+ return task->get_future();
+}
+
+void IAMClient::BatchDeletePoliciesAsync(const BatchDeletePoliciesRequest& request, const BatchDeletePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const
+{
+ m_executor->Submit( [this, request, handler, context](){ this->BatchDeletePoliciesAsyncHelper( request, handler, context ); } );
+}
+
+void IAMClient::BatchDeletePoliciesAsyncHelper(const BatchDeletePoliciesRequest& request, const BatchDeletePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const
+{
+ handler(this, request, BatchDeletePolicies(request), context);
+}
+
+
DeletePolicyVersionOutcome IAMClient::DeletePolicyVersion(const DeletePolicyVersionRequest& request) const
{
Aws::Http::URI uri = m_uri;
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDeletePoliciesRequest.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDeletePoliciesRequest.cpp
new file mode 100644
index 000000000..7ccc91ff1
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDeletePoliciesRequest.cpp
@@ -0,0 +1,35 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include
+#include
+#include
+
+using namespace Aws::IAM::Model;
+using namespace Aws::Utils;
+
+BatchDeletePoliciesRequest::BatchDeletePoliciesRequest() :
+ m_policyDocumentHasBeenSet(false)
+{
+}
+
+Aws::String BatchDeletePoliciesRequest::SerializePayload() const
+{
+ Aws::StringStream ss;
+ ss << "Action=BatchDeletePolicies&";
+ if(m_policyDocumentHasBeenSet)
+ {
+ ss << "PolicyDocument=" << StringUtils::URLEncode(m_policyDocument.c_str()) << "&";
+ }
+
+ ss << "Version=2010-05-08";
+ return ss.str();
+}
+
+
+void BatchDeletePoliciesRequest::DumpBodyToUrl(Aws::Http::URI& uri ) const
+{
+ uri.SetQueryString(SerializePayload());
+}
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDeletePoliciesResult.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDeletePoliciesResult.cpp
new file mode 100644
index 000000000..0ca27e046
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDeletePoliciesResult.cpp
@@ -0,0 +1,82 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+using namespace Aws::IAM::Model;
+using namespace Aws::Utils::Xml;
+using namespace Aws::Utils::Logging;
+using namespace Aws::Utils;
+using namespace Aws;
+
+BatchDeletePoliciesResult::BatchDeletePoliciesResult()
+{
+}
+
+BatchDeletePoliciesResult::BatchDeletePoliciesResult(const Aws::AmazonWebServiceResult& result)
+{
+ *this = result;
+}
+
+BatchDeletePoliciesResult& BatchDeletePoliciesResult::operator =(const Aws::AmazonWebServiceResult& result)
+{
+ const XmlDocument& xmlDocument = result.GetPayload();
+ XmlNode rootNode = xmlDocument.GetRootElement();
+ XmlNode resultNode = rootNode;
+ if (!rootNode.IsNull() && (rootNode.GetName() != "BatchDeletePoliciesResult"))
+ {
+ resultNode = rootNode.FirstChild("BatchDeletePoliciesResult");
+ }
+
+ if(!resultNode.IsNull())
+ {
+ XmlNode accountNode = resultNode.FirstChild("Account");
+ if(!accountNode.IsNull())
+ {
+ m_account = accountNode;
+ }
+ }
+
+ if(!resultNode.IsNull())
+ {
+ XmlNode policyDeletedNode = resultNode.FirstChild("Deleted");
+ if(!policyDeletedNode.IsNull())
+ {
+ XmlNode policyDeletedMember = policyDeletedNode.FirstChild("member");
+ while(!policyDeletedMember.IsNull())
+ {
+ m_policyDeleted.push_back(policyDeletedMember);
+ policyDeletedMember = policyDeletedMember.NextNode("member");
+ }
+ }
+ }
+
+ if(!resultNode.IsNull())
+ {
+ XmlNode policyErrorNode = resultNode.FirstChild("Error");
+ if(!policyErrorNode.IsNull())
+ {
+ XmlNode policyErrorMember = policyErrorNode.FirstChild("member");
+ while(!policyErrorMember.IsNull())
+ {
+ m_policyError.push_back(policyErrorMember);
+ policyErrorMember = policyErrorMember.NextNode("member");
+ }
+ }
+ }
+
+ if (!rootNode.IsNull()) {
+ XmlNode responseMetadataNode = rootNode.FirstChild("ResponseMetadata");
+ m_responseMetadata = responseMetadataNode;
+ AWS_LOGSTREAM_DEBUG("Aws::IAM::Model::GetUserResult", "x-amzn-request-id: " << m_responseMetadata.GetRequestId() );
+ }
+ return *this;
+}
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchHandlePolicy.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchHandlePolicy.cpp
new file mode 100644
index 000000000..33e5d12ec
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchHandlePolicy.cpp
@@ -0,0 +1,108 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include
+#include
+#include
+#include
+
+#include
+
+using namespace Aws::Utils::Xml;
+using namespace Aws::Utils;
+
+namespace Aws
+{
+namespace IAM
+{
+namespace Model
+{
+
+BatchHandlePolicy::BatchHandlePolicy() :
+ m_policyNameHasBeenSet(false),
+ m_userNameHasBeenSet(false),
+ m_groupNameHasBeenSet(false)
+{
+}
+
+BatchHandlePolicy::BatchHandlePolicy(const XmlNode& xmlNode) :
+ m_policyNameHasBeenSet(false),
+ m_userNameHasBeenSet(false),
+ m_groupNameHasBeenSet(false)
+{
+ *this = xmlNode;
+}
+
+BatchHandlePolicy& BatchHandlePolicy::operator =(const XmlNode& xmlNode)
+{
+ XmlNode resultNode = xmlNode;
+
+ if(!resultNode.IsNull())
+ {
+ XmlNode policyNameNode = resultNode.FirstChild("PolicyName");
+ if(!policyNameNode.IsNull())
+ {
+ m_policyName = Aws::Utils::Xml::DecodeEscapedXmlText(policyNameNode.GetText());
+ m_policyNameHasBeenSet = true;
+ }
+
+ XmlNode userNameNode = resultNode.FirstChild("UserName");
+ if(!userNameNode.IsNull())
+ {
+ m_userName = Aws::Utils::Xml::DecodeEscapedXmlText(userNameNode.GetText());
+ m_userNameHasBeenSet = true;
+ }
+
+ XmlNode groupNameNode = resultNode.FirstChild("GroupName");
+ if(!groupNameNode.IsNull())
+ {
+ m_groupName = Aws::Utils::Xml::DecodeEscapedXmlText(groupNameNode.GetText());
+ m_groupNameHasBeenSet = true;
+ }
+ }
+
+ return *this;
+}
+
+void BatchHandlePolicy::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const
+{
+ if(m_policyNameHasBeenSet)
+ {
+ oStream << location << index << locationValue << ".PolicyName=" << StringUtils::URLEncode(m_policyName.c_str()) << "&";
+ }
+
+ if(m_userNameHasBeenSet)
+ {
+ oStream << location << index << locationValue << ".UserName=" << StringUtils::URLEncode(m_userName.c_str()) << "&";
+ }
+
+ if(m_groupNameHasBeenSet)
+ {
+ oStream << location << index << locationValue << ".GroupName=" << StringUtils::URLEncode(m_groupName.c_str()) << "&";
+ }
+
+}
+
+void BatchHandlePolicy::OutputToStream(Aws::OStream& oStream, const char* location) const
+{
+ if(m_policyNameHasBeenSet)
+ {
+ oStream << location << ".PolicyName=" << StringUtils::URLEncode(m_policyName.c_str()) << "&";
+ }
+
+ if(m_userNameHasBeenSet)
+ {
+ oStream << location << ".UserName=" << StringUtils::URLEncode(m_userName.c_str()) << "&";
+ }
+
+ if(m_groupNameHasBeenSet)
+ {
+ oStream << location << ".GroupName=" << StringUtils::URLEncode(m_groupName.c_str()) << "&";
+ }
+}
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchHandlePolicyError.cpp b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchHandlePolicyError.cpp
new file mode 100644
index 000000000..e87b89c0e
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchHandlePolicyError.cpp
@@ -0,0 +1,148 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include
+#include
+#include
+#include
+
+#include
+
+using namespace Aws::Utils::Xml;
+using namespace Aws::Utils;
+
+namespace Aws
+{
+namespace IAM
+{
+namespace Model
+{
+
+BatchHandlePolicyError::BatchHandlePolicyError() :
+ m_policyNameHasBeenSet(false),
+ m_userNameHasBeenSet(false),
+ m_groupNameHasBeenSet(false),
+ m_codeHasBeenSet(false),
+ m_messageHasBeenSet(false)
+{
+}
+
+BatchHandlePolicyError::BatchHandlePolicyError(const XmlNode& xmlNode) :
+ m_policyNameHasBeenSet(false),
+ m_userNameHasBeenSet(false),
+ m_groupNameHasBeenSet(false),
+ m_codeHasBeenSet(false),
+ m_messageHasBeenSet(false)
+{
+ *this = xmlNode;
+}
+
+BatchHandlePolicyError& BatchHandlePolicyError::operator =(const XmlNode& xmlNode)
+{
+ XmlNode resultNode = xmlNode;
+
+ if(!resultNode.IsNull())
+ {
+ XmlNode policyNameNode = resultNode.FirstChild("PolicyName");
+ if(!policyNameNode.IsNull())
+ {
+ m_policyName = Aws::Utils::Xml::DecodeEscapedXmlText(policyNameNode.GetText());
+ m_policyNameHasBeenSet = true;
+ }
+
+ XmlNode userNameNode = resultNode.FirstChild("UserName");
+ if(!userNameNode.IsNull())
+ {
+ m_userName = Aws::Utils::Xml::DecodeEscapedXmlText(userNameNode.GetText());
+ m_userNameHasBeenSet = true;
+ }
+
+ XmlNode groupNameNode = resultNode.FirstChild("GroupName");
+ if(!groupNameNode.IsNull())
+ {
+ m_groupName = Aws::Utils::Xml::DecodeEscapedXmlText(groupNameNode.GetText());
+ m_groupNameHasBeenSet = true;
+ }
+
+ XmlNode codeNode = resultNode.FirstChild("Code");
+ if(!codeNode.IsNull())
+ {
+ m_code = Aws::Utils::Xml::DecodeEscapedXmlText(codeNode.GetText());
+ m_codeHasBeenSet = true;
+ }
+
+ XmlNode messageNode = resultNode.FirstChild("Message");
+ if(!messageNode.IsNull())
+ {
+ m_message = Aws::Utils::Xml::DecodeEscapedXmlText(messageNode.GetText());
+ m_messageHasBeenSet = true;
+ }
+
+ }
+
+ return *this;
+}
+
+void BatchHandlePolicyError::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const
+{
+ if(m_policyNameHasBeenSet)
+ {
+ oStream << location << index << locationValue << ".PolicyName=" << StringUtils::URLEncode(m_policyName.c_str()) << "&";
+ }
+
+ if(m_userNameHasBeenSet)
+ {
+ oStream << location << index << locationValue << ".UserName=" << StringUtils::URLEncode(m_userName.c_str()) << "&";
+ }
+
+ if(m_groupNameHasBeenSet)
+ {
+ oStream << location << index << locationValue << ".GroupName=" << StringUtils::URLEncode(m_groupName.c_str()) << "&";
+ }
+
+ if(m_codeHasBeenSet)
+ {
+ oStream << location << index << locationValue << ".Code=" << StringUtils::URLEncode(m_code.c_str()) << "&";
+ }
+
+ if(m_messageHasBeenSet)
+ {
+ oStream << location << index << locationValue << ".Message=" << StringUtils::URLEncode(m_message.c_str()) << "&";
+ }
+
+}
+
+void BatchHandlePolicyError::OutputToStream(Aws::OStream& oStream, const char* location) const
+{
+ if(m_policyNameHasBeenSet)
+ {
+ oStream << location << ".PolicyName=" << StringUtils::URLEncode(m_policyName.c_str()) << "&";
+ }
+
+ if(m_userNameHasBeenSet)
+ {
+ oStream << location << ".UserName=" << StringUtils::URLEncode(m_userName.c_str()) << "&";
+ }
+
+ if(m_groupNameHasBeenSet)
+ {
+ oStream << location << ".GroupName=" << StringUtils::URLEncode(m_groupName.c_str()) << "&";
+ }
+
+ if(m_codeHasBeenSet)
+ {
+ oStream << location << ".Code=" << StringUtils::URLEncode(m_code.c_str()) << "&";
+ }
+
+ if(m_messageHasBeenSet)
+ {
+ oStream << location << ".Message=" << StringUtils::URLEncode(m_message.c_str()) << "&";
+ }
+
+}
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/batch_delete_policies.cpp b/batch_delete_policies.cpp
new file mode 100644
index 000000000..bdf19ffe5
--- /dev/null
+++ b/batch_delete_policies.cpp
@@ -0,0 +1,64 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+using namespace Aws::IAM;
+using namespace Aws::IAM::Model;
+using namespace Aws::Utils;
+
+
+int main(int argc, char** argv)
+{
+ Aws::SDKOptions options;
+ options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;
+ InitAPI(options);
+
+ Aws::IAM::IAMClient iamClient = sugonGetIAMClient("Zv33LRIEIjMOOBXX9JmwJlfc048sfUtY", "wikiydsg0u0vmsl0tvaplkkuhh0rhgnf", "http://10.20.0.81:20482");
+
+ Aws::IAM::Model::BatchDeletePoliciesRequest request;
+
+ request.SetPolicyDocument("{\"Name\":[\"policy1\",\"policy2\",\"policy3\"]}");
+
+ BatchDeletePoliciesOutcome outcome = iamClient.BatchDeletePolicies(request);
+
+ if (!outcome.IsSuccess())
+ {
+ const Aws::IAM::IAMError &err = outcome.GetError();
+ std::cerr << "Error: BatchDeletePolicies: " <<
+ err.GetExceptionName() << ": " << err.GetMessage() << std::endl;
+ }
+ else
+ {
+ Aws::IAM::Model::Account account= outcome.GetResult().GetAccount();
+ std::cout< PolicyDeleted= outcome.GetResult().GetPolicyDeleted();
+ for (int i = 0; i < PolicyDeleted.size(); i++) {
+ std::cout< PolicyError= outcome.GetResult().GetPolicyError();
+ for (int i = 0; i < PolicyError.size(); i++) {
+ std::cout<
Date: Tue, 10 Oct 2023 14:48:40 +0800
Subject: [PATCH 04/10] [1] iam policy c++ sdk batch_handle_policy
---
.../include/aws/iam/IAMClient.h | 89 +++++++
.../model/BatchAttachPoliciesToGroupRequest.h | 81 ++++++
.../model/BatchAttachPoliciesToGroupResult.h | 249 ++++++++++++++++++
.../model/BatchAttachPoliciesToUserRequest.h | 81 ++++++
.../model/BatchAttachPoliciesToUserResult.h | 249 ++++++++++++++++++
.../BatchAttachPolicyToMultiGroupsRequest.h | 81 ++++++
.../BatchAttachPolicyToMultiGroupsResult.h | 249 ++++++++++++++++++
.../BatchAttachPolicyToMultiUsersRequest.h | 81 ++++++
.../BatchAttachPolicyToMultiUsersResult.h | 249 ++++++++++++++++++
.../BatchDetachPoliciesFromGroupRequest.h | 81 ++++++
.../BatchDetachPoliciesFromGroupResult.h | 249 ++++++++++++++++++
.../BatchDetachPoliciesFromUserRequest.h | 81 ++++++
.../model/BatchDetachPoliciesFromUserResult.h | 249 ++++++++++++++++++
.../BatchDetachPolicyFromMultiGroupsRequest.h | 81 ++++++
.../BatchDetachPolicyFromMultiGroupsResult.h | 249 ++++++++++++++++++
.../BatchDetachPolicyFromMultiUsersRequest.h | 81 ++++++
.../BatchDetachPolicyFromMultiUsersResult.h | 249 ++++++++++++++++++
.../aws-cpp-sdk-iam/source/IAMClient.cpp | 229 ++++++++++++++++
.../BatchAttachPoliciesToGroupRequest.cpp | 41 +++
.../BatchAttachPoliciesToGroupResult.cpp | 82 ++++++
.../BatchAttachPoliciesToUserRequest.cpp | 41 +++
.../model/BatchAttachPoliciesToUserResult.cpp | 82 ++++++
.../BatchAttachPolicyToMultiGroupsRequest.cpp | 41 +++
.../BatchAttachPolicyToMultiGroupsResult.cpp | 82 ++++++
.../BatchAttachPolicyToMultiUsersRequest.cpp | 41 +++
.../BatchAttachPolicyToMultiUsersResult.cpp | 82 ++++++
.../BatchDetachPoliciesFromGroupRequest.cpp | 41 +++
.../BatchDetachPoliciesFromGroupResult.cpp | 82 ++++++
.../BatchDetachPoliciesFromUserRequest.cpp | 41 +++
.../BatchDetachPoliciesFromUserResult.cpp | 82 ++++++
...atchDetachPolicyFromMultiGroupsRequest.cpp | 41 +++
...BatchDetachPolicyFromMultiGroupsResult.cpp | 82 ++++++
...BatchDetachPolicyFromMultiUsersRequest.cpp | 41 +++
.../BatchDetachPolicyFromMultiUsersResult.cpp | 82 ++++++
34 files changed, 3942 insertions(+)
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToGroupRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToGroupResult.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToUserRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToUserResult.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiGroupsRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiGroupsResult.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiUsersRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiUsersResult.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDetachPoliciesFromGroupRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDetachPoliciesFromGroupResult.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDetachPoliciesFromUserRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDetachPoliciesFromUserResult.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDetachPolicyFromMultiGroupsRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDetachPolicyFromMultiGroupsResult.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDetachPolicyFromMultiUsersRequest.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchDetachPolicyFromMultiUsersResult.h
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchAttachPoliciesToGroupRequest.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchAttachPoliciesToGroupResult.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchAttachPoliciesToUserRequest.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchAttachPoliciesToUserResult.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchAttachPolicyToMultiGroupsRequest.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchAttachPolicyToMultiGroupsResult.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchAttachPolicyToMultiUsersRequest.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchAttachPolicyToMultiUsersResult.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDetachPoliciesFromGroupRequest.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDetachPoliciesFromGroupResult.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDetachPoliciesFromUserRequest.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDetachPoliciesFromUserResult.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDetachPolicyFromMultiGroupsRequest.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDetachPolicyFromMultiGroupsResult.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDetachPolicyFromMultiUsersRequest.cpp
create mode 100644 aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/source/model/BatchDetachPolicyFromMultiUsersResult.cpp
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h
index 0969cd9d5..81a866e78 100644
--- a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/IAMClient.h
@@ -109,6 +109,14 @@
#include
#include
#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
namespace Aws
{
@@ -186,6 +194,14 @@ namespace Model
class DeletePolicyRequest;
class UpdatePolicyDescriptionRequest;
class BatchDeletePoliciesRequest;
+ class BatchAttachPoliciesToUserRequest;
+ class BatchAttachPoliciesToGroupRequest;
+ class BatchDetachPoliciesFromUserRequest;
+ class BatchDetachPoliciesFromGroupRequest;
+ class BatchAttachPolicyToMultiUsersRequest;
+ class BatchAttachPolicyToMultiGroupsRequest;
+ class BatchDetachPolicyFromMultiUsersRequest;
+ class BatchDetachPolicyFromMultiGroupsRequest;
class DeletePolicyVersionRequest;
class DeleteRoleRequest;
class DeleteRolePermissionsBoundaryRequest;
@@ -357,6 +373,14 @@ namespace Model
typedef Aws::Utils::Outcome DeletePolicyOutcome;
typedef Aws::Utils::Outcome UpdatePolicyDescriptionOutcome;
typedef Aws::Utils::Outcome BatchDeletePoliciesOutcome;
+ typedef Aws::Utils::Outcome BatchAttachPoliciesToUserOutcome;
+ typedef Aws::Utils::Outcome BatchAttachPoliciesToGroupOutcome;
+ typedef Aws::Utils::Outcome BatchDetachPoliciesFromUserOutcome;
+ typedef Aws::Utils::Outcome BatchDetachPoliciesFromGroupOutcome;
+ typedef Aws::Utils::Outcome BatchAttachPolicyToMultiUsersOutcome;
+ typedef Aws::Utils::Outcome BatchAttachPolicyToMultiGroupsOutcome;
+ typedef Aws::Utils::Outcome BatchDetachPolicyFromMultiUsersOutcome;
+ typedef Aws::Utils::Outcome BatchDetachPolicyFromMultiGroupsOutcome;
typedef Aws::Utils::Outcome DeletePolicyVersionOutcome;
typedef Aws::Utils::Outcome DeleteRoleOutcome;
typedef Aws::Utils::Outcome DeleteRolePermissionsBoundaryOutcome;
@@ -528,6 +552,14 @@ namespace Model
typedef std::future DeletePolicyOutcomeCallable;
typedef std::future UpdatePolicyDescriptionOutcomeCallable;
typedef std::future BatchDeletePoliciesOutcomeCallable;
+ typedef std::future BatchAttachPoliciesToUserOutcomeCallable;
+ typedef std::future BatchAttachPoliciesToGroupOutcomeCallable;
+ typedef std::future BatchDetachPoliciesFromUserOutcomeCallable;
+ typedef std::future BatchDetachPoliciesFromGroupOutcomeCallable;
+ typedef std::future BatchAttachPolicyToMultiUsersOutcomeCallable;
+ typedef std::future BatchAttachPolicyToMultiGroupsOutcomeCallable;
+ typedef std::future BatchDetachPolicyFromMultiUsersOutcomeCallable;
+ typedef std::future BatchDetachPolicyFromMultiGroupsOutcomeCallable;
typedef std::future DeletePolicyVersionOutcomeCallable;
typedef std::future DeleteRoleOutcomeCallable;
typedef std::future DeleteRolePermissionsBoundaryOutcomeCallable;
@@ -703,6 +735,19 @@ namespace Model
typedef std::function&) > DeletePolicyResponseReceivedHandler;
typedef std::function&) > UpdatePolicyDescriptionResponseReceivedHandler;
typedef std::function&) > BatchDeletePoliciesResponseReceivedHandler;
+
+ typedef std::function&) > BatchAttachPoliciesToUserResponseReceivedHandler;
+ typedef std::function&) > BatchAttachPoliciesToGroupResponseReceivedHandler;
+
+ typedef std::function&) > BatchDetachPoliciesFromUserResponseReceivedHandler;
+ typedef std::function&) > BatchDetachPoliciesFromGroupResponseReceivedHandler;
+
+ typedef std::function&) > BatchAttachPolicyToMultiUsersResponseReceivedHandler;
+ typedef std::function&) > BatchAttachPolicyToMultiGroupsResponseReceivedHandler;
+
+ typedef std::function&) > BatchDetachPolicyFromMultiUsersResponseReceivedHandler;
+ typedef std::function&) > BatchDetachPolicyFromMultiGroupsResponseReceivedHandler;
+
typedef std::function&) > DeletePolicyVersionResponseReceivedHandler;
typedef std::function&) > DeleteRoleResponseReceivedHandler;
typedef std::function&) > DeleteRolePermissionsBoundaryResponseReceivedHandler;
@@ -2440,6 +2485,39 @@ namespace Model
virtual Model::BatchDeletePoliciesOutcomeCallable BatchDeletePoliciesCallable(const Model::BatchDeletePoliciesRequest& request) const;
virtual void BatchDeletePoliciesAsync(const Model::BatchDeletePoliciesRequest& request, const BatchDeletePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
+ virtual Model::BatchAttachPoliciesToUserOutcome BatchAttachPoliciesToUser(const Model::BatchAttachPoliciesToUserRequest& request) const;
+ virtual Model::BatchAttachPoliciesToUserOutcomeCallable BatchAttachPoliciesToUserCallable(const Model::BatchAttachPoliciesToUserRequest& request) const;
+ virtual void BatchAttachPoliciesToUserAsync(const Model::BatchAttachPoliciesToUserRequest& request, const BatchAttachPoliciesToUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
+ virtual Model::BatchAttachPoliciesToGroupOutcome BatchAttachPoliciesToGroup(const Model::BatchAttachPoliciesToGroupRequest& request) const;
+ virtual Model::BatchAttachPoliciesToGroupOutcomeCallable BatchAttachPoliciesToGroupCallable(const Model::BatchAttachPoliciesToGroupRequest& request) const;
+ virtual void BatchAttachPoliciesToGroupAsync(const Model::BatchAttachPoliciesToGroupRequest& request, const BatchAttachPoliciesToGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
+ virtual Model::BatchDetachPoliciesFromUserOutcome BatchDetachPoliciesFromUser(const Model::BatchDetachPoliciesFromUserRequest& request) const;
+ virtual Model::BatchDetachPoliciesFromUserOutcomeCallable BatchDetachPoliciesFromUserCallable(const Model::BatchDetachPoliciesFromUserRequest& request) const;
+ virtual void BatchDetachPoliciesFromUserAsync(const Model::BatchDetachPoliciesFromUserRequest& request, const BatchDetachPoliciesFromUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
+ virtual Model::BatchDetachPoliciesFromGroupOutcome BatchDetachPoliciesFromGroup(const Model::BatchDetachPoliciesFromGroupRequest& request) const;
+ virtual Model::BatchDetachPoliciesFromGroupOutcomeCallable BatchDetachPoliciesFromGroupCallable(const Model::BatchDetachPoliciesFromGroupRequest& request) const;
+ virtual void BatchDetachPoliciesFromGroupAsync(const Model::BatchDetachPoliciesFromGroupRequest& request, const BatchDetachPoliciesFromGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
+ virtual Model::BatchAttachPolicyToMultiUsersOutcome BatchAttachPolicyToMultiUsers(const Model::BatchAttachPolicyToMultiUsersRequest& request) const;
+ virtual Model::BatchAttachPolicyToMultiUsersOutcomeCallable BatchAttachPolicyToMultiUsersCallable(const Model::BatchAttachPolicyToMultiUsersRequest& request) const;
+ virtual void BatchAttachPolicyToMultiUsersAsync(const Model::BatchAttachPolicyToMultiUsersRequest& request, const BatchAttachPolicyToMultiUsersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
+ virtual Model::BatchAttachPolicyToMultiGroupsOutcome BatchAttachPolicyToMultiGroups(const Model::BatchAttachPolicyToMultiGroupsRequest& request) const;
+ virtual Model::BatchAttachPolicyToMultiGroupsOutcomeCallable BatchAttachPolicyToMultiGroupsCallable(const Model::BatchAttachPolicyToMultiGroupsRequest& request) const;
+ virtual void BatchAttachPolicyToMultiGroupsAsync(const Model::BatchAttachPolicyToMultiGroupsRequest& request, const BatchAttachPolicyToMultiGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
+ virtual Model::BatchDetachPolicyFromMultiUsersOutcome BatchDetachPolicyFromMultiUsers(const Model::BatchDetachPolicyFromMultiUsersRequest& request) const;
+ virtual Model::BatchDetachPolicyFromMultiUsersOutcomeCallable BatchDetachPolicyFromMultiUsersCallable(const Model::BatchDetachPolicyFromMultiUsersRequest& request) const;
+ virtual void BatchDetachPolicyFromMultiUsersAsync(const Model::BatchDetachPolicyFromMultiUsersRequest& request, const BatchDetachPolicyFromMultiUsersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
+ virtual Model::BatchDetachPolicyFromMultiGroupsOutcome BatchDetachPolicyFromMultiGroups(const Model::BatchDetachPolicyFromMultiGroupsRequest& request) const;
+ virtual Model::BatchDetachPolicyFromMultiGroupsOutcomeCallable BatchDetachPolicyFromMultiGroupsCallable(const Model::BatchDetachPolicyFromMultiGroupsRequest& request) const;
+ virtual void BatchDetachPolicyFromMultiGroupsAsync(const Model::BatchDetachPolicyFromMultiGroupsRequest& request, const BatchDetachPolicyFromMultiGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
+
/**
* Deletes the specified version from the specified managed policy.
You
* cannot delete the default version from a policy using this operation. To delete
@@ -9669,6 +9747,17 @@ namespace Model
void DeletePolicyAsyncHelper(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void UpdatePolicyDescriptionAsyncHelper(const Model::UpdatePolicyDescriptionRequest& request, const UpdatePolicyDescriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void BatchDeletePoliciesAsyncHelper(const Model::BatchDeletePoliciesRequest& request, const BatchDeletePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+
+ void BatchAttachPoliciesToUserAsyncHelper(const Model::BatchAttachPoliciesToUserRequest& request, const BatchAttachPoliciesToUserResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+ void BatchAttachPoliciesToGroupAsyncHelper(const Model::BatchAttachPoliciesToGroupRequest& request, const BatchAttachPoliciesToGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+ void BatchDetachPoliciesFromUserAsyncHelper(const Model::BatchDetachPoliciesFromUserRequest& request, const BatchDetachPoliciesFromUserResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+ void BatchDetachPoliciesFromGroupAsyncHelper(const Model::BatchDetachPoliciesFromGroupRequest& request, const BatchDetachPoliciesFromGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+
+ void BatchAttachPolicyToMultiUsersAsyncHelper(const Model::BatchAttachPolicyToMultiUsersRequest& request, const BatchAttachPolicyToMultiUsersResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+ void BatchAttachPolicyToMultiGroupsAsyncHelper(const Model::BatchAttachPolicyToMultiGroupsRequest& request, const BatchAttachPolicyToMultiGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+ void BatchDetachPolicyFromMultiUsersAsyncHelper(const Model::BatchDetachPolicyFromMultiUsersRequest& request, const BatchDetachPolicyFromMultiUsersResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+ void BatchDetachPolicyFromMultiGroupsAsyncHelper(const Model::BatchDetachPolicyFromMultiGroupsRequest& request, const BatchDetachPolicyFromMultiGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
+
void DeletePolicyVersionAsyncHelper(const Model::DeletePolicyVersionRequest& request, const DeletePolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteRoleAsyncHelper(const Model::DeleteRoleRequest& request, const DeleteRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteRolePermissionsBoundaryAsyncHelper(const Model::DeleteRolePermissionsBoundaryRequest& request, const DeleteRolePermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context) const;
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToGroupRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToGroupRequest.h
new file mode 100644
index 000000000..79085dc07
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToGroupRequest.h
@@ -0,0 +1,81 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+namespace IAM
+{
+namespace Model
+{
+
+ /**
+ */
+ class AWS_IAM_API BatchAttachPoliciesToGroupRequest : public IAMRequest
+ {
+ public:
+ BatchAttachPoliciesToGroupRequest();
+
+ // Service request name is the Operation name which will send this request out,
+ // each operation should has unique request name, so that we can get operation's name from this request.
+ // Note: this is not true for response, multiple operations may have the same response name,
+ // so we can not get operation's name from response.
+ inline virtual const char* GetServiceRequestName() const override { return "BatchAttachPoliciesToGroup"; }
+
+ Aws::String SerializePayload() const override;
+
+ protected:
+ void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
+
+ public:
+ inline const Aws::String& GetPolicyDocument() const{ return m_policyDocument; }
+
+ inline bool PolicyDocumentHasBeenSet() const { return m_policyDocumentHasBeenSet; }
+
+ inline void SetPolicyDocument(const Aws::String& value) { m_policyDocumentHasBeenSet = true; m_policyDocument = value; }
+
+ inline void SetPolicyDocument(Aws::String&& value) { m_policyDocumentHasBeenSet = true; m_policyDocument = std::move(value); }
+
+ inline void SetPolicyDocument(const char* value) { m_policyDocumentHasBeenSet = true; m_policyDocument.assign(value); }
+
+ inline BatchAttachPoliciesToGroupRequest& WithPolicyDocument(const Aws::String& value) { SetPolicyDocument(value); return *this;}
+
+ inline BatchAttachPoliciesToGroupRequest& WithPolicyDocument(Aws::String&& value) { SetPolicyDocument(std::move(value)); return *this;}
+
+ inline BatchAttachPoliciesToGroupRequest& WithPolicyDocument(const char* value) { SetPolicyDocument(value); return *this;}
+
+
+ inline const Aws::String& GetGroupName() const{ return m_groupName; }
+
+ inline bool GroupNameHasBeenSet() const { return m_groupNameHasBeenSet; }
+
+ inline void SetGroupName(const Aws::String& value) { m_groupNameHasBeenSet = true; m_groupName = value; }
+
+ inline void SetGroupName(Aws::String&& value) { m_groupNameHasBeenSet = true; m_groupName = std::move(value); }
+
+ inline void SetGroupName(const char* value) { m_groupNameHasBeenSet = true; m_groupName.assign(value); }
+
+ inline BatchAttachPoliciesToGroupRequest& WithGroupName(const Aws::String& value) { SetGroupName(value); return *this;}
+
+ inline BatchAttachPoliciesToGroupRequest& WithGroupName(Aws::String&& value) { SetGroupName(std::move(value)); return *this;}
+
+ inline BatchAttachPoliciesToGroupRequest& WithGroupName(const char* value) { SetGroupName(value); return *this;}
+
+ private:
+ Aws::String m_policyDocument;
+ bool m_policyDocumentHasBeenSet;
+
+ Aws::String m_groupName;
+ bool m_groupNameHasBeenSet;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToGroupResult.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToGroupResult.h
new file mode 100644
index 000000000..4d4574c4b
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToGroupResult.h
@@ -0,0 +1,249 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+template
+class AmazonWebServiceResult;
+
+namespace Utils
+{
+namespace Xml
+{
+ class XmlDocument;
+} // namespace Xml
+} // namespace Utils
+namespace IAM
+{
+namespace Model
+{
+ /**
+ * Contains the response to a successful GetUser request.
See
+ * Also:
AWS
+ * API Reference
+ */
+ class AWS_IAM_API BatchAttachPoliciesToGroupResult
+ {
+ public:
+ BatchAttachPoliciesToGroupResult();
+ BatchAttachPoliciesToGroupResult(const Aws::AmazonWebServiceResult& result);
+ BatchAttachPoliciesToGroupResult& operator=(const Aws::AmazonWebServiceResult& result);
+
+
+ inline const ResponseMetadata& GetResponseMetadata() const{ return m_responseMetadata; }
+
+
+ inline void SetResponseMetadata(const ResponseMetadata& value) { m_responseMetadata = value; }
+
+
+ inline void SetResponseMetadata(ResponseMetadata&& value) { m_responseMetadata = std::move(value); }
+
+
+ inline BatchAttachPoliciesToGroupResult& WithResponseMetadata(const ResponseMetadata& value) { SetResponseMetadata(value); return *this;}
+
+
+ inline BatchAttachPoliciesToGroupResult& WithResponseMetadata(ResponseMetadata&& value) { SetResponseMetadata(std::move(value)); return *this;}
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline const Account& GetAccount() const{ return m_account; }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline void SetAccount(const Account& value) { m_account = value; }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline void SetAccount(Account&& value) { m_account = std::move(value); }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline BatchAttachPoliciesToGroupResult& WithAccount(const Account& value) { SetAccount(value); return *this;}
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline BatchAttachPoliciesToGroupResult& WithAccount(Account&& value) { SetAccount(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline const Aws::Vector& GetPolicyAttached() const{ return m_policyAttached; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyAttached(const Aws::Vector& value) { m_policyAttached = value; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyAttached(Aws::Vector&& value) { m_policyAttached = std::move(value); }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToGroupResult& WithPolicyAttached(const Aws::Vector& value) { SetPolicyAttached(value); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToGroupResult& WithPolicyAttached(Aws::Vector&& value) { SetPolicyAttached(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToGroupResult& AddPolicyAttached(const BatchHandlePolicy& value) { m_policyAttached.push_back(value); return *this; }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToGroupResult& AddPolicyAttached(BatchHandlePolicy&& value) { m_policyAttached.push_back(std::move(value)); return *this; }
+
+
+ /**
+ * A list of users.
+ */
+ inline const Aws::Vector& GetPolicyError() const{ return m_policyError; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyError(const Aws::Vector& value) { m_policyError = value; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyError(Aws::Vector&& value) { m_policyError = std::move(value); }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToGroupResult& WithPolicyError(const Aws::Vector& value) { SetPolicyError(value); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToGroupResult& WithPolicyError(Aws::Vector&& value) { SetPolicyError(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToGroupResult& AddPolicyError(const BatchHandlePolicyError& value) { m_policyError.push_back(value); return *this; }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToGroupResult& AddPolicyError(BatchHandlePolicyError&& value) { m_policyError.push_back(std::move(value)); return *this; }
+
+ private:
+
+ private:
+
+ Aws::Vector m_policyAttached;
+
+ Aws::Vector m_policyError;
+
+ Account m_account;
+
+ ResponseMetadata m_responseMetadata;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToUserRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToUserRequest.h
new file mode 100644
index 000000000..3e0dfdcfa
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToUserRequest.h
@@ -0,0 +1,81 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+namespace IAM
+{
+namespace Model
+{
+
+ /**
+ */
+ class AWS_IAM_API BatchAttachPoliciesToUserRequest : public IAMRequest
+ {
+ public:
+ BatchAttachPoliciesToUserRequest();
+
+ // Service request name is the Operation name which will send this request out,
+ // each operation should has unique request name, so that we can get operation's name from this request.
+ // Note: this is not true for response, multiple operations may have the same response name,
+ // so we can not get operation's name from response.
+ inline virtual const char* GetServiceRequestName() const override { return "BatchAttachPoliciesToUser"; }
+
+ Aws::String SerializePayload() const override;
+
+ protected:
+ void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
+
+ public:
+ inline const Aws::String& GetPolicyDocument() const{ return m_policyDocument; }
+
+ inline bool PolicyDocumentHasBeenSet() const { return m_policyDocumentHasBeenSet; }
+
+ inline void SetPolicyDocument(const Aws::String& value) { m_policyDocumentHasBeenSet = true; m_policyDocument = value; }
+
+ inline void SetPolicyDocument(Aws::String&& value) { m_policyDocumentHasBeenSet = true; m_policyDocument = std::move(value); }
+
+ inline void SetPolicyDocument(const char* value) { m_policyDocumentHasBeenSet = true; m_policyDocument.assign(value); }
+
+ inline BatchAttachPoliciesToUserRequest& WithPolicyDocument(const Aws::String& value) { SetPolicyDocument(value); return *this;}
+
+ inline BatchAttachPoliciesToUserRequest& WithPolicyDocument(Aws::String&& value) { SetPolicyDocument(std::move(value)); return *this;}
+
+ inline BatchAttachPoliciesToUserRequest& WithPolicyDocument(const char* value) { SetPolicyDocument(value); return *this;}
+
+
+ inline const Aws::String& GetUserName() const{ return m_userName; }
+
+ inline bool UserNameHasBeenSet() const { return m_userNameHasBeenSet; }
+
+ inline void SetUserName(const Aws::String& value) { m_userNameHasBeenSet = true; m_userName = value; }
+
+ inline void SetUserName(Aws::String&& value) { m_userNameHasBeenSet = true; m_userName = std::move(value); }
+
+ inline void SetUserName(const char* value) { m_userNameHasBeenSet = true; m_userName.assign(value); }
+
+ inline BatchAttachPoliciesToUserRequest& WithUserName(const Aws::String& value) { SetUserName(value); return *this;}
+
+ inline BatchAttachPoliciesToUserRequest& WithUserName(Aws::String&& value) { SetUserName(std::move(value)); return *this;}
+
+ inline BatchAttachPoliciesToUserRequest& WithUserName(const char* value) { SetUserName(value); return *this;}
+
+ private:
+ Aws::String m_policyDocument;
+ bool m_policyDocumentHasBeenSet;
+
+ Aws::String m_userName;
+ bool m_userNameHasBeenSet;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToUserResult.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToUserResult.h
new file mode 100644
index 000000000..6ae5ea533
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPoliciesToUserResult.h
@@ -0,0 +1,249 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+template
+class AmazonWebServiceResult;
+
+namespace Utils
+{
+namespace Xml
+{
+ class XmlDocument;
+} // namespace Xml
+} // namespace Utils
+namespace IAM
+{
+namespace Model
+{
+ /**
+ * Contains the response to a successful GetUser request.
See
+ * Also:
AWS
+ * API Reference
+ */
+ class AWS_IAM_API BatchAttachPoliciesToUserResult
+ {
+ public:
+ BatchAttachPoliciesToUserResult();
+ BatchAttachPoliciesToUserResult(const Aws::AmazonWebServiceResult& result);
+ BatchAttachPoliciesToUserResult& operator=(const Aws::AmazonWebServiceResult& result);
+
+
+ inline const ResponseMetadata& GetResponseMetadata() const{ return m_responseMetadata; }
+
+
+ inline void SetResponseMetadata(const ResponseMetadata& value) { m_responseMetadata = value; }
+
+
+ inline void SetResponseMetadata(ResponseMetadata&& value) { m_responseMetadata = std::move(value); }
+
+
+ inline BatchAttachPoliciesToUserResult& WithResponseMetadata(const ResponseMetadata& value) { SetResponseMetadata(value); return *this;}
+
+
+ inline BatchAttachPoliciesToUserResult& WithResponseMetadata(ResponseMetadata&& value) { SetResponseMetadata(std::move(value)); return *this;}
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline const Account& GetAccount() const{ return m_account; }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline void SetAccount(const Account& value) { m_account = value; }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline void SetAccount(Account&& value) { m_account = std::move(value); }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline BatchAttachPoliciesToUserResult& WithAccount(const Account& value) { SetAccount(value); return *this;}
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline BatchAttachPoliciesToUserResult& WithAccount(Account&& value) { SetAccount(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline const Aws::Vector& GetPolicyAttached() const{ return m_policyAttached; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyAttached(const Aws::Vector& value) { m_policyAttached = value; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyAttached(Aws::Vector&& value) { m_policyAttached = std::move(value); }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToUserResult& WithPolicyAttached(const Aws::Vector& value) { SetPolicyAttached(value); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToUserResult& WithPolicyAttached(Aws::Vector&& value) { SetPolicyAttached(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToUserResult& AddPolicyAttached(const BatchHandlePolicy& value) { m_policyAttached.push_back(value); return *this; }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToUserResult& AddPolicyAttached(BatchHandlePolicy&& value) { m_policyAttached.push_back(std::move(value)); return *this; }
+
+
+ /**
+ * A list of users.
+ */
+ inline const Aws::Vector& GetPolicyError() const{ return m_policyError; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyError(const Aws::Vector& value) { m_policyError = value; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyError(Aws::Vector&& value) { m_policyError = std::move(value); }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToUserResult& WithPolicyError(const Aws::Vector& value) { SetPolicyError(value); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToUserResult& WithPolicyError(Aws::Vector&& value) { SetPolicyError(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToUserResult& AddPolicyError(const BatchHandlePolicyError& value) { m_policyError.push_back(value); return *this; }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPoliciesToUserResult& AddPolicyError(BatchHandlePolicyError&& value) { m_policyError.push_back(std::move(value)); return *this; }
+
+ private:
+
+ private:
+
+ Aws::Vector m_policyAttached;
+
+ Aws::Vector m_policyError;
+
+ Account m_account;
+
+ ResponseMetadata m_responseMetadata;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiGroupsRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiGroupsRequest.h
new file mode 100644
index 000000000..29efeb28d
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiGroupsRequest.h
@@ -0,0 +1,81 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+namespace IAM
+{
+namespace Model
+{
+
+ /**
+ */
+ class AWS_IAM_API BatchAttachPolicyToMultiGroupsRequest : public IAMRequest
+ {
+ public:
+ BatchAttachPolicyToMultiGroupsRequest();
+
+ // Service request name is the Operation name which will send this request out,
+ // each operation should has unique request name, so that we can get operation's name from this request.
+ // Note: this is not true for response, multiple operations may have the same response name,
+ // so we can not get operation's name from response.
+ inline virtual const char* GetServiceRequestName() const override { return "BatchAttachPolicyToMultiUsers"; }
+
+ Aws::String SerializePayload() const override;
+
+ protected:
+ void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
+
+ public:
+ inline const Aws::String& GetGroupDocument() const{ return m_groupDocument; }
+
+ inline bool GroupDocumentHasBeenSet() const { return m_groupDocumentHasBeenSet; }
+
+ inline void SetGroupDocument(const Aws::String& value) { m_groupDocumentHasBeenSet = true; m_groupDocument = value; }
+
+ inline void SetGroupDocument(Aws::String&& value) { m_groupDocumentHasBeenSet = true; m_groupDocument = std::move(value); }
+
+ inline void SetGroupDocument(const char* value) { m_groupDocumentHasBeenSet = true; m_groupDocument.assign(value); }
+
+ inline BatchAttachPolicyToMultiGroupsRequest& WithGroupDocument(const Aws::String& value) { SetGroupDocument(value); return *this;}
+
+ inline BatchAttachPolicyToMultiGroupsRequest& WithGroupDocument(Aws::String&& value) { SetGroupDocument(std::move(value)); return *this;}
+
+ inline BatchAttachPolicyToMultiGroupsRequest& WithGroupDocument(const char* value) { SetGroupDocument(value); return *this;}
+
+
+ inline const Aws::String& GetPolicyName() const{ return m_policyName; }
+
+ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
+
+ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
+
+ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
+
+ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
+
+ inline BatchAttachPolicyToMultiGroupsRequest& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
+
+ inline BatchAttachPolicyToMultiGroupsRequest& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
+
+ inline BatchAttachPolicyToMultiGroupsRequest& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
+
+ private:
+ Aws::String m_groupDocument;
+ bool m_groupDocumentHasBeenSet;
+
+ Aws::String m_policyName;
+ bool m_policyNameHasBeenSet;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiGroupsResult.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiGroupsResult.h
new file mode 100644
index 000000000..e1d34c06a
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiGroupsResult.h
@@ -0,0 +1,249 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+template
+class AmazonWebServiceResult;
+
+namespace Utils
+{
+namespace Xml
+{
+ class XmlDocument;
+} // namespace Xml
+} // namespace Utils
+namespace IAM
+{
+namespace Model
+{
+ /**
+ * Contains the response to a successful GetUser request.
See
+ * Also:
AWS
+ * API Reference
+ */
+ class AWS_IAM_API BatchAttachPolicyToMultiGroupsResult
+ {
+ public:
+ BatchAttachPolicyToMultiGroupsResult();
+ BatchAttachPolicyToMultiGroupsResult(const Aws::AmazonWebServiceResult& result);
+ BatchAttachPolicyToMultiGroupsResult& operator=(const Aws::AmazonWebServiceResult& result);
+
+
+ inline const ResponseMetadata& GetResponseMetadata() const{ return m_responseMetadata; }
+
+
+ inline void SetResponseMetadata(const ResponseMetadata& value) { m_responseMetadata = value; }
+
+
+ inline void SetResponseMetadata(ResponseMetadata&& value) { m_responseMetadata = std::move(value); }
+
+
+ inline BatchAttachPolicyToMultiGroupsResult& WithResponseMetadata(const ResponseMetadata& value) { SetResponseMetadata(value); return *this;}
+
+
+ inline BatchAttachPolicyToMultiGroupsResult& WithResponseMetadata(ResponseMetadata&& value) { SetResponseMetadata(std::move(value)); return *this;}
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline const Account& GetAccount() const{ return m_account; }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline void SetAccount(const Account& value) { m_account = value; }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline void SetAccount(Account&& value) { m_account = std::move(value); }
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& WithAccount(const Account& value) { SetAccount(value); return *this;}
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last
+ * sign-in dates shown in the IAM console and password last used dates in the
+ * IAM
+ * credential report, and returned by this operation. If users signed in during
+ * the affected time, the password last used date that is returned is the date the
+ * user last signed in before May 3, 2018. For users that signed in after May 23,
+ * 2018 14:08 PDT, the returned password last used date is accurate.
You can
+ * use password last used information to identify unused credentials for deletion.
+ * For example, you might delete users who did not sign in to AWS in the last 90
+ * days. In cases like this, we recommend that you adjust your evaluation window to
+ * include dates after May 23, 2018. Alternatively, if your users use access keys
+ * to access AWS programmatically you can refer to access key last used information
+ * because it is accurate for all dates.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& WithAccount(Account&& value) { SetAccount(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline const Aws::Vector& GetPolicyAttached() const{ return m_policyAttached; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyAttached(const Aws::Vector& value) { m_policyAttached = value; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyAttached(Aws::Vector&& value) { m_policyAttached = std::move(value); }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& WithPolicyAttached(const Aws::Vector& value) { SetPolicyAttached(value); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& WithPolicyAttached(Aws::Vector&& value) { SetPolicyAttached(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& AddPolicyAttached(const BatchHandlePolicy& value) { m_policyAttached.push_back(value); return *this; }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& AddPolicyAttached(BatchHandlePolicy&& value) { m_policyAttached.push_back(std::move(value)); return *this; }
+
+
+ /**
+ * A list of users.
+ */
+ inline const Aws::Vector& GetPolicyError() const{ return m_policyError; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyError(const Aws::Vector& value) { m_policyError = value; }
+
+ /**
+ * A list of users.
+ */
+ inline void SetPolicyError(Aws::Vector&& value) { m_policyError = std::move(value); }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& WithPolicyError(const Aws::Vector& value) { SetPolicyError(value); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& WithPolicyError(Aws::Vector&& value) { SetPolicyError(std::move(value)); return *this;}
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& AddPolicyError(const BatchHandlePolicyError& value) { m_policyError.push_back(value); return *this; }
+
+ /**
+ * A list of users.
+ */
+ inline BatchAttachPolicyToMultiGroupsResult& AddPolicyError(BatchHandlePolicyError&& value) { m_policyError.push_back(std::move(value)); return *this; }
+
+ private:
+
+ private:
+
+ Aws::Vector m_policyAttached;
+
+ Aws::Vector m_policyError;
+
+ Account m_account;
+
+ ResponseMetadata m_responseMetadata;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiUsersRequest.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiUsersRequest.h
new file mode 100644
index 000000000..51a239f86
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiUsersRequest.h
@@ -0,0 +1,81 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+namespace IAM
+{
+namespace Model
+{
+
+ /**
+ */
+ class AWS_IAM_API BatchAttachPolicyToMultiUsersRequest : public IAMRequest
+ {
+ public:
+ BatchAttachPolicyToMultiUsersRequest();
+
+ // Service request name is the Operation name which will send this request out,
+ // each operation should has unique request name, so that we can get operation's name from this request.
+ // Note: this is not true for response, multiple operations may have the same response name,
+ // so we can not get operation's name from response.
+ inline virtual const char* GetServiceRequestName() const override { return "BatchAttachPolicyToMultiUsers"; }
+
+ Aws::String SerializePayload() const override;
+
+ protected:
+ void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
+
+ public:
+ inline const Aws::String& GetUserDocument() const{ return m_userDocument; }
+
+ inline bool UserDocumentHasBeenSet() const { return m_userDocumentHasBeenSet; }
+
+ inline void SetUserDocument(const Aws::String& value) { m_userDocumentHasBeenSet = true; m_userDocument = value; }
+
+ inline void SetUserDocument(Aws::String&& value) { m_userDocumentHasBeenSet = true; m_userDocument = std::move(value); }
+
+ inline void SetUserDocument(const char* value) { m_userDocumentHasBeenSet = true; m_userDocument.assign(value); }
+
+ inline BatchAttachPolicyToMultiUsersRequest& WithUserDocument(const Aws::String& value) { SetUserDocument(value); return *this;}
+
+ inline BatchAttachPolicyToMultiUsersRequest& WithUserDocument(Aws::String&& value) { SetUserDocument(std::move(value)); return *this;}
+
+ inline BatchAttachPolicyToMultiUsersRequest& WithUserDocument(const char* value) { SetUserDocument(value); return *this;}
+
+
+ inline const Aws::String& GetPolicyName() const{ return m_policyName; }
+
+ inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
+
+ inline void SetPolicyName(const Aws::String& value) { m_policyNameHasBeenSet = true; m_policyName = value; }
+
+ inline void SetPolicyName(Aws::String&& value) { m_policyNameHasBeenSet = true; m_policyName = std::move(value); }
+
+ inline void SetPolicyName(const char* value) { m_policyNameHasBeenSet = true; m_policyName.assign(value); }
+
+ inline BatchAttachPolicyToMultiUsersRequest& WithPolicyName(const Aws::String& value) { SetPolicyName(value); return *this;}
+
+ inline BatchAttachPolicyToMultiUsersRequest& WithPolicyName(Aws::String&& value) { SetPolicyName(std::move(value)); return *this;}
+
+ inline BatchAttachPolicyToMultiUsersRequest& WithPolicyName(const char* value) { SetPolicyName(value); return *this;}
+
+ private:
+ Aws::String m_userDocument;
+ bool m_userDocumentHasBeenSet;
+
+ Aws::String m_policyName;
+ bool m_policyNameHasBeenSet;
+ };
+
+} // namespace Model
+} // namespace IAM
+} // namespace Aws
diff --git a/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiUsersResult.h b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiUsersResult.h
new file mode 100644
index 000000000..e05dd002d
--- /dev/null
+++ b/aws-sdk-cpp-1.8.183/aws-sdk-cpp-1.8.183/aws-cpp-sdk-iam/include/aws/iam/model/BatchAttachPolicyToMultiUsersResult.h
@@ -0,0 +1,249 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws
+{
+template
+class AmazonWebServiceResult;
+
+namespace Utils
+{
+namespace Xml
+{
+ class XmlDocument;
+} // namespace Xml
+} // namespace Utils
+namespace IAM
+{
+namespace Model
+{
+ /**
+ * Contains the response to a successful GetUser request.
See
+ * Also:
AWS
+ * API Reference
+ */
+ class AWS_IAM_API BatchAttachPolicyToMultiUsersResult
+ {
+ public:
+ BatchAttachPolicyToMultiUsersResult();
+ BatchAttachPolicyToMultiUsersResult(const Aws::AmazonWebServiceResult& result);
+ BatchAttachPolicyToMultiUsersResult& operator=(const Aws::AmazonWebServiceResult& result);
+
+
+ inline const ResponseMetadata& GetResponseMetadata() const{ return m_responseMetadata; }
+
+
+ inline void SetResponseMetadata(const ResponseMetadata& value) { m_responseMetadata = value; }
+
+
+ inline void SetResponseMetadata(ResponseMetadata&& value) { m_responseMetadata = std::move(value); }
+
+
+ inline BatchAttachPolicyToMultiUsersResult& WithResponseMetadata(const ResponseMetadata& value) { SetResponseMetadata(value); return *this;}
+
+
+ inline BatchAttachPolicyToMultiUsersResult& WithResponseMetadata(ResponseMetadata&& value) { SetResponseMetadata(std::move(value)); return *this;}
+
+ /**
+ * A structure containing details about the IAM user.
Due to
+ * a service issue, password last used data does not include password use from May
+ * 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects