/*
 * Copyright 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.
 */
/*
 * Do not modify this file. This file is generated from the cloudtrail-2013-11-01.normal.json service model.
 */
using System;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.CloudTrail.Model;
namespace Amazon.CloudTrail
{
    /// 
    /// Interface for accessing CloudTrail
    ///
    /// CloudTrail 
    /// 
    /// This is the CloudTrail API Reference. It provides descriptions of actions, data types,
    /// common parameters, and common errors for CloudTrail.
    /// 
    ///  
    /// 
    /// CloudTrail is a web service that records Amazon Web Services API calls for your Amazon
    /// Web Services account and delivers log files to an Amazon S3 bucket. The recorded information
    /// includes the identity of the user, the start time of the Amazon Web Services API call,
    /// the source IP address, the request parameters, and the response elements returned
    /// by the service.
    /// 
    ///   
    /// 
    /// As an alternative to the API, you can use one of the Amazon Web Services SDKs, which
    /// consist of libraries and sample code for various programming languages and platforms
    /// (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide programmatic access to CloudTrail.
    /// For example, the SDKs handle cryptographically signing requests, managing errors,
    /// and retrying requests automatically. For more information about the Amazon Web Services
    /// SDKs, including how to download and install them, see Tools
    /// to Build on Amazon Web Services.
    /// 
    ///   
    /// 
    /// See the CloudTrail
    /// User Guide for information about the data that is included with each Amazon Web
    /// Services API call listed in the log files.
    /// 
    /// 
    public partial interface IAmazonCloudTrail : IAmazonService, IDisposable
    {
#if BCL45 || AWS_ASYNC_ENUMERABLES_API
        /// 
        /// Paginators for the service
        /// 
        ICloudTrailPaginatorFactory Paginators { get; }
#endif
        
        #region  AddTags
        /// 
        /// Adds one or more tags to a trail, event data store, or channel, up to a limit of 50.
        /// Overwrites an existing tag's value when a new value is specified for an existing tag
        /// key. Tag key names must be unique; you cannot have two keys with the same name but
        /// different values. If you specify a key without a value, the tag will be created with
        /// the specified key and a value of null. You can tag a trail or event data store that
        /// applies to all Amazon Web Services Regions only from the Region in which the trail
        /// or event data store was created (also known as its home Region).
        /// 
        /// Container for the necessary parameters to execute the AddTags service method.
        /// 
        /// The response from the AddTags service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the specified value of ChannelARN is not
        /// valid.
        /// 
        /// 
        /// This exception is thrown when CloudTrail cannot find the specified channel.
        /// 
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// This exception is thrown when the specified tag key or values are not valid. It can
        /// also occur if there are duplicate tags or too many tags on the resource.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not found.
        /// 
        /// 
        /// This exception is thrown when the specified resource type is not supported by CloudTrail.
        /// 
        /// 
        /// The number of tags per trail, event data store, or channel has exceeded the permitted
        /// amount. Currently, the limit is 50.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for AddTags Operation
        AddTagsResponse AddTags(AddTagsRequest request);
        /// 
        /// Initiates the asynchronous execution of the AddTags operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AddTags operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndAddTags
        ///         operation.
        /// REST API Reference for AddTags Operation
        IAsyncResult BeginAddTags(AddTagsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  AddTags operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginAddTags.
        /// 
        /// Returns a  AddTagsResult from CloudTrail.
        /// REST API Reference for AddTags Operation
        AddTagsResponse EndAddTags(IAsyncResult asyncResult);
        #endregion
        
        #region  CancelQuery
        /// 
        /// Cancels a query if the query is not in a terminated state, such as CANCELLED,
        /// FAILED, TIMED_OUT, or FINISHED. You must specify
        /// an ARN value for EventDataStore. The ID of the query that you want to
        /// cancel is also required. When you run CancelQuery, the query status might
        /// show as CANCELLED even if the operation is not yet finished.
        /// 
        /// Container for the necessary parameters to execute the CancelQuery service method.
        /// 
        /// The response from the CancelQuery service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// The specified query cannot be canceled because it is in the FINISHED,
        /// FAILED, TIMED_OUT, or CANCELLED state.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// The query ID does not exist or does not map to a query.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for CancelQuery Operation
        CancelQueryResponse CancelQuery(CancelQueryRequest request);
        /// 
        /// Initiates the asynchronous execution of the CancelQuery operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CancelQuery operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCancelQuery
        ///         operation.
        /// REST API Reference for CancelQuery Operation
        IAsyncResult BeginCancelQuery(CancelQueryRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CancelQuery operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCancelQuery.
        /// 
        /// Returns a  CancelQueryResult from CloudTrail.
        /// REST API Reference for CancelQuery Operation
        CancelQueryResponse EndCancelQuery(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateChannel
        /// 
        /// Creates a channel for CloudTrail to ingest events from a partner or external source.
        /// After you create a channel, a CloudTrail Lake event data store can log events from
        /// the partner or source that you specify.
        /// 
        /// Container for the necessary parameters to execute the CreateChannel service method.
        /// 
        /// The response from the CreateChannel service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the provided channel already exists.
        /// 
        /// 
        /// This exception is thrown when the maximum number of channels limit is exceeded.
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// This exception is thrown when event categories of specified event data stores are
        /// not valid.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the specified value of Source is not valid.
        /// 
        /// 
        /// This exception is thrown when the specified tag key or values are not valid. It can
        /// also occur if there are duplicate tags or too many tags on the resource.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// The number of tags per trail, event data store, or channel has exceeded the permitted
        /// amount. Currently, the limit is 50.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for CreateChannel Operation
        CreateChannelResponse CreateChannel(CreateChannelRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateChannel operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateChannel
        ///         operation.
        /// REST API Reference for CreateChannel Operation
        IAsyncResult BeginCreateChannel(CreateChannelRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateChannel.
        /// 
        /// Returns a  CreateChannelResult from CloudTrail.
        /// REST API Reference for CreateChannel Operation
        CreateChannelResponse EndCreateChannel(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateEventDataStore
        /// 
        /// Creates a new event data store.
        /// 
        /// Container for the necessary parameters to execute the CreateEventDataStore service method.
        /// 
        /// The response from the CreateEventDataStore service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when trusted access has not been enabled between CloudTrail
        /// and Organizations. For more information, see Enabling
        /// Trusted Access with Other Amazon Web Services Services and Prepare
        /// For Creating a Trail For Your Organization.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// An event data store with that name already exists.
        /// 
        /// 
        /// Your account has used the maximum number of event data stores.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket or KMS key does not have
        /// sufficient permissions for the operation.
        /// 
        /// 
        /// This exception is thrown when the PutEventSelectors operation is called
        /// with a number of event selectors, advanced event selectors, or data resources that
        /// is not valid. The combination of event selectors or advanced event selectors and data
        /// resources is not valid. A trail can have up to 5 event selectors. If a trail uses
        /// advanced event selectors, a maximum of 500 total values for all conditions in all
        /// advanced event selectors is allowed. A trail is limited to 250 data resources. These
        /// data resources can be distributed across event selectors, but the overall total cannot
        /// exceed 250.
        /// 
        ///  
        /// 
        /// You can:
        /// 
        ///   -  
        /// 
        /// Specify a valid number of event selectors (1 to 5) for a trail.
        /// 
        ///  
  -  
        /// 
        /// Specify a valid number of data resources (1 to 250) for an event selector. The limit
        /// of number of resources on an individual event selector is configurable up to 250.
        /// However, this upper limit is allowed only if the total number of data resources does
        /// not exceed 250 across all event selectors for a trail.
        /// 
        ///  
  -  
        /// 
        /// Specify up to 500 values for all conditions in all advanced event selectors for a
        /// trail.
        /// 
        ///  
  -  
        /// 
        /// Specify a valid value for a parameter. For example, specifying the 
ReadWriteType
        /// parameter with a value of read-only is not valid.
        /// 
        ///    
        /// 
        /// 
        /// This exception is thrown when the KMS key ARN is not valid.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the specified tag key or values are not valid. It can
        /// also occur if there are duplicate tags or too many tags on the resource.
        /// 
        /// 
        /// This exception is thrown when there is an issue with the specified KMS key and the
        /// trail or event data store can't be updated.
        /// 
        /// 
        /// This exception is thrown when the KMS key does not exist, when the S3 bucket and the
        /// KMS key are not in the same Region, or when the KMS key associated with the Amazon
        /// SNS topic either does not exist or is not in the same Region.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when Organizations is not configured to support all features.
        /// All features must be enabled in Organizations to support creating an organization
        /// trail or event data store.
        /// 
        /// 
        /// This exception is thrown when the request is made from an Amazon Web Services account
        /// that is not a member of an organization. To make this request, sign in using the credentials
        /// of an account that belongs to an organization.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for CreateEventDataStore Operation
        CreateEventDataStoreResponse CreateEventDataStore(CreateEventDataStoreRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateEventDataStore operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateEventDataStore operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateEventDataStore
        ///         operation.
        /// REST API Reference for CreateEventDataStore Operation
        IAsyncResult BeginCreateEventDataStore(CreateEventDataStoreRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateEventDataStore operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateEventDataStore.
        /// 
        /// Returns a  CreateEventDataStoreResult from CloudTrail.
        /// REST API Reference for CreateEventDataStore Operation
        CreateEventDataStoreResponse EndCreateEventDataStore(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateTrail
        /// 
        /// Creates a trail that specifies the settings for delivery of log data to an Amazon
        /// S3 bucket.
        /// 
        /// Container for the necessary parameters to execute the CreateTrail service method.
        /// 
        /// The response from the CreateTrail service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when trusted access has not been enabled between CloudTrail
        /// and Organizations. For more information, see Enabling
        /// Trusted Access with Other Amazon Web Services Services and Prepare
        /// For Creating a Trail For Your Organization.
        /// 
        /// 
        /// This exception is thrown when a call results in the InvalidClientTokenId
        /// error code. This can occur when you are creating or updating a trail to send notifications
        /// to an Amazon SNS topic that is in a suspended Amazon Web Services account.
        /// 
        /// 
        /// Cannot set a CloudWatch Logs delivery for this Region.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket or KMS key does not have
        /// sufficient permissions for the operation.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket is not sufficient.
        /// 
        /// 
        /// This exception is thrown when the policy on the Amazon SNS topic is not sufficient.
        /// 
        /// 
        /// This exception is thrown when the provided CloudWatch Logs log group is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided role is not valid.
        /// 
        /// 
        /// This exception is thrown when the KMS key ARN is not valid.
        /// 
        /// 
        /// This exception is thrown when the combination of parameters provided is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided S3 bucket name is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided S3 prefix is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided SNS topic name is not valid.
        /// 
        /// 
        /// This exception is thrown when the specified tag key or values are not valid. It can
        /// also occur if there are duplicate tags or too many tags on the resource.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when there is an issue with the specified KMS key and the
        /// trail or event data store can't be updated.
        /// 
        /// 
        /// This exception is no longer in use.
        /// 
        /// 
        /// This exception is thrown when the KMS key does not exist, when the S3 bucket and the
        /// KMS key are not in the same Region, or when the KMS key associated with the Amazon
        /// SNS topic either does not exist or is not in the same Region.
        /// 
        /// 
        /// This exception is thrown when the maximum number of trails is reached.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when Organizations is not configured to support all features.
        /// All features must be enabled in Organizations to support creating an organization
        /// trail or event data store.
        /// 
        /// 
        /// This exception is thrown when the request is made from an Amazon Web Services account
        /// that is not a member of an organization. To make this request, sign in using the credentials
        /// of an account that belongs to an organization.
        /// 
        /// 
        /// This exception is thrown when the specified S3 bucket does not exist.
        /// 
        /// 
        /// The number of tags per trail, event data store, or channel has exceeded the permitted
        /// amount. Currently, the limit is 50.
        /// 
        /// 
        /// This exception is thrown when the specified trail already exists.
        /// 
        /// 
        /// This exception is no longer in use.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for CreateTrail Operation
        CreateTrailResponse CreateTrail(CreateTrailRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateTrail operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateTrail operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateTrail
        ///         operation.
        /// REST API Reference for CreateTrail Operation
        IAsyncResult BeginCreateTrail(CreateTrailRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateTrail operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateTrail.
        /// 
        /// Returns a  CreateTrailResult from CloudTrail.
        /// REST API Reference for CreateTrail Operation
        CreateTrailResponse EndCreateTrail(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteChannel
        /// 
        /// Deletes a channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteChannel service method.
        /// 
        /// The response from the DeleteChannel service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the specified value of ChannelARN is not
        /// valid.
        /// 
        /// 
        /// This exception is thrown when CloudTrail cannot find the specified channel.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for DeleteChannel Operation
        DeleteChannelResponse DeleteChannel(DeleteChannelRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteChannel operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteChannel
        ///         operation.
        /// REST API Reference for DeleteChannel Operation
        IAsyncResult BeginDeleteChannel(DeleteChannelRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteChannel.
        /// 
        /// Returns a  DeleteChannelResult from CloudTrail.
        /// REST API Reference for DeleteChannel Operation
        DeleteChannelResponse EndDeleteChannel(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteEventDataStore
        /// 
        /// Disables the event data store specified by EventDataStore, which accepts
        /// an event data store ARN. After you run DeleteEventDataStore, the event
        /// data store enters a PENDING_DELETION state, and is automatically deleted
        /// after a wait period of seven days. TerminationProtectionEnabled must
        /// be set to False on the event data store; this operation cannot work if
        /// TerminationProtectionEnabled is True.
        /// 
        ///  
        /// 
        /// After you run DeleteEventDataStore on an event data store, you cannot
        /// run ListQueries, DescribeQuery, or GetQueryResults
        /// on queries that are using an event data store in a PENDING_DELETION state.
        /// An event data store in the PENDING_DELETION state does not incur costs.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteEventDataStore service method.
        /// 
        /// The response from the DeleteEventDataStore service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the specified event data store cannot yet be deleted
        /// because it is in use by a channel.
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// This exception is thrown when you try to update or delete an event data store that
        /// currently has an import in progress.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store cannot be deleted because termination protection is enabled for
        /// it.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for DeleteEventDataStore Operation
        DeleteEventDataStoreResponse DeleteEventDataStore(DeleteEventDataStoreRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteEventDataStore operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteEventDataStore operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteEventDataStore
        ///         operation.
        /// REST API Reference for DeleteEventDataStore Operation
        IAsyncResult BeginDeleteEventDataStore(DeleteEventDataStoreRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteEventDataStore operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteEventDataStore.
        /// 
        /// Returns a  DeleteEventDataStoreResult from CloudTrail.
        /// REST API Reference for DeleteEventDataStore Operation
        DeleteEventDataStoreResponse EndDeleteEventDataStore(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteResourcePolicy
        /// 
        /// Deletes the resource-based policy attached to the CloudTrail channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteResourcePolicy service method.
        /// 
        /// The response from the DeleteResourcePolicy service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the provided resource does not exist, or the ARN format
        /// of the resource is not valid. The following is the valid format for a resource ARN:
        /// arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not found.
        /// 
        /// 
        /// This exception is thrown when the specified resource policy is not found.
        /// 
        /// 
        /// This exception is thrown when the specified resource type is not supported by CloudTrail.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for DeleteResourcePolicy Operation
        DeleteResourcePolicyResponse DeleteResourcePolicy(DeleteResourcePolicyRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteResourcePolicy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteResourcePolicy operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteResourcePolicy
        ///         operation.
        /// REST API Reference for DeleteResourcePolicy Operation
        IAsyncResult BeginDeleteResourcePolicy(DeleteResourcePolicyRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteResourcePolicy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteResourcePolicy.
        /// 
        /// Returns a  DeleteResourcePolicyResult from CloudTrail.
        /// REST API Reference for DeleteResourcePolicy Operation
        DeleteResourcePolicyResponse EndDeleteResourcePolicy(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteTrail
        /// 
        /// Deletes a trail. This operation must be called from the Region in which the trail
        /// was created. DeleteTrail cannot be called on the shadow trails (replicated
        /// trails in other Regions) of a trail that is enabled in all Regions.
        /// 
        /// Container for the necessary parameters to execute the DeleteTrail service method.
        /// 
        /// The response from the DeleteTrail service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when an operation is called on a trail from a Region other
        /// than the Region in which the trail was created.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for DeleteTrail Operation
        DeleteTrailResponse DeleteTrail(DeleteTrailRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteTrail operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteTrail operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteTrail
        ///         operation.
        /// REST API Reference for DeleteTrail Operation
        IAsyncResult BeginDeleteTrail(DeleteTrailRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteTrail operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteTrail.
        /// 
        /// Returns a  DeleteTrailResult from CloudTrail.
        /// REST API Reference for DeleteTrail Operation
        DeleteTrailResponse EndDeleteTrail(IAsyncResult asyncResult);
        #endregion
        
        #region  DeregisterOrganizationDelegatedAdmin
        /// 
        /// Removes CloudTrail delegated administrator permissions from a member account in an
        /// organization.
        /// 
        /// Container for the necessary parameters to execute the DeregisterOrganizationDelegatedAdmin service method.
        /// 
        /// The response from the DeregisterOrganizationDelegatedAdmin service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the specified account is not found or not part of an
        /// organization.
        /// 
        /// 
        /// This exception is thrown when the specified account is not registered as the CloudTrail
        /// delegated administrator.
        /// 
        /// 
        /// This exception is thrown when trusted access has not been enabled between CloudTrail
        /// and Organizations. For more information, see Enabling
        /// Trusted Access with Other Amazon Web Services Services and Prepare
        /// For Creating a Trail For Your Organization.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the account making the request is not the organization's
        /// management account.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when Organizations is not configured to support all features.
        /// All features must be enabled in Organizations to support creating an organization
        /// trail or event data store.
        /// 
        /// 
        /// This exception is thrown when the request is made from an Amazon Web Services account
        /// that is not a member of an organization. To make this request, sign in using the credentials
        /// of an account that belongs to an organization.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for DeregisterOrganizationDelegatedAdmin Operation
        DeregisterOrganizationDelegatedAdminResponse DeregisterOrganizationDelegatedAdmin(DeregisterOrganizationDelegatedAdminRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeregisterOrganizationDelegatedAdmin operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeregisterOrganizationDelegatedAdmin operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeregisterOrganizationDelegatedAdmin
        ///         operation.
        /// REST API Reference for DeregisterOrganizationDelegatedAdmin Operation
        IAsyncResult BeginDeregisterOrganizationDelegatedAdmin(DeregisterOrganizationDelegatedAdminRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeregisterOrganizationDelegatedAdmin operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeregisterOrganizationDelegatedAdmin.
        /// 
        /// Returns a  DeregisterOrganizationDelegatedAdminResult from CloudTrail.
        /// REST API Reference for DeregisterOrganizationDelegatedAdmin Operation
        DeregisterOrganizationDelegatedAdminResponse EndDeregisterOrganizationDelegatedAdmin(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeQuery
        /// 
        /// Returns metadata about a query, including query run time in milliseconds, number of
        /// events scanned and matched, and query status. If the query results were delivered
        /// to an S3 bucket, the response also provides the S3 URI and the delivery status.
        /// 
        ///  
        /// 
        /// You must specify either a QueryID or a QueryAlias. Specifying
        /// the QueryAlias parameter returns information about the last query run
        /// for the alias.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeQuery service method.
        /// 
        /// The response from the DescribeQuery service method, as returned by CloudTrail.
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// The query ID does not exist or does not map to a query.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for DescribeQuery Operation
        DescribeQueryResponse DescribeQuery(DescribeQueryRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeQuery operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeQuery operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeQuery
        ///         operation.
        /// REST API Reference for DescribeQuery Operation
        IAsyncResult BeginDescribeQuery(DescribeQueryRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeQuery operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeQuery.
        /// 
        /// Returns a  DescribeQueryResult from CloudTrail.
        /// REST API Reference for DescribeQuery Operation
        DescribeQueryResponse EndDescribeQuery(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeTrails
        /// 
        /// Retrieves settings for one or more trails associated with the current Region for your
        /// account.
        /// 
        /// 
        /// The response from the DescribeTrails service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for DescribeTrails Operation
        DescribeTrailsResponse DescribeTrails();
        /// 
        /// Retrieves settings for one or more trails associated with the current Region for your
        /// account.
        /// 
        /// Container for the necessary parameters to execute the DescribeTrails service method.
        /// 
        /// The response from the DescribeTrails service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for DescribeTrails Operation
        DescribeTrailsResponse DescribeTrails(DescribeTrailsRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeTrails operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeTrails operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeTrails
        ///         operation.
        /// REST API Reference for DescribeTrails Operation
        IAsyncResult BeginDescribeTrails(DescribeTrailsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeTrails operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeTrails.
        /// 
        /// Returns a  DescribeTrailsResult from CloudTrail.
        /// REST API Reference for DescribeTrails Operation
        DescribeTrailsResponse EndDescribeTrails(IAsyncResult asyncResult);
        #endregion
        
        #region  GetChannel
        /// 
        /// Returns information about a specific channel.
        /// 
        /// Container for the necessary parameters to execute the GetChannel service method.
        /// 
        /// The response from the GetChannel service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the specified value of ChannelARN is not
        /// valid.
        /// 
        /// 
        /// This exception is thrown when CloudTrail cannot find the specified channel.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for GetChannel Operation
        GetChannelResponse GetChannel(GetChannelRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetChannel operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetChannel
        ///         operation.
        /// REST API Reference for GetChannel Operation
        IAsyncResult BeginGetChannel(GetChannelRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetChannel.
        /// 
        /// Returns a  GetChannelResult from CloudTrail.
        /// REST API Reference for GetChannel Operation
        GetChannelResponse EndGetChannel(IAsyncResult asyncResult);
        #endregion
        
        #region  GetEventDataStore
        /// 
        /// Returns information about an event data store specified as either an ARN or the ID
        /// portion of the ARN.
        /// 
        /// Container for the necessary parameters to execute the GetEventDataStore service method.
        /// 
        /// The response from the GetEventDataStore service method, as returned by CloudTrail.
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for GetEventDataStore Operation
        GetEventDataStoreResponse GetEventDataStore(GetEventDataStoreRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetEventDataStore operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEventDataStore operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetEventDataStore
        ///         operation.
        /// REST API Reference for GetEventDataStore Operation
        IAsyncResult BeginGetEventDataStore(GetEventDataStoreRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetEventDataStore operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetEventDataStore.
        /// 
        /// Returns a  GetEventDataStoreResult from CloudTrail.
        /// REST API Reference for GetEventDataStore Operation
        GetEventDataStoreResponse EndGetEventDataStore(IAsyncResult asyncResult);
        #endregion
        
        #region  GetEventSelectors
        /// 
        /// Describes the settings for the event selectors that you configured for your trail.
        /// The information returned for your event selectors includes the following:
        /// 
        ///   -  
        /// 
        /// If your event selector includes read-only events, write-only events, or all events.
        /// This applies to both management events and data events.
        /// 
        ///  
  -  
        /// 
        /// If your event selector includes management events.
        /// 
        ///  
  -  
        /// 
        /// If your event selector includes data events, the resources on which you are logging
        /// data events.
        /// 
        ///  
  
 
        /// 
        /// For more information about logging management and data events, see the following topics
        /// in the CloudTrail User Guide:
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the GetEventSelectors service method.
        /// 
        /// The response from the GetEventSelectors service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for GetEventSelectors Operation
        GetEventSelectorsResponse GetEventSelectors(GetEventSelectorsRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetEventSelectors operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEventSelectors operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetEventSelectors
        ///         operation.
        /// REST API Reference for GetEventSelectors Operation
        IAsyncResult BeginGetEventSelectors(GetEventSelectorsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetEventSelectors operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetEventSelectors.
        /// 
        /// Returns a  GetEventSelectorsResult from CloudTrail.
        /// REST API Reference for GetEventSelectors Operation
        GetEventSelectorsResponse EndGetEventSelectors(IAsyncResult asyncResult);
        #endregion
        
        #region  GetImport
        /// 
        /// Returns information about a specific import.
        /// 
        /// Container for the necessary parameters to execute the GetImport service method.
        /// 
        /// The response from the GetImport service method, as returned by CloudTrail.
        /// 
        /// The specified import was not found.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for GetImport Operation
        GetImportResponse GetImport(GetImportRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetImport operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetImport operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetImport
        ///         operation.
        /// REST API Reference for GetImport Operation
        IAsyncResult BeginGetImport(GetImportRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetImport operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetImport.
        /// 
        /// Returns a  GetImportResult from CloudTrail.
        /// REST API Reference for GetImport Operation
        GetImportResponse EndGetImport(IAsyncResult asyncResult);
        #endregion
        
        #region  GetInsightSelectors
        /// 
        /// Describes the settings for the Insights event selectors that you configured for your
        /// trail. GetInsightSelectors shows if CloudTrail Insights event logging
        /// is enabled on the trail, and if it is, which insight types are enabled. If you run
        /// GetInsightSelectors on a trail that does not have Insights events enabled,
        /// the operation throws the exception InsightNotEnabledException 
        /// 
        ///  
        /// 
        /// For more information, see Logging
        /// CloudTrail Insights Events for Trails  in the CloudTrail User Guide.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetInsightSelectors service method.
        /// 
        /// The response from the GetInsightSelectors service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// If you run GetInsightSelectors on a trail that does not have Insights
        /// events enabled, the operation throws the exception InsightNotEnabledException.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for GetInsightSelectors Operation
        GetInsightSelectorsResponse GetInsightSelectors(GetInsightSelectorsRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetInsightSelectors operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetInsightSelectors operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetInsightSelectors
        ///         operation.
        /// REST API Reference for GetInsightSelectors Operation
        IAsyncResult BeginGetInsightSelectors(GetInsightSelectorsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetInsightSelectors operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetInsightSelectors.
        /// 
        /// Returns a  GetInsightSelectorsResult from CloudTrail.
        /// REST API Reference for GetInsightSelectors Operation
        GetInsightSelectorsResponse EndGetInsightSelectors(IAsyncResult asyncResult);
        #endregion
        
        #region  GetQueryResults
        /// 
        /// Gets event data results of a query. You must specify the QueryID value
        /// returned by the StartQuery operation.
        /// 
        /// Container for the necessary parameters to execute the GetQueryResults service method.
        /// 
        /// The response from the GetQueryResults service method, as returned by CloudTrail.
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket or KMS key does not have
        /// sufficient permissions for the operation.
        /// 
        /// 
        /// This exception is thrown if the limit specified is not valid.
        /// 
        /// 
        /// A token that is not valid, or a token that was previously used in a request with different
        /// parameters. This exception is thrown if the token is not valid.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// The query ID does not exist or does not map to a query.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for GetQueryResults Operation
        GetQueryResultsResponse GetQueryResults(GetQueryResultsRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetQueryResults operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetQueryResults operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetQueryResults
        ///         operation.
        /// REST API Reference for GetQueryResults Operation
        IAsyncResult BeginGetQueryResults(GetQueryResultsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetQueryResults operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetQueryResults.
        /// 
        /// Returns a  GetQueryResultsResult from CloudTrail.
        /// REST API Reference for GetQueryResults Operation
        GetQueryResultsResponse EndGetQueryResults(IAsyncResult asyncResult);
        #endregion
        
        #region  GetResourcePolicy
        /// 
        /// Retrieves the JSON text of the resource-based policy document attached to the CloudTrail
        /// channel.
        /// 
        /// Container for the necessary parameters to execute the GetResourcePolicy service method.
        /// 
        /// The response from the GetResourcePolicy service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the provided resource does not exist, or the ARN format
        /// of the resource is not valid. The following is the valid format for a resource ARN:
        /// arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not found.
        /// 
        /// 
        /// This exception is thrown when the specified resource policy is not found.
        /// 
        /// 
        /// This exception is thrown when the specified resource type is not supported by CloudTrail.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for GetResourcePolicy Operation
        GetResourcePolicyResponse GetResourcePolicy(GetResourcePolicyRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetResourcePolicy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetResourcePolicy operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetResourcePolicy
        ///         operation.
        /// REST API Reference for GetResourcePolicy Operation
        IAsyncResult BeginGetResourcePolicy(GetResourcePolicyRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetResourcePolicy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetResourcePolicy.
        /// 
        /// Returns a  GetResourcePolicyResult from CloudTrail.
        /// REST API Reference for GetResourcePolicy Operation
        GetResourcePolicyResponse EndGetResourcePolicy(IAsyncResult asyncResult);
        #endregion
        
        #region  GetTrail
        /// 
        /// Returns settings information for a specified trail.
        /// 
        /// Container for the necessary parameters to execute the GetTrail service method.
        /// 
        /// The response from the GetTrail service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for GetTrail Operation
        GetTrailResponse GetTrail(GetTrailRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetTrail operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetTrail operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetTrail
        ///         operation.
        /// REST API Reference for GetTrail Operation
        IAsyncResult BeginGetTrail(GetTrailRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetTrail operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetTrail.
        /// 
        /// Returns a  GetTrailResult from CloudTrail.
        /// REST API Reference for GetTrail Operation
        GetTrailResponse EndGetTrail(IAsyncResult asyncResult);
        #endregion
        
        #region  GetTrailStatus
        /// 
        /// Returns a JSON-formatted list of information about the specified trail. Fields include
        /// information on delivery errors, Amazon SNS and Amazon S3 errors, and start and stop
        /// logging times for each trail. This operation returns trail status from a single Region.
        /// To return trail status from all Regions, you must call the operation on each Region.
        /// 
        /// Container for the necessary parameters to execute the GetTrailStatus service method.
        /// 
        /// The response from the GetTrailStatus service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for GetTrailStatus Operation
        GetTrailStatusResponse GetTrailStatus(GetTrailStatusRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetTrailStatus operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetTrailStatus operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetTrailStatus
        ///         operation.
        /// REST API Reference for GetTrailStatus Operation
        IAsyncResult BeginGetTrailStatus(GetTrailStatusRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetTrailStatus operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetTrailStatus.
        /// 
        /// Returns a  GetTrailStatusResult from CloudTrail.
        /// REST API Reference for GetTrailStatus Operation
        GetTrailStatusResponse EndGetTrailStatus(IAsyncResult asyncResult);
        #endregion
        
        #region  ListChannels
        /// 
        /// Lists the channels in the current account, and their source names.
        /// 
        /// Container for the necessary parameters to execute the ListChannels service method.
        /// 
        /// The response from the ListChannels service method, as returned by CloudTrail.
        /// 
        /// A token that is not valid, or a token that was previously used in a request with different
        /// parameters. This exception is thrown if the token is not valid.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for ListChannels Operation
        ListChannelsResponse ListChannels(ListChannelsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListChannels operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListChannels operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListChannels
        ///         operation.
        /// REST API Reference for ListChannels Operation
        IAsyncResult BeginListChannels(ListChannelsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListChannels operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListChannels.
        /// 
        /// Returns a  ListChannelsResult from CloudTrail.
        /// REST API Reference for ListChannels Operation
        ListChannelsResponse EndListChannels(IAsyncResult asyncResult);
        #endregion
        
        #region  ListEventDataStores
        /// 
        /// Returns information about all event data stores in the account, in the current Region.
        /// 
        /// Container for the necessary parameters to execute the ListEventDataStores service method.
        /// 
        /// The response from the ListEventDataStores service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown if the limit specified is not valid.
        /// 
        /// 
        /// A token that is not valid, or a token that was previously used in a request with different
        /// parameters. This exception is thrown if the token is not valid.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for ListEventDataStores Operation
        ListEventDataStoresResponse ListEventDataStores(ListEventDataStoresRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListEventDataStores operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListEventDataStores operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListEventDataStores
        ///         operation.
        /// REST API Reference for ListEventDataStores Operation
        IAsyncResult BeginListEventDataStores(ListEventDataStoresRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListEventDataStores operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListEventDataStores.
        /// 
        /// Returns a  ListEventDataStoresResult from CloudTrail.
        /// REST API Reference for ListEventDataStores Operation
        ListEventDataStoresResponse EndListEventDataStores(IAsyncResult asyncResult);
        #endregion
        
        #region  ListImportFailures
        /// 
        /// Returns a list of failures for the specified import.
        /// 
        /// Container for the necessary parameters to execute the ListImportFailures service method.
        /// 
        /// The response from the ListImportFailures service method, as returned by CloudTrail.
        /// 
        /// A token that is not valid, or a token that was previously used in a request with different
        /// parameters. This exception is thrown if the token is not valid.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for ListImportFailures Operation
        ListImportFailuresResponse ListImportFailures(ListImportFailuresRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListImportFailures operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListImportFailures operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListImportFailures
        ///         operation.
        /// REST API Reference for ListImportFailures Operation
        IAsyncResult BeginListImportFailures(ListImportFailuresRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListImportFailures operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListImportFailures.
        /// 
        /// Returns a  ListImportFailuresResult from CloudTrail.
        /// REST API Reference for ListImportFailures Operation
        ListImportFailuresResponse EndListImportFailures(IAsyncResult asyncResult);
        #endregion
        
        #region  ListImports
        /// 
        /// Returns information on all imports, or a select set of imports by ImportStatus
        /// or Destination.
        /// 
        /// Container for the necessary parameters to execute the ListImports service method.
        /// 
        /// The response from the ListImports service method, as returned by CloudTrail.
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// A token that is not valid, or a token that was previously used in a request with different
        /// parameters. This exception is thrown if the token is not valid.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for ListImports Operation
        ListImportsResponse ListImports(ListImportsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListImports operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListImports operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListImports
        ///         operation.
        /// REST API Reference for ListImports Operation
        IAsyncResult BeginListImports(ListImportsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListImports operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListImports.
        /// 
        /// Returns a  ListImportsResult from CloudTrail.
        /// REST API Reference for ListImports Operation
        ListImportsResponse EndListImports(IAsyncResult asyncResult);
        #endregion
        
        #region  ListPublicKeys
        /// 
        /// Returns all public keys whose private keys were used to sign the digest files within
        /// the specified time range. The public key is needed to validate digest files that were
        /// signed with its corresponding private key.
        /// 
        ///   
        /// 
        /// CloudTrail uses different private and public key pairs per Region. Each digest file
        /// is signed with a private key unique to its Region. When you validate a digest file
        /// from a specific Region, you must look in the same Region for its corresponding public
        /// key.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the ListPublicKeys service method.
        /// 
        /// The response from the ListPublicKeys service method, as returned by CloudTrail.
        /// 
        /// Occurs if the timestamp values are not valid. Either the start time occurs after the
        /// end time, or the time range is outside the range of possible values.
        /// 
        /// 
        /// Reserved for future use.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for ListPublicKeys Operation
        ListPublicKeysResponse ListPublicKeys(ListPublicKeysRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListPublicKeys operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListPublicKeys operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListPublicKeys
        ///         operation.
        /// REST API Reference for ListPublicKeys Operation
        IAsyncResult BeginListPublicKeys(ListPublicKeysRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListPublicKeys operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListPublicKeys.
        /// 
        /// Returns a  ListPublicKeysResult from CloudTrail.
        /// REST API Reference for ListPublicKeys Operation
        ListPublicKeysResponse EndListPublicKeys(IAsyncResult asyncResult);
        #endregion
        
        #region  ListQueries
        /// 
        /// Returns a list of queries and query statuses for the past seven days. You must specify
        /// an ARN value for EventDataStore. Optionally, to shorten the list of results,
        /// you can specify a time range, formatted as timestamps, by adding StartTime
        /// and EndTime parameters, and a QueryStatus value. Valid values
        /// for QueryStatus include QUEUED, RUNNING, FINISHED,
        /// FAILED, TIMED_OUT, or CANCELLED.
        /// 
        /// Container for the necessary parameters to execute the ListQueries service method.
        /// 
        /// The response from the ListQueries service method, as returned by CloudTrail.
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// A date range for the query was specified that is not valid. Be sure that the start
        /// time is chronologically before the end time. For more information about writing a
        /// query, see Create
        /// or edit a query in the CloudTrail User Guide.
        /// 
        /// 
        /// This exception is thrown if the limit specified is not valid.
        /// 
        /// 
        /// A token that is not valid, or a token that was previously used in a request with different
        /// parameters. This exception is thrown if the token is not valid.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// The query status is not valid for the operation.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for ListQueries Operation
        ListQueriesResponse ListQueries(ListQueriesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListQueries operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListQueries operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListQueries
        ///         operation.
        /// REST API Reference for ListQueries Operation
        IAsyncResult BeginListQueries(ListQueriesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListQueries operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListQueries.
        /// 
        /// Returns a  ListQueriesResult from CloudTrail.
        /// REST API Reference for ListQueries Operation
        ListQueriesResponse EndListQueries(IAsyncResult asyncResult);
        #endregion
        
        #region  ListTags
        /// 
        /// Lists the tags for the specified trails, event data stores, or channels in the current
        /// Region.
        /// 
        /// Container for the necessary parameters to execute the ListTags service method.
        /// 
        /// The response from the ListTags service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the specified value of ChannelARN is not
        /// valid.
        /// 
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// Reserved for future use.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not found.
        /// 
        /// 
        /// This exception is thrown when the specified resource type is not supported by CloudTrail.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for ListTags Operation
        ListTagsResponse ListTags(ListTagsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListTags operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTags operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListTags
        ///         operation.
        /// REST API Reference for ListTags Operation
        IAsyncResult BeginListTags(ListTagsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListTags operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTags.
        /// 
        /// Returns a  ListTagsResult from CloudTrail.
        /// REST API Reference for ListTags Operation
        ListTagsResponse EndListTags(IAsyncResult asyncResult);
        #endregion
        
        #region  ListTrails
        /// 
        /// Lists trails that are in the current account.
        /// 
        /// Container for the necessary parameters to execute the ListTrails service method.
        /// 
        /// The response from the ListTrails service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for ListTrails Operation
        ListTrailsResponse ListTrails(ListTrailsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListTrails operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTrails operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListTrails
        ///         operation.
        /// REST API Reference for ListTrails Operation
        IAsyncResult BeginListTrails(ListTrailsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListTrails operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTrails.
        /// 
        /// Returns a  ListTrailsResult from CloudTrail.
        /// REST API Reference for ListTrails Operation
        ListTrailsResponse EndListTrails(IAsyncResult asyncResult);
        #endregion
        
        #region  LookupEvents
        /// 
        /// Looks up management
        /// events or CloudTrail
        /// Insights events that are captured by CloudTrail. You can look up events that occurred
        /// in a Region within the last 90 days. Lookup supports the following attributes for
        /// management events:
        /// 
        ///   -  
        /// 
        /// Amazon Web Services access key
        /// 
        ///  
  -  
        /// 
        /// Event ID
        /// 
        ///  
  -  
        /// 
        /// Event name
        /// 
        ///  
  -  
        /// 
        /// Event source
        /// 
        ///  
  -  
        /// 
        /// Read only
        /// 
        ///  
  -  
        /// 
        /// Resource name
        /// 
        ///  
  -  
        /// 
        /// Resource type
        /// 
        ///  
  -  
        /// 
        /// User name
        /// 
        ///  
  
 
        /// 
        /// Lookup supports the following attributes for Insights events:
        /// 
        ///   -  
        /// 
        /// Event ID
        /// 
        ///  
  -  
        /// 
        /// Event name
        /// 
        ///  
  -  
        /// 
        /// Event source
        /// 
        ///  
  
 
        /// 
        /// All attributes are optional. The default number of results returned is 50, with a
        /// maximum of 50 possible. The response includes a token that you can use to get the
        /// next page of results.
        /// 
        ///   
        /// 
        /// The rate of lookup requests is limited to two per second, per account, per Region.
        /// If this limit is exceeded, a throttling error occurs.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the LookupEvents service method.
        /// 
        /// The response from the LookupEvents service method, as returned by CloudTrail.
        /// 
        /// Occurs if an event category that is not valid is specified as a value of EventCategory.
        /// 
        /// 
        /// Occurs when a lookup attribute is specified that is not valid.
        /// 
        /// 
        /// This exception is thrown if the limit specified is not valid.
        /// 
        /// 
        /// A token that is not valid, or a token that was previously used in a request with different
        /// parameters. This exception is thrown if the token is not valid.
        /// 
        /// 
        /// Occurs if the timestamp values are not valid. Either the start time occurs after the
        /// end time, or the time range is outside the range of possible values.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for LookupEvents Operation
        LookupEventsResponse LookupEvents(LookupEventsRequest request);
        /// 
        /// Initiates the asynchronous execution of the LookupEvents operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the LookupEvents operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndLookupEvents
        ///         operation.
        /// REST API Reference for LookupEvents Operation
        IAsyncResult BeginLookupEvents(LookupEventsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  LookupEvents operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginLookupEvents.
        /// 
        /// Returns a  LookupEventsResult from CloudTrail.
        /// REST API Reference for LookupEvents Operation
        LookupEventsResponse EndLookupEvents(IAsyncResult asyncResult);
        #endregion
        
        #region  PutEventSelectors
        /// 
        /// Configures an event selector or advanced event selectors for your trail. Use event
        /// selectors or advanced event selectors to specify management and data event settings
        /// for your trail. If you want your trail to log Insights events, be sure the event selector
        /// enables logging of the Insights event types you want configured for your trail. For
        /// more information about logging Insights events, see Logging
        /// Insights events for trails in the CloudTrail User Guide. By default, trails
        /// created without specific event selectors are configured to log all read and write
        /// management events, and no data events.
        /// 
        ///  
        /// 
        /// When an event occurs in your account, CloudTrail evaluates the event selectors or
        /// advanced event selectors in all trails. For each trail, if the event matches any event
        /// selector, the trail processes and logs the event. If the event doesn't match any event
        /// selector, the trail doesn't log the event.
        /// 
        ///  
        /// 
        /// Example
        /// 
        ///   -  
        /// 
        /// You create an event selector for a trail and specify that you want write-only events.
        /// 
        ///  
  -  
        /// 
        /// The EC2 
GetConsoleOutput and RunInstances API operations
        /// occur in your account.
        /// 
        ///    -  
        /// 
        /// CloudTrail evaluates whether the events match your event selectors.
        /// 
        ///  
  -  
        /// 
        /// The 
RunInstances is a write-only event and it matches your event selector.
        /// The trail logs the event.
        /// 
        ///    -  
        /// 
        /// The 
GetConsoleOutput is a read-only event that doesn't match your event
        /// selector. The trail doesn't log the event. 
        /// 
        ///    
 
        /// 
        /// The PutEventSelectors operation must be called from the Region in which
        /// the trail was created; otherwise, an InvalidHomeRegionException exception
        /// is thrown.
        /// 
        ///  
        /// 
        /// You can configure up to five event selectors for each trail. For more information,
        /// see Logging
        /// management events, Logging
        /// data events, and Quotas
        /// in CloudTrail in the CloudTrail User Guide.
        /// 
        ///  
        /// 
        /// You can add advanced event selectors, and conditions for your advanced event selectors,
        /// up to a maximum of 500 values for all conditions and selectors on a trail. You can
        /// use either AdvancedEventSelectors or EventSelectors, but
        /// not both. If you apply AdvancedEventSelectors to a trail, any existing
        /// EventSelectors are overwritten. For more information about advanced event
        /// selectors, see Logging
        /// data events in the CloudTrail User Guide.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutEventSelectors service method.
        /// 
        /// The response from the PutEventSelectors service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when the PutEventSelectors operation is called
        /// with a number of event selectors, advanced event selectors, or data resources that
        /// is not valid. The combination of event selectors or advanced event selectors and data
        /// resources is not valid. A trail can have up to 5 event selectors. If a trail uses
        /// advanced event selectors, a maximum of 500 total values for all conditions in all
        /// advanced event selectors is allowed. A trail is limited to 250 data resources. These
        /// data resources can be distributed across event selectors, but the overall total cannot
        /// exceed 250.
        /// 
        ///  
        /// 
        /// You can:
        /// 
        ///   -  
        /// 
        /// Specify a valid number of event selectors (1 to 5) for a trail.
        /// 
        ///  
  -  
        /// 
        /// Specify a valid number of data resources (1 to 250) for an event selector. The limit
        /// of number of resources on an individual event selector is configurable up to 250.
        /// However, this upper limit is allowed only if the total number of data resources does
        /// not exceed 250 across all event selectors for a trail.
        /// 
        ///  
  -  
        /// 
        /// Specify up to 500 values for all conditions in all advanced event selectors for a
        /// trail.
        /// 
        ///  
  -  
        /// 
        /// Specify a valid value for a parameter. For example, specifying the 
ReadWriteType
        /// parameter with a value of read-only is not valid.
        /// 
        ///    
        /// 
        /// 
        /// This exception is thrown when an operation is called on a trail from a Region other
        /// than the Region in which the trail was created.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for PutEventSelectors Operation
        PutEventSelectorsResponse PutEventSelectors(PutEventSelectorsRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutEventSelectors operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutEventSelectors operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutEventSelectors
        ///         operation.
        /// REST API Reference for PutEventSelectors Operation
        IAsyncResult BeginPutEventSelectors(PutEventSelectorsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutEventSelectors operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutEventSelectors.
        /// 
        /// Returns a  PutEventSelectorsResult from CloudTrail.
        /// REST API Reference for PutEventSelectors Operation
        PutEventSelectorsResponse EndPutEventSelectors(IAsyncResult asyncResult);
        #endregion
        
        #region  PutInsightSelectors
        /// 
        /// Lets you enable Insights event logging by specifying the Insights selectors that you
        /// want to enable on an existing trail. You also use PutInsightSelectors
        /// to turn off Insights event logging, by passing an empty list of insight types. The
        /// valid Insights event types in this release are ApiErrorRateInsight and
        /// ApiCallRateInsight.
        /// 
        ///  
        /// 
        /// To log CloudTrail Insights events on API call volume, the trail must log write
        /// management events. To log CloudTrail Insights events on API error rate, the trail
        /// must log read or write management events. You can call GetEventSelectors
        /// on a trail to check whether the trail logs management events.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutInsightSelectors service method.
        /// 
        /// The response from the PutInsightSelectors service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket or KMS key does not have
        /// sufficient permissions for the operation.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket is not sufficient.
        /// 
        /// 
        /// This exception is thrown when an operation is called on a trail from a Region other
        /// than the Region in which the trail was created.
        /// 
        /// 
        /// The formatting or syntax of the InsightSelectors JSON statement in your
        /// PutInsightSelectors or GetInsightSelectors request is not
        /// valid, or the specified insight type in the InsightSelectors statement
        /// is not a valid insight type.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when there is an issue with the specified KMS key and the
        /// trail or event data store can't be updated.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the specified S3 bucket does not exist.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for PutInsightSelectors Operation
        PutInsightSelectorsResponse PutInsightSelectors(PutInsightSelectorsRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutInsightSelectors operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutInsightSelectors operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutInsightSelectors
        ///         operation.
        /// REST API Reference for PutInsightSelectors Operation
        IAsyncResult BeginPutInsightSelectors(PutInsightSelectorsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutInsightSelectors operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutInsightSelectors.
        /// 
        /// Returns a  PutInsightSelectorsResult from CloudTrail.
        /// REST API Reference for PutInsightSelectors Operation
        PutInsightSelectorsResponse EndPutInsightSelectors(IAsyncResult asyncResult);
        #endregion
        
        #region  PutResourcePolicy
        /// 
        /// Attaches a resource-based permission policy to a CloudTrail channel that is used
        /// for an integration with an event source outside of Amazon Web Services. For more information
        /// about resource-based policies, see CloudTrail
        /// resource-based policy examples in the CloudTrail User Guide.
        /// 
        /// Container for the necessary parameters to execute the PutResourcePolicy service method.
        /// 
        /// The response from the PutResourcePolicy service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the provided resource does not exist, or the ARN format
        /// of the resource is not valid. The following is the valid format for a resource ARN:
        /// arn:aws:cloudtrail:us-east-2:123456789012:channel/MyChannel.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not found.
        /// 
        /// 
        /// This exception is thrown when the resouce-based policy has syntax errors, or contains
        /// a principal that is not valid. 
        /// 
        ///  
        /// 
        /// The following are requirements for the resource policy:
        /// 
        ///   -  
        /// 
        ///  Contains only one action: cloudtrail-data:PutAuditEvents 
        /// 
        ///  
  -  
        /// 
        ///  Contains at least one statement. The policy can have a maximum of 20 statements.
        /// 
        /// 
        ///  
  -  
        /// 
        ///  Each statement contains at least one principal. A statement can have a maximum of
        /// 50 principals. 
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the specified resource type is not supported by CloudTrail.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for PutResourcePolicy Operation
        PutResourcePolicyResponse PutResourcePolicy(PutResourcePolicyRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutResourcePolicy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutResourcePolicy operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutResourcePolicy
        ///         operation.
        /// REST API Reference for PutResourcePolicy Operation
        IAsyncResult BeginPutResourcePolicy(PutResourcePolicyRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutResourcePolicy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutResourcePolicy.
        /// 
        /// Returns a  PutResourcePolicyResult from CloudTrail.
        /// REST API Reference for PutResourcePolicy Operation
        PutResourcePolicyResponse EndPutResourcePolicy(IAsyncResult asyncResult);
        #endregion
        
        #region  RegisterOrganizationDelegatedAdmin
        /// 
        /// Registers an organization’s member account as the CloudTrail delegated administrator.
        /// 
        /// Container for the necessary parameters to execute the RegisterOrganizationDelegatedAdmin service method.
        /// 
        /// The response from the RegisterOrganizationDelegatedAdmin service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the specified account is not found or not part of an
        /// organization.
        /// 
        /// 
        /// This exception is thrown when the account is already registered as the CloudTrail
        /// delegated administrator.
        /// 
        /// 
        /// This exception is thrown when the management account of an organization is registered
        /// as the CloudTrail delegated administrator.
        /// 
        /// 
        /// This exception is thrown when trusted access has not been enabled between CloudTrail
        /// and Organizations. For more information, see Enabling
        /// Trusted Access with Other Amazon Web Services Services and Prepare
        /// For Creating a Trail For Your Organization.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// This exception is thrown when the maximum number of CloudTrail delegated administrators
        /// is reached.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the account making the request is not the organization's
        /// management account.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when Organizations is not configured to support all features.
        /// All features must be enabled in Organizations to support creating an organization
        /// trail or event data store.
        /// 
        /// 
        /// This exception is thrown when the request is made from an Amazon Web Services account
        /// that is not a member of an organization. To make this request, sign in using the credentials
        /// of an account that belongs to an organization.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for RegisterOrganizationDelegatedAdmin Operation
        RegisterOrganizationDelegatedAdminResponse RegisterOrganizationDelegatedAdmin(RegisterOrganizationDelegatedAdminRequest request);
        /// 
        /// Initiates the asynchronous execution of the RegisterOrganizationDelegatedAdmin operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RegisterOrganizationDelegatedAdmin operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndRegisterOrganizationDelegatedAdmin
        ///         operation.
        /// REST API Reference for RegisterOrganizationDelegatedAdmin Operation
        IAsyncResult BeginRegisterOrganizationDelegatedAdmin(RegisterOrganizationDelegatedAdminRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  RegisterOrganizationDelegatedAdmin operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRegisterOrganizationDelegatedAdmin.
        /// 
        /// Returns a  RegisterOrganizationDelegatedAdminResult from CloudTrail.
        /// REST API Reference for RegisterOrganizationDelegatedAdmin Operation
        RegisterOrganizationDelegatedAdminResponse EndRegisterOrganizationDelegatedAdmin(IAsyncResult asyncResult);
        #endregion
        
        #region  RemoveTags
        /// 
        /// Removes the specified tags from a trail, event data store, or channel.
        /// 
        /// Container for the necessary parameters to execute the RemoveTags service method.
        /// 
        /// The response from the RemoveTags service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the specified value of ChannelARN is not
        /// valid.
        /// 
        /// 
        /// This exception is thrown when CloudTrail cannot find the specified channel.
        /// 
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// This exception is thrown when the specified tag key or values are not valid. It can
        /// also occur if there are duplicate tags or too many tags on the resource.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not found.
        /// 
        /// 
        /// This exception is thrown when the specified resource type is not supported by CloudTrail.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for RemoveTags Operation
        RemoveTagsResponse RemoveTags(RemoveTagsRequest request);
        /// 
        /// Initiates the asynchronous execution of the RemoveTags operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RemoveTags operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndRemoveTags
        ///         operation.
        /// REST API Reference for RemoveTags Operation
        IAsyncResult BeginRemoveTags(RemoveTagsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  RemoveTags operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRemoveTags.
        /// 
        /// Returns a  RemoveTagsResult from CloudTrail.
        /// REST API Reference for RemoveTags Operation
        RemoveTagsResponse EndRemoveTags(IAsyncResult asyncResult);
        #endregion
        
        #region  RestoreEventDataStore
        /// 
        /// Restores a deleted event data store specified by EventDataStore, which
        /// accepts an event data store ARN. You can only restore a deleted event data store within
        /// the seven-day wait period after deletion. Restoring an event data store can take several
        /// minutes, depending on the size of the event data store.
        /// 
        /// Container for the necessary parameters to execute the RestoreEventDataStore service method.
        /// 
        /// The response from the RestoreEventDataStore service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when trusted access has not been enabled between CloudTrail
        /// and Organizations. For more information, see Enabling
        /// Trusted Access with Other Amazon Web Services Services and Prepare
        /// For Creating a Trail For Your Organization.
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// Your account has used the maximum number of event data stores.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// The event data store is not in a status that supports the operation.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when Organizations is not configured to support all features.
        /// All features must be enabled in Organizations to support creating an organization
        /// trail or event data store.
        /// 
        /// 
        /// This exception is thrown when the request is made from an Amazon Web Services account
        /// that is not a member of an organization. To make this request, sign in using the credentials
        /// of an account that belongs to an organization.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for RestoreEventDataStore Operation
        RestoreEventDataStoreResponse RestoreEventDataStore(RestoreEventDataStoreRequest request);
        /// 
        /// Initiates the asynchronous execution of the RestoreEventDataStore operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RestoreEventDataStore operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndRestoreEventDataStore
        ///         operation.
        /// REST API Reference for RestoreEventDataStore Operation
        IAsyncResult BeginRestoreEventDataStore(RestoreEventDataStoreRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  RestoreEventDataStore operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRestoreEventDataStore.
        /// 
        /// Returns a  RestoreEventDataStoreResult from CloudTrail.
        /// REST API Reference for RestoreEventDataStore Operation
        RestoreEventDataStoreResponse EndRestoreEventDataStore(IAsyncResult asyncResult);
        #endregion
        
        #region  StartEventDataStoreIngestion
        /// 
        /// Starts the ingestion of live events on an event data store specified as either an
        /// ARN or the ID portion of the ARN. To start ingestion, the event data store Status
        /// must be STOPPED_INGESTION and the eventCategory must be
        /// Management, Data, or ConfigurationItem.
        /// 
        /// Container for the necessary parameters to execute the StartEventDataStoreIngestion service method.
        /// 
        /// The response from the StartEventDataStoreIngestion service method, as returned by CloudTrail.
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when event categories of specified event data stores are
        /// not valid.
        /// 
        /// 
        /// The event data store is not in a status that supports the operation.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for StartEventDataStoreIngestion Operation
        StartEventDataStoreIngestionResponse StartEventDataStoreIngestion(StartEventDataStoreIngestionRequest request);
        /// 
        /// Initiates the asynchronous execution of the StartEventDataStoreIngestion operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartEventDataStoreIngestion operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndStartEventDataStoreIngestion
        ///         operation.
        /// REST API Reference for StartEventDataStoreIngestion Operation
        IAsyncResult BeginStartEventDataStoreIngestion(StartEventDataStoreIngestionRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  StartEventDataStoreIngestion operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStartEventDataStoreIngestion.
        /// 
        /// Returns a  StartEventDataStoreIngestionResult from CloudTrail.
        /// REST API Reference for StartEventDataStoreIngestion Operation
        StartEventDataStoreIngestionResponse EndStartEventDataStoreIngestion(IAsyncResult asyncResult);
        #endregion
        
        #region  StartImport
        /// 
        /// Starts an import of logged trail events from a source S3 bucket to a destination
        /// event data store. By default, CloudTrail only imports events contained in the S3 bucket's
        /// CloudTrail prefix and the prefixes inside the CloudTrail
        /// prefix, and does not check prefixes for other Amazon Web Services services. If you
        /// want to import CloudTrail events contained in another prefix, you must include the
        /// prefix in the S3LocationUri. For more considerations about importing
        /// trail events, see Considerations.
        /// 
        /// 
        ///  
        /// 
        ///  When you start a new import, the Destinations and ImportSource
        /// parameters are required. Before starting a new import, disable any access control
        /// lists (ACLs) attached to the source S3 bucket. For more information about disabling
        /// ACLs, see Controlling
        /// ownership of objects and disabling ACLs for your bucket. 
        /// 
        ///  
        /// 
        ///  When you retry an import, the ImportID parameter is required. 
        /// 
        ///   
        /// 
        ///  If the destination event data store is for an organization, you must use the management
        /// account to import trail events. You cannot use the delegated administrator account
        /// for the organization. 
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the StartImport service method.
        /// 
        /// The response from the StartImport service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when you start a new import and a previous import is still
        /// in progress.
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The specified import was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket or KMS key does not have
        /// sufficient permissions for the operation.
        /// 
        /// 
        /// This exception is thrown when event categories of specified event data stores are
        /// not valid.
        /// 
        /// 
        /// The event data store is not in a status that supports the operation.
        /// 
        /// 
        /// This exception is thrown when the provided source S3 bucket is not valid for import.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for StartImport Operation
        StartImportResponse StartImport(StartImportRequest request);
        /// 
        /// Initiates the asynchronous execution of the StartImport operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartImport operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndStartImport
        ///         operation.
        /// REST API Reference for StartImport Operation
        IAsyncResult BeginStartImport(StartImportRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  StartImport operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStartImport.
        /// 
        /// Returns a  StartImportResult from CloudTrail.
        /// REST API Reference for StartImport Operation
        StartImportResponse EndStartImport(IAsyncResult asyncResult);
        #endregion
        
        #region  StartLogging
        /// 
        /// Starts the recording of Amazon Web Services API calls and log file delivery for a
        /// trail. For a trail that is enabled in all Regions, this operation must be called from
        /// the Region in which the trail was created. This operation cannot be called on the
        /// shadow trails (replicated trails in other Regions) of a trail that is enabled in all
        /// Regions.
        /// 
        /// Container for the necessary parameters to execute the StartLogging service method.
        /// 
        /// The response from the StartLogging service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when an operation is called on a trail from a Region other
        /// than the Region in which the trail was created.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for StartLogging Operation
        StartLoggingResponse StartLogging(StartLoggingRequest request);
        /// 
        /// Initiates the asynchronous execution of the StartLogging operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartLogging operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndStartLogging
        ///         operation.
        /// REST API Reference for StartLogging Operation
        IAsyncResult BeginStartLogging(StartLoggingRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  StartLogging operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStartLogging.
        /// 
        /// Returns a  StartLoggingResult from CloudTrail.
        /// REST API Reference for StartLogging Operation
        StartLoggingResponse EndStartLogging(IAsyncResult asyncResult);
        #endregion
        
        #region  StartQuery
        /// 
        /// Starts a CloudTrail Lake query. Use the QueryStatement parameter to provide
        /// your SQL query, enclosed in single quotation marks. Use the optional DeliveryS3Uri
        /// parameter to deliver the query results to an S3 bucket.
        /// 
        ///  
        /// 
        ///  StartQuery requires you specify either the QueryStatement
        /// parameter, or a QueryAlias and any QueryParameters. In the
        /// current release, the QueryAlias and QueryParameters parameters
        /// are used only for the queries that populate the CloudTrail Lake dashboards.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartQuery service method.
        /// 
        /// The response from the StartQuery service method, as returned by CloudTrail.
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket or KMS key does not have
        /// sufficient permissions for the operation.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket is not sufficient.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// The query that was submitted has validation errors, or uses incorrect syntax or unsupported
        /// keywords. For more information about writing a query, see Create
        /// or edit a query in the CloudTrail User Guide.
        /// 
        /// 
        /// This exception is thrown when the provided S3 bucket name is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided S3 prefix is not valid.
        /// 
        /// 
        /// You are already running the maximum number of concurrent queries. Wait a minute for
        /// some queries to finish, and then run the query again.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the specified S3 bucket does not exist.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for StartQuery Operation
        StartQueryResponse StartQuery(StartQueryRequest request);
        /// 
        /// Initiates the asynchronous execution of the StartQuery operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartQuery operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndStartQuery
        ///         operation.
        /// REST API Reference for StartQuery Operation
        IAsyncResult BeginStartQuery(StartQueryRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  StartQuery operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStartQuery.
        /// 
        /// Returns a  StartQueryResult from CloudTrail.
        /// REST API Reference for StartQuery Operation
        StartQueryResponse EndStartQuery(IAsyncResult asyncResult);
        #endregion
        
        #region  StopEventDataStoreIngestion
        /// 
        /// Stops the ingestion of live events on an event data store specified as either an ARN
        /// or the ID portion of the ARN. To stop ingestion, the event data store Status
        /// must be ENABLED and the eventCategory must be Management,
        /// Data, or ConfigurationItem.
        /// 
        /// Container for the necessary parameters to execute the StopEventDataStoreIngestion service method.
        /// 
        /// The response from the StopEventDataStoreIngestion service method, as returned by CloudTrail.
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when event categories of specified event data stores are
        /// not valid.
        /// 
        /// 
        /// The event data store is not in a status that supports the operation.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for StopEventDataStoreIngestion Operation
        StopEventDataStoreIngestionResponse StopEventDataStoreIngestion(StopEventDataStoreIngestionRequest request);
        /// 
        /// Initiates the asynchronous execution of the StopEventDataStoreIngestion operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StopEventDataStoreIngestion operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndStopEventDataStoreIngestion
        ///         operation.
        /// REST API Reference for StopEventDataStoreIngestion Operation
        IAsyncResult BeginStopEventDataStoreIngestion(StopEventDataStoreIngestionRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  StopEventDataStoreIngestion operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStopEventDataStoreIngestion.
        /// 
        /// Returns a  StopEventDataStoreIngestionResult from CloudTrail.
        /// REST API Reference for StopEventDataStoreIngestion Operation
        StopEventDataStoreIngestionResponse EndStopEventDataStoreIngestion(IAsyncResult asyncResult);
        #endregion
        
        #region  StopImport
        /// 
        /// Stops a specified import.
        /// 
        /// Container for the necessary parameters to execute the StopImport service method.
        /// 
        /// The response from the StopImport service method, as returned by CloudTrail.
        /// 
        /// The specified import was not found.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for StopImport Operation
        StopImportResponse StopImport(StopImportRequest request);
        /// 
        /// Initiates the asynchronous execution of the StopImport operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StopImport operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndStopImport
        ///         operation.
        /// REST API Reference for StopImport Operation
        IAsyncResult BeginStopImport(StopImportRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  StopImport operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStopImport.
        /// 
        /// Returns a  StopImportResult from CloudTrail.
        /// REST API Reference for StopImport Operation
        StopImportResponse EndStopImport(IAsyncResult asyncResult);
        #endregion
        
        #region  StopLogging
        /// 
        /// Suspends the recording of Amazon Web Services API calls and log file delivery for
        /// the specified trail. Under most circumstances, there is no need to use this action.
        /// You can update a trail without stopping it first. This action is the only way to stop
        /// recording. For a trail enabled in all Regions, this operation must be called from
        /// the Region in which the trail was created, or an InvalidHomeRegionException
        /// will occur. This operation cannot be called on the shadow trails (replicated trails
        /// in other Regions) of a trail enabled in all Regions.
        /// 
        /// Container for the necessary parameters to execute the StopLogging service method.
        /// 
        /// The response from the StopLogging service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when an operation is called on a trail from a Region other
        /// than the Region in which the trail was created.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for StopLogging Operation
        StopLoggingResponse StopLogging(StopLoggingRequest request);
        /// 
        /// Initiates the asynchronous execution of the StopLogging operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StopLogging operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndStopLogging
        ///         operation.
        /// REST API Reference for StopLogging Operation
        IAsyncResult BeginStopLogging(StopLoggingRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  StopLogging operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStopLogging.
        /// 
        /// Returns a  StopLoggingResult from CloudTrail.
        /// REST API Reference for StopLogging Operation
        StopLoggingResponse EndStopLogging(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateChannel
        /// 
        /// Updates a channel specified by a required channel ARN or UUID.
        /// 
        /// Container for the necessary parameters to execute the UpdateChannel service method.
        /// 
        /// The response from the UpdateChannel service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when the provided channel already exists.
        /// 
        /// 
        /// This exception is thrown when the specified value of ChannelARN is not
        /// valid.
        /// 
        /// 
        /// This exception is thrown when CloudTrail cannot find the specified channel.
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// This exception is thrown when event categories of specified event data stores are
        /// not valid.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for UpdateChannel Operation
        UpdateChannelResponse UpdateChannel(UpdateChannelRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateChannel operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateChannel
        ///         operation.
        /// REST API Reference for UpdateChannel Operation
        IAsyncResult BeginUpdateChannel(UpdateChannelRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateChannel.
        /// 
        /// Returns a  UpdateChannelResult from CloudTrail.
        /// REST API Reference for UpdateChannel Operation
        UpdateChannelResponse EndUpdateChannel(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateEventDataStore
        /// 
        /// Updates an event data store. The required EventDataStore value is an
        /// ARN or the ID portion of the ARN. Other parameters are optional, but at least one
        /// optional parameter must be specified, or CloudTrail throws an error. RetentionPeriod
        /// is in days, and valid values are integers between 90 and 2557. By default, TerminationProtection
        /// is enabled.
        /// 
        ///  
        /// 
        /// For event data stores for CloudTrail events, AdvancedEventSelectors includes
        /// or excludes management and data events in your event data store. For more information
        /// about AdvancedEventSelectors, see AdvancedEventSelectors.
        /// 
        ///  
        /// 
        ///  For event data stores for Config configuration items, Audit Manager evidence, or
        /// non-Amazon Web Services events, AdvancedEventSelectors includes events
        /// of that type in your event data store.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateEventDataStore service method.
        /// 
        /// The response from the UpdateEventDataStore service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when trusted access has not been enabled between CloudTrail
        /// and Organizations. For more information, see Enabling
        /// Trusted Access with Other Amazon Web Services Services and Prepare
        /// For Creating a Trail For Your Organization.
        /// 
        /// 
        /// An event data store with that name already exists.
        /// 
        /// 
        /// The specified event data store ARN is not valid or does not map to an event data store
        /// in your account.
        /// 
        /// 
        /// This exception is thrown when you try to update or delete an event data store that
        /// currently has an import in progress.
        /// 
        /// 
        /// The specified event data store was not found.
        /// 
        /// 
        /// The event data store is inactive.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket or KMS key does not have
        /// sufficient permissions for the operation.
        /// 
        /// 
        /// This exception is thrown when the PutEventSelectors operation is called
        /// with a number of event selectors, advanced event selectors, or data resources that
        /// is not valid. The combination of event selectors or advanced event selectors and data
        /// resources is not valid. A trail can have up to 5 event selectors. If a trail uses
        /// advanced event selectors, a maximum of 500 total values for all conditions in all
        /// advanced event selectors is allowed. A trail is limited to 250 data resources. These
        /// data resources can be distributed across event selectors, but the overall total cannot
        /// exceed 250.
        /// 
        ///  
        /// 
        /// You can:
        /// 
        ///   -  
        /// 
        /// Specify a valid number of event selectors (1 to 5) for a trail.
        /// 
        ///  
  -  
        /// 
        /// Specify a valid number of data resources (1 to 250) for an event selector. The limit
        /// of number of resources on an individual event selector is configurable up to 250.
        /// However, this upper limit is allowed only if the total number of data resources does
        /// not exceed 250 across all event selectors for a trail.
        /// 
        ///  
  -  
        /// 
        /// Specify up to 500 values for all conditions in all advanced event selectors for a
        /// trail.
        /// 
        ///  
  -  
        /// 
        /// Specify a valid value for a parameter. For example, specifying the 
ReadWriteType
        /// parameter with a value of read-only is not valid.
        /// 
        ///    
        /// 
        /// 
        /// This exception is thrown when the KMS key ARN is not valid.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when there is an issue with the specified KMS key and the
        /// trail or event data store can't be updated.
        /// 
        /// 
        /// This exception is thrown when the KMS key does not exist, when the S3 bucket and the
        /// KMS key are not in the same Region, or when the KMS key associated with the Amazon
        /// SNS topic either does not exist or is not in the same Region.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when Organizations is not configured to support all features.
        /// All features must be enabled in Organizations to support creating an organization
        /// trail or event data store.
        /// 
        /// 
        /// This exception is thrown when the request is made from an Amazon Web Services account
        /// that is not a member of an organization. To make this request, sign in using the credentials
        /// of an account that belongs to an organization.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for UpdateEventDataStore Operation
        UpdateEventDataStoreResponse UpdateEventDataStore(UpdateEventDataStoreRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateEventDataStore operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateEventDataStore operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateEventDataStore
        ///         operation.
        /// REST API Reference for UpdateEventDataStore Operation
        IAsyncResult BeginUpdateEventDataStore(UpdateEventDataStoreRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateEventDataStore operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateEventDataStore.
        /// 
        /// Returns a  UpdateEventDataStoreResult from CloudTrail.
        /// REST API Reference for UpdateEventDataStore Operation
        UpdateEventDataStoreResponse EndUpdateEventDataStore(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateTrail
        /// 
        /// Updates trail settings that control what events you are logging, and how to handle
        /// log files. Changes to a trail do not require stopping the CloudTrail service. Use
        /// this action to designate an existing bucket for log delivery. If the existing bucket
        /// has previously been a target for CloudTrail log files, an IAM policy exists for the
        /// bucket. UpdateTrail must be called from the Region in which the trail
        /// was created; otherwise, an InvalidHomeRegionException is thrown.
        /// 
        /// Container for the necessary parameters to execute the UpdateTrail service method.
        /// 
        /// The response from the UpdateTrail service method, as returned by CloudTrail.
        /// 
        /// This exception is thrown when trusted access has not been enabled between CloudTrail
        /// and Organizations. For more information, see Enabling
        /// Trusted Access with Other Amazon Web Services Services and Prepare
        /// For Creating a Trail For Your Organization.
        /// 
        /// 
        /// This exception is thrown when an operation is called with a trail ARN that is not
        /// valid. The following is the format of a trail ARN.
        /// 
        ///  
        /// 
        ///  arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail 
        /// 
        ///  
        /// 
        /// This exception is also thrown when you call AddTags or RemoveTags
        /// on a trail, event data store, or channel with a resource ARN that is not valid.
        /// 
        ///  
        /// 
        /// The following is the format of an event data store ARN: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
        /// 
        /// 
        ///  
        /// 
        /// The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890
        /// 
        /// 
        /// 
        /// 
        /// This exception is thrown when a call results in the InvalidClientTokenId
        /// error code. This can occur when you are creating or updating a trail to send notifications
        /// to an Amazon SNS topic that is in a suspended Amazon Web Services account.
        /// 
        /// 
        /// Cannot set a CloudWatch Logs delivery for this Region.
        /// 
        /// 
        /// This exception is thrown when the specified resource is not ready for an operation.
        /// This can occur when you try to run an operation on a resource before CloudTrail has
        /// time to fully load the resource, or because another operation is modifying the resource.
        /// If this exception occurs, wait a few minutes, and then try the operation again.
        /// 
        /// 
        /// This exception is thrown when the IAM identity that is used to create the organization
        /// resource lacks one or more required permissions for creating an organization resource
        /// in a required service.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket or KMS key does not have
        /// sufficient permissions for the operation.
        /// 
        /// 
        /// This exception is thrown when the policy on the S3 bucket is not sufficient.
        /// 
        /// 
        /// This exception is thrown when the policy on the Amazon SNS topic is not sufficient.
        /// 
        /// 
        /// This exception is thrown when the provided CloudWatch Logs log group is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided role is not valid.
        /// 
        /// 
        /// This exception is thrown when the PutEventSelectors operation is called
        /// with a number of event selectors, advanced event selectors, or data resources that
        /// is not valid. The combination of event selectors or advanced event selectors and data
        /// resources is not valid. A trail can have up to 5 event selectors. If a trail uses
        /// advanced event selectors, a maximum of 500 total values for all conditions in all
        /// advanced event selectors is allowed. A trail is limited to 250 data resources. These
        /// data resources can be distributed across event selectors, but the overall total cannot
        /// exceed 250.
        /// 
        ///  
        /// 
        /// You can:
        /// 
        ///   -  
        /// 
        /// Specify a valid number of event selectors (1 to 5) for a trail.
        /// 
        ///  
  -  
        /// 
        /// Specify a valid number of data resources (1 to 250) for an event selector. The limit
        /// of number of resources on an individual event selector is configurable up to 250.
        /// However, this upper limit is allowed only if the total number of data resources does
        /// not exceed 250 across all event selectors for a trail.
        /// 
        ///  
  -  
        /// 
        /// Specify up to 500 values for all conditions in all advanced event selectors for a
        /// trail.
        /// 
        ///  
  -  
        /// 
        /// Specify a valid value for a parameter. For example, specifying the 
ReadWriteType
        /// parameter with a value of read-only is not valid.
        /// 
        ///    
        /// 
        /// 
        /// This exception is thrown when an operation is called on a trail from a Region other
        /// than the Region in which the trail was created.
        /// 
        /// 
        /// This exception is thrown when the KMS key ARN is not valid.
        /// 
        /// 
        /// This exception is thrown when the combination of parameters provided is not valid.
        /// 
        /// 
        /// The request includes a parameter that is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided S3 bucket name is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided S3 prefix is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided SNS topic name is not valid.
        /// 
        /// 
        /// This exception is thrown when the provided trail name is not valid. Trail names must
        /// meet the following requirements:
        /// 
        ///   -  
        /// 
        /// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
        /// or dashes (-)
        /// 
        ///  
  -  
        /// 
        /// Start with a letter or number, and end with a letter or number
        /// 
        ///  
  -  
        /// 
        /// Be between 3 and 128 characters
        /// 
        ///  
  -  
        /// 
        /// Have no adjacent periods, underscores or dashes. Names like 
my-_namespace
        /// and my--namespace are not valid.
        /// 
        ///    -  
        /// 
        /// Not be in IP address format (for example, 192.168.5.4)
        /// 
        ///  
  
        /// 
        /// 
        /// This exception is thrown when there is an issue with the specified KMS key and the
        /// trail or event data store can't be updated.
        /// 
        /// 
        /// This exception is no longer in use.
        /// 
        /// 
        /// This exception is thrown when the KMS key does not exist, when the S3 bucket and the
        /// KMS key are not in the same Region, or when the KMS key associated with the Amazon
        /// SNS topic either does not exist or is not in the same Region.
        /// 
        /// 
        /// This exception is thrown when the management account does not have a service-linked
        /// role.
        /// 
        /// 
        /// This exception is thrown when the Amazon Web Services account making the request to
        /// create or update an organization trail or event data store is not the management account
        /// for an organization in Organizations. For more information, see Prepare
        /// For Creating a Trail For Your Organization or Create
        /// an event data store.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not permitted.
        /// 
        /// 
        /// This exception is thrown when Organizations is not configured to support all features.
        /// All features must be enabled in Organizations to support creating an organization
        /// trail or event data store.
        /// 
        /// 
        /// This exception is thrown when the request is made from an Amazon Web Services account
        /// that is not a member of an organization. To make this request, sign in using the credentials
        /// of an account that belongs to an organization.
        /// 
        /// 
        /// This exception is thrown when the specified S3 bucket does not exist.
        /// 
        /// 
        /// This exception is thrown when the trail with the given name is not found.
        /// 
        /// 
        /// This exception is no longer in use.
        /// 
        /// 
        /// This exception is thrown when the requested operation is not supported.
        /// 
        /// REST API Reference for UpdateTrail Operation
        UpdateTrailResponse UpdateTrail(UpdateTrailRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateTrail operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateTrail operation on AmazonCloudTrailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateTrail
        ///         operation.
        /// REST API Reference for UpdateTrail Operation
        IAsyncResult BeginUpdateTrail(UpdateTrailRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateTrail operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateTrail.
        /// 
        /// Returns a  UpdateTrailResult from CloudTrail.
        /// REST API Reference for UpdateTrail Operation
        UpdateTrailResponse EndUpdateTrail(IAsyncResult asyncResult);
        #endregion
        
    }
}