# WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
# See https://github.com/aws-beam/aws-codegen for more details.
defmodule AWS.AuditManager do
@moduledoc """
Welcome to the Audit Manager API reference.
This guide is for developers who
need detailed information about the Audit Manager API operations, data types,
and
errors.
Audit Manager is a service that provides automated evidence collection so that
you
can continually audit your Amazon Web Services usage. You can use it to assess
the
effectiveness of your controls, manage risk, and simplify compliance.
Audit Manager provides prebuilt frameworks that structure and automate
assessments
for a given compliance standard. Frameworks include a prebuilt collection of
controls with
descriptions and testing procedures. These controls are grouped according to the
requirements of the specified compliance standard or regulation. You can also
customize
frameworks and controls to support internal audits with specific requirements.
Use the following links to get started with the Audit Manager API:
*
[Actions](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_Operations.html): An
alphabetical list of all Audit Manager API operations.
*
[Data
types](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_Types.html):
An alphabetical list of all Audit Manager data
types.
*
[Common parameters](https://docs.aws.amazon.com/audit-manager/latest/APIReference/CommonParameters.html):
Parameters that all operations can use.
*
[Common errors](https://docs.aws.amazon.com/audit-manager/latest/APIReference/CommonErrors.html):
Client and server errors that all operations can return.
If you're new to Audit Manager, we recommend that you review the [
Audit Manager User
Guide](https://docs.aws.amazon.com/audit-manager/latest/userguide/what-is.html).
"""
alias AWS.Client
alias AWS.Request
@typedoc """
## Example:
update_assessment_response() :: %{
"assessment" => assessment()
}
"""
@type update_assessment_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
framework_metadata() :: %{
"complianceType" => String.t() | atom(),
"description" => String.t() | atom(),
"logo" => String.t() | atom(),
"name" => String.t() | atom()
}
"""
@type framework_metadata() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_assessments_response() :: %{
"assessmentMetadata" => list(assessment_metadata_item()),
"nextToken" => String.t() | atom()
}
"""
@type list_assessments_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_delegations_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type get_delegations_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag_resource_request() :: %{
required("tags") => map()
}
"""
@type tag_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_control_response() :: %{
"control" => control()
}
"""
@type update_control_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
control_domain_insights() :: %{
"controlsCountByNoncompliantEvidence" => integer(),
"evidenceInsights" => evidence_insights(),
"id" => String.t() | atom(),
"lastUpdated" => non_neg_integer(),
"name" => String.t() | atom(),
"totalControlsCount" => integer()
}
"""
@type control_domain_insights() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_settings_request() :: %{}
"""
@type get_settings_request() :: %{}
@typedoc """
## Example:
get_insights_request() :: %{}
"""
@type get_insights_request() :: %{}
@typedoc """
## Example:
aws_account() :: %{
"emailAddress" => String.t() | atom(),
"id" => String.t() | atom(),
"name" => String.t() | atom()
}
"""
@type aws_account() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_assessment_framework_share_request() :: %{
required("action") => list(any()),
required("requestType") => list(any())
}
"""
@type update_assessment_framework_share_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_delete_delegation_by_assessment_response() :: %{
"errors" => list(batch_delete_delegation_by_assessment_error())
}
"""
@type batch_delete_delegation_by_assessment_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_control_response() :: %{}
"""
@type delete_control_response() :: %{}
@typedoc """
## Example:
delete_assessment_framework_response() :: %{}
"""
@type delete_assessment_framework_response() :: %{}
@typedoc """
## Example:
create_assessment_report_response() :: %{
"assessmentReport" => assessment_report()
}
"""
@type create_assessment_report_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_assessment_response() :: %{
"assessment" => assessment()
}
"""
@type create_assessment_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_assessment_framework_request() :: %{}
"""
@type delete_assessment_framework_request() :: %{}
@typedoc """
## Example:
list_assessment_reports_response() :: %{
"assessmentReports" => list(assessment_report_metadata()),
"nextToken" => String.t() | atom()
}
"""
@type list_assessment_reports_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_by_evidence_folder_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type get_evidence_by_evidence_folder_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_notifications_response() :: %{
"nextToken" => String.t() | atom(),
"notifications" => list(notification())
}
"""
@type list_notifications_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
register_account_response() :: %{
"status" => list(any())
}
"""
@type register_account_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
untag_resource_response() :: %{}
"""
@type untag_resource_response() :: %{}
@typedoc """
## Example:
assessment_evidence_folder() :: %{
"assessmentId" => String.t() | atom(),
"assessmentReportSelectionCount" => integer(),
"author" => String.t() | atom(),
"controlId" => String.t() | atom(),
"controlName" => String.t() | atom(),
"controlSetId" => String.t() | atom(),
"dataSource" => String.t() | atom(),
"date" => non_neg_integer(),
"evidenceAwsServiceSourceCount" => integer(),
"evidenceByTypeComplianceCheckCount" => integer(),
"evidenceByTypeComplianceCheckIssuesCount" => integer(),
"evidenceByTypeConfigurationDataCount" => integer(),
"evidenceByTypeManualCount" => integer(),
"evidenceByTypeUserActivityCount" => integer(),
"evidenceResourcesIncludedCount" => integer(),
"id" => String.t() | atom(),
"name" => String.t() | atom(),
"totalEvidence" => integer()
}
"""
@type assessment_evidence_folder() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
register_account_request() :: %{
optional("delegatedAdminAccount") => String.t() | atom(),
optional("kmsKey") => String.t() | atom()
}
"""
@type register_account_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
deregister_account_request() :: %{}
"""
@type deregister_account_request() :: %{}
@typedoc """
## Example:
assessment_reports_destination() :: %{
"destination" => String.t() | atom(),
"destinationType" => list(any())
}
"""
@type assessment_reports_destination() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_control_insights_by_control_domain_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
required("controlDomainId") => String.t() | atom()
}
"""
@type list_control_insights_by_control_domain_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
control_set() :: %{
"controls" => list(control()),
"id" => String.t() | atom(),
"name" => String.t() | atom()
}
"""
@type control_set() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_folders_by_assessment_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type get_evidence_folders_by_assessment_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_assessment_framework_control() :: %{
"id" => String.t() | atom()
}
"""
@type create_assessment_framework_control() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
deregistration_policy() :: %{
"deleteResources" => list(any())
}
"""
@type deregistration_policy() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
service_metadata() :: %{
"category" => String.t() | atom(),
"description" => String.t() | atom(),
"displayName" => String.t() | atom(),
"name" => String.t() | atom()
}
"""
@type service_metadata() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
assessment_metadata_item() :: %{
"complianceType" => String.t() | atom(),
"creationTime" => non_neg_integer(),
"delegations" => list(delegation()),
"id" => String.t() | atom(),
"lastUpdated" => non_neg_integer(),
"name" => String.t() | atom(),
"roles" => list(role()),
"status" => list(any())
}
"""
@type assessment_metadata_item() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_control_mapping_source() :: %{
"sourceDescription" => String.t() | atom(),
"sourceFrequency" => list(any()),
"sourceKeyword" => source_keyword(),
"sourceName" => String.t() | atom(),
"sourceSetUpOption" => list(any()),
"sourceType" => list(any()),
"troubleshootingText" => String.t() | atom()
}
"""
@type create_control_mapping_source() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
role() :: %{
"roleArn" => String.t() | atom(),
"roleType" => list(any())
}
"""
@type role() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
deregister_organization_admin_account_response() :: %{}
"""
@type deregister_organization_admin_account_response() :: %{}
@typedoc """
## Example:
update_settings_response() :: %{
"settings" => settings()
}
"""
@type update_settings_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_assessment_control_set_status_request() :: %{
required("comment") => String.t() | atom(),
required("status") => list(any())
}
"""
@type update_assessment_control_set_status_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
control() :: %{
"actionPlanInstructions" => String.t() | atom(),
"actionPlanTitle" => String.t() | atom(),
"arn" => String.t() | atom(),
"controlMappingSources" => list(control_mapping_source()),
"controlSources" => String.t() | atom(),
"createdAt" => non_neg_integer(),
"createdBy" => String.t() | atom(),
"description" => String.t() | atom(),
"id" => String.t() | atom(),
"lastUpdatedAt" => non_neg_integer(),
"lastUpdatedBy" => String.t() | atom(),
"name" => String.t() | atom(),
"state" => list(any()),
"tags" => map(),
"testingInformation" => String.t() | atom(),
"type" => list(any())
}
"""
@type control() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_control_request() :: %{}
"""
@type get_control_request() :: %{}
@typedoc """
## Example:
list_control_insights_by_control_domain_response() :: %{
"controlInsightsMetadata" => list(control_insights_metadata_item()),
"nextToken" => String.t() | atom()
}
"""
@type list_control_insights_by_control_domain_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
untag_resource_request() :: %{
required("tagKeys") => list(String.t() | atom())
}
"""
@type untag_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_assessment_framework_request() :: %{}
"""
@type get_assessment_framework_request() :: %{}
@typedoc """
## Example:
control_comment() :: %{
"authorName" => String.t() | atom(),
"commentBody" => String.t() | atom(),
"postedDate" => non_neg_integer()
}
"""
@type control_comment() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
assessment_metadata() :: %{
"assessmentReportsDestination" => assessment_reports_destination(),
"complianceType" => String.t() | atom(),
"creationTime" => non_neg_integer(),
"delegations" => list(delegation()),
"description" => String.t() | atom(),
"id" => String.t() | atom(),
"lastUpdated" => non_neg_integer(),
"name" => String.t() | atom(),
"roles" => list(role()),
"scope" => scope(),
"status" => list(any())
}
"""
@type assessment_metadata() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_disassociate_assessment_report_evidence_request() :: %{
required("evidenceFolderId") => String.t() | atom(),
required("evidenceIds") => list(String.t() | atom())
}
"""
@type batch_disassociate_assessment_report_evidence_request() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
assessment_control() :: %{
"assessmentReportEvidenceCount" => integer(),
"comments" => list(control_comment()),
"description" => String.t() | atom(),
"evidenceCount" => integer(),
"evidenceSources" => list(String.t() | atom()),
"id" => String.t() | atom(),
"name" => String.t() | atom(),
"response" => list(any()),
"status" => list(any())
}
"""
@type assessment_control() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_insights_by_assessment_request() :: %{}
"""
@type get_insights_by_assessment_request() :: %{}
@typedoc """
## Example:
update_assessment_status_request() :: %{
required("status") => list(any())
}
"""
@type update_assessment_status_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
manual_evidence() :: %{
"evidenceFileName" => String.t() | atom(),
"s3ResourcePath" => String.t() | atom(),
"textResponse" => String.t() | atom()
}
"""
@type manual_evidence() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_controls_response() :: %{
"controlMetadataList" => list(control_metadata()),
"nextToken" => String.t() | atom()
}
"""
@type list_controls_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_keywords_for_data_source_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
required("source") => list(any())
}
"""
@type list_keywords_for_data_source_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
deregister_organization_admin_account_request() :: %{
optional("adminAccountId") => String.t() | atom()
}
"""
@type deregister_organization_admin_account_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_associate_assessment_report_evidence_request() :: %{
required("evidenceFolderId") => String.t() | atom(),
required("evidenceIds") => list(String.t() | atom())
}
"""
@type batch_associate_assessment_report_evidence_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_assessment_framework_response() :: %{
"framework" => framework()
}
"""
@type create_assessment_framework_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_control_domain_insights_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type list_control_domain_insights_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_folder_request() :: %{}
"""
@type get_evidence_folder_request() :: %{}
@typedoc """
## Example:
list_control_domain_insights_by_assessment_response() :: %{
"controlDomainInsights" => list(control_domain_insights()),
"nextToken" => String.t() | atom()
}
"""
@type list_control_domain_insights_by_assessment_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_assessment_framework_control_set() :: %{
"controls" => list(create_assessment_framework_control()),
"name" => String.t() | atom()
}
"""
@type create_assessment_framework_control_set() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_control_response() :: %{
"control" => control()
}
"""
@type create_control_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_change_logs_response() :: %{
"changeLogs" => list(change_log()),
"nextToken" => String.t() | atom()
}
"""
@type get_change_logs_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_organization_admin_account_request() :: %{}
"""
@type get_organization_admin_account_request() :: %{}
@typedoc """
## Example:
resource_not_found_exception() :: %{
"message" => String.t() | atom(),
"resourceId" => String.t() | atom(),
"resourceType" => String.t() | atom()
}
"""
@type resource_not_found_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_organization_admin_account_response() :: %{
"adminAccountId" => String.t() | atom(),
"organizationId" => String.t() | atom()
}
"""
@type get_organization_admin_account_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_create_delegation_by_assessment_request() :: %{
required("createDelegationRequests") => list(create_delegation_request())
}
"""
@type batch_create_delegation_by_assessment_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
evidence_insights() :: %{
"compliantEvidenceCount" => integer(),
"inconclusiveEvidenceCount" => integer(),
"noncompliantEvidenceCount" => integer()
}
"""
@type evidence_insights() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
aws_service() :: %{
"serviceName" => String.t() | atom()
}
"""
@type aws_service() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_assessment_framework_request() :: %{
optional("complianceType") => String.t() | atom(),
optional("description") => String.t() | atom(),
optional("tags") => map(),
required("controlSets") => list(create_assessment_framework_control_set()),
required("name") => String.t() | atom()
}
"""
@type create_assessment_framework_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_assessment_frameworks_response() :: %{
"frameworkMetadataList" => list(assessment_framework_metadata()),
"nextToken" => String.t() | atom()
}
"""
@type list_assessment_frameworks_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
control_metadata() :: %{
"arn" => String.t() | atom(),
"controlSources" => String.t() | atom(),
"createdAt" => non_neg_integer(),
"id" => String.t() | atom(),
"lastUpdatedAt" => non_neg_integer(),
"name" => String.t() | atom()
}
"""
@type control_metadata() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_assessment_framework_share_requests_response() :: %{
"assessmentFrameworkShareRequests" => list(assessment_framework_share_request()),
"nextToken" => String.t() | atom()
}
"""
@type list_assessment_framework_share_requests_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
service_quota_exceeded_exception() :: %{
"message" => String.t() | atom()
}
"""
@type service_quota_exceeded_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_assessment_control_insights_by_control_domain_response() :: %{
"controlInsightsByAssessment" => list(control_insights_metadata_by_assessment_item()),
"nextToken" => String.t() | atom()
}
"""
@type list_assessment_control_insights_by_control_domain_response() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
update_assessment_control_set_status_response() :: %{
"controlSet" => assessment_control_set()
}
"""
@type update_assessment_control_set_status_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_notifications_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type list_notifications_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_insights_by_assessment_response() :: %{
"insights" => insights_by_assessment()
}
"""
@type get_insights_by_assessment_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_assessment_framework_request() :: %{
optional("complianceType") => String.t() | atom(),
optional("description") => String.t() | atom(),
required("controlSets") => list(update_assessment_framework_control_set()),
required("name") => String.t() | atom()
}
"""
@type update_assessment_framework_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_delete_delegation_by_assessment_error() :: %{
"delegationId" => String.t() | atom(),
"errorCode" => String.t() | atom(),
"errorMessage" => String.t() | atom()
}
"""
@type batch_delete_delegation_by_assessment_error() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_assessment_framework_share_request() :: %{
required("requestType") => list(any())
}
"""
@type delete_assessment_framework_share_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
default_export_destination() :: %{
"destination" => String.t() | atom(),
"destinationType" => list(any())
}
"""
@type default_export_destination() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_assessment_report_request() :: %{}
"""
@type delete_assessment_report_request() :: %{}
@typedoc """
## Example:
associate_assessment_report_evidence_folder_response() :: %{}
"""
@type associate_assessment_report_evidence_folder_response() :: %{}
@typedoc """
## Example:
list_assessment_control_insights_by_control_domain_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
required("assessmentId") => String.t() | atom(),
required("controlDomainId") => String.t() | atom()
}
"""
@type list_assessment_control_insights_by_control_domain_request() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
assessment_control_set() :: %{
"controls" => list(assessment_control()),
"delegations" => list(delegation()),
"description" => String.t() | atom(),
"id" => String.t() | atom(),
"manualEvidenceCount" => integer(),
"roles" => list(role()),
"status" => list(any()),
"systemEvidenceCount" => integer()
}
"""
@type assessment_control_set() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
assessment_report_evidence_error() :: %{
"errorCode" => String.t() | atom(),
"errorMessage" => String.t() | atom(),
"evidenceId" => String.t() | atom()
}
"""
@type assessment_report_evidence_error() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
settings() :: %{
"defaultAssessmentReportsDestination" => assessment_reports_destination(),
"defaultExportDestination" => default_export_destination(),
"defaultProcessOwners" => list(role()),
"deregistrationPolicy" => deregistration_policy(),
"evidenceFinderEnablement" => evidence_finder_enablement(),
"isAwsOrgEnabled" => boolean(),
"kmsKey" => String.t() | atom(),
"snsTopic" => String.t() | atom()
}
"""
@type settings() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_services_in_scope_response() :: %{
"serviceMetadata" => list(service_metadata())
}
"""
@type get_services_in_scope_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_assessments_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
optional("status") => list(any())
}
"""
@type list_assessments_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_control_domain_insights_by_assessment_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
required("assessmentId") => String.t() | atom()
}
"""
@type list_control_domain_insights_by_assessment_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_assessment_response() :: %{}
"""
@type delete_assessment_response() :: %{}
@typedoc """
## Example:
batch_associate_assessment_report_evidence_response() :: %{
"errors" => list(assessment_report_evidence_error()),
"evidenceIds" => list(String.t() | atom())
}
"""
@type batch_associate_assessment_report_evidence_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_tags_for_resource_response() :: %{
"tags" => map()
}
"""
@type list_tags_for_resource_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_settings_request() :: %{
optional("defaultAssessmentReportsDestination") => assessment_reports_destination(),
optional("defaultExportDestination") => default_export_destination(),
optional("defaultProcessOwners") => list(role()),
optional("deregistrationPolicy") => deregistration_policy(),
optional("evidenceFinderEnabled") => boolean(),
optional("kmsKey") => String.t() | atom(),
optional("snsTopic") => String.t() | atom()
}
"""
@type update_settings_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_folders_by_assessment_control_response() :: %{
"evidenceFolders" => list(assessment_evidence_folder()),
"nextToken" => String.t() | atom()
}
"""
@type get_evidence_folders_by_assessment_control_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_change_logs_request() :: %{
optional("controlId") => String.t() | atom(),
optional("controlSetId") => String.t() | atom(),
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type get_change_logs_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
validation_exception_field() :: %{
"message" => String.t() | atom(),
"name" => String.t() | atom()
}
"""
@type validation_exception_field() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
register_organization_admin_account_request() :: %{
required("adminAccountId") => String.t() | atom()
}
"""
@type register_organization_admin_account_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_controls_request() :: %{
optional("controlCatalogId") => String.t() | atom(),
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
required("controlType") => list(any())
}
"""
@type list_controls_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
insights() :: %{
"activeAssessmentsCount" => integer(),
"assessmentControlsCountByNoncompliantEvidence" => integer(),
"compliantEvidenceCount" => integer(),
"inconclusiveEvidenceCount" => integer(),
"lastUpdated" => non_neg_integer(),
"noncompliantEvidenceCount" => integer(),
"totalAssessmentControlsCount" => integer()
}
"""
@type insights() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_assessment_request() :: %{
optional("assessmentDescription") => String.t() | atom(),
optional("assessmentName") => String.t() | atom(),
optional("assessmentReportsDestination") => assessment_reports_destination(),
optional("roles") => list(role()),
required("scope") => scope()
}
"""
@type update_assessment_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
assessment() :: %{
"arn" => String.t() | atom(),
"awsAccount" => aws_account(),
"framework" => assessment_framework(),
"metadata" => assessment_metadata(),
"tags" => map()
}
"""
@type assessment() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_import_evidence_to_assessment_control_request() :: %{
required("manualEvidence") => list(manual_evidence())
}
"""
@type batch_import_evidence_to_assessment_control_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_insights_response() :: %{
"insights" => insights()
}
"""
@type get_insights_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_settings_response() :: %{
"settings" => settings()
}
"""
@type get_settings_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_folders_by_assessment_response() :: %{
"evidenceFolders" => list(assessment_evidence_folder()),
"nextToken" => String.t() | atom()
}
"""
@type get_evidence_folders_by_assessment_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_file_upload_url_request() :: %{
required("fileName") => String.t() | atom()
}
"""
@type get_evidence_file_upload_url_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_file_upload_url_response() :: %{
"evidenceFileName" => String.t() | atom(),
"uploadUrl" => String.t() | atom()
}
"""
@type get_evidence_file_upload_url_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_assessment_request() :: %{}
"""
@type get_assessment_request() :: %{}
@typedoc """
## Example:
internal_server_exception() :: %{
"message" => String.t() | atom()
}
"""
@type internal_server_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
disassociate_assessment_report_evidence_folder_response() :: %{}
"""
@type disassociate_assessment_report_evidence_folder_response() :: %{}
@typedoc """
## Example:
scope() :: %{
"awsAccounts" => list(aws_account()),
"awsServices" => list(aws_service())
}
"""
@type scope() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_delete_delegation_by_assessment_request() :: %{
required("delegationIds") => list(String.t() | atom())
}
"""
@type batch_delete_delegation_by_assessment_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
framework() :: %{
"arn" => String.t() | atom(),
"complianceType" => String.t() | atom(),
"controlSets" => list(control_set()),
"controlSources" => String.t() | atom(),
"createdAt" => non_neg_integer(),
"createdBy" => String.t() | atom(),
"description" => String.t() | atom(),
"id" => String.t() | atom(),
"lastUpdatedAt" => non_neg_integer(),
"lastUpdatedBy" => String.t() | atom(),
"logo" => String.t() | atom(),
"name" => String.t() | atom(),
"tags" => map(),
"type" => list(any())
}
"""
@type framework() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
validate_assessment_report_integrity_request() :: %{
required("s3RelativePath") => String.t() | atom()
}
"""
@type validate_assessment_report_integrity_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_delegations_response() :: %{
"delegations" => list(delegation_metadata()),
"nextToken" => String.t() | atom()
}
"""
@type get_delegations_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_assessment_framework_share_requests_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
required("requestType") => list(any())
}
"""
@type list_assessment_framework_share_requests_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
assessment_report_metadata() :: %{
"assessmentId" => String.t() | atom(),
"assessmentName" => String.t() | atom(),
"author" => String.t() | atom(),
"creationTime" => non_neg_integer(),
"description" => String.t() | atom(),
"id" => String.t() | atom(),
"name" => String.t() | atom(),
"status" => list(any())
}
"""
@type assessment_report_metadata() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_assessment_framework_control_set() :: %{
"controls" => list(create_assessment_framework_control()),
"id" => String.t() | atom(),
"name" => String.t() | atom()
}
"""
@type update_assessment_framework_control_set() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_assessment_response() :: %{
"assessment" => assessment(),
"userRole" => role()
}
"""
@type get_assessment_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_control_domain_insights_response() :: %{
"controlDomainInsights" => list(control_domain_insights()),
"nextToken" => String.t() | atom()
}
"""
@type list_control_domain_insights_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
deregister_account_response() :: %{
"status" => list(any())
}
"""
@type deregister_account_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
access_denied_exception() :: %{
"message" => String.t() | atom()
}
"""
@type access_denied_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
associate_assessment_report_evidence_folder_request() :: %{
required("evidenceFolderId") => String.t() | atom()
}
"""
@type associate_assessment_report_evidence_folder_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_import_evidence_to_assessment_control_response() :: %{
"errors" => list(batch_import_evidence_to_assessment_control_error())
}
"""
@type batch_import_evidence_to_assessment_control_response() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
control_insights_metadata_by_assessment_item() :: %{
"controlSetName" => String.t() | atom(),
"evidenceInsights" => evidence_insights(),
"id" => String.t() | atom(),
"lastUpdated" => non_neg_integer(),
"name" => String.t() | atom()
}
"""
@type control_insights_metadata_by_assessment_item() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag_resource_response() :: %{}
"""
@type tag_resource_response() :: %{}
@typedoc """
## Example:
validate_assessment_report_integrity_response() :: %{
"signatureAlgorithm" => String.t() | atom(),
"signatureDateTime" => String.t() | atom(),
"signatureKeyId" => String.t() | atom(),
"signatureValid" => boolean(),
"validationErrors" => list(String.t() | atom())
}
"""
@type validate_assessment_report_integrity_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
assessment_framework_metadata() :: %{
"arn" => String.t() | atom(),
"complianceType" => String.t() | atom(),
"controlSetsCount" => integer(),
"controlsCount" => integer(),
"createdAt" => non_neg_integer(),
"description" => String.t() | atom(),
"id" => String.t() | atom(),
"lastUpdatedAt" => non_neg_integer(),
"logo" => String.t() | atom(),
"name" => String.t() | atom(),
"type" => list(any())
}
"""
@type assessment_framework_metadata() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_control_request() :: %{
optional("actionPlanInstructions") => String.t() | atom(),
optional("actionPlanTitle") => String.t() | atom(),
optional("description") => String.t() | atom(),
optional("testingInformation") => String.t() | atom(),
required("controlMappingSources") => list(control_mapping_source()),
required("name") => String.t() | atom()
}
"""
@type update_control_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_assessment_framework_share_response() :: %{}
"""
@type delete_assessment_framework_share_response() :: %{}
@typedoc """
## Example:
update_assessment_framework_response() :: %{
"framework" => framework()
}
"""
@type update_assessment_framework_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_create_delegation_by_assessment_error() :: %{
"createDelegationRequest" => create_delegation_request(),
"errorCode" => String.t() | atom(),
"errorMessage" => String.t() | atom()
}
"""
@type batch_create_delegation_by_assessment_error() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
validation_exception() :: %{
"fields" => list(validation_exception_field()),
"message" => String.t() | atom(),
"reason" => list(any())
}
"""
@type validation_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_tags_for_resource_request() :: %{}
"""
@type list_tags_for_resource_request() :: %{}
@typedoc """
## Example:
batch_create_delegation_by_assessment_response() :: %{
"delegations" => list(delegation()),
"errors" => list(batch_create_delegation_by_assessment_error())
}
"""
@type batch_create_delegation_by_assessment_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
evidence_finder_enablement() :: %{
"backfillStatus" => list(any()),
"enablementStatus" => list(any()),
"error" => String.t() | atom(),
"eventDataStoreArn" => String.t() | atom()
}
"""
@type evidence_finder_enablement() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_control_request() :: %{}
"""
@type delete_control_request() :: %{}
@typedoc """
## Example:
url() :: %{
"hyperlinkName" => String.t() | atom(),
"link" => String.t() | atom()
}
"""
@type url() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
evidence() :: %{
"assessmentReportSelection" => String.t() | atom(),
"attributes" => map(),
"awsAccountId" => String.t() | atom(),
"awsOrganization" => String.t() | atom(),
"complianceCheck" => String.t() | atom(),
"dataSource" => String.t() | atom(),
"eventName" => String.t() | atom(),
"eventSource" => String.t() | atom(),
"evidenceAwsAccountId" => String.t() | atom(),
"evidenceByType" => String.t() | atom(),
"evidenceFolderId" => String.t() | atom(),
"iamId" => String.t() | atom(),
"id" => String.t() | atom(),
"resourcesIncluded" => list(resource()),
"time" => non_neg_integer()
}
"""
@type evidence() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
throttling_exception() :: %{
"message" => String.t() | atom()
}
"""
@type throttling_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
assessment_framework_share_request() :: %{
"comment" => String.t() | atom(),
"complianceType" => String.t() | atom(),
"creationTime" => non_neg_integer(),
"customControlsCount" => integer(),
"destinationAccount" => String.t() | atom(),
"destinationRegion" => String.t() | atom(),
"expirationTime" => non_neg_integer(),
"frameworkDescription" => String.t() | atom(),
"frameworkId" => String.t() | atom(),
"frameworkName" => String.t() | atom(),
"id" => String.t() | atom(),
"lastUpdated" => non_neg_integer(),
"sourceAccount" => String.t() | atom(),
"standardControlsCount" => integer(),
"status" => list(any())
}
"""
@type assessment_framework_share_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_by_evidence_folder_response() :: %{
"evidence" => list(evidence()),
"nextToken" => String.t() | atom()
}
"""
@type get_evidence_by_evidence_folder_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_request() :: %{}
"""
@type get_evidence_request() :: %{}
@typedoc """
## Example:
update_assessment_control_response() :: %{
"control" => assessment_control()
}
"""
@type update_assessment_control_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delegation() :: %{
"assessmentId" => String.t() | atom(),
"assessmentName" => String.t() | atom(),
"comment" => String.t() | atom(),
"controlSetId" => String.t() | atom(),
"createdBy" => String.t() | atom(),
"creationTime" => non_neg_integer(),
"id" => String.t() | atom(),
"lastUpdated" => non_neg_integer(),
"roleArn" => String.t() | atom(),
"roleType" => list(any()),
"status" => list(any())
}
"""
@type delegation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_keywords_for_data_source_response() :: %{
"keywords" => list(String.t() | atom()),
"nextToken" => String.t() | atom()
}
"""
@type list_keywords_for_data_source_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
register_organization_admin_account_response() :: %{
"adminAccountId" => String.t() | atom(),
"organizationId" => String.t() | atom()
}
"""
@type register_organization_admin_account_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_response() :: %{
"evidence" => evidence()
}
"""
@type get_evidence_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
notification() :: %{
"assessmentId" => String.t() | atom(),
"assessmentName" => String.t() | atom(),
"controlSetId" => String.t() | atom(),
"controlSetName" => String.t() | atom(),
"description" => String.t() | atom(),
"eventTime" => non_neg_integer(),
"id" => String.t() | atom(),
"source" => String.t() | atom()
}
"""
@type notification() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
start_assessment_framework_share_request() :: %{
optional("comment") => String.t() | atom(),
required("destinationAccount") => String.t() | atom(),
required("destinationRegion") => String.t() | atom()
}
"""
@type start_assessment_framework_share_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_assessment_control_request() :: %{
optional("commentBody") => String.t() | atom(),
optional("controlStatus") => list(any())
}
"""
@type update_assessment_control_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_assessment_frameworks_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
required("frameworkType") => list(any())
}
"""
@type list_assessment_frameworks_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_folder_response() :: %{
"evidenceFolder" => assessment_evidence_folder()
}
"""
@type get_evidence_folder_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
disassociate_assessment_report_evidence_folder_request() :: %{
required("evidenceFolderId") => String.t() | atom()
}
"""
@type disassociate_assessment_report_evidence_folder_request() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
start_assessment_framework_share_response() :: %{
"assessmentFrameworkShareRequest" => assessment_framework_share_request()
}
"""
@type start_assessment_framework_share_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
assessment_report() :: %{
"assessmentId" => String.t() | atom(),
"assessmentName" => String.t() | atom(),
"author" => String.t() | atom(),
"awsAccountId" => String.t() | atom(),
"creationTime" => non_neg_integer(),
"description" => String.t() | atom(),
"id" => String.t() | atom(),
"name" => String.t() | atom(),
"status" => list(any())
}
"""
@type assessment_report() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_control_response() :: %{
"control" => control()
}
"""
@type get_control_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_assessment_report_url_request() :: %{}
"""
@type get_assessment_report_url_request() :: %{}
@typedoc """
## Example:
create_assessment_request() :: %{
optional("description") => String.t() | atom(),
optional("tags") => map(),
required("assessmentReportsDestination") => assessment_reports_destination(),
required("frameworkId") => String.t() | atom(),
required("name") => String.t() | atom(),
required("roles") => list(role()),
required("scope") => scope()
}
"""
@type create_assessment_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_disassociate_assessment_report_evidence_response() :: %{
"errors" => list(assessment_report_evidence_error()),
"evidenceIds" => list(String.t() | atom())
}
"""
@type batch_disassociate_assessment_report_evidence_response() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
create_control_request() :: %{
optional("actionPlanInstructions") => String.t() | atom(),
optional("actionPlanTitle") => String.t() | atom(),
optional("description") => String.t() | atom(),
optional("tags") => map(),
optional("testingInformation") => String.t() | atom(),
required("controlMappingSources") => list(create_control_mapping_source()),
required("name") => String.t() | atom()
}
"""
@type create_control_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_import_evidence_to_assessment_control_error() :: %{
"errorCode" => String.t() | atom(),
"errorMessage" => String.t() | atom(),
"manualEvidence" => manual_evidence()
}
"""
@type batch_import_evidence_to_assessment_control_error() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
insights_by_assessment() :: %{
"assessmentControlsCountByNoncompliantEvidence" => integer(),
"compliantEvidenceCount" => integer(),
"inconclusiveEvidenceCount" => integer(),
"lastUpdated" => non_neg_integer(),
"noncompliantEvidenceCount" => integer(),
"totalAssessmentControlsCount" => integer()
}
"""
@type insights_by_assessment() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
source_keyword() :: %{
"keywordInputType" => list(any()),
"keywordValue" => String.t() | atom()
}
"""
@type source_keyword() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_delegation_request() :: %{
"comment" => String.t() | atom(),
"controlSetId" => String.t() | atom(),
"roleArn" => String.t() | atom(),
"roleType" => list(any())
}
"""
@type create_delegation_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_assessment_request() :: %{}
"""
@type delete_assessment_request() :: %{}
@typedoc """
## Example:
get_services_in_scope_request() :: %{}
"""
@type get_services_in_scope_request() :: %{}
@typedoc """
## Example:
update_assessment_status_response() :: %{
"assessment" => assessment()
}
"""
@type update_assessment_status_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
change_log() :: %{
"action" => list(any()),
"createdAt" => non_neg_integer(),
"createdBy" => String.t() | atom(),
"objectName" => String.t() | atom(),
"objectType" => list(any())
}
"""
@type change_log() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
control_mapping_source() :: %{
"sourceDescription" => String.t() | atom(),
"sourceFrequency" => list(any()),
"sourceId" => String.t() | atom(),
"sourceKeyword" => source_keyword(),
"sourceName" => String.t() | atom(),
"sourceSetUpOption" => list(any()),
"sourceType" => list(any()),
"troubleshootingText" => String.t() | atom()
}
"""
@type control_mapping_source() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_assessment_reports_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type list_assessment_reports_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_assessment_report_response() :: %{}
"""
@type delete_assessment_report_response() :: %{}
@typedoc """
## Example:
create_assessment_report_request() :: %{
optional("description") => String.t() | atom(),
optional("queryStatement") => String.t() | atom(),
required("name") => String.t() | atom()
}
"""
@type create_assessment_report_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_account_status_request() :: %{}
"""
@type get_account_status_request() :: %{}
@typedoc """
## Example:
get_assessment_framework_response() :: %{
"framework" => framework()
}
"""
@type get_assessment_framework_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_evidence_folders_by_assessment_control_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type get_evidence_folders_by_assessment_control_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
assessment_framework() :: %{
"arn" => String.t() | atom(),
"controlSets" => list(assessment_control_set()),
"id" => String.t() | atom(),
"metadata" => framework_metadata()
}
"""
@type assessment_framework() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_assessment_framework_share_response() :: %{
"assessmentFrameworkShareRequest" => assessment_framework_share_request()
}
"""
@type update_assessment_framework_share_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delegation_metadata() :: %{
"assessmentId" => String.t() | atom(),
"assessmentName" => String.t() | atom(),
"controlSetName" => String.t() | atom(),
"creationTime" => non_neg_integer(),
"id" => String.t() | atom(),
"roleArn" => String.t() | atom(),
"status" => list(any())
}
"""
@type delegation_metadata() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
control_insights_metadata_item() :: %{
"evidenceInsights" => evidence_insights(),
"id" => String.t() | atom(),
"lastUpdated" => non_neg_integer(),
"name" => String.t() | atom()
}
"""
@type control_insights_metadata_item() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_account_status_response() :: %{
"status" => list(any())
}
"""
@type get_account_status_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_assessment_report_url_response() :: %{
"preSignedUrl" => url()
}
"""
@type get_assessment_report_url_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
resource() :: %{
"arn" => String.t() | atom(),
"complianceCheck" => String.t() | atom(),
"value" => String.t() | atom()
}
"""
@type resource() :: %{(String.t() | atom()) => any()}
@type associate_assessment_report_evidence_folder_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type batch_associate_assessment_report_evidence_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type batch_create_delegation_by_assessment_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type batch_delete_delegation_by_assessment_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type batch_disassociate_assessment_report_evidence_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type batch_import_evidence_to_assessment_control_errors() ::
throttling_exception()
| validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type create_assessment_errors() ::
throttling_exception()
| validation_exception()
| access_denied_exception()
| internal_server_exception()
| service_quota_exceeded_exception()
| resource_not_found_exception()
@type create_assessment_framework_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| service_quota_exceeded_exception()
| resource_not_found_exception()
@type create_assessment_report_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type create_control_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| service_quota_exceeded_exception()
| resource_not_found_exception()
@type delete_assessment_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type delete_assessment_framework_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type delete_assessment_framework_share_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type delete_assessment_report_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type delete_control_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type deregister_account_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type deregister_organization_admin_account_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type disassociate_assessment_report_evidence_folder_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_account_status_errors() :: internal_server_exception()
@type get_assessment_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_assessment_framework_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_assessment_report_url_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_change_logs_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_control_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_delegations_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type get_evidence_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_evidence_by_evidence_folder_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_evidence_file_upload_url_errors() ::
throttling_exception()
| validation_exception()
| access_denied_exception()
| internal_server_exception()
@type get_evidence_folder_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_evidence_folders_by_assessment_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_evidence_folders_by_assessment_control_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_insights_errors() :: access_denied_exception() | internal_server_exception()
@type get_insights_by_assessment_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_organization_admin_account_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type get_services_in_scope_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type get_settings_errors() :: access_denied_exception() | internal_server_exception()
@type list_assessment_control_insights_by_control_domain_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type list_assessment_framework_share_requests_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type list_assessment_frameworks_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type list_assessment_reports_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type list_assessments_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type list_control_domain_insights_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type list_control_domain_insights_by_assessment_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type list_control_insights_by_control_domain_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type list_controls_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type list_keywords_for_data_source_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type list_notifications_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type list_tags_for_resource_errors() ::
validation_exception() | internal_server_exception() | resource_not_found_exception()
@type register_account_errors() ::
throttling_exception()
| validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type register_organization_admin_account_errors() ::
throttling_exception()
| validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type start_assessment_framework_share_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type tag_resource_errors() ::
validation_exception() | internal_server_exception() | resource_not_found_exception()
@type untag_resource_errors() ::
validation_exception() | internal_server_exception() | resource_not_found_exception()
@type update_assessment_errors() ::
throttling_exception()
| validation_exception()
| access_denied_exception()
| internal_server_exception()
| service_quota_exceeded_exception()
| resource_not_found_exception()
@type update_assessment_control_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type update_assessment_control_set_status_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type update_assessment_framework_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| service_quota_exceeded_exception()
| resource_not_found_exception()
@type update_assessment_framework_share_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| service_quota_exceeded_exception()
| resource_not_found_exception()
@type update_assessment_status_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| service_quota_exceeded_exception()
| resource_not_found_exception()
@type update_control_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
@type update_settings_errors() ::
validation_exception() | access_denied_exception() | internal_server_exception()
@type validate_assessment_report_integrity_errors() ::
validation_exception()
| access_denied_exception()
| internal_server_exception()
| resource_not_found_exception()
def metadata do
%{
api_version: "2017-07-25",
content_type: "application/x-amz-json-1.1",
credential_scope: nil,
endpoint_prefix: "auditmanager",
global?: false,
hostname: nil,
protocol: "rest-json",
service_id: "AuditManager",
signature_version: "v4",
signing_name: "auditmanager",
target_prefix: nil
}
end
@doc """
Associates an evidence folder to an assessment report in an Audit Manager
assessment.
"""
@spec associate_assessment_report_evidence_folder(
map(),
String.t() | atom(),
associate_assessment_report_evidence_folder_request(),
list()
) ::
{:ok, associate_assessment_report_evidence_folder_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, associate_assessment_report_evidence_folder_errors()}
def associate_assessment_report_evidence_folder(
%Client{} = client,
assessment_id,
input,
options \\ []
) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}/associateToAssessmentReport"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Associates a list of evidence to an assessment report in an Audit Manager
assessment.
"""
@spec batch_associate_assessment_report_evidence(
map(),
String.t() | atom(),
batch_associate_assessment_report_evidence_request(),
list()
) ::
{:ok, batch_associate_assessment_report_evidence_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, batch_associate_assessment_report_evidence_errors()}
def batch_associate_assessment_report_evidence(
%Client{} = client,
assessment_id,
input,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/batchAssociateToAssessmentReport"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Creates a batch of delegations for an assessment in Audit Manager.
"""
@spec batch_create_delegation_by_assessment(
map(),
String.t() | atom(),
batch_create_delegation_by_assessment_request(),
list()
) ::
{:ok, batch_create_delegation_by_assessment_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, batch_create_delegation_by_assessment_errors()}
def batch_create_delegation_by_assessment(
%Client{} = client,
assessment_id,
input,
options \\ []
) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}/delegations"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Deletes a batch of delegations for an assessment in Audit Manager.
"""
@spec batch_delete_delegation_by_assessment(
map(),
String.t() | atom(),
batch_delete_delegation_by_assessment_request(),
list()
) ::
{:ok, batch_delete_delegation_by_assessment_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, batch_delete_delegation_by_assessment_errors()}
def batch_delete_delegation_by_assessment(
%Client{} = client,
assessment_id,
input,
options \\ []
) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}/delegations"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Disassociates a list of evidence from an assessment report in Audit Manager.
"""
@spec batch_disassociate_assessment_report_evidence(
map(),
String.t() | atom(),
batch_disassociate_assessment_report_evidence_request(),
list()
) ::
{:ok, batch_disassociate_assessment_report_evidence_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, batch_disassociate_assessment_report_evidence_errors()}
def batch_disassociate_assessment_report_evidence(
%Client{} = client,
assessment_id,
input,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/batchDisassociateFromAssessmentReport"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Adds one or more pieces of evidence to a control in an Audit Manager assessment.
You can import manual evidence from any S3 bucket by specifying the S3 URI of
the
object. You can also upload a file from your browser, or enter plain text in
response to a
risk assessment question.
The following restrictions apply to this action:
*
`manualEvidence` can be only one of the following:
`evidenceFileName`, `s3ResourcePath`, or
`textResponse`
*
Maximum size of an individual evidence file: 100 MB
*
Number of daily manual evidence uploads per control: 100
*
Supported file formats: See [Supported file types for manual evidence](https://docs.aws.amazon.com/audit-manager/latest/userguide/upload-evidence.html#supported-manual-evidence-files)
in the *Audit Manager User Guide*
For more information about Audit Manager service restrictions, see [Quotas and restrictions for Audit
Manager](https://docs.aws.amazon.com/audit-manager/latest/userguide/service-quotas.html).
"""
@spec batch_import_evidence_to_assessment_control(
map(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom(),
batch_import_evidence_to_assessment_control_request(),
list()
) ::
{:ok, batch_import_evidence_to_assessment_control_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, batch_import_evidence_to_assessment_control_errors()}
def batch_import_evidence_to_assessment_control(
%Client{} = client,
assessment_id,
control_id,
control_set_id,
input,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/controlSets/#{AWS.Util.encode_uri(control_set_id)}/controls/#{AWS.Util.encode_uri(control_id)}/evidence"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Creates an assessment in Audit Manager.
"""
@spec create_assessment(map(), create_assessment_request(), list()) ::
{:ok, create_assessment_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, create_assessment_errors()}
def create_assessment(%Client{} = client, input, options \\ []) do
url_path = "/assessments"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Creates a custom framework in Audit Manager.
"""
@spec create_assessment_framework(map(), create_assessment_framework_request(), list()) ::
{:ok, create_assessment_framework_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, create_assessment_framework_errors()}
def create_assessment_framework(%Client{} = client, input, options \\ []) do
url_path = "/assessmentFrameworks"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Creates an assessment report for the specified assessment.
"""
@spec create_assessment_report(
map(),
String.t() | atom(),
create_assessment_report_request(),
list()
) ::
{:ok, create_assessment_report_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, create_assessment_report_errors()}
def create_assessment_report(%Client{} = client, assessment_id, input, options \\ []) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}/reports"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Creates a new custom control in Audit Manager.
"""
@spec create_control(map(), create_control_request(), list()) ::
{:ok, create_control_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, create_control_errors()}
def create_control(%Client{} = client, input, options \\ []) do
url_path = "/controls"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Deletes an assessment in Audit Manager.
"""
@spec delete_assessment(map(), String.t() | atom(), delete_assessment_request(), list()) ::
{:ok, delete_assessment_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_assessment_errors()}
def delete_assessment(%Client{} = client, assessment_id, input, options \\ []) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Deletes a custom framework in Audit Manager.
"""
@spec delete_assessment_framework(
map(),
String.t() | atom(),
delete_assessment_framework_request(),
list()
) ::
{:ok, delete_assessment_framework_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_assessment_framework_errors()}
def delete_assessment_framework(%Client{} = client, framework_id, input, options \\ []) do
url_path = "/assessmentFrameworks/#{AWS.Util.encode_uri(framework_id)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Deletes a share request for a custom framework in Audit Manager.
"""
@spec delete_assessment_framework_share(
map(),
String.t() | atom(),
delete_assessment_framework_share_request(),
list()
) ::
{:ok, delete_assessment_framework_share_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_assessment_framework_share_errors()}
def delete_assessment_framework_share(%Client{} = client, request_id, input, options \\ []) do
url_path = "/assessmentFrameworkShareRequests/#{AWS.Util.encode_uri(request_id)}"
headers = []
custom_headers = []
{query_params, input} =
[
{"requestType", "requestType"}
]
|> Request.build_params(input)
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Deletes an assessment report in Audit Manager.
When you run the `DeleteAssessmentReport` operation, Audit Manager
attempts to delete the following data:
1.
The specified assessment report that’s stored in your S3 bucket
2.
The associated metadata that’s stored in Audit Manager
If Audit Manager can’t access the assessment report in your S3 bucket, the
report
isn’t deleted. In this event, the `DeleteAssessmentReport` operation doesn’t
fail. Instead, it proceeds to delete the associated metadata only. You must then
delete the
assessment report from the S3 bucket yourself.
This scenario happens when Audit Manager receives a `403 (Forbidden)` or
`404 (Not Found)` error from Amazon S3. To avoid this, make sure that
your S3 bucket is available, and that you configured the correct permissions for
Audit Manager to delete resources in your S3 bucket. For an example permissions
policy that
you can use, see [Assessment report destination permissions](https://docs.aws.amazon.com/audit-manager/latest/userguide/security_iam_id-based-policy-examples.html#full-administrator-access-assessment-report-destination)
in the *Audit Manager User Guide*. For information about the issues that could
cause a
```
403
(Forbidden)
```
or `404 (Not Found`) error from Amazon S3, see
[List of Error Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)
in the *Amazon Simple Storage Service API
Reference*.
"""
@spec delete_assessment_report(
map(),
String.t() | atom(),
String.t() | atom(),
delete_assessment_report_request(),
list()
) ::
{:ok, delete_assessment_report_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_assessment_report_errors()}
def delete_assessment_report(
%Client{} = client,
assessment_id,
assessment_report_id,
input,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/reports/#{AWS.Util.encode_uri(assessment_report_id)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Deletes a custom control in Audit Manager.
When you invoke this operation, the custom control is deleted from any
frameworks or
assessments that it’s currently part of. As a result, Audit Manager will stop
collecting evidence for that custom control in all of your assessments. This
includes
assessments that you previously created before you deleted the custom control.
"""
@spec delete_control(map(), String.t() | atom(), delete_control_request(), list()) ::
{:ok, delete_control_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_control_errors()}
def delete_control(%Client{} = client, control_id, input, options \\ []) do
url_path = "/controls/#{AWS.Util.encode_uri(control_id)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Deregisters an account in Audit Manager.
Before you deregister, you can use the
[UpdateSettings](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_UpdateSettings.html) API operation to set your preferred data retention policy. By
default, Audit Manager retains your data. If you want to delete your data, you
can
use the `DeregistrationPolicy` attribute to request the deletion of your
data.
For more information about data retention, see [Data
Protection](https://docs.aws.amazon.com/audit-manager/latest/userguide/data-protection.html)
in the *Audit Manager User Guide*.
"""
@spec deregister_account(map(), deregister_account_request(), list()) ::
{:ok, deregister_account_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, deregister_account_errors()}
def deregister_account(%Client{} = client, input, options \\ []) do
url_path = "/account/deregisterAccount"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Removes the specified Amazon Web Services account as a delegated administrator
for
Audit Manager.
When you remove a delegated administrator from your Audit Manager settings, you
continue to have access to the evidence that you previously collected under that
account.
This is also the case when you deregister a delegated administrator from
Organizations. However, Audit Manager stops collecting and attaching evidence to
that delegated administrator account moving forward.
Keep in mind the following cleanup task if you use evidence finder:
Before you use your management account to remove a delegated administrator, make
sure
that the current delegated administrator account signs in to Audit Manager and
disables evidence finder first. Disabling evidence finder automatically deletes
the
event data store that was created in their account when they enabled evidence
finder. If
this task isn’t completed, the event data store remains in their account. In
this case,
we recommend that the original delegated administrator goes to CloudTrail Lake
and manually [deletes the event data
store](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-eds-disable-termination.html).
This cleanup task is necessary to ensure that you don't end up with multiple
event
data stores. Audit Manager ignores an unused event data store after you remove
or
change a delegated administrator account. However, the unused event data store
continues
to incur storage costs from CloudTrail Lake if you don't delete it.
When you deregister a delegated administrator account for Audit Manager, the
data
for that account isn’t deleted. If you want to delete resource data for a
delegated
administrator account, you must perform that task separately before you
deregister the
account. Either, you can do this in the Audit Manager console. Or, you can use
one of
the delete API operations that are provided by Audit Manager.
To delete your Audit Manager resource data, see the following instructions:
*
[DeleteAssessment](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html) (see also: [Deleting an
assessment](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html)
in the *Audit Manager User
Guide*)
*
[DeleteAssessmentFramework](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFramework.html) (see also: [Deleting a
custom
framework](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-custom-framework.html)
in the *Audit Manager User
Guide*)
*
[DeleteAssessmentFrameworkShare](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFrameworkShare.html) (see also: [Deleting a share
request](https://docs.aws.amazon.com/audit-manager/latest/userguide/deleting-shared-framework-requests.html)
in the *Audit Manager User
Guide*)
*
[DeleteAssessmentReport](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentReport.html) (see also: [Deleting an assessment
report](https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#delete-assessment-report-steps)
in the *Audit Manager User
Guide*)
*
[DeleteControl](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html) (see also: [Deleting a custom
control](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html)
in the *Audit Manager User
Guide*)
At this time, Audit Manager doesn't provide an option to delete evidence for a
specific delegated administrator. Instead, when your management account
deregisters Audit Manager, we perform a cleanup for the current delegated
administrator account at the
time of deregistration.
"""
@spec deregister_organization_admin_account(
map(),
deregister_organization_admin_account_request(),
list()
) ::
{:ok, deregister_organization_admin_account_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, deregister_organization_admin_account_errors()}
def deregister_organization_admin_account(%Client{} = client, input, options \\ []) do
url_path = "/account/deregisterOrganizationAdminAccount"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Disassociates an evidence folder from the specified assessment report in Audit
Manager.
"""
@spec disassociate_assessment_report_evidence_folder(
map(),
String.t() | atom(),
disassociate_assessment_report_evidence_folder_request(),
list()
) ::
{:ok, disassociate_assessment_report_evidence_folder_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, disassociate_assessment_report_evidence_folder_errors()}
def disassociate_assessment_report_evidence_folder(
%Client{} = client,
assessment_id,
input,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/disassociateFromAssessmentReport"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Gets the registration status of an account in Audit Manager.
"""
@spec get_account_status(map(), list()) ::
{:ok, get_account_status_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_account_status_errors()}
def get_account_status(%Client{} = client, options \\ []) do
url_path = "/account/status"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets information about a specified assessment.
"""
@spec get_assessment(map(), String.t() | atom(), list()) ::
{:ok, get_assessment_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_assessment_errors()}
def get_assessment(%Client{} = client, assessment_id, options \\ []) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets information about a specified framework.
"""
@spec get_assessment_framework(map(), String.t() | atom(), list()) ::
{:ok, get_assessment_framework_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_assessment_framework_errors()}
def get_assessment_framework(%Client{} = client, framework_id, options \\ []) do
url_path = "/assessmentFrameworks/#{AWS.Util.encode_uri(framework_id)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets the URL of an assessment report in Audit Manager.
"""
@spec get_assessment_report_url(map(), String.t() | atom(), String.t() | atom(), list()) ::
{:ok, get_assessment_report_url_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_assessment_report_url_errors()}
def get_assessment_report_url(
%Client{} = client,
assessment_id,
assessment_report_id,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/reports/#{AWS.Util.encode_uri(assessment_report_id)}/url"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets a list of changelogs from Audit Manager.
"""
@spec get_change_logs(
map(),
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, get_change_logs_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_change_logs_errors()}
def get_change_logs(
%Client{} = client,
assessment_id,
control_id \\ nil,
control_set_id \\ nil,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}/changelogs"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
query_params =
if !is_nil(control_set_id) do
[{"controlSetId", control_set_id} | query_params]
else
query_params
end
query_params =
if !is_nil(control_id) do
[{"controlId", control_id} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets information about a specified control.
"""
@spec get_control(map(), String.t() | atom(), list()) ::
{:ok, get_control_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_control_errors()}
def get_control(%Client{} = client, control_id, options \\ []) do
url_path = "/controls/#{AWS.Util.encode_uri(control_id)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets a list of delegations from an audit owner to a delegate.
"""
@spec get_delegations(map(), String.t() | atom() | nil, String.t() | atom() | nil, list()) ::
{:ok, get_delegations_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_delegations_errors()}
def get_delegations(%Client{} = client, max_results \\ nil, next_token \\ nil, options \\ []) do
url_path = "/delegations"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets information about a specified evidence item.
"""
@spec get_evidence(
map(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom(),
list()
) ::
{:ok, get_evidence_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_evidence_errors()}
def get_evidence(
%Client{} = client,
assessment_id,
control_set_id,
evidence_folder_id,
evidence_id,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/controlSets/#{AWS.Util.encode_uri(control_set_id)}/evidenceFolders/#{AWS.Util.encode_uri(evidence_folder_id)}/evidence/#{AWS.Util.encode_uri(evidence_id)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets all evidence from a specified evidence folder in Audit Manager.
"""
@spec get_evidence_by_evidence_folder(
map(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, get_evidence_by_evidence_folder_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_evidence_by_evidence_folder_errors()}
def get_evidence_by_evidence_folder(
%Client{} = client,
assessment_id,
control_set_id,
evidence_folder_id,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/controlSets/#{AWS.Util.encode_uri(control_set_id)}/evidenceFolders/#{AWS.Util.encode_uri(evidence_folder_id)}/evidence"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Creates a presigned Amazon S3 URL that can be used to upload a file as manual
evidence.
For instructions on how to use this operation, see [Upload a file from your browser
](https://docs.aws.amazon.com/audit-manager/latest/userguide/upload-evidence.html#how-to-upload-manual-evidence-files)
in the *Audit Manager User
Guide*.
The following restrictions apply to this operation:
*
Maximum size of an individual evidence file: 100 MB
*
Number of daily manual evidence uploads per control: 100
*
Supported file formats: See [Supported file types for manual evidence](https://docs.aws.amazon.com/audit-manager/latest/userguide/upload-evidence.html#supported-manual-evidence-files)
in the *Audit Manager User Guide*
For more information about Audit Manager service restrictions, see [Quotas and restrictions for Audit
Manager](https://docs.aws.amazon.com/audit-manager/latest/userguide/service-quotas.html).
"""
@spec get_evidence_file_upload_url(map(), String.t() | atom(), list()) ::
{:ok, get_evidence_file_upload_url_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_evidence_file_upload_url_errors()}
def get_evidence_file_upload_url(%Client{} = client, file_name, options \\ []) do
url_path = "/evidenceFileUploadUrl"
headers = []
query_params = []
query_params =
if !is_nil(file_name) do
[{"fileName", file_name} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets an evidence folder from a specified assessment in Audit Manager.
"""
@spec get_evidence_folder(
map(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom(),
list()
) ::
{:ok, get_evidence_folder_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_evidence_folder_errors()}
def get_evidence_folder(
%Client{} = client,
assessment_id,
control_set_id,
evidence_folder_id,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/controlSets/#{AWS.Util.encode_uri(control_set_id)}/evidenceFolders/#{AWS.Util.encode_uri(evidence_folder_id)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets the evidence folders from a specified assessment in Audit Manager.
"""
@spec get_evidence_folders_by_assessment(
map(),
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, get_evidence_folders_by_assessment_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_evidence_folders_by_assessment_errors()}
def get_evidence_folders_by_assessment(
%Client{} = client,
assessment_id,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}/evidenceFolders"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets a list of evidence folders that are associated with a specified control in
an
Audit Manager assessment.
"""
@spec get_evidence_folders_by_assessment_control(
map(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, get_evidence_folders_by_assessment_control_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_evidence_folders_by_assessment_control_errors()}
def get_evidence_folders_by_assessment_control(
%Client{} = client,
assessment_id,
control_id,
control_set_id,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/evidenceFolders-by-assessment-control/#{AWS.Util.encode_uri(control_set_id)}/#{AWS.Util.encode_uri(control_id)}"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets the latest analytics data for all your current active assessments.
"""
@spec get_insights(map(), list()) ::
{:ok, get_insights_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_insights_errors()}
def get_insights(%Client{} = client, options \\ []) do
url_path = "/insights"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets the latest analytics data for a specific active assessment.
"""
@spec get_insights_by_assessment(map(), String.t() | atom(), list()) ::
{:ok, get_insights_by_assessment_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_insights_by_assessment_errors()}
def get_insights_by_assessment(%Client{} = client, assessment_id, options \\ []) do
url_path = "/insights/assessments/#{AWS.Util.encode_uri(assessment_id)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets the name of the delegated Amazon Web Services administrator account for a
specified
organization.
"""
@spec get_organization_admin_account(map(), list()) ::
{:ok, get_organization_admin_account_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_organization_admin_account_errors()}
def get_organization_admin_account(%Client{} = client, options \\ []) do
url_path = "/account/organizationAdminAccount"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets a list of the Amazon Web Services services from which Audit Manager can
collect
evidence.
Audit Manager defines which Amazon Web Services services are in scope for an
assessment. Audit Manager infers this scope by examining the assessment’s
controls and
their data sources, and then mapping this information to one or more of the
corresponding
Amazon Web Services services that are in this list.
For information about why it's no longer possible to specify services in scope
manually, see
[I can't edit the services in scope for my assessment](https://docs.aws.amazon.com/audit-manager/latest/userguide/evidence-collection-issues.html#unable-to-edit-services)
in
the *Troubleshooting* section of the Audit Manager user
guide.
"""
@spec get_services_in_scope(map(), list()) ::
{:ok, get_services_in_scope_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_services_in_scope_errors()}
def get_services_in_scope(%Client{} = client, options \\ []) do
url_path = "/services"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Gets the settings for a specified Amazon Web Services account.
"""
@spec get_settings(map(), String.t() | atom(), list()) ::
{:ok, get_settings_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_settings_errors()}
def get_settings(%Client{} = client, attribute, options \\ []) do
url_path = "/settings/#{AWS.Util.encode_uri(attribute)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Lists the latest analytics data for controls within a specific control domain
and a
specific active assessment.
Control insights are listed only if the control belongs to the control domain
and
assessment that was specified. Moreover, the control must have collected
evidence on the
`lastUpdated` date of `controlInsightsByAssessment`. If neither
of these conditions are met, no data is listed for that control.
"""
@spec list_assessment_control_insights_by_control_domain(
map(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_assessment_control_insights_by_control_domain_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_assessment_control_insights_by_control_domain_errors()}
def list_assessment_control_insights_by_control_domain(
%Client{} = client,
assessment_id,
control_domain_id,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path = "/insights/controls-by-assessment"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
query_params =
if !is_nil(control_domain_id) do
[{"controlDomainId", control_domain_id} | query_params]
else
query_params
end
query_params =
if !is_nil(assessment_id) do
[{"assessmentId", assessment_id} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Returns a list of sent or received share requests for custom frameworks in Audit
Manager.
"""
@spec list_assessment_framework_share_requests(
map(),
String.t() | atom() | nil,
String.t() | atom() | nil,
String.t() | atom(),
list()
) ::
{:ok, list_assessment_framework_share_requests_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_assessment_framework_share_requests_errors()}
def list_assessment_framework_share_requests(
%Client{} = client,
max_results \\ nil,
next_token \\ nil,
request_type,
options \\ []
) do
url_path = "/assessmentFrameworkShareRequests"
headers = []
query_params = []
query_params =
if !is_nil(request_type) do
[{"requestType", request_type} | query_params]
else
query_params
end
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Returns a list of the frameworks that are available in the Audit Manager
framework
library.
"""
@spec list_assessment_frameworks(
map(),
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_assessment_frameworks_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_assessment_frameworks_errors()}
def list_assessment_frameworks(
%Client{} = client,
framework_type,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path = "/assessmentFrameworks"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
query_params =
if !is_nil(framework_type) do
[{"frameworkType", framework_type} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Returns a list of assessment reports created in Audit Manager.
"""
@spec list_assessment_reports(
map(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_assessment_reports_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_assessment_reports_errors()}
def list_assessment_reports(
%Client{} = client,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path = "/assessmentReports"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Returns a list of current and past assessments from Audit Manager.
"""
@spec list_assessments(
map(),
String.t() | atom() | nil,
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_assessments_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_assessments_errors()}
def list_assessments(
%Client{} = client,
max_results \\ nil,
next_token \\ nil,
status \\ nil,
options \\ []
) do
url_path = "/assessments"
headers = []
query_params = []
query_params =
if !is_nil(status) do
[{"status", status} | query_params]
else
query_params
end
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Lists the latest analytics data for control domains across all of your active
assessments.
Audit Manager supports the control domains that are provided by Amazon Web
Services
Control Catalog. For information about how to find a list of available control
domains, see
[
`ListDomains`
](https://docs.aws.amazon.com/controlcatalog/latest/APIReference/API_ListDomains.html)
in the Amazon Web Services Control
Catalog API Reference.
A control domain is listed only if at least one of the controls within that
domain
collected evidence on the `lastUpdated` date of
`controlDomainInsights`. If this condition isn’t met, no data is listed
for that control domain.
"""
@spec list_control_domain_insights(
map(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_control_domain_insights_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_control_domain_insights_errors()}
def list_control_domain_insights(
%Client{} = client,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path = "/insights/control-domains"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Lists analytics data for control domains within a specified active assessment.
Audit Manager supports the control domains that are provided by Amazon Web
Services
Control Catalog. For information about how to find a list of available control
domains, see
[
`ListDomains`
](https://docs.aws.amazon.com/controlcatalog/latest/APIReference/API_ListDomains.html)
in the Amazon Web Services Control
Catalog API Reference.
A control domain is listed only if at least one of the controls within that
domain
collected evidence on the `lastUpdated` date of
`controlDomainInsights`. If this condition isn’t met, no data is listed
for that domain.
"""
@spec list_control_domain_insights_by_assessment(
map(),
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_control_domain_insights_by_assessment_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_control_domain_insights_by_assessment_errors()}
def list_control_domain_insights_by_assessment(
%Client{} = client,
assessment_id,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path = "/insights/control-domains-by-assessment"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
query_params =
if !is_nil(assessment_id) do
[{"assessmentId", assessment_id} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Lists the latest analytics data for controls within a specific control domain
across all
active assessments.
Control insights are listed only if the control belongs to the control domain
that
was specified and the control collected evidence on the `lastUpdated` date of
`controlInsightsMetadata`. If neither of these conditions are met, no data
is listed for that control.
"""
@spec list_control_insights_by_control_domain(
map(),
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_control_insights_by_control_domain_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_control_insights_by_control_domain_errors()}
def list_control_insights_by_control_domain(
%Client{} = client,
control_domain_id,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path = "/insights/controls"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
query_params =
if !is_nil(control_domain_id) do
[{"controlDomainId", control_domain_id} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Returns a list of controls from Audit Manager.
"""
@spec list_controls(
map(),
String.t() | atom() | nil,
String.t() | atom(),
String.t() | atom() | nil,
String.t() | atom() | nil,
list()
) ::
{:ok, list_controls_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_controls_errors()}
def list_controls(
%Client{} = client,
control_catalog_id \\ nil,
control_type,
max_results \\ nil,
next_token \\ nil,
options \\ []
) do
url_path = "/controls"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
query_params =
if !is_nil(control_type) do
[{"controlType", control_type} | query_params]
else
query_params
end
query_params =
if !is_nil(control_catalog_id) do
[{"controlCatalogId", control_catalog_id} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Returns a list of keywords that are pre-mapped to the specified control data
source.
"""
@spec list_keywords_for_data_source(
map(),
String.t() | atom() | nil,
String.t() | atom() | nil,
String.t() | atom(),
list()
) ::
{:ok, list_keywords_for_data_source_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_keywords_for_data_source_errors()}
def list_keywords_for_data_source(
%Client{} = client,
max_results \\ nil,
next_token \\ nil,
source,
options \\ []
) do
url_path = "/dataSourceKeywords"
headers = []
query_params = []
query_params =
if !is_nil(source) do
[{"source", source} | query_params]
else
query_params
end
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Returns a list of all Audit Manager notifications.
"""
@spec list_notifications(map(), String.t() | atom() | nil, String.t() | atom() | nil, list()) ::
{:ok, list_notifications_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_notifications_errors()}
def list_notifications(%Client{} = client, max_results \\ nil, next_token \\ nil, options \\ []) do
url_path = "/notifications"
headers = []
query_params = []
query_params =
if !is_nil(next_token) do
[{"nextToken", next_token} | query_params]
else
query_params
end
query_params =
if !is_nil(max_results) do
[{"maxResults", max_results} | query_params]
else
query_params
end
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Returns a list of tags for the specified resource in Audit Manager.
"""
@spec list_tags_for_resource(map(), String.t() | atom(), list()) ::
{:ok, list_tags_for_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_tags_for_resource_errors()}
def list_tags_for_resource(%Client{} = client, resource_arn, options \\ []) do
url_path = "/tags/#{AWS.Util.encode_uri(resource_arn)}"
headers = []
query_params = []
meta = metadata()
Request.request_rest(client, meta, :get, url_path, query_params, headers, nil, options, 200)
end
@doc """
Enables Audit Manager for the specified Amazon Web Services account.
"""
@spec register_account(map(), register_account_request(), list()) ::
{:ok, register_account_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, register_account_errors()}
def register_account(%Client{} = client, input, options \\ []) do
url_path = "/account/registerAccount"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Enables an Amazon Web Services account within the organization as the delegated
administrator for Audit Manager.
"""
@spec register_organization_admin_account(
map(),
register_organization_admin_account_request(),
list()
) ::
{:ok, register_organization_admin_account_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, register_organization_admin_account_errors()}
def register_organization_admin_account(%Client{} = client, input, options \\ []) do
url_path = "/account/registerOrganizationAdminAccount"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Creates a share request for a custom framework in Audit Manager.
The share request specifies a recipient and notifies them that a custom
framework is
available. Recipients have 120 days to accept or decline the request. If no
action is
taken, the share request expires.
When you create a share request, Audit Manager stores a snapshot of your custom
framework in the US East (N. Virginia) Amazon Web Services Region. Audit Manager
also
stores a backup of the same snapshot in the US West (Oregon) Amazon Web Services
Region.
Audit Manager deletes the snapshot and the backup snapshot when one of the
following
events occurs:
*
The sender revokes the share request.
*
The recipient declines the share request.
*
The recipient encounters an error and doesn't successfully accept the share
request.
*
The share request expires before the recipient responds to the request.
When a sender [resends a share request](https://docs.aws.amazon.com/audit-manager/latest/userguide/framework-sharing.html#framework-sharing-resend),
the snapshot is replaced with an updated version that
corresponds with the latest version of the custom framework.
When a recipient accepts a share request, the snapshot is replicated into their
Amazon Web Services account under the Amazon Web Services Region that was
specified in the share
request.
When you invoke the `StartAssessmentFrameworkShare` API, you are about to
share a custom framework with another Amazon Web Services account. You may not
share a
custom framework that is derived from a standard framework if the standard
framework is
designated as not eligible for sharing by Amazon Web Services, unless you have
obtained
permission to do so from the owner of the standard framework. To learn more
about which
standard frameworks are eligible for sharing, see [Framework sharing eligibility](https://docs.aws.amazon.com/audit-manager/latest/userguide/share-custom-framework-concepts-and-terminology.html#eligibility)
in the *Audit Manager User
Guide*.
"""
@spec start_assessment_framework_share(
map(),
String.t() | atom(),
start_assessment_framework_share_request(),
list()
) ::
{:ok, start_assessment_framework_share_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, start_assessment_framework_share_errors()}
def start_assessment_framework_share(%Client{} = client, framework_id, input, options \\ []) do
url_path = "/assessmentFrameworks/#{AWS.Util.encode_uri(framework_id)}/shareRequests"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Tags the specified resource in Audit Manager.
"""
@spec tag_resource(map(), String.t() | atom(), tag_resource_request(), list()) ::
{:ok, tag_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, tag_resource_errors()}
def tag_resource(%Client{} = client, resource_arn, input, options \\ []) do
url_path = "/tags/#{AWS.Util.encode_uri(resource_arn)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Removes a tag from a resource in Audit Manager.
"""
@spec untag_resource(map(), String.t() | atom(), untag_resource_request(), list()) ::
{:ok, untag_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, untag_resource_errors()}
def untag_resource(%Client{} = client, resource_arn, input, options \\ []) do
url_path = "/tags/#{AWS.Util.encode_uri(resource_arn)}"
headers = []
custom_headers = []
{query_params, input} =
[
{"tagKeys", "tagKeys"}
]
|> Request.build_params(input)
meta = metadata()
Request.request_rest(
client,
meta,
:delete,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Edits an Audit Manager assessment.
"""
@spec update_assessment(map(), String.t() | atom(), update_assessment_request(), list()) ::
{:ok, update_assessment_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_assessment_errors()}
def update_assessment(%Client{} = client, assessment_id, input, options \\ []) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Updates a control within an assessment in Audit Manager.
"""
@spec update_assessment_control(
map(),
String.t() | atom(),
String.t() | atom(),
String.t() | atom(),
update_assessment_control_request(),
list()
) ::
{:ok, update_assessment_control_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_assessment_control_errors()}
def update_assessment_control(
%Client{} = client,
assessment_id,
control_id,
control_set_id,
input,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/controlSets/#{AWS.Util.encode_uri(control_set_id)}/controls/#{AWS.Util.encode_uri(control_id)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Updates the status of a control set in an Audit Manager assessment.
"""
@spec update_assessment_control_set_status(
map(),
String.t() | atom(),
String.t() | atom(),
update_assessment_control_set_status_request(),
list()
) ::
{:ok, update_assessment_control_set_status_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_assessment_control_set_status_errors()}
def update_assessment_control_set_status(
%Client{} = client,
assessment_id,
control_set_id,
input,
options \\ []
) do
url_path =
"/assessments/#{AWS.Util.encode_uri(assessment_id)}/controlSets/#{AWS.Util.encode_uri(control_set_id)}/status"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Updates a custom framework in Audit Manager.
"""
@spec update_assessment_framework(
map(),
String.t() | atom(),
update_assessment_framework_request(),
list()
) ::
{:ok, update_assessment_framework_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_assessment_framework_errors()}
def update_assessment_framework(%Client{} = client, framework_id, input, options \\ []) do
url_path = "/assessmentFrameworks/#{AWS.Util.encode_uri(framework_id)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Updates a share request for a custom framework in Audit Manager.
"""
@spec update_assessment_framework_share(
map(),
String.t() | atom(),
update_assessment_framework_share_request(),
list()
) ::
{:ok, update_assessment_framework_share_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_assessment_framework_share_errors()}
def update_assessment_framework_share(%Client{} = client, request_id, input, options \\ []) do
url_path = "/assessmentFrameworkShareRequests/#{AWS.Util.encode_uri(request_id)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Updates the status of an assessment in Audit Manager.
"""
@spec update_assessment_status(
map(),
String.t() | atom(),
update_assessment_status_request(),
list()
) ::
{:ok, update_assessment_status_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_assessment_status_errors()}
def update_assessment_status(%Client{} = client, assessment_id, input, options \\ []) do
url_path = "/assessments/#{AWS.Util.encode_uri(assessment_id)}/status"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Updates a custom control in Audit Manager.
"""
@spec update_control(map(), String.t() | atom(), update_control_request(), list()) ::
{:ok, update_control_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_control_errors()}
def update_control(%Client{} = client, control_id, input, options \\ []) do
url_path = "/controls/#{AWS.Util.encode_uri(control_id)}"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Updates Audit Manager settings for the current account.
"""
@spec update_settings(map(), update_settings_request(), list()) ::
{:ok, update_settings_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_settings_errors()}
def update_settings(%Client{} = client, input, options \\ []) do
url_path = "/settings"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:put,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
@doc """
Validates the integrity of an assessment report in Audit Manager.
"""
@spec validate_assessment_report_integrity(
map(),
validate_assessment_report_integrity_request(),
list()
) ::
{:ok, validate_assessment_report_integrity_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, validate_assessment_report_integrity_errors()}
def validate_assessment_report_integrity(%Client{} = client, input, options \\ []) do
url_path = "/assessmentReports/integrity"
headers = []
custom_headers = []
query_params = []
meta = metadata()
Request.request_rest(
client,
meta,
:post,
url_path,
query_params,
custom_headers ++ headers,
input,
options,
200
)
end
end