1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/resource-groups/ResourceGroups_EXPORTS.h> 8 #include <aws/resource-groups/ResourceGroupsErrors.h> 9 #include <aws/core/client/AWSError.h> 10 #include <aws/core/client/ClientConfiguration.h> 11 #include <aws/core/client/AWSClient.h> 12 #include <aws/core/utils/memory/stl/AWSString.h> 13 #include <aws/core/utils/json/JsonSerializer.h> 14 #include <aws/resource-groups/model/CreateGroupResult.h> 15 #include <aws/resource-groups/model/DeleteGroupResult.h> 16 #include <aws/resource-groups/model/GetGroupResult.h> 17 #include <aws/resource-groups/model/GetGroupConfigurationResult.h> 18 #include <aws/resource-groups/model/GetGroupQueryResult.h> 19 #include <aws/resource-groups/model/GetTagsResult.h> 20 #include <aws/resource-groups/model/GroupResourcesResult.h> 21 #include <aws/resource-groups/model/ListGroupResourcesResult.h> 22 #include <aws/resource-groups/model/ListGroupsResult.h> 23 #include <aws/resource-groups/model/PutGroupConfigurationResult.h> 24 #include <aws/resource-groups/model/SearchResourcesResult.h> 25 #include <aws/resource-groups/model/TagResult.h> 26 #include <aws/resource-groups/model/UngroupResourcesResult.h> 27 #include <aws/resource-groups/model/UntagResult.h> 28 #include <aws/resource-groups/model/UpdateGroupResult.h> 29 #include <aws/resource-groups/model/UpdateGroupQueryResult.h> 30 #include <aws/core/client/AsyncCallerContext.h> 31 #include <aws/core/http/HttpTypes.h> 32 #include <future> 33 #include <functional> 34 35 namespace Aws 36 { 37 38 namespace Http 39 { 40 class HttpClient; 41 class HttpClientFactory; 42 } // namespace Http 43 44 namespace Utils 45 { 46 template< typename R, typename E> class Outcome; 47 namespace Threading 48 { 49 class Executor; 50 } // namespace Threading 51 } // namespace Utils 52 53 namespace Auth 54 { 55 class AWSCredentials; 56 class AWSCredentialsProvider; 57 } // namespace Auth 58 59 namespace Client 60 { 61 class RetryStrategy; 62 } // namespace Client 63 64 namespace ResourceGroups 65 { 66 67 namespace Model 68 { 69 class CreateGroupRequest; 70 class DeleteGroupRequest; 71 class GetGroupRequest; 72 class GetGroupConfigurationRequest; 73 class GetGroupQueryRequest; 74 class GetTagsRequest; 75 class GroupResourcesRequest; 76 class ListGroupResourcesRequest; 77 class ListGroupsRequest; 78 class PutGroupConfigurationRequest; 79 class SearchResourcesRequest; 80 class TagRequest; 81 class UngroupResourcesRequest; 82 class UntagRequest; 83 class UpdateGroupRequest; 84 class UpdateGroupQueryRequest; 85 86 typedef Aws::Utils::Outcome<CreateGroupResult, ResourceGroupsError> CreateGroupOutcome; 87 typedef Aws::Utils::Outcome<DeleteGroupResult, ResourceGroupsError> DeleteGroupOutcome; 88 typedef Aws::Utils::Outcome<GetGroupResult, ResourceGroupsError> GetGroupOutcome; 89 typedef Aws::Utils::Outcome<GetGroupConfigurationResult, ResourceGroupsError> GetGroupConfigurationOutcome; 90 typedef Aws::Utils::Outcome<GetGroupQueryResult, ResourceGroupsError> GetGroupQueryOutcome; 91 typedef Aws::Utils::Outcome<GetTagsResult, ResourceGroupsError> GetTagsOutcome; 92 typedef Aws::Utils::Outcome<GroupResourcesResult, ResourceGroupsError> GroupResourcesOutcome; 93 typedef Aws::Utils::Outcome<ListGroupResourcesResult, ResourceGroupsError> ListGroupResourcesOutcome; 94 typedef Aws::Utils::Outcome<ListGroupsResult, ResourceGroupsError> ListGroupsOutcome; 95 typedef Aws::Utils::Outcome<PutGroupConfigurationResult, ResourceGroupsError> PutGroupConfigurationOutcome; 96 typedef Aws::Utils::Outcome<SearchResourcesResult, ResourceGroupsError> SearchResourcesOutcome; 97 typedef Aws::Utils::Outcome<TagResult, ResourceGroupsError> TagOutcome; 98 typedef Aws::Utils::Outcome<UngroupResourcesResult, ResourceGroupsError> UngroupResourcesOutcome; 99 typedef Aws::Utils::Outcome<UntagResult, ResourceGroupsError> UntagOutcome; 100 typedef Aws::Utils::Outcome<UpdateGroupResult, ResourceGroupsError> UpdateGroupOutcome; 101 typedef Aws::Utils::Outcome<UpdateGroupQueryResult, ResourceGroupsError> UpdateGroupQueryOutcome; 102 103 typedef std::future<CreateGroupOutcome> CreateGroupOutcomeCallable; 104 typedef std::future<DeleteGroupOutcome> DeleteGroupOutcomeCallable; 105 typedef std::future<GetGroupOutcome> GetGroupOutcomeCallable; 106 typedef std::future<GetGroupConfigurationOutcome> GetGroupConfigurationOutcomeCallable; 107 typedef std::future<GetGroupQueryOutcome> GetGroupQueryOutcomeCallable; 108 typedef std::future<GetTagsOutcome> GetTagsOutcomeCallable; 109 typedef std::future<GroupResourcesOutcome> GroupResourcesOutcomeCallable; 110 typedef std::future<ListGroupResourcesOutcome> ListGroupResourcesOutcomeCallable; 111 typedef std::future<ListGroupsOutcome> ListGroupsOutcomeCallable; 112 typedef std::future<PutGroupConfigurationOutcome> PutGroupConfigurationOutcomeCallable; 113 typedef std::future<SearchResourcesOutcome> SearchResourcesOutcomeCallable; 114 typedef std::future<TagOutcome> TagOutcomeCallable; 115 typedef std::future<UngroupResourcesOutcome> UngroupResourcesOutcomeCallable; 116 typedef std::future<UntagOutcome> UntagOutcomeCallable; 117 typedef std::future<UpdateGroupOutcome> UpdateGroupOutcomeCallable; 118 typedef std::future<UpdateGroupQueryOutcome> UpdateGroupQueryOutcomeCallable; 119 } // namespace Model 120 121 class ResourceGroupsClient; 122 123 typedef std::function<void(const ResourceGroupsClient*, const Model::CreateGroupRequest&, const Model::CreateGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateGroupResponseReceivedHandler; 124 typedef std::function<void(const ResourceGroupsClient*, const Model::DeleteGroupRequest&, const Model::DeleteGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteGroupResponseReceivedHandler; 125 typedef std::function<void(const ResourceGroupsClient*, const Model::GetGroupRequest&, const Model::GetGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetGroupResponseReceivedHandler; 126 typedef std::function<void(const ResourceGroupsClient*, const Model::GetGroupConfigurationRequest&, const Model::GetGroupConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetGroupConfigurationResponseReceivedHandler; 127 typedef std::function<void(const ResourceGroupsClient*, const Model::GetGroupQueryRequest&, const Model::GetGroupQueryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetGroupQueryResponseReceivedHandler; 128 typedef std::function<void(const ResourceGroupsClient*, const Model::GetTagsRequest&, const Model::GetTagsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTagsResponseReceivedHandler; 129 typedef std::function<void(const ResourceGroupsClient*, const Model::GroupResourcesRequest&, const Model::GroupResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GroupResourcesResponseReceivedHandler; 130 typedef std::function<void(const ResourceGroupsClient*, const Model::ListGroupResourcesRequest&, const Model::ListGroupResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListGroupResourcesResponseReceivedHandler; 131 typedef std::function<void(const ResourceGroupsClient*, const Model::ListGroupsRequest&, const Model::ListGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListGroupsResponseReceivedHandler; 132 typedef std::function<void(const ResourceGroupsClient*, const Model::PutGroupConfigurationRequest&, const Model::PutGroupConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutGroupConfigurationResponseReceivedHandler; 133 typedef std::function<void(const ResourceGroupsClient*, const Model::SearchResourcesRequest&, const Model::SearchResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SearchResourcesResponseReceivedHandler; 134 typedef std::function<void(const ResourceGroupsClient*, const Model::TagRequest&, const Model::TagOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResponseReceivedHandler; 135 typedef std::function<void(const ResourceGroupsClient*, const Model::UngroupResourcesRequest&, const Model::UngroupResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UngroupResourcesResponseReceivedHandler; 136 typedef std::function<void(const ResourceGroupsClient*, const Model::UntagRequest&, const Model::UntagOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResponseReceivedHandler; 137 typedef std::function<void(const ResourceGroupsClient*, const Model::UpdateGroupRequest&, const Model::UpdateGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateGroupResponseReceivedHandler; 138 typedef std::function<void(const ResourceGroupsClient*, const Model::UpdateGroupQueryRequest&, const Model::UpdateGroupQueryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateGroupQueryResponseReceivedHandler; 139 140 /** 141 * <fullname>AWS Resource Groups</fullname> <p>AWS Resource Groups lets you 142 * organize AWS resources such as Amazon EC2 instances, Amazon Relational Database 143 * Service databases, and Amazon S3 buckets into groups using criteria that you 144 * define as tags. A resource group is a collection of resources that match the 145 * resource types specified in a query, and share one or more tags or portions of 146 * tags. You can create a group of resources based on their roles in your cloud 147 * infrastructure, lifecycle stages, regions, application layers, or virtually any 148 * criteria. Resource Groups enable you to automate management tasks, such as those 149 * in AWS Systems Manager Automation documents, on tag-related resources in AWS 150 * Systems Manager. Groups of tagged resources also let you quickly view a custom 151 * console in AWS Systems Manager that shows AWS Config compliance and other 152 * monitoring data about member resources.</p> <p>To create a resource group, build 153 * a resource query, and specify tags that identify the criteria that members of 154 * the group have in common. Tags are key-value pairs.</p> <p>For more information 155 * about Resource Groups, see the <a 156 * href="https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html">AWS 157 * Resource Groups User Guide</a>.</p> <p>AWS Resource Groups uses a REST-compliant 158 * API that you can use to perform the following types of operations.</p> <ul> <li> 159 * <p>Create, Read, Update, and Delete (CRUD) operations on resource groups and 160 * resource query entities</p> </li> <li> <p>Applying, editing, and removing tags 161 * from resource groups</p> </li> <li> <p>Resolving resource group member ARNs so 162 * they can be returned as search results</p> </li> <li> <p>Getting data about 163 * resources that are members of a group</p> </li> <li> <p>Searching AWS resources 164 * based on a resource query</p> </li> </ul> 165 */ 166 class AWS_RESOURCEGROUPS_API ResourceGroupsClient : public Aws::Client::AWSJsonClient 167 { 168 public: 169 typedef Aws::Client::AWSJsonClient BASECLASS; 170 171 /** 172 * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config 173 * is not specified, it will be initialized to default values. 174 */ 175 ResourceGroupsClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 176 177 /** 178 * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config 179 * is not specified, it will be initialized to default values. 180 */ 181 ResourceGroupsClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 182 183 /** 184 * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, 185 * the default http client factory will be used 186 */ 187 ResourceGroupsClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider, 188 const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 189 190 virtual ~ResourceGroupsClient(); 191 192 193 /** 194 * <p>Creates a resource group with the specified name and description. You can 195 * optionally include a resource query, or a service configuration. For more 196 * information about constructing a resource query, see <a 197 * href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create 198 * a tag-based group in Resource Groups</a>. For more information about service 199 * configurations, see <a 200 * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service 201 * configurations for resource groups</a>.</p> <p> <b>Minimum permissions</b> </p> 202 * <p>To run this command, you must have the following permissions:</p> <ul> <li> 203 * <p> <code>resource-groups:CreateGroup</code> </p> </li> </ul><p><h3>See 204 * Also:</h3> <a 205 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/CreateGroup">AWS 206 * API Reference</a></p> 207 */ 208 virtual Model::CreateGroupOutcome CreateGroup(const Model::CreateGroupRequest& request) const; 209 210 /** 211 * <p>Creates a resource group with the specified name and description. You can 212 * optionally include a resource query, or a service configuration. For more 213 * information about constructing a resource query, see <a 214 * href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create 215 * a tag-based group in Resource Groups</a>. For more information about service 216 * configurations, see <a 217 * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service 218 * configurations for resource groups</a>.</p> <p> <b>Minimum permissions</b> </p> 219 * <p>To run this command, you must have the following permissions:</p> <ul> <li> 220 * <p> <code>resource-groups:CreateGroup</code> </p> </li> </ul><p><h3>See 221 * Also:</h3> <a 222 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/CreateGroup">AWS 223 * API Reference</a></p> 224 * 225 * returns a future to the operation so that it can be executed in parallel to other requests. 226 */ 227 virtual Model::CreateGroupOutcomeCallable CreateGroupCallable(const Model::CreateGroupRequest& request) const; 228 229 /** 230 * <p>Creates a resource group with the specified name and description. You can 231 * optionally include a resource query, or a service configuration. For more 232 * information about constructing a resource query, see <a 233 * href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create 234 * a tag-based group in Resource Groups</a>. For more information about service 235 * configurations, see <a 236 * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service 237 * configurations for resource groups</a>.</p> <p> <b>Minimum permissions</b> </p> 238 * <p>To run this command, you must have the following permissions:</p> <ul> <li> 239 * <p> <code>resource-groups:CreateGroup</code> </p> </li> </ul><p><h3>See 240 * Also:</h3> <a 241 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/CreateGroup">AWS 242 * API Reference</a></p> 243 * 244 * Queues the request into a thread executor and triggers associated callback when operation has finished. 245 */ 246 virtual void CreateGroupAsync(const Model::CreateGroupRequest& request, const CreateGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 247 248 /** 249 * <p>Deletes the specified resource group. Deleting a resource group does not 250 * delete any resources that are members of the group; it only deletes the group 251 * structure.</p> <p> <b>Minimum permissions</b> </p> <p>To run this command, you 252 * must have the following permissions:</p> <ul> <li> <p> 253 * <code>resource-groups:DeleteGroup</code> </p> </li> </ul><p><h3>See Also:</h3> 254 * <a 255 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/DeleteGroup">AWS 256 * API Reference</a></p> 257 */ 258 virtual Model::DeleteGroupOutcome DeleteGroup(const Model::DeleteGroupRequest& request) const; 259 260 /** 261 * <p>Deletes the specified resource group. Deleting a resource group does not 262 * delete any resources that are members of the group; it only deletes the group 263 * structure.</p> <p> <b>Minimum permissions</b> </p> <p>To run this command, you 264 * must have the following permissions:</p> <ul> <li> <p> 265 * <code>resource-groups:DeleteGroup</code> </p> </li> </ul><p><h3>See Also:</h3> 266 * <a 267 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/DeleteGroup">AWS 268 * API Reference</a></p> 269 * 270 * returns a future to the operation so that it can be executed in parallel to other requests. 271 */ 272 virtual Model::DeleteGroupOutcomeCallable DeleteGroupCallable(const Model::DeleteGroupRequest& request) const; 273 274 /** 275 * <p>Deletes the specified resource group. Deleting a resource group does not 276 * delete any resources that are members of the group; it only deletes the group 277 * structure.</p> <p> <b>Minimum permissions</b> </p> <p>To run this command, you 278 * must have the following permissions:</p> <ul> <li> <p> 279 * <code>resource-groups:DeleteGroup</code> </p> </li> </ul><p><h3>See Also:</h3> 280 * <a 281 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/DeleteGroup">AWS 282 * API Reference</a></p> 283 * 284 * Queues the request into a thread executor and triggers associated callback when operation has finished. 285 */ 286 virtual void DeleteGroupAsync(const Model::DeleteGroupRequest& request, const DeleteGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 287 288 /** 289 * <p>Returns information about a specified resource group.</p> <p> <b>Minimum 290 * permissions</b> </p> <p>To run this command, you must have the following 291 * permissions:</p> <ul> <li> <p> <code>resource-groups:GetGroup</code> </p> </li> 292 * </ul><p><h3>See Also:</h3> <a 293 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroup">AWS 294 * API Reference</a></p> 295 */ 296 virtual Model::GetGroupOutcome GetGroup(const Model::GetGroupRequest& request) const; 297 298 /** 299 * <p>Returns information about a specified resource group.</p> <p> <b>Minimum 300 * permissions</b> </p> <p>To run this command, you must have the following 301 * permissions:</p> <ul> <li> <p> <code>resource-groups:GetGroup</code> </p> </li> 302 * </ul><p><h3>See Also:</h3> <a 303 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroup">AWS 304 * API Reference</a></p> 305 * 306 * returns a future to the operation so that it can be executed in parallel to other requests. 307 */ 308 virtual Model::GetGroupOutcomeCallable GetGroupCallable(const Model::GetGroupRequest& request) const; 309 310 /** 311 * <p>Returns information about a specified resource group.</p> <p> <b>Minimum 312 * permissions</b> </p> <p>To run this command, you must have the following 313 * permissions:</p> <ul> <li> <p> <code>resource-groups:GetGroup</code> </p> </li> 314 * </ul><p><h3>See Also:</h3> <a 315 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroup">AWS 316 * API Reference</a></p> 317 * 318 * Queues the request into a thread executor and triggers associated callback when operation has finished. 319 */ 320 virtual void GetGroupAsync(const Model::GetGroupRequest& request, const GetGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 321 322 /** 323 * <p>Returns the service configuration associated with the specified resource 324 * group. For details about the service configuration syntax, see <a 325 * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service 326 * configurations for resource groups</a>.</p> <p> <b>Minimum permissions</b> </p> 327 * <p>To run this command, you must have the following permissions:</p> <ul> <li> 328 * <p> <code>resource-groups:GetGroupConfiguration</code> </p> </li> 329 * </ul><p><h3>See Also:</h3> <a 330 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroupConfiguration">AWS 331 * API Reference</a></p> 332 */ 333 virtual Model::GetGroupConfigurationOutcome GetGroupConfiguration(const Model::GetGroupConfigurationRequest& request) const; 334 335 /** 336 * <p>Returns the service configuration associated with the specified resource 337 * group. For details about the service configuration syntax, see <a 338 * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service 339 * configurations for resource groups</a>.</p> <p> <b>Minimum permissions</b> </p> 340 * <p>To run this command, you must have the following permissions:</p> <ul> <li> 341 * <p> <code>resource-groups:GetGroupConfiguration</code> </p> </li> 342 * </ul><p><h3>See Also:</h3> <a 343 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroupConfiguration">AWS 344 * API Reference</a></p> 345 * 346 * returns a future to the operation so that it can be executed in parallel to other requests. 347 */ 348 virtual Model::GetGroupConfigurationOutcomeCallable GetGroupConfigurationCallable(const Model::GetGroupConfigurationRequest& request) const; 349 350 /** 351 * <p>Returns the service configuration associated with the specified resource 352 * group. For details about the service configuration syntax, see <a 353 * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service 354 * configurations for resource groups</a>.</p> <p> <b>Minimum permissions</b> </p> 355 * <p>To run this command, you must have the following permissions:</p> <ul> <li> 356 * <p> <code>resource-groups:GetGroupConfiguration</code> </p> </li> 357 * </ul><p><h3>See Also:</h3> <a 358 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroupConfiguration">AWS 359 * API Reference</a></p> 360 * 361 * Queues the request into a thread executor and triggers associated callback when operation has finished. 362 */ 363 virtual void GetGroupConfigurationAsync(const Model::GetGroupConfigurationRequest& request, const GetGroupConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 364 365 /** 366 * <p>Retrieves the resource query associated with the specified resource group. 367 * For more information about resource queries, see <a 368 * href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create 369 * a tag-based group in Resource Groups</a>.</p> <p> <b>Minimum permissions</b> 370 * </p> <p>To run this command, you must have the following permissions:</p> <ul> 371 * <li> <p> <code>resource-groups:GetGroupQuery</code> </p> </li> </ul><p><h3>See 372 * Also:</h3> <a 373 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroupQuery">AWS 374 * API Reference</a></p> 375 */ 376 virtual Model::GetGroupQueryOutcome GetGroupQuery(const Model::GetGroupQueryRequest& request) const; 377 378 /** 379 * <p>Retrieves the resource query associated with the specified resource group. 380 * For more information about resource queries, see <a 381 * href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create 382 * a tag-based group in Resource Groups</a>.</p> <p> <b>Minimum permissions</b> 383 * </p> <p>To run this command, you must have the following permissions:</p> <ul> 384 * <li> <p> <code>resource-groups:GetGroupQuery</code> </p> </li> </ul><p><h3>See 385 * Also:</h3> <a 386 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroupQuery">AWS 387 * API Reference</a></p> 388 * 389 * returns a future to the operation so that it can be executed in parallel to other requests. 390 */ 391 virtual Model::GetGroupQueryOutcomeCallable GetGroupQueryCallable(const Model::GetGroupQueryRequest& request) const; 392 393 /** 394 * <p>Retrieves the resource query associated with the specified resource group. 395 * For more information about resource queries, see <a 396 * href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create 397 * a tag-based group in Resource Groups</a>.</p> <p> <b>Minimum permissions</b> 398 * </p> <p>To run this command, you must have the following permissions:</p> <ul> 399 * <li> <p> <code>resource-groups:GetGroupQuery</code> </p> </li> </ul><p><h3>See 400 * Also:</h3> <a 401 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroupQuery">AWS 402 * API Reference</a></p> 403 * 404 * Queues the request into a thread executor and triggers associated callback when operation has finished. 405 */ 406 virtual void GetGroupQueryAsync(const Model::GetGroupQueryRequest& request, const GetGroupQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 407 408 /** 409 * <p>Returns a list of tags that are associated with a resource group, specified 410 * by an ARN.</p> <p> <b>Minimum permissions</b> </p> <p>To run this command, you 411 * must have the following permissions:</p> <ul> <li> <p> 412 * <code>resource-groups:GetTags</code> </p> </li> </ul><p><h3>See Also:</h3> <a 413 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetTags">AWS 414 * API Reference</a></p> 415 */ 416 virtual Model::GetTagsOutcome GetTags(const Model::GetTagsRequest& request) const; 417 418 /** 419 * <p>Returns a list of tags that are associated with a resource group, specified 420 * by an ARN.</p> <p> <b>Minimum permissions</b> </p> <p>To run this command, you 421 * must have the following permissions:</p> <ul> <li> <p> 422 * <code>resource-groups:GetTags</code> </p> </li> </ul><p><h3>See Also:</h3> <a 423 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetTags">AWS 424 * API Reference</a></p> 425 * 426 * returns a future to the operation so that it can be executed in parallel to other requests. 427 */ 428 virtual Model::GetTagsOutcomeCallable GetTagsCallable(const Model::GetTagsRequest& request) const; 429 430 /** 431 * <p>Returns a list of tags that are associated with a resource group, specified 432 * by an ARN.</p> <p> <b>Minimum permissions</b> </p> <p>To run this command, you 433 * must have the following permissions:</p> <ul> <li> <p> 434 * <code>resource-groups:GetTags</code> </p> </li> </ul><p><h3>See Also:</h3> <a 435 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetTags">AWS 436 * API Reference</a></p> 437 * 438 * Queues the request into a thread executor and triggers associated callback when operation has finished. 439 */ 440 virtual void GetTagsAsync(const Model::GetTagsRequest& request, const GetTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 441 442 /** 443 * <p>Adds the specified resources to the specified group.</p> <p> <b>Minimum 444 * permissions</b> </p> <p>To run this command, you must have the following 445 * permissions:</p> <ul> <li> <p> <code>resource-groups:GroupResources</code> </p> 446 * </li> </ul><p><h3>See Also:</h3> <a 447 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GroupResources">AWS 448 * API Reference</a></p> 449 */ 450 virtual Model::GroupResourcesOutcome GroupResources(const Model::GroupResourcesRequest& request) const; 451 452 /** 453 * <p>Adds the specified resources to the specified group.</p> <p> <b>Minimum 454 * permissions</b> </p> <p>To run this command, you must have the following 455 * permissions:</p> <ul> <li> <p> <code>resource-groups:GroupResources</code> </p> 456 * </li> </ul><p><h3>See Also:</h3> <a 457 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GroupResources">AWS 458 * API Reference</a></p> 459 * 460 * returns a future to the operation so that it can be executed in parallel to other requests. 461 */ 462 virtual Model::GroupResourcesOutcomeCallable GroupResourcesCallable(const Model::GroupResourcesRequest& request) const; 463 464 /** 465 * <p>Adds the specified resources to the specified group.</p> <p> <b>Minimum 466 * permissions</b> </p> <p>To run this command, you must have the following 467 * permissions:</p> <ul> <li> <p> <code>resource-groups:GroupResources</code> </p> 468 * </li> </ul><p><h3>See Also:</h3> <a 469 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GroupResources">AWS 470 * API Reference</a></p> 471 * 472 * Queues the request into a thread executor and triggers associated callback when operation has finished. 473 */ 474 virtual void GroupResourcesAsync(const Model::GroupResourcesRequest& request, const GroupResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 475 476 /** 477 * <p>Returns a list of ARNs of the resources that are members of a specified 478 * resource group.</p> <p> <b>Minimum permissions</b> </p> <p>To run this command, 479 * you must have the following permissions:</p> <ul> <li> <p> 480 * <code>resource-groups:ListGroupResources</code> </p> </li> <li> <p> 481 * <code>cloudformation:DescribeStacks</code> </p> </li> <li> <p> 482 * <code>cloudformation:ListStackResources</code> </p> </li> <li> <p> 483 * <code>tag:GetResources</code> </p> </li> </ul><p><h3>See Also:</h3> <a 484 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroupResources">AWS 485 * API Reference</a></p> 486 */ 487 virtual Model::ListGroupResourcesOutcome ListGroupResources(const Model::ListGroupResourcesRequest& request) const; 488 489 /** 490 * <p>Returns a list of ARNs of the resources that are members of a specified 491 * resource group.</p> <p> <b>Minimum permissions</b> </p> <p>To run this command, 492 * you must have the following permissions:</p> <ul> <li> <p> 493 * <code>resource-groups:ListGroupResources</code> </p> </li> <li> <p> 494 * <code>cloudformation:DescribeStacks</code> </p> </li> <li> <p> 495 * <code>cloudformation:ListStackResources</code> </p> </li> <li> <p> 496 * <code>tag:GetResources</code> </p> </li> </ul><p><h3>See Also:</h3> <a 497 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroupResources">AWS 498 * API Reference</a></p> 499 * 500 * returns a future to the operation so that it can be executed in parallel to other requests. 501 */ 502 virtual Model::ListGroupResourcesOutcomeCallable ListGroupResourcesCallable(const Model::ListGroupResourcesRequest& request) const; 503 504 /** 505 * <p>Returns a list of ARNs of the resources that are members of a specified 506 * resource group.</p> <p> <b>Minimum permissions</b> </p> <p>To run this command, 507 * you must have the following permissions:</p> <ul> <li> <p> 508 * <code>resource-groups:ListGroupResources</code> </p> </li> <li> <p> 509 * <code>cloudformation:DescribeStacks</code> </p> </li> <li> <p> 510 * <code>cloudformation:ListStackResources</code> </p> </li> <li> <p> 511 * <code>tag:GetResources</code> </p> </li> </ul><p><h3>See Also:</h3> <a 512 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroupResources">AWS 513 * API Reference</a></p> 514 * 515 * Queues the request into a thread executor and triggers associated callback when operation has finished. 516 */ 517 virtual void ListGroupResourcesAsync(const Model::ListGroupResourcesRequest& request, const ListGroupResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 518 519 /** 520 * <p>Returns a list of existing resource groups in your account.</p> <p> 521 * <b>Minimum permissions</b> </p> <p>To run this command, you must have the 522 * following permissions:</p> <ul> <li> <p> <code>resource-groups:ListGroups</code> 523 * </p> </li> </ul><p><h3>See Also:</h3> <a 524 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroups">AWS 525 * API Reference</a></p> 526 */ 527 virtual Model::ListGroupsOutcome ListGroups(const Model::ListGroupsRequest& request) const; 528 529 /** 530 * <p>Returns a list of existing resource groups in your account.</p> <p> 531 * <b>Minimum permissions</b> </p> <p>To run this command, you must have the 532 * following permissions:</p> <ul> <li> <p> <code>resource-groups:ListGroups</code> 533 * </p> </li> </ul><p><h3>See Also:</h3> <a 534 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroups">AWS 535 * API Reference</a></p> 536 * 537 * returns a future to the operation so that it can be executed in parallel to other requests. 538 */ 539 virtual Model::ListGroupsOutcomeCallable ListGroupsCallable(const Model::ListGroupsRequest& request) const; 540 541 /** 542 * <p>Returns a list of existing resource groups in your account.</p> <p> 543 * <b>Minimum permissions</b> </p> <p>To run this command, you must have the 544 * following permissions:</p> <ul> <li> <p> <code>resource-groups:ListGroups</code> 545 * </p> </li> </ul><p><h3>See Also:</h3> <a 546 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroups">AWS 547 * API Reference</a></p> 548 * 549 * Queues the request into a thread executor and triggers associated callback when operation has finished. 550 */ 551 virtual void ListGroupsAsync(const Model::ListGroupsRequest& request, const ListGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 552 553 /** 554 * <p>Attaches a service configuration to the specified group. This occurs 555 * asynchronously, and can take time to complete. You can use 556 * <a>GetGroupConfiguration</a> to check the status of the update.</p> <p> 557 * <b>Minimum permissions</b> </p> <p>To run this command, you must have the 558 * following permissions:</p> <ul> <li> <p> 559 * <code>resource-groups:PutGroupConfiguration</code> </p> </li> </ul><p><h3>See 560 * Also:</h3> <a 561 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/PutGroupConfiguration">AWS 562 * API Reference</a></p> 563 */ 564 virtual Model::PutGroupConfigurationOutcome PutGroupConfiguration(const Model::PutGroupConfigurationRequest& request) const; 565 566 /** 567 * <p>Attaches a service configuration to the specified group. This occurs 568 * asynchronously, and can take time to complete. You can use 569 * <a>GetGroupConfiguration</a> to check the status of the update.</p> <p> 570 * <b>Minimum permissions</b> </p> <p>To run this command, you must have the 571 * following permissions:</p> <ul> <li> <p> 572 * <code>resource-groups:PutGroupConfiguration</code> </p> </li> </ul><p><h3>See 573 * Also:</h3> <a 574 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/PutGroupConfiguration">AWS 575 * API Reference</a></p> 576 * 577 * returns a future to the operation so that it can be executed in parallel to other requests. 578 */ 579 virtual Model::PutGroupConfigurationOutcomeCallable PutGroupConfigurationCallable(const Model::PutGroupConfigurationRequest& request) const; 580 581 /** 582 * <p>Attaches a service configuration to the specified group. This occurs 583 * asynchronously, and can take time to complete. You can use 584 * <a>GetGroupConfiguration</a> to check the status of the update.</p> <p> 585 * <b>Minimum permissions</b> </p> <p>To run this command, you must have the 586 * following permissions:</p> <ul> <li> <p> 587 * <code>resource-groups:PutGroupConfiguration</code> </p> </li> </ul><p><h3>See 588 * Also:</h3> <a 589 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/PutGroupConfiguration">AWS 590 * API Reference</a></p> 591 * 592 * Queues the request into a thread executor and triggers associated callback when operation has finished. 593 */ 594 virtual void PutGroupConfigurationAsync(const Model::PutGroupConfigurationRequest& request, const PutGroupConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 595 596 /** 597 * <p>Returns a list of AWS resource identifiers that matches the specified query. 598 * The query uses the same format as a resource query in a CreateGroup or 599 * UpdateGroupQuery operation.</p> <p> <b>Minimum permissions</b> </p> <p>To run 600 * this command, you must have the following permissions:</p> <ul> <li> <p> 601 * <code>resource-groups:SearchResources</code> </p> </li> <li> <p> 602 * <code>cloudformation:DescribeStacks</code> </p> </li> <li> <p> 603 * <code>cloudformation:ListStackResources</code> </p> </li> <li> <p> 604 * <code>tag:GetResources</code> </p> </li> </ul><p><h3>See Also:</h3> <a 605 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/SearchResources">AWS 606 * API Reference</a></p> 607 */ 608 virtual Model::SearchResourcesOutcome SearchResources(const Model::SearchResourcesRequest& request) const; 609 610 /** 611 * <p>Returns a list of AWS resource identifiers that matches the specified query. 612 * The query uses the same format as a resource query in a CreateGroup or 613 * UpdateGroupQuery operation.</p> <p> <b>Minimum permissions</b> </p> <p>To run 614 * this command, you must have the following permissions:</p> <ul> <li> <p> 615 * <code>resource-groups:SearchResources</code> </p> </li> <li> <p> 616 * <code>cloudformation:DescribeStacks</code> </p> </li> <li> <p> 617 * <code>cloudformation:ListStackResources</code> </p> </li> <li> <p> 618 * <code>tag:GetResources</code> </p> </li> </ul><p><h3>See Also:</h3> <a 619 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/SearchResources">AWS 620 * API Reference</a></p> 621 * 622 * returns a future to the operation so that it can be executed in parallel to other requests. 623 */ 624 virtual Model::SearchResourcesOutcomeCallable SearchResourcesCallable(const Model::SearchResourcesRequest& request) const; 625 626 /** 627 * <p>Returns a list of AWS resource identifiers that matches the specified query. 628 * The query uses the same format as a resource query in a CreateGroup or 629 * UpdateGroupQuery operation.</p> <p> <b>Minimum permissions</b> </p> <p>To run 630 * this command, you must have the following permissions:</p> <ul> <li> <p> 631 * <code>resource-groups:SearchResources</code> </p> </li> <li> <p> 632 * <code>cloudformation:DescribeStacks</code> </p> </li> <li> <p> 633 * <code>cloudformation:ListStackResources</code> </p> </li> <li> <p> 634 * <code>tag:GetResources</code> </p> </li> </ul><p><h3>See Also:</h3> <a 635 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/SearchResources">AWS 636 * API Reference</a></p> 637 * 638 * Queues the request into a thread executor and triggers associated callback when operation has finished. 639 */ 640 virtual void SearchResourcesAsync(const Model::SearchResourcesRequest& request, const SearchResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 641 642 /** 643 * <p>Adds tags to a resource group with the specified ARN. Existing tags on a 644 * resource group are not changed if they are not specified in the request 645 * parameters.</p> <p>Do not store personally identifiable information 646 * (PII) or other confidential or sensitive information in tags. We use tags to 647 * provide you with billing and administration services. Tags are not intended to 648 * be used for private or sensitive data.</p> <p> <b>Minimum 649 * permissions</b> </p> <p>To run this command, you must have the following 650 * permissions:</p> <ul> <li> <p> <code>resource-groups:Tag</code> </p> </li> 651 * </ul><p><h3>See Also:</h3> <a 652 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Tag">AWS 653 * API Reference</a></p> 654 */ 655 virtual Model::TagOutcome Tag(const Model::TagRequest& request) const; 656 657 /** 658 * <p>Adds tags to a resource group with the specified ARN. Existing tags on a 659 * resource group are not changed if they are not specified in the request 660 * parameters.</p> <p>Do not store personally identifiable information 661 * (PII) or other confidential or sensitive information in tags. We use tags to 662 * provide you with billing and administration services. Tags are not intended to 663 * be used for private or sensitive data.</p> <p> <b>Minimum 664 * permissions</b> </p> <p>To run this command, you must have the following 665 * permissions:</p> <ul> <li> <p> <code>resource-groups:Tag</code> </p> </li> 666 * </ul><p><h3>See Also:</h3> <a 667 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Tag">AWS 668 * API Reference</a></p> 669 * 670 * returns a future to the operation so that it can be executed in parallel to other requests. 671 */ 672 virtual Model::TagOutcomeCallable TagCallable(const Model::TagRequest& request) const; 673 674 /** 675 * <p>Adds tags to a resource group with the specified ARN. Existing tags on a 676 * resource group are not changed if they are not specified in the request 677 * parameters.</p> <p>Do not store personally identifiable information 678 * (PII) or other confidential or sensitive information in tags. We use tags to 679 * provide you with billing and administration services. Tags are not intended to 680 * be used for private or sensitive data.</p> <p> <b>Minimum 681 * permissions</b> </p> <p>To run this command, you must have the following 682 * permissions:</p> <ul> <li> <p> <code>resource-groups:Tag</code> </p> </li> 683 * </ul><p><h3>See Also:</h3> <a 684 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Tag">AWS 685 * API Reference</a></p> 686 * 687 * Queues the request into a thread executor and triggers associated callback when operation has finished. 688 */ 689 virtual void TagAsync(const Model::TagRequest& request, const TagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 690 691 /** 692 * <p>Removes the specified resources from the specified group.</p> <p> <b>Minimum 693 * permissions</b> </p> <p>To run this command, you must have the following 694 * permissions:</p> <ul> <li> <p> <code>resource-groups:UngroupResources</code> 695 * </p> </li> </ul><p><h3>See Also:</h3> <a 696 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UngroupResources">AWS 697 * API Reference</a></p> 698 */ 699 virtual Model::UngroupResourcesOutcome UngroupResources(const Model::UngroupResourcesRequest& request) const; 700 701 /** 702 * <p>Removes the specified resources from the specified group.</p> <p> <b>Minimum 703 * permissions</b> </p> <p>To run this command, you must have the following 704 * permissions:</p> <ul> <li> <p> <code>resource-groups:UngroupResources</code> 705 * </p> </li> </ul><p><h3>See Also:</h3> <a 706 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UngroupResources">AWS 707 * API Reference</a></p> 708 * 709 * returns a future to the operation so that it can be executed in parallel to other requests. 710 */ 711 virtual Model::UngroupResourcesOutcomeCallable UngroupResourcesCallable(const Model::UngroupResourcesRequest& request) const; 712 713 /** 714 * <p>Removes the specified resources from the specified group.</p> <p> <b>Minimum 715 * permissions</b> </p> <p>To run this command, you must have the following 716 * permissions:</p> <ul> <li> <p> <code>resource-groups:UngroupResources</code> 717 * </p> </li> </ul><p><h3>See Also:</h3> <a 718 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UngroupResources">AWS 719 * API Reference</a></p> 720 * 721 * Queues the request into a thread executor and triggers associated callback when operation has finished. 722 */ 723 virtual void UngroupResourcesAsync(const Model::UngroupResourcesRequest& request, const UngroupResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 724 725 /** 726 * <p>Deletes tags from a specified resource group.</p> <p> <b>Minimum 727 * permissions</b> </p> <p>To run this command, you must have the following 728 * permissions:</p> <ul> <li> <p> <code>resource-groups:Untag</code> </p> </li> 729 * </ul><p><h3>See Also:</h3> <a 730 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Untag">AWS 731 * API Reference</a></p> 732 */ 733 virtual Model::UntagOutcome Untag(const Model::UntagRequest& request) const; 734 735 /** 736 * <p>Deletes tags from a specified resource group.</p> <p> <b>Minimum 737 * permissions</b> </p> <p>To run this command, you must have the following 738 * permissions:</p> <ul> <li> <p> <code>resource-groups:Untag</code> </p> </li> 739 * </ul><p><h3>See Also:</h3> <a 740 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Untag">AWS 741 * API Reference</a></p> 742 * 743 * returns a future to the operation so that it can be executed in parallel to other requests. 744 */ 745 virtual Model::UntagOutcomeCallable UntagCallable(const Model::UntagRequest& request) const; 746 747 /** 748 * <p>Deletes tags from a specified resource group.</p> <p> <b>Minimum 749 * permissions</b> </p> <p>To run this command, you must have the following 750 * permissions:</p> <ul> <li> <p> <code>resource-groups:Untag</code> </p> </li> 751 * </ul><p><h3>See Also:</h3> <a 752 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Untag">AWS 753 * API Reference</a></p> 754 * 755 * Queues the request into a thread executor and triggers associated callback when operation has finished. 756 */ 757 virtual void UntagAsync(const Model::UntagRequest& request, const UntagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 758 759 /** 760 * <p>Updates the description for an existing group. You cannot update the name of 761 * a resource group.</p> <p> <b>Minimum permissions</b> </p> <p>To run this 762 * command, you must have the following permissions:</p> <ul> <li> <p> 763 * <code>resource-groups:UpdateGroup</code> </p> </li> </ul><p><h3>See Also:</h3> 764 * <a 765 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroup">AWS 766 * API Reference</a></p> 767 */ 768 virtual Model::UpdateGroupOutcome UpdateGroup(const Model::UpdateGroupRequest& request) const; 769 770 /** 771 * <p>Updates the description for an existing group. You cannot update the name of 772 * a resource group.</p> <p> <b>Minimum permissions</b> </p> <p>To run this 773 * command, you must have the following permissions:</p> <ul> <li> <p> 774 * <code>resource-groups:UpdateGroup</code> </p> </li> </ul><p><h3>See Also:</h3> 775 * <a 776 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroup">AWS 777 * API Reference</a></p> 778 * 779 * returns a future to the operation so that it can be executed in parallel to other requests. 780 */ 781 virtual Model::UpdateGroupOutcomeCallable UpdateGroupCallable(const Model::UpdateGroupRequest& request) const; 782 783 /** 784 * <p>Updates the description for an existing group. You cannot update the name of 785 * a resource group.</p> <p> <b>Minimum permissions</b> </p> <p>To run this 786 * command, you must have the following permissions:</p> <ul> <li> <p> 787 * <code>resource-groups:UpdateGroup</code> </p> </li> </ul><p><h3>See Also:</h3> 788 * <a 789 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroup">AWS 790 * API Reference</a></p> 791 * 792 * Queues the request into a thread executor and triggers associated callback when operation has finished. 793 */ 794 virtual void UpdateGroupAsync(const Model::UpdateGroupRequest& request, const UpdateGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 795 796 /** 797 * <p>Updates the resource query of a group. For more information about resource 798 * queries, see <a 799 * href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create 800 * a tag-based group in Resource Groups</a>.</p> <p> <b>Minimum permissions</b> 801 * </p> <p>To run this command, you must have the following permissions:</p> <ul> 802 * <li> <p> <code>resource-groups:UpdateGroupQuery</code> </p> </li> 803 * </ul><p><h3>See Also:</h3> <a 804 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroupQuery">AWS 805 * API Reference</a></p> 806 */ 807 virtual Model::UpdateGroupQueryOutcome UpdateGroupQuery(const Model::UpdateGroupQueryRequest& request) const; 808 809 /** 810 * <p>Updates the resource query of a group. For more information about resource 811 * queries, see <a 812 * href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create 813 * a tag-based group in Resource Groups</a>.</p> <p> <b>Minimum permissions</b> 814 * </p> <p>To run this command, you must have the following permissions:</p> <ul> 815 * <li> <p> <code>resource-groups:UpdateGroupQuery</code> </p> </li> 816 * </ul><p><h3>See Also:</h3> <a 817 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroupQuery">AWS 818 * API Reference</a></p> 819 * 820 * returns a future to the operation so that it can be executed in parallel to other requests. 821 */ 822 virtual Model::UpdateGroupQueryOutcomeCallable UpdateGroupQueryCallable(const Model::UpdateGroupQueryRequest& request) const; 823 824 /** 825 * <p>Updates the resource query of a group. For more information about resource 826 * queries, see <a 827 * href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create 828 * a tag-based group in Resource Groups</a>.</p> <p> <b>Minimum permissions</b> 829 * </p> <p>To run this command, you must have the following permissions:</p> <ul> 830 * <li> <p> <code>resource-groups:UpdateGroupQuery</code> </p> </li> 831 * </ul><p><h3>See Also:</h3> <a 832 * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroupQuery">AWS 833 * API Reference</a></p> 834 * 835 * Queues the request into a thread executor and triggers associated callback when operation has finished. 836 */ 837 virtual void UpdateGroupQueryAsync(const Model::UpdateGroupQueryRequest& request, const UpdateGroupQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 838 839 840 void OverrideEndpoint(const Aws::String& endpoint); 841 private: 842 void init(const Aws::Client::ClientConfiguration& clientConfiguration); 843 void CreateGroupAsyncHelper(const Model::CreateGroupRequest& request, const CreateGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 844 void DeleteGroupAsyncHelper(const Model::DeleteGroupRequest& request, const DeleteGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 845 void GetGroupAsyncHelper(const Model::GetGroupRequest& request, const GetGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 846 void GetGroupConfigurationAsyncHelper(const Model::GetGroupConfigurationRequest& request, const GetGroupConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 847 void GetGroupQueryAsyncHelper(const Model::GetGroupQueryRequest& request, const GetGroupQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 848 void GetTagsAsyncHelper(const Model::GetTagsRequest& request, const GetTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 849 void GroupResourcesAsyncHelper(const Model::GroupResourcesRequest& request, const GroupResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 850 void ListGroupResourcesAsyncHelper(const Model::ListGroupResourcesRequest& request, const ListGroupResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 851 void ListGroupsAsyncHelper(const Model::ListGroupsRequest& request, const ListGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 852 void PutGroupConfigurationAsyncHelper(const Model::PutGroupConfigurationRequest& request, const PutGroupConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 853 void SearchResourcesAsyncHelper(const Model::SearchResourcesRequest& request, const SearchResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 854 void TagAsyncHelper(const Model::TagRequest& request, const TagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 855 void UngroupResourcesAsyncHelper(const Model::UngroupResourcesRequest& request, const UngroupResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 856 void UntagAsyncHelper(const Model::UntagRequest& request, const UntagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 857 void UpdateGroupAsyncHelper(const Model::UpdateGroupRequest& request, const UpdateGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 858 void UpdateGroupQueryAsyncHelper(const Model::UpdateGroupQueryRequest& request, const UpdateGroupQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 859 860 Aws::String m_uri; 861 Aws::String m_configScheme; 862 std::shared_ptr<Aws::Utils::Threading::Executor> m_executor; 863 }; 864 865 } // namespace ResourceGroups 866 } // namespace Aws 867