/* * 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.*; /** * Interface 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. *

* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.controltower.AbstractAWSControlTowerAsync} instead. *

*

*

* 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: *

* *

* 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 *

* *

* 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. *

*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AWSControlTowerAsync extends AWSControlTower { /** *

* This API call turns off a control. It starts an asynchronous operation that deletes AWS resources on the * specified organizational unit and the accounts it contains. The resources will vary according to the control that * you specify. *

* * @param disableControlRequest * @return A Java Future containing the result of the DisableControl operation returned by the service. * @sample AWSControlTowerAsync.DisableControl * @see AWS * API Documentation */ java.util.concurrent.Future disableControlAsync(DisableControlRequest disableControlRequest); /** *

* This API call turns off a control. It starts an asynchronous operation that deletes AWS resources on the * specified organizational unit and the accounts it contains. The resources will vary according to the control that * you specify. *

* * @param disableControlRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the DisableControl operation returned by the service. * @sample AWSControlTowerAsyncHandler.DisableControl * @see AWS * API Documentation */ java.util.concurrent.Future disableControlAsync(DisableControlRequest disableControlRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); /** *

* This API call activates a control. It starts an asynchronous operation that creates AWS resources on the * specified organizational unit and the accounts it contains. The resources created will vary according to the * control that you specify. *

* * @param enableControlRequest * @return A Java Future containing the result of the EnableControl operation returned by the service. * @sample AWSControlTowerAsync.EnableControl * @see AWS API * Documentation */ java.util.concurrent.Future enableControlAsync(EnableControlRequest enableControlRequest); /** *

* This API call activates a control. It starts an asynchronous operation that creates AWS resources on the * specified organizational unit and the accounts it contains. The resources created will vary according to the * control that you specify. *

* * @param enableControlRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the EnableControl operation returned by the service. * @sample AWSControlTowerAsyncHandler.EnableControl * @see AWS API * Documentation */ java.util.concurrent.Future enableControlAsync(EnableControlRequest enableControlRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); /** *

* Returns the status of a particular EnableControl or DisableControl operation. Displays * a message in case of error. Details for an operation are available for 90 days. *

* * @param getControlOperationRequest * @return A Java Future containing the result of the GetControlOperation operation returned by the service. * @sample AWSControlTowerAsync.GetControlOperation * @see AWS API Documentation */ java.util.concurrent.Future getControlOperationAsync(GetControlOperationRequest getControlOperationRequest); /** *

* Returns the status of a particular EnableControl or DisableControl operation. Displays * a message in case of error. Details for an operation are available for 90 days. *

* * @param getControlOperationRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the GetControlOperation operation returned by the service. * @sample AWSControlTowerAsyncHandler.GetControlOperation * @see AWS API Documentation */ java.util.concurrent.Future getControlOperationAsync(GetControlOperationRequest getControlOperationRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); /** *

* Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it * contains. *

* * @param listEnabledControlsRequest * @return A Java Future containing the result of the ListEnabledControls operation returned by the service. * @sample AWSControlTowerAsync.ListEnabledControls * @see AWS API Documentation */ java.util.concurrent.Future listEnabledControlsAsync(ListEnabledControlsRequest listEnabledControlsRequest); /** *

* Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it * contains. *

* * @param listEnabledControlsRequest * @param asyncHandler * Asynchronous callback handler for events in the lifecycle of the request. Users can provide an * implementation of the callback methods in this interface to receive notification of successful or * unsuccessful completion of the operation. * @return A Java Future containing the result of the ListEnabledControls operation returned by the service. * @sample AWSControlTowerAsyncHandler.ListEnabledControls * @see AWS API Documentation */ java.util.concurrent.Future listEnabledControlsAsync(ListEnabledControlsRequest listEnabledControlsRequest, com.amazonaws.handlers.AsyncHandler asyncHandler); }