/* * 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 detective-2018-10-26.normal.json service model. */ using System; using System.Runtime.ExceptionServices; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using System.Net; using Amazon.Detective.Model; using Amazon.Detective.Model.Internal.MarshallTransformations; using Amazon.Detective.Internal; using Amazon.Runtime; using Amazon.Runtime.Internal; using Amazon.Runtime.Internal.Auth; using Amazon.Runtime.Internal.Transform; namespace Amazon.Detective { /// /// Implementation for accessing Detective /// /// Detective uses machine learning and purpose-built visualizations to help you to analyze /// and investigate security issues across your Amazon Web Services (Amazon Web Services) /// workloads. Detective automatically extracts time-based events such as login attempts, /// API calls, and network traffic from CloudTrail and Amazon Virtual Private Cloud (Amazon /// VPC) flow logs. It also extracts findings detected by Amazon GuardDuty. /// /// /// /// The Detective API primarily supports the creation and management of behavior graphs. /// A behavior graph contains the extracted data from a set of member accounts, and is /// created and managed by an administrator account. /// /// /// /// To add a member account to the behavior graph, the administrator account sends an /// invitation to the account. When the account accepts the invitation, it becomes a member /// account in the behavior graph. /// /// /// /// Detective is also integrated with Organizations. The organization management account /// designates the Detective administrator account for the organization. That account /// becomes the administrator account for the organization behavior graph. The Detective /// administrator account is also the delegated administrator account for Detective in /// Organizations. /// /// /// /// The Detective administrator account can enable any organization account as a member /// account in the organization behavior graph. The organization accounts do not receive /// invitations. The Detective administrator account can also invite other accounts to /// the organization behavior graph. /// /// /// /// Every behavior graph is specific to a Region. You can only use the API to manage behavior /// graphs that belong to the Region that is associated with the currently selected endpoint. /// /// /// /// The administrator account for a behavior graph can use the Detective API to do the /// following: /// /// /// /// The organization management account can use the Detective API to select the delegated /// administrator for Detective. /// /// /// /// The Detective administrator account for an organization can use the Detective API /// to do the following: /// /// /// /// An invited member account can use the Detective API to do the following: /// /// /// /// All API actions are logged as CloudTrail events. See Logging /// Detective API Calls with CloudTrail. /// /// /// /// We replaced the term "master account" with the term "administrator account." An administrator /// account is used to centrally manage multiple accounts. In the case of Detective, the /// administrator account manages the accounts in their behavior graph. /// /// /// public partial class AmazonDetectiveClient : AmazonServiceClient, IAmazonDetective { private static IServiceMetadata serviceMetadata = new AmazonDetectiveMetadata(); #region Constructors /// /// Constructs AmazonDetectiveClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// public AmazonDetectiveClient() : base(FallbackCredentialsFactory.GetCredentials(), new AmazonDetectiveConfig()) { } /// /// Constructs AmazonDetectiveClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The region to connect. public AmazonDetectiveClient(RegionEndpoint region) : base(FallbackCredentialsFactory.GetCredentials(), new AmazonDetectiveConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonDetectiveClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The AmazonDetectiveClient Configuration Object public AmazonDetectiveClient(AmazonDetectiveConfig config) : base(FallbackCredentialsFactory.GetCredentials(config), config){} /// /// Constructs AmazonDetectiveClient with AWS Credentials /// /// AWS Credentials public AmazonDetectiveClient(AWSCredentials credentials) : this(credentials, new AmazonDetectiveConfig()) { } /// /// Constructs AmazonDetectiveClient with AWS Credentials /// /// AWS Credentials /// The region to connect. public AmazonDetectiveClient(AWSCredentials credentials, RegionEndpoint region) : this(credentials, new AmazonDetectiveConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonDetectiveClient with AWS Credentials and an /// AmazonDetectiveClient Configuration object. /// /// AWS Credentials /// The AmazonDetectiveClient Configuration Object public AmazonDetectiveClient(AWSCredentials credentials, AmazonDetectiveConfig clientConfig) : base(credentials, clientConfig) { } /// /// Constructs AmazonDetectiveClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key public AmazonDetectiveClient(string awsAccessKeyId, string awsSecretAccessKey) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonDetectiveConfig()) { } /// /// Constructs AmazonDetectiveClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// The region to connect. public AmazonDetectiveClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonDetectiveConfig() {RegionEndpoint=region}) { } /// /// Constructs AmazonDetectiveClient with AWS Access Key ID, AWS Secret Key and an /// AmazonDetectiveClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// The AmazonDetectiveClient Configuration Object public AmazonDetectiveClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonDetectiveConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, clientConfig) { } /// /// Constructs AmazonDetectiveClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token public AmazonDetectiveClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonDetectiveConfig()) { } /// /// Constructs AmazonDetectiveClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The region to connect. public AmazonDetectiveClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonDetectiveConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonDetectiveClient with AWS Access Key ID, AWS Secret Key and an /// AmazonDetectiveClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The AmazonDetectiveClient Configuration Object public AmazonDetectiveClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonDetectiveConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig) { } #endregion #if AWS_ASYNC_ENUMERABLES_API private IDetectivePaginatorFactory _paginators; /// /// Paginators for the service /// public IDetectivePaginatorFactory Paginators { get { if (this._paginators == null) { this._paginators = new DetectivePaginatorFactory(this); } return this._paginators; } } #endif #region Overrides /// /// Creates the signer for the service. /// protected override AbstractAWSSigner CreateSigner() { return new AWS4Signer(); } /// /// Customizes the runtime pipeline. /// /// Runtime pipeline for the current client. protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline) { pipeline.RemoveHandler(); pipeline.AddHandlerAfter(new AmazonDetectiveEndpointResolver()); } /// /// Capture metadata for the service. /// protected override IServiceMetadata ServiceMetadata { get { return serviceMetadata; } } #endregion #region Dispose /// /// Disposes the service client. /// protected override void Dispose(bool disposing) { base.Dispose(disposing); } #endregion #region AcceptInvitation internal virtual AcceptInvitationResponse AcceptInvitation(AcceptInvitationRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = AcceptInvitationRequestMarshaller.Instance; options.ResponseUnmarshaller = AcceptInvitationResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Accepts an invitation for the member account to contribute data to a behavior graph. /// This operation can only be called by an invited member account. /// /// /// /// The request provides the ARN of behavior graph. /// /// /// /// The member account status in the graph must be INVITED. /// /// /// Container for the necessary parameters to execute the AcceptInvitation service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the AcceptInvitation service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request attempted an invalid action. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for AcceptInvitation Operation public virtual Task AcceptInvitationAsync(AcceptInvitationRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = AcceptInvitationRequestMarshaller.Instance; options.ResponseUnmarshaller = AcceptInvitationResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region BatchGetGraphMemberDatasources internal virtual BatchGetGraphMemberDatasourcesResponse BatchGetGraphMemberDatasources(BatchGetGraphMemberDatasourcesRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = BatchGetGraphMemberDatasourcesRequestMarshaller.Instance; options.ResponseUnmarshaller = BatchGetGraphMemberDatasourcesResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Gets data source package information for the behavior graph. /// /// Container for the necessary parameters to execute the BatchGetGraphMemberDatasources service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the BatchGetGraphMemberDatasources service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for BatchGetGraphMemberDatasources Operation public virtual Task BatchGetGraphMemberDatasourcesAsync(BatchGetGraphMemberDatasourcesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = BatchGetGraphMemberDatasourcesRequestMarshaller.Instance; options.ResponseUnmarshaller = BatchGetGraphMemberDatasourcesResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region BatchGetMembershipDatasources internal virtual BatchGetMembershipDatasourcesResponse BatchGetMembershipDatasources(BatchGetMembershipDatasourcesRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = BatchGetMembershipDatasourcesRequestMarshaller.Instance; options.ResponseUnmarshaller = BatchGetMembershipDatasourcesResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Gets information on the data source package history for an account. /// /// Container for the necessary parameters to execute the BatchGetMembershipDatasources service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the BatchGetMembershipDatasources service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for BatchGetMembershipDatasources Operation public virtual Task BatchGetMembershipDatasourcesAsync(BatchGetMembershipDatasourcesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = BatchGetMembershipDatasourcesRequestMarshaller.Instance; options.ResponseUnmarshaller = BatchGetMembershipDatasourcesResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region CreateGraph internal virtual CreateGraphResponse CreateGraph(CreateGraphRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = CreateGraphRequestMarshaller.Instance; options.ResponseUnmarshaller = CreateGraphResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Creates a new behavior graph for the calling account, and sets that account as the /// administrator account. This operation is called by the account that is enabling Detective. /// /// /// /// Before you try to enable Detective, make sure that your account has been enrolled /// in Amazon GuardDuty for at least 48 hours. If you do not meet this requirement, you /// cannot enable Detective. If you do meet the GuardDuty prerequisite, then when you /// make the request to enable Detective, it checks whether your data volume is within /// the Detective quota. If it exceeds the quota, then you cannot enable Detective. /// /// /// /// The operation also enables Detective for the calling account in the currently selected /// Region. It returns the ARN of the new behavior graph. /// /// /// /// CreateGraph triggers a process to create the corresponding data tables /// for the new behavior graph. /// /// /// /// An account can only be the administrator account for one behavior graph within a Region. /// If the same account calls CreateGraph with the same administrator account, /// it always returns the same behavior graph ARN. It does not create a new behavior graph. /// /// /// Container for the necessary parameters to execute the CreateGraph service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the CreateGraph service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request attempted an invalid action. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// This request cannot be completed for one of the following reasons. /// ///
  • /// /// The request would cause the number of member accounts in the behavior graph to exceed /// the maximum allowed. A behavior graph cannot have more than 1200 member accounts. /// ///
  • /// /// The request would cause the data rate for the behavior graph to exceed the maximum /// allowed. /// ///
  • /// /// Detective is unable to verify the data rate for the member account. This is usually /// because the member account is not enrolled in Amazon GuardDuty. /// ///
///
/// REST API Reference for CreateGraph Operation public virtual Task CreateGraphAsync(CreateGraphRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = CreateGraphRequestMarshaller.Instance; options.ResponseUnmarshaller = CreateGraphResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region CreateMembers internal virtual CreateMembersResponse CreateMembers(CreateMembersRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = CreateMembersRequestMarshaller.Instance; options.ResponseUnmarshaller = CreateMembersResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// CreateMembers is used to send invitations to accounts. For the organization /// behavior graph, the Detective administrator account uses CreateMembers /// to enable organization accounts as member accounts. /// /// /// /// For invited accounts, CreateMembers sends a request to invite the specified /// Amazon Web Services accounts to be member accounts in the behavior graph. This operation /// can only be called by the administrator account for a behavior graph. /// /// /// /// CreateMembers verifies the accounts and then invites the verified accounts. /// The administrator can optionally specify to not send invitation emails to the member /// accounts. This would be used when the administrator manages their member accounts /// centrally. /// /// /// /// For organization accounts in the organization behavior graph, CreateMembers /// attempts to enable the accounts. The organization accounts do not receive invitations. /// /// /// /// The request provides the behavior graph ARN and the list of accounts to invite or /// to enable. /// /// /// /// The response separates the requested accounts into two lists: /// ///
  • /// /// The accounts that CreateMembers was able to process. For invited accounts, /// includes member accounts that are being verified, that have passed verification and /// are to be invited, and that have failed verification. For organization accounts in /// the organization behavior graph, includes accounts that can be enabled and that cannot /// be enabled. /// ///
  • /// /// The accounts that CreateMembers was unable to process. This list includes /// accounts that were already invited to be member accounts in the behavior graph. /// ///
///
/// Container for the necessary parameters to execute the CreateMembers service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the CreateMembers service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// This request cannot be completed for one of the following reasons. /// ///
  • /// /// The request would cause the number of member accounts in the behavior graph to exceed /// the maximum allowed. A behavior graph cannot have more than 1200 member accounts. /// ///
  • /// /// The request would cause the data rate for the behavior graph to exceed the maximum /// allowed. /// ///
  • /// /// Detective is unable to verify the data rate for the member account. This is usually /// because the member account is not enrolled in Amazon GuardDuty. /// ///
///
/// /// The request parameters are invalid. /// /// REST API Reference for CreateMembers Operation public virtual Task CreateMembersAsync(CreateMembersRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = CreateMembersRequestMarshaller.Instance; options.ResponseUnmarshaller = CreateMembersResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DeleteGraph internal virtual DeleteGraphResponse DeleteGraph(DeleteGraphRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DeleteGraphRequestMarshaller.Instance; options.ResponseUnmarshaller = DeleteGraphResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Disables the specified behavior graph and queues it to be deleted. This operation /// removes the behavior graph from each member account's list of behavior graphs. /// /// /// /// DeleteGraph can only be called by the administrator account for a behavior /// graph. /// /// /// Container for the necessary parameters to execute the DeleteGraph service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DeleteGraph service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for DeleteGraph Operation public virtual Task DeleteGraphAsync(DeleteGraphRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DeleteGraphRequestMarshaller.Instance; options.ResponseUnmarshaller = DeleteGraphResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DeleteMembers internal virtual DeleteMembersResponse DeleteMembers(DeleteMembersRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DeleteMembersRequestMarshaller.Instance; options.ResponseUnmarshaller = DeleteMembersResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Removes the specified member accounts from the behavior graph. The removed accounts /// no longer contribute data to the behavior graph. This operation can only be called /// by the administrator account for the behavior graph. /// /// /// /// For invited accounts, the removed accounts are deleted from the list of accounts in /// the behavior graph. To restore the account, the administrator account must send another /// invitation. /// /// /// /// For organization accounts in the organization behavior graph, the Detective administrator /// account can always enable the organization account again. Organization accounts that /// are not enabled as member accounts are not included in the ListMembers /// results for the organization behavior graph. /// /// /// /// An administrator account cannot use DeleteMembers to remove their own /// account from the behavior graph. To disable a behavior graph, the administrator account /// uses the DeleteGraph API method. /// /// /// Container for the necessary parameters to execute the DeleteMembers service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DeleteMembers service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request attempted an invalid action. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for DeleteMembers Operation public virtual Task DeleteMembersAsync(DeleteMembersRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DeleteMembersRequestMarshaller.Instance; options.ResponseUnmarshaller = DeleteMembersResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DescribeOrganizationConfiguration internal virtual DescribeOrganizationConfigurationResponse DescribeOrganizationConfiguration(DescribeOrganizationConfigurationRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeOrganizationConfigurationRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeOrganizationConfigurationResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Returns information about the configuration for the organization behavior graph. Currently /// indicates whether to automatically enable new organization accounts as member accounts. /// /// /// /// Can only be called by the Detective administrator account for the organization. /// /// /// Container for the necessary parameters to execute the DescribeOrganizationConfiguration service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DescribeOrganizationConfiguration service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request cannot be completed because too many other requests are occurring at the /// same time. /// /// /// The request parameters are invalid. /// /// REST API Reference for DescribeOrganizationConfiguration Operation public virtual Task DescribeOrganizationConfigurationAsync(DescribeOrganizationConfigurationRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeOrganizationConfigurationRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeOrganizationConfigurationResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DisableOrganizationAdminAccount internal virtual DisableOrganizationAdminAccountResponse DisableOrganizationAdminAccount(DisableOrganizationAdminAccountRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DisableOrganizationAdminAccountRequestMarshaller.Instance; options.ResponseUnmarshaller = DisableOrganizationAdminAccountResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Removes the Detective administrator account in the current Region. Deletes the organization /// behavior graph. /// /// /// /// Can only be called by the organization management account. /// /// /// /// Removing the Detective administrator account does not affect the delegated administrator /// account for Detective in Organizations. /// /// /// /// To remove the delegated administrator account in Organizations, use the Organizations /// API. Removing the delegated administrator account also removes the Detective administrator /// account in all Regions, except for Regions where the Detective administrator account /// is the organization management account. /// /// /// Container for the necessary parameters to execute the DisableOrganizationAdminAccount service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DisableOrganizationAdminAccount service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request cannot be completed because too many other requests are occurring at the /// same time. /// /// /// The request parameters are invalid. /// /// REST API Reference for DisableOrganizationAdminAccount Operation public virtual Task DisableOrganizationAdminAccountAsync(DisableOrganizationAdminAccountRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DisableOrganizationAdminAccountRequestMarshaller.Instance; options.ResponseUnmarshaller = DisableOrganizationAdminAccountResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DisassociateMembership internal virtual DisassociateMembershipResponse DisassociateMembership(DisassociateMembershipRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DisassociateMembershipRequestMarshaller.Instance; options.ResponseUnmarshaller = DisassociateMembershipResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Removes the member account from the specified behavior graph. This operation can only /// be called by an invited member account that has the ENABLED status. /// /// /// /// DisassociateMembership cannot be called by an organization account in /// the organization behavior graph. For the organization behavior graph, the Detective /// administrator account determines which organization accounts to enable or disable /// as member accounts. /// /// /// Container for the necessary parameters to execute the DisassociateMembership service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DisassociateMembership service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request attempted an invalid action. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for DisassociateMembership Operation public virtual Task DisassociateMembershipAsync(DisassociateMembershipRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DisassociateMembershipRequestMarshaller.Instance; options.ResponseUnmarshaller = DisassociateMembershipResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region EnableOrganizationAdminAccount internal virtual EnableOrganizationAdminAccountResponse EnableOrganizationAdminAccount(EnableOrganizationAdminAccountRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = EnableOrganizationAdminAccountRequestMarshaller.Instance; options.ResponseUnmarshaller = EnableOrganizationAdminAccountResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Designates the Detective administrator account for the organization in the current /// Region. /// /// /// /// If the account does not have Detective enabled, then enables Detective for that account /// and creates a new behavior graph. /// /// /// /// Can only be called by the organization management account. /// /// /// /// If the organization has a delegated administrator account in Organizations, then the /// Detective administrator account must be either the delegated administrator account /// or the organization management account. /// /// /// /// If the organization does not have a delegated administrator account in Organizations, /// then you can choose any account in the organization. If you choose an account other /// than the organization management account, Detective calls Organizations to make that /// account the delegated administrator account for Detective. The organization management /// account cannot be the delegated administrator account. /// /// /// Container for the necessary parameters to execute the EnableOrganizationAdminAccount service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the EnableOrganizationAdminAccount service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request cannot be completed because too many other requests are occurring at the /// same time. /// /// /// The request parameters are invalid. /// /// REST API Reference for EnableOrganizationAdminAccount Operation public virtual Task EnableOrganizationAdminAccountAsync(EnableOrganizationAdminAccountRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = EnableOrganizationAdminAccountRequestMarshaller.Instance; options.ResponseUnmarshaller = EnableOrganizationAdminAccountResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetMembers internal virtual GetMembersResponse GetMembers(GetMembersRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetMembersRequestMarshaller.Instance; options.ResponseUnmarshaller = GetMembersResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Returns the membership details for specified member accounts for a behavior graph. /// /// Container for the necessary parameters to execute the GetMembers service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetMembers service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for GetMembers Operation public virtual Task GetMembersAsync(GetMembersRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetMembersRequestMarshaller.Instance; options.ResponseUnmarshaller = GetMembersResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListDatasourcePackages internal virtual ListDatasourcePackagesResponse ListDatasourcePackages(ListDatasourcePackagesRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListDatasourcePackagesRequestMarshaller.Instance; options.ResponseUnmarshaller = ListDatasourcePackagesResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Lists data source packages in the behavior graph. /// /// Container for the necessary parameters to execute the ListDatasourcePackages service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListDatasourcePackages service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for ListDatasourcePackages Operation public virtual Task ListDatasourcePackagesAsync(ListDatasourcePackagesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListDatasourcePackagesRequestMarshaller.Instance; options.ResponseUnmarshaller = ListDatasourcePackagesResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListGraphs internal virtual ListGraphsResponse ListGraphs(ListGraphsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListGraphsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListGraphsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Returns the list of behavior graphs that the calling account is an administrator account /// of. This operation can only be called by an administrator account. /// /// /// /// Because an account can currently only be the administrator of one behavior graph within /// a Region, the results always contain a single behavior graph. /// /// /// Container for the necessary parameters to execute the ListGraphs service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListGraphs service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request parameters are invalid. /// /// REST API Reference for ListGraphs Operation public virtual Task ListGraphsAsync(ListGraphsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListGraphsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListGraphsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListInvitations internal virtual ListInvitationsResponse ListInvitations(ListInvitationsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListInvitationsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListInvitationsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Retrieves the list of open and accepted behavior graph invitations for the member /// account. This operation can only be called by an invited member account. /// /// /// /// Open invitations are invitations that the member account has not responded to. /// /// /// /// The results do not include behavior graphs for which the member account declined the /// invitation. The results also do not include behavior graphs that the member account /// resigned from or was removed from. /// /// /// Container for the necessary parameters to execute the ListInvitations service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListInvitations service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request parameters are invalid. /// /// REST API Reference for ListInvitations Operation public virtual Task ListInvitationsAsync(ListInvitationsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListInvitationsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListInvitationsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListMembers internal virtual ListMembersResponse ListMembers(ListMembersRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListMembersRequestMarshaller.Instance; options.ResponseUnmarshaller = ListMembersResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Retrieves the list of member accounts for a behavior graph. /// /// /// /// For invited accounts, the results do not include member accounts that were removed /// from the behavior graph. /// /// /// /// For the organization behavior graph, the results do not include organization accounts /// that the Detective administrator account has not enabled as member accounts. /// /// /// Container for the necessary parameters to execute the ListMembers service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListMembers service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for ListMembers Operation public virtual Task ListMembersAsync(ListMembersRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListMembersRequestMarshaller.Instance; options.ResponseUnmarshaller = ListMembersResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListOrganizationAdminAccounts internal virtual ListOrganizationAdminAccountsResponse ListOrganizationAdminAccounts(ListOrganizationAdminAccountsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListOrganizationAdminAccountsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListOrganizationAdminAccountsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Returns information about the Detective administrator account for an organization. /// Can only be called by the organization management account. /// /// Container for the necessary parameters to execute the ListOrganizationAdminAccounts service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListOrganizationAdminAccounts service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request cannot be completed because too many other requests are occurring at the /// same time. /// /// /// The request parameters are invalid. /// /// REST API Reference for ListOrganizationAdminAccounts Operation public virtual Task ListOrganizationAdminAccountsAsync(ListOrganizationAdminAccountsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListOrganizationAdminAccountsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListOrganizationAdminAccountsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListTagsForResource internal virtual ListTagsForResourceResponse ListTagsForResource(ListTagsForResourceRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListTagsForResourceRequestMarshaller.Instance; options.ResponseUnmarshaller = ListTagsForResourceResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Returns the tag values that are assigned to a behavior graph. /// /// Container for the necessary parameters to execute the ListTagsForResource service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListTagsForResource service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for ListTagsForResource Operation public virtual Task ListTagsForResourceAsync(ListTagsForResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListTagsForResourceRequestMarshaller.Instance; options.ResponseUnmarshaller = ListTagsForResourceResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region RejectInvitation internal virtual RejectInvitationResponse RejectInvitation(RejectInvitationRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = RejectInvitationRequestMarshaller.Instance; options.ResponseUnmarshaller = RejectInvitationResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Rejects an invitation to contribute the account data to a behavior graph. This operation /// must be called by an invited member account that has the INVITED status. /// /// /// /// RejectInvitation cannot be called by an organization account in the /// organization behavior graph. In the organization behavior graph, organization accounts /// do not receive an invitation. /// /// /// Container for the necessary parameters to execute the RejectInvitation service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the RejectInvitation service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request attempted an invalid action. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for RejectInvitation Operation public virtual Task RejectInvitationAsync(RejectInvitationRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = RejectInvitationRequestMarshaller.Instance; options.ResponseUnmarshaller = RejectInvitationResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region StartMonitoringMember internal virtual StartMonitoringMemberResponse StartMonitoringMember(StartMonitoringMemberRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = StartMonitoringMemberRequestMarshaller.Instance; options.ResponseUnmarshaller = StartMonitoringMemberResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Sends a request to enable data ingest for a member account that has a status of ACCEPTED_BUT_DISABLED. /// /// /// /// For valid member accounts, the status is updated as follows. /// ///
  • /// /// If Detective enabled the member account, then the new status is ENABLED. /// ///
  • /// /// If Detective cannot enable the member account, the status remains ACCEPTED_BUT_DISABLED. /// /// ///
///
/// Container for the necessary parameters to execute the StartMonitoringMember service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the StartMonitoringMember service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request attempted an invalid action. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// This request cannot be completed for one of the following reasons. /// ///
  • /// /// The request would cause the number of member accounts in the behavior graph to exceed /// the maximum allowed. A behavior graph cannot have more than 1200 member accounts. /// ///
  • /// /// The request would cause the data rate for the behavior graph to exceed the maximum /// allowed. /// ///
  • /// /// Detective is unable to verify the data rate for the member account. This is usually /// because the member account is not enrolled in Amazon GuardDuty. /// ///
///
/// /// The request parameters are invalid. /// /// REST API Reference for StartMonitoringMember Operation public virtual Task StartMonitoringMemberAsync(StartMonitoringMemberRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = StartMonitoringMemberRequestMarshaller.Instance; options.ResponseUnmarshaller = StartMonitoringMemberResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region TagResource internal virtual TagResourceResponse TagResource(TagResourceRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = TagResourceRequestMarshaller.Instance; options.ResponseUnmarshaller = TagResourceResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Applies tag values to a behavior graph. /// /// Container for the necessary parameters to execute the TagResource service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the TagResource service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for TagResource Operation public virtual Task TagResourceAsync(TagResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = TagResourceRequestMarshaller.Instance; options.ResponseUnmarshaller = TagResourceResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region UntagResource internal virtual UntagResourceResponse UntagResource(UntagResourceRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = UntagResourceRequestMarshaller.Instance; options.ResponseUnmarshaller = UntagResourceResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Removes tags from a behavior graph. /// /// Container for the necessary parameters to execute the UntagResource service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the UntagResource service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// The request parameters are invalid. /// /// REST API Reference for UntagResource Operation public virtual Task UntagResourceAsync(UntagResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = UntagResourceRequestMarshaller.Instance; options.ResponseUnmarshaller = UntagResourceResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region UpdateDatasourcePackages internal virtual UpdateDatasourcePackagesResponse UpdateDatasourcePackages(UpdateDatasourcePackagesRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateDatasourcePackagesRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateDatasourcePackagesResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Starts a data source packages for the behavior graph. /// /// Container for the necessary parameters to execute the UpdateDatasourcePackages service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the UpdateDatasourcePackages service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request refers to a nonexistent resource. /// /// /// This request cannot be completed for one of the following reasons. /// ///
  • /// /// The request would cause the number of member accounts in the behavior graph to exceed /// the maximum allowed. A behavior graph cannot have more than 1200 member accounts. /// ///
  • /// /// The request would cause the data rate for the behavior graph to exceed the maximum /// allowed. /// ///
  • /// /// Detective is unable to verify the data rate for the member account. This is usually /// because the member account is not enrolled in Amazon GuardDuty. /// ///
///
/// /// The request parameters are invalid. /// /// REST API Reference for UpdateDatasourcePackages Operation public virtual Task UpdateDatasourcePackagesAsync(UpdateDatasourcePackagesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateDatasourcePackagesRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateDatasourcePackagesResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region UpdateOrganizationConfiguration internal virtual UpdateOrganizationConfigurationResponse UpdateOrganizationConfiguration(UpdateOrganizationConfigurationRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateOrganizationConfigurationRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateOrganizationConfigurationResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Updates the configuration for the Organizations integration in the current Region. /// Can only be called by the Detective administrator account for the organization. /// /// Container for the necessary parameters to execute the UpdateOrganizationConfiguration service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the UpdateOrganizationConfiguration service method, as returned by Detective. /// /// The request issuer does not have permission to access this resource or perform this /// operation. /// /// /// The request was valid but failed because of a problem with the service. /// /// /// The request cannot be completed because too many other requests are occurring at the /// same time. /// /// /// The request parameters are invalid. /// /// REST API Reference for UpdateOrganizationConfiguration Operation public virtual Task UpdateOrganizationConfigurationAsync(UpdateOrganizationConfigurationRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateOrganizationConfigurationRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateOrganizationConfigurationResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion } }