/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.controltower; import javax.annotation.Generated; import com.amazonaws.services.controltower.model.*; import com.amazonaws.client.AwsAsyncClientParams; import com.amazonaws.annotation.ThreadSafe; import java.util.concurrent.ExecutorService; /** * Client for accessing AWS Control Tower asynchronously. Each asynchronous method will return a Java Future object * representing the asynchronous operation; overloads which accept an {@code AsyncHandler} can be used to receive * notification when an asynchronous operation completes. *
*
* These interfaces allow you to apply the AWS library of pre-defined controls to your organizational units, * programmatically. In this context, controls are the same as AWS Control Tower guardrails. *
** To call these APIs, you'll need to know: *
*
* the ControlARN
for the control--that is, the guardrail--you are targeting,
*
* and the ARN associated with the target organizational unit (OU). *
*
* To get the ControlARN
for your AWS Control Tower guardrail:
*
* The ControlARN
contains the control name which is specified in each guardrail. For a list of control
* names for Strongly recommended and Elective guardrails, see Resource identifiers
* for APIs and guardrails in the Automating tasks section
* of the AWS Control Tower User Guide. Remember that Mandatory guardrails cannot be added or removed.
*
* ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME}
*
* Example: *
*
* arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED
*
* To get the ARN for an OU: *
** In the AWS Organizations console, you can find the ARN for the OU on the Organizational unit details page * associated with that OU. *
** OU ARN format: *
*
* arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}
*
* Details and examples *
** * Creating AWS Control Tower resources with AWS CloudFormation *
** To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower *
** Recording API Requests *
** AWS Control Tower supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log * files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine which requests the AWS * Control Tower service received, who made the request and when, and so on. For more about AWS Control Tower and its * support for CloudTrail, see Logging AWS Control * Tower Actions with AWS CloudTrail in the AWS Control Tower User Guide. To learn more about CloudTrail, including * how to turn it on and find your log files, see the AWS CloudTrail User Guide. *
*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AWSControlTowerAsyncClient extends AWSControlTowerClient implements AWSControlTowerAsync { private static final int DEFAULT_THREAD_POOL_SIZE = 50; private final java.util.concurrent.ExecutorService executorService; public static AWSControlTowerAsyncClientBuilder asyncBuilder() { return AWSControlTowerAsyncClientBuilder.standard(); } /** * Constructs a new asynchronous client to invoke service methods on AWS Control Tower using the specified * parameters. * * @param asyncClientParams * Object providing client parameters. */ AWSControlTowerAsyncClient(AwsAsyncClientParams asyncClientParams) { this(asyncClientParams, false); } /** * Constructs a new asynchronous client to invoke service methods on AWS Control Tower using the specified * parameters. * * @param asyncClientParams * Object providing client parameters. * @param endpointDiscoveryEnabled * true will enable endpoint discovery if the service supports it. */ AWSControlTowerAsyncClient(AwsAsyncClientParams asyncClientParams, boolean endpointDiscoveryEnabled) { super(asyncClientParams, endpointDiscoveryEnabled); this.executorService = asyncClientParams.getExecutor(); } /** * Returns the executor service used by this client to execute async requests. * * @return The executor service used by this client to execute async requests. */ public ExecutorService getExecutorService() { return executorService; } @Override public java.util.concurrent.Future