Current section

Files

Jump to
aws_erlang src aws_fms.erl
Raw

src/aws_fms.erl

%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
%% See https://github.com/aws-beam/aws-codegen for more details.
%% @doc This is the Firewall Manager API Reference.
%%
%% This guide is for
%% developers who need detailed information about the Firewall Manager API
%% actions, data
%% types, and errors. For detailed information about Firewall Manager
%% features, see the
%% Firewall Manager Developer Guide:
%% https://docs.aws.amazon.com/waf/latest/developerguide/fms-chapter.html.
%%
%% Some API actions require explicit resource permissions. For information,
%% see the developer guide topic
%% Service roles for Firewall Manager:
%% https://docs.aws.amazon.com/waf/latest/developerguide/fms-security_iam_service-with-iam.html#fms-security_iam_service-with-iam-roles-service.
-module(aws_fms).
-export([associate_admin_account/2,
associate_admin_account/3,
associate_third_party_firewall/2,
associate_third_party_firewall/3,
batch_associate_resource/2,
batch_associate_resource/3,
batch_disassociate_resource/2,
batch_disassociate_resource/3,
delete_apps_list/2,
delete_apps_list/3,
delete_notification_channel/2,
delete_notification_channel/3,
delete_policy/2,
delete_policy/3,
delete_protocols_list/2,
delete_protocols_list/3,
delete_resource_set/2,
delete_resource_set/3,
disassociate_admin_account/2,
disassociate_admin_account/3,
disassociate_third_party_firewall/2,
disassociate_third_party_firewall/3,
get_admin_account/2,
get_admin_account/3,
get_admin_scope/2,
get_admin_scope/3,
get_apps_list/2,
get_apps_list/3,
get_compliance_detail/2,
get_compliance_detail/3,
get_notification_channel/2,
get_notification_channel/3,
get_policy/2,
get_policy/3,
get_protection_status/2,
get_protection_status/3,
get_protocols_list/2,
get_protocols_list/3,
get_resource_set/2,
get_resource_set/3,
get_third_party_firewall_association_status/2,
get_third_party_firewall_association_status/3,
get_violation_details/2,
get_violation_details/3,
list_admin_accounts_for_organization/2,
list_admin_accounts_for_organization/3,
list_admins_managing_account/2,
list_admins_managing_account/3,
list_apps_lists/2,
list_apps_lists/3,
list_compliance_status/2,
list_compliance_status/3,
list_discovered_resources/2,
list_discovered_resources/3,
list_member_accounts/2,
list_member_accounts/3,
list_policies/2,
list_policies/3,
list_protocols_lists/2,
list_protocols_lists/3,
list_resource_set_resources/2,
list_resource_set_resources/3,
list_resource_sets/2,
list_resource_sets/3,
list_tags_for_resource/2,
list_tags_for_resource/3,
list_third_party_firewall_firewall_policies/2,
list_third_party_firewall_firewall_policies/3,
put_admin_account/2,
put_admin_account/3,
put_apps_list/2,
put_apps_list/3,
put_notification_channel/2,
put_notification_channel/3,
put_policy/2,
put_policy/3,
put_protocols_list/2,
put_protocols_list/3,
put_resource_set/2,
put_resource_set/3,
tag_resource/2,
tag_resource/3,
untag_resource/2,
untag_resource/3]).
-include_lib("hackney/include/hackney_lib.hrl").
%% Example:
%% app() :: #{
%% <<"AppName">> => string(),
%% <<"Port">> => float(),
%% <<"Protocol">> => string()
%% }
-type app() :: #{binary() => any()}.
%% Example:
%% route_has_out_of_scope_endpoint_violation() :: #{
%% <<"CurrentFirewallSubnetRouteTable">> => string(),
%% <<"CurrentInternetGatewayRouteTable">> => string(),
%% <<"FirewallSubnetId">> => string(),
%% <<"FirewallSubnetRoutes">> => list(route()()),
%% <<"InternetGatewayId">> => string(),
%% <<"InternetGatewayRoutes">> => list(route()()),
%% <<"RouteTableId">> => string(),
%% <<"SubnetAvailabilityZone">> => string(),
%% <<"SubnetAvailabilityZoneId">> => string(),
%% <<"SubnetId">> => string(),
%% <<"ViolatingRoutes">> => list(route()()),
%% <<"VpcId">> => string()
%% }
-type route_has_out_of_scope_endpoint_violation() :: #{binary() => any()}.
%% Example:
%% get_protection_status_response() :: #{
%% <<"AdminAccountId">> => string(),
%% <<"Data">> => string(),
%% <<"NextToken">> => string(),
%% <<"ServiceType">> => list(any())
%% }
-type get_protection_status_response() :: #{binary() => any()}.
%% Example:
%% list_member_accounts_request() :: #{
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string()
%% }
-type list_member_accounts_request() :: #{binary() => any()}.
%% Example:
%% tag_resource_request() :: #{
%% <<"ResourceArn">> := string(),
%% <<"TagList">> := list(tag()())
%% }
-type tag_resource_request() :: #{binary() => any()}.
%% Example:
%% list_apps_lists_response() :: #{
%% <<"AppsLists">> => list(apps_list_data_summary()()),
%% <<"NextToken">> => string()
%% }
-type list_apps_lists_response() :: #{binary() => any()}.
%% Example:
%% firewall_subnet_is_out_of_scope_violation() :: #{
%% <<"FirewallSubnetId">> => string(),
%% <<"SubnetAvailabilityZone">> => string(),
%% <<"SubnetAvailabilityZoneId">> => string(),
%% <<"VpcEndpointId">> => string(),
%% <<"VpcId">> => string()
%% }
-type firewall_subnet_is_out_of_scope_violation() :: #{binary() => any()}.
%% Example:
%% batch_disassociate_resource_response() :: #{
%% <<"FailedItems">> => list(failed_item()()),
%% <<"ResourceSetIdentifier">> => string()
%% }
-type batch_disassociate_resource_response() :: #{binary() => any()}.
%% Example:
%% protocols_list_data_summary() :: #{
%% <<"ListArn">> => string(),
%% <<"ListId">> => string(),
%% <<"ListName">> => string(),
%% <<"ProtocolsList">> => list(string()())
%% }
-type protocols_list_data_summary() :: #{binary() => any()}.
%% Example:
%% batch_associate_resource_request() :: #{
%% <<"Items">> := list(string()()),
%% <<"ResourceSetIdentifier">> := string()
%% }
-type batch_associate_resource_request() :: #{binary() => any()}.
%% Example:
%% disassociate_admin_account_request() :: #{
%% }
-type disassociate_admin_account_request() :: #{binary() => any()}.
%% Example:
%% security_group_rule_description() :: #{
%% <<"FromPort">> => float(),
%% <<"IPV4Range">> => string(),
%% <<"IPV6Range">> => string(),
%% <<"PrefixListId">> => string(),
%% <<"Protocol">> => string(),
%% <<"ToPort">> => float()
%% }
-type security_group_rule_description() :: #{binary() => any()}.
%% Example:
%% dns_rule_group_limit_exceeded_violation() :: #{
%% <<"NumberOfRuleGroupsAlreadyAssociated">> => integer(),
%% <<"ViolationTarget">> => string(),
%% <<"ViolationTargetDescription">> => string()
%% }
-type dns_rule_group_limit_exceeded_violation() :: #{binary() => any()}.
%% Example:
%% third_party_firewall_missing_expected_route_table_violation() :: #{
%% <<"AvailabilityZone">> => string(),
%% <<"CurrentRouteTable">> => string(),
%% <<"ExpectedRouteTable">> => string(),
%% <<"VPC">> => string(),
%% <<"ViolationTarget">> => string()
%% }
-type third_party_firewall_missing_expected_route_table_violation() :: #{binary() => any()}.
%% Example:
%% list_policies_response() :: #{
%% <<"NextToken">> => string(),
%% <<"PolicyList">> => list(policy_summary()())
%% }
-type list_policies_response() :: #{binary() => any()}.
%% Example:
%% ec2_create_route_table_action() :: #{
%% <<"Description">> => string(),
%% <<"VpcId">> => action_target()
%% }
-type ec2_create_route_table_action() :: #{binary() => any()}.
%% Example:
%% stateful_engine_options() :: #{
%% <<"RuleOrder">> => list(any())
%% }
-type stateful_engine_options() :: #{binary() => any()}.
%% Example:
%% untag_resource_response() :: #{
%% }
-type untag_resource_response() :: #{binary() => any()}.
%% Example:
%% security_group_remediation_action() :: #{
%% <<"Description">> => string(),
%% <<"IsDefaultAction">> => boolean(),
%% <<"RemediationActionType">> => list(any()),
%% <<"RemediationResult">> => security_group_rule_description()
%% }
-type security_group_remediation_action() :: #{binary() => any()}.
%% Example:
%% stateful_rule_group() :: #{
%% <<"Override">> => network_firewall_stateful_rule_group_override(),
%% <<"Priority">> => integer(),
%% <<"ResourceId">> => string(),
%% <<"RuleGroupName">> => string()
%% }
-type stateful_rule_group() :: #{binary() => any()}.
%% Example:
%% list_third_party_firewall_firewall_policies_request() :: #{
%% <<"MaxResults">> := integer(),
%% <<"NextToken">> => string(),
%% <<"ThirdPartyFirewall">> := list(any())
%% }
-type list_third_party_firewall_firewall_policies_request() :: #{binary() => any()}.
%% Example:
%% list_member_accounts_response() :: #{
%% <<"MemberAccounts">> => list(string()()),
%% <<"NextToken">> => string()
%% }
-type list_member_accounts_response() :: #{binary() => any()}.
%% Example:
%% list_policies_request() :: #{
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string()
%% }
-type list_policies_request() :: #{binary() => any()}.
%% Example:
%% get_policy_request() :: #{
%% <<"PolicyId">> := string()
%% }
-type get_policy_request() :: #{binary() => any()}.
%% Example:
%% list_resource_set_resources_request() :: #{
%% <<"Identifier">> := string(),
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string()
%% }
-type list_resource_set_resources_request() :: #{binary() => any()}.
%% Example:
%% get_compliance_detail_request() :: #{
%% <<"MemberAccount">> := string(),
%% <<"PolicyId">> := string()
%% }
-type get_compliance_detail_request() :: #{binary() => any()}.
%% Example:
%% get_notification_channel_request() :: #{
%% }
-type get_notification_channel_request() :: #{binary() => any()}.
%% Example:
%% delete_resource_set_request() :: #{
%% <<"Identifier">> := string()
%% }
-type delete_resource_set_request() :: #{binary() => any()}.
%% Example:
%% list_resource_set_resources_response() :: #{
%% <<"Items">> => list(resource()()),
%% <<"NextToken">> => string()
%% }
-type list_resource_set_resources_response() :: #{binary() => any()}.
%% Example:
%% network_firewall_unexpected_gateway_routes_violation() :: #{
%% <<"GatewayId">> => string(),
%% <<"RouteTableId">> => string(),
%% <<"ViolatingRoutes">> => list(route()()),
%% <<"VpcId">> => string()
%% }
-type network_firewall_unexpected_gateway_routes_violation() :: #{binary() => any()}.
%% Example:
%% get_protocols_list_request() :: #{
%% <<"DefaultList">> => boolean(),
%% <<"ListId">> := string()
%% }
-type get_protocols_list_request() :: #{binary() => any()}.
%% Example:
%% list_resource_sets_request() :: #{
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string()
%% }
-type list_resource_sets_request() :: #{binary() => any()}.
%% Example:
%% associate_third_party_firewall_response() :: #{
%% <<"ThirdPartyFirewallStatus">> => list(any())
%% }
-type associate_third_party_firewall_response() :: #{binary() => any()}.
%% Example:
%% invalid_operation_exception() :: #{
%% <<"Message">> => string()
%% }
-type invalid_operation_exception() :: #{binary() => any()}.
%% Example:
%% list_admins_managing_account_request() :: #{
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string()
%% }
-type list_admins_managing_account_request() :: #{binary() => any()}.
%% Example:
%% ec2_create_route_action() :: #{
%% <<"Description">> => string(),
%% <<"DestinationCidrBlock">> => string(),
%% <<"DestinationIpv6CidrBlock">> => string(),
%% <<"DestinationPrefixListId">> => string(),
%% <<"GatewayId">> => action_target(),
%% <<"RouteTableId">> => action_target(),
%% <<"VpcEndpointId">> => action_target()
%% }
-type ec2_create_route_action() :: #{binary() => any()}.
%% Example:
%% get_violation_details_request() :: #{
%% <<"MemberAccount">> := string(),
%% <<"PolicyId">> := string(),
%% <<"ResourceId">> := string(),
%% <<"ResourceType">> := string()
%% }
-type get_violation_details_request() :: #{binary() => any()}.
%% Example:
%% compliance_violator() :: #{
%% <<"Metadata">> => map(),
%% <<"ResourceId">> => string(),
%% <<"ResourceType">> => string(),
%% <<"ViolationReason">> => list(any())
%% }
-type compliance_violator() :: #{binary() => any()}.
%% Example:
%% associate_admin_account_request() :: #{
%% <<"AdminAccount">> := string()
%% }
-type associate_admin_account_request() :: #{binary() => any()}.
%% Example:
%% network_firewall_invalid_route_configuration_violation() :: #{
%% <<"ActualFirewallEndpoint">> => string(),
%% <<"ActualFirewallSubnetId">> => string(),
%% <<"ActualFirewallSubnetRoutes">> => list(route()()),
%% <<"ActualInternetGatewayRoutes">> => list(route()()),
%% <<"AffectedSubnets">> => list(string()()),
%% <<"CurrentFirewallSubnetRouteTable">> => string(),
%% <<"CurrentInternetGatewayRouteTable">> => string(),
%% <<"ExpectedFirewallEndpoint">> => string(),
%% <<"ExpectedFirewallSubnetId">> => string(),
%% <<"ExpectedFirewallSubnetRoutes">> => list(expected_route()()),
%% <<"ExpectedInternetGatewayRoutes">> => list(expected_route()()),
%% <<"InternetGatewayId">> => string(),
%% <<"IsRouteTableUsedInDifferentAZ">> => boolean(),
%% <<"RouteTableId">> => string(),
%% <<"ViolatingRoute">> => route(),
%% <<"VpcId">> => string()
%% }
-type network_firewall_invalid_route_configuration_violation() :: #{binary() => any()}.
%% Example:
%% get_notification_channel_response() :: #{
%% <<"SnsRoleName">> => string(),
%% <<"SnsTopicArn">> => string()
%% }
-type get_notification_channel_response() :: #{binary() => any()}.
%% Example:
%% network_firewall_policy_description() :: #{
%% <<"StatefulDefaultActions">> => list(string()()),
%% <<"StatefulEngineOptions">> => stateful_engine_options(),
%% <<"StatefulRuleGroups">> => list(stateful_rule_group()()),
%% <<"StatelessCustomActions">> => list(string()()),
%% <<"StatelessDefaultActions">> => list(string()()),
%% <<"StatelessFragmentDefaultActions">> => list(string()()),
%% <<"StatelessRuleGroups">> => list(stateless_rule_group()())
%% }
-type network_firewall_policy_description() :: #{binary() => any()}.
%% Example:
%% network_firewall_unexpected_firewall_routes_violation() :: #{
%% <<"FirewallEndpoint">> => string(),
%% <<"FirewallSubnetId">> => string(),
%% <<"RouteTableId">> => string(),
%% <<"ViolatingRoutes">> => list(route()()),
%% <<"VpcId">> => string()
%% }
-type network_firewall_unexpected_firewall_routes_violation() :: #{binary() => any()}.
%% Example:
%% dns_duplicate_rule_group_violation() :: #{
%% <<"ViolationTarget">> => string(),
%% <<"ViolationTargetDescription">> => string()
%% }
-type dns_duplicate_rule_group_violation() :: #{binary() => any()}.
%% Example:
%% violation_detail() :: #{
%% <<"MemberAccount">> => string(),
%% <<"PolicyId">> => string(),
%% <<"ResourceDescription">> => string(),
%% <<"ResourceId">> => string(),
%% <<"ResourceTags">> => list(tag()()),
%% <<"ResourceType">> => string(),
%% <<"ResourceViolations">> => list(resource_violation()())
%% }
-type violation_detail() :: #{binary() => any()}.
%% Example:
%% untag_resource_request() :: #{
%% <<"ResourceArn">> := string(),
%% <<"TagKeys">> := list(string()())
%% }
-type untag_resource_request() :: #{binary() => any()}.
%% Example:
%% network_firewall_missing_subnet_violation() :: #{
%% <<"AvailabilityZone">> => string(),
%% <<"TargetViolationReason">> => string(),
%% <<"VPC">> => string(),
%% <<"ViolationTarget">> => string()
%% }
-type network_firewall_missing_subnet_violation() :: #{binary() => any()}.
%% Example:
%% list_protocols_lists_response() :: #{
%% <<"NextToken">> => string(),
%% <<"ProtocolsLists">> => list(protocols_list_data_summary()())
%% }
-type list_protocols_lists_response() :: #{binary() => any()}.
%% Example:
%% get_apps_list_response() :: #{
%% <<"AppsList">> => apps_list_data(),
%% <<"AppsListArn">> => string()
%% }
-type get_apps_list_response() :: #{binary() => any()}.
%% Example:
%% get_admin_account_response() :: #{
%% <<"AdminAccount">> => string(),
%% <<"RoleStatus">> => list(any())
%% }
-type get_admin_account_response() :: #{binary() => any()}.
%% Example:
%% network_firewall_policy() :: #{
%% <<"FirewallDeploymentModel">> => list(any())
%% }
-type network_firewall_policy() :: #{binary() => any()}.
%% Example:
%% apps_list_data() :: #{
%% <<"AppsList">> => list(app()()),
%% <<"CreateTime">> => non_neg_integer(),
%% <<"LastUpdateTime">> => non_neg_integer(),
%% <<"ListId">> => string(),
%% <<"ListName">> => string(),
%% <<"ListUpdateToken">> => string(),
%% <<"PreviousAppsList">> => map()
%% }
-type apps_list_data() :: #{binary() => any()}.
%% Example:
%% get_compliance_detail_response() :: #{
%% <<"PolicyComplianceDetail">> => policy_compliance_detail()
%% }
-type get_compliance_detail_response() :: #{binary() => any()}.
%% Example:
%% put_protocols_list_request() :: #{
%% <<"ProtocolsList">> := protocols_list_data(),
%% <<"TagList">> => list(tag()())
%% }
-type put_protocols_list_request() :: #{binary() => any()}.
%% Example:
%% associate_third_party_firewall_request() :: #{
%% <<"ThirdPartyFirewall">> := list(any())
%% }
-type associate_third_party_firewall_request() :: #{binary() => any()}.
%% Example:
%% remediation_action() :: #{
%% <<"Description">> => string(),
%% <<"EC2AssociateRouteTableAction">> => ec2_associate_route_table_action(),
%% <<"EC2CopyRouteTableAction">> => ec2_copy_route_table_action(),
%% <<"EC2CreateRouteAction">> => ec2_create_route_action(),
%% <<"EC2CreateRouteTableAction">> => ec2_create_route_table_action(),
%% <<"EC2DeleteRouteAction">> => ec2_delete_route_action(),
%% <<"EC2ReplaceRouteAction">> => ec2_replace_route_action(),
%% <<"EC2ReplaceRouteTableAssociationAction">> => ec2_replace_route_table_association_action(),
%% <<"FMSPolicyUpdateFirewallCreationConfigAction">> => f_m_s_policy_update_firewall_creation_config_action()
%% }
-type remediation_action() :: #{binary() => any()}.
%% Example:
%% list_discovered_resources_response() :: #{
%% <<"Items">> => list(discovered_resource()()),
%% <<"NextToken">> => string()
%% }
-type list_discovered_resources_response() :: #{binary() => any()}.
%% Example:
%% third_party_firewall_firewall_policy() :: #{
%% <<"FirewallPolicyId">> => string(),
%% <<"FirewallPolicyName">> => string()
%% }
-type third_party_firewall_firewall_policy() :: #{binary() => any()}.
%% Example:
%% third_party_firewall_policy() :: #{
%% <<"FirewallDeploymentModel">> => list(any())
%% }
-type third_party_firewall_policy() :: #{binary() => any()}.
%% Example:
%% list_admin_accounts_for_organization_request() :: #{
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string()
%% }
-type list_admin_accounts_for_organization_request() :: #{binary() => any()}.
%% Example:
%% network_firewall_internet_traffic_not_inspected_violation() :: #{
%% <<"ActualFirewallSubnetRoutes">> => list(route()()),
%% <<"ActualInternetGatewayRoutes">> => list(route()()),
%% <<"CurrentFirewallSubnetRouteTable">> => string(),
%% <<"CurrentInternetGatewayRouteTable">> => string(),
%% <<"ExpectedFirewallEndpoint">> => string(),
%% <<"ExpectedFirewallSubnetRoutes">> => list(expected_route()()),
%% <<"ExpectedInternetGatewayRoutes">> => list(expected_route()()),
%% <<"FirewallSubnetId">> => string(),
%% <<"InternetGatewayId">> => string(),
%% <<"IsRouteTableUsedInDifferentAZ">> => boolean(),
%% <<"RouteTableId">> => string(),
%% <<"SubnetAvailabilityZone">> => string(),
%% <<"SubnetId">> => string(),
%% <<"ViolatingRoutes">> => list(route()()),
%% <<"VpcId">> => string()
%% }
-type network_firewall_internet_traffic_not_inspected_violation() :: #{binary() => any()}.
%% Example:
%% apps_list_data_summary() :: #{
%% <<"AppsList">> => list(app()()),
%% <<"ListArn">> => string(),
%% <<"ListId">> => string(),
%% <<"ListName">> => string()
%% }
-type apps_list_data_summary() :: #{binary() => any()}.
%% Example:
%% network_firewall_stateful_rule_group_override() :: #{
%% <<"Action">> => list(any())
%% }
-type network_firewall_stateful_rule_group_override() :: #{binary() => any()}.
%% Example:
%% resource_violation() :: #{
%% <<"AwsEc2InstanceViolation">> => aws_ec2_instance_violation(),
%% <<"AwsEc2NetworkInterfaceViolation">> => aws_ec2_network_interface_violation(),
%% <<"AwsVPCSecurityGroupViolation">> => aws_vpc_security_group_violation(),
%% <<"DnsDuplicateRuleGroupViolation">> => dns_duplicate_rule_group_violation(),
%% <<"DnsRuleGroupLimitExceededViolation">> => dns_rule_group_limit_exceeded_violation(),
%% <<"DnsRuleGroupPriorityConflictViolation">> => dns_rule_group_priority_conflict_violation(),
%% <<"FirewallSubnetIsOutOfScopeViolation">> => firewall_subnet_is_out_of_scope_violation(),
%% <<"FirewallSubnetMissingVPCEndpointViolation">> => firewall_subnet_missing_vpcendpoint_violation(),
%% <<"NetworkFirewallBlackHoleRouteDetectedViolation">> => network_firewall_black_hole_route_detected_violation(),
%% <<"NetworkFirewallInternetTrafficNotInspectedViolation">> => network_firewall_internet_traffic_not_inspected_violation(),
%% <<"NetworkFirewallInvalidRouteConfigurationViolation">> => network_firewall_invalid_route_configuration_violation(),
%% <<"NetworkFirewallMissingExpectedRTViolation">> => network_firewall_missing_expected_r_t_violation(),
%% <<"NetworkFirewallMissingExpectedRoutesViolation">> => network_firewall_missing_expected_routes_violation(),
%% <<"NetworkFirewallMissingFirewallViolation">> => network_firewall_missing_firewall_violation(),
%% <<"NetworkFirewallMissingSubnetViolation">> => network_firewall_missing_subnet_violation(),
%% <<"NetworkFirewallPolicyModifiedViolation">> => network_firewall_policy_modified_violation(),
%% <<"NetworkFirewallUnexpectedFirewallRoutesViolation">> => network_firewall_unexpected_firewall_routes_violation(),
%% <<"NetworkFirewallUnexpectedGatewayRoutesViolation">> => network_firewall_unexpected_gateway_routes_violation(),
%% <<"PossibleRemediationActions">> => possible_remediation_actions(),
%% <<"RouteHasOutOfScopeEndpointViolation">> => route_has_out_of_scope_endpoint_violation(),
%% <<"ThirdPartyFirewallMissingExpectedRouteTableViolation">> => third_party_firewall_missing_expected_route_table_violation(),
%% <<"ThirdPartyFirewallMissingFirewallViolation">> => third_party_firewall_missing_firewall_violation(),
%% <<"ThirdPartyFirewallMissingSubnetViolation">> => third_party_firewall_missing_subnet_violation()
%% }
-type resource_violation() :: #{binary() => any()}.
%% Example:
%% region_scope() :: #{
%% <<"AllRegionsEnabled">> => boolean(),
%% <<"Regions">> => list(string()())
%% }
-type region_scope() :: #{binary() => any()}.
%% Example:
%% ec2_associate_route_table_action() :: #{
%% <<"Description">> => string(),
%% <<"GatewayId">> => action_target(),
%% <<"RouteTableId">> => action_target(),
%% <<"SubnetId">> => action_target()
%% }
-type ec2_associate_route_table_action() :: #{binary() => any()}.
%% Example:
%% remediation_action_with_order() :: #{
%% <<"Order">> => integer(),
%% <<"RemediationAction">> => remediation_action()
%% }
-type remediation_action_with_order() :: #{binary() => any()}.
%% Example:
%% dns_rule_group_priority_conflict_violation() :: #{
%% <<"ConflictingPolicyId">> => string(),
%% <<"ConflictingPriority">> => integer(),
%% <<"UnavailablePriorities">> => list(integer()()),
%% <<"ViolationTarget">> => string(),
%% <<"ViolationTargetDescription">> => string()
%% }
-type dns_rule_group_priority_conflict_violation() :: #{binary() => any()}.
%% Example:
%% get_violation_details_response() :: #{
%% <<"ViolationDetail">> => violation_detail()
%% }
-type get_violation_details_response() :: #{binary() => any()}.
%% Example:
%% resource_not_found_exception() :: #{
%% <<"Message">> => string()
%% }
-type resource_not_found_exception() :: #{binary() => any()}.
%% Example:
%% ec2_replace_route_table_association_action() :: #{
%% <<"AssociationId">> => action_target(),
%% <<"Description">> => string(),
%% <<"RouteTableId">> => action_target()
%% }
-type ec2_replace_route_table_association_action() :: #{binary() => any()}.
%% Example:
%% stateless_rule_group() :: #{
%% <<"Priority">> => integer(),
%% <<"ResourceId">> => string(),
%% <<"RuleGroupName">> => string()
%% }
-type stateless_rule_group() :: #{binary() => any()}.
%% Example:
%% list_protocols_lists_request() :: #{
%% <<"DefaultLists">> => boolean(),
%% <<"MaxResults">> := integer(),
%% <<"NextToken">> => string()
%% }
-type list_protocols_lists_request() :: #{binary() => any()}.
%% Example:
%% tag() :: #{
%% <<"Key">> => string(),
%% <<"Value">> => string()
%% }
-type tag() :: #{binary() => any()}.
%% Example:
%% partial_match() :: #{
%% <<"Reference">> => string(),
%% <<"TargetViolationReasons">> => list(string()())
%% }
-type partial_match() :: #{binary() => any()}.
%% Example:
%% possible_remediation_action() :: #{
%% <<"Description">> => string(),
%% <<"IsDefaultAction">> => boolean(),
%% <<"OrderedRemediationActions">> => list(remediation_action_with_order()())
%% }
-type possible_remediation_action() :: #{binary() => any()}.
%% Example:
%% network_firewall_policy_modified_violation() :: #{
%% <<"CurrentPolicyDescription">> => network_firewall_policy_description(),
%% <<"ExpectedPolicyDescription">> => network_firewall_policy_description(),
%% <<"ViolationTarget">> => string()
%% }
-type network_firewall_policy_modified_violation() :: #{binary() => any()}.
%% Example:
%% put_policy_response() :: #{
%% <<"Policy">> => policy(),
%% <<"PolicyArn">> => string()
%% }
-type put_policy_response() :: #{binary() => any()}.
%% Example:
%% put_apps_list_request() :: #{
%% <<"AppsList">> := apps_list_data(),
%% <<"TagList">> => list(tag()())
%% }
-type put_apps_list_request() :: #{binary() => any()}.
%% Example:
%% list_admins_managing_account_response() :: #{
%% <<"AdminAccounts">> => list(string()()),
%% <<"NextToken">> => string()
%% }
-type list_admins_managing_account_response() :: #{binary() => any()}.
%% Example:
%% list_apps_lists_request() :: #{
%% <<"DefaultLists">> => boolean(),
%% <<"MaxResults">> := integer(),
%% <<"NextToken">> => string()
%% }
-type list_apps_lists_request() :: #{binary() => any()}.
%% Example:
%% get_resource_set_request() :: #{
%% <<"Identifier">> := string()
%% }
-type get_resource_set_request() :: #{binary() => any()}.
%% Example:
%% list_discovered_resources_request() :: #{
%% <<"MaxResults">> => integer(),
%% <<"MemberAccountIds">> := list(string()()),
%% <<"NextToken">> => string(),
%% <<"ResourceType">> := string()
%% }
-type list_discovered_resources_request() :: #{binary() => any()}.
%% Example:
%% route() :: #{
%% <<"Destination">> => string(),
%% <<"DestinationType">> => list(any()),
%% <<"Target">> => string(),
%% <<"TargetType">> => list(any())
%% }
-type route() :: #{binary() => any()}.
%% Example:
%% organizational_unit_scope() :: #{
%% <<"AllOrganizationalUnitsEnabled">> => boolean(),
%% <<"ExcludeSpecifiedOrganizationalUnits">> => boolean(),
%% <<"OrganizationalUnits">> => list(string()())
%% }
-type organizational_unit_scope() :: #{binary() => any()}.
%% Example:
%% list_compliance_status_request() :: #{
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string(),
%% <<"PolicyId">> := string()
%% }
-type list_compliance_status_request() :: #{binary() => any()}.
%% Example:
%% invalid_input_exception() :: #{
%% <<"Message">> => string()
%% }
-type invalid_input_exception() :: #{binary() => any()}.
%% Example:
%% list_tags_for_resource_response() :: #{
%% <<"TagList">> => list(tag()())
%% }
-type list_tags_for_resource_response() :: #{binary() => any()}.
%% Example:
%% batch_disassociate_resource_request() :: #{
%% <<"Items">> := list(string()()),
%% <<"ResourceSetIdentifier">> := string()
%% }
-type batch_disassociate_resource_request() :: #{binary() => any()}.
%% Example:
%% admin_scope() :: #{
%% <<"AccountScope">> => account_scope(),
%% <<"OrganizationalUnitScope">> => organizational_unit_scope(),
%% <<"PolicyTypeScope">> => policy_type_scope(),
%% <<"RegionScope">> => region_scope()
%% }
-type admin_scope() :: #{binary() => any()}.
%% Example:
%% action_target() :: #{
%% <<"Description">> => string(),
%% <<"ResourceId">> => string()
%% }
-type action_target() :: #{binary() => any()}.
%% Example:
%% possible_remediation_actions() :: #{
%% <<"Actions">> => list(possible_remediation_action()()),
%% <<"Description">> => string()
%% }
-type possible_remediation_actions() :: #{binary() => any()}.
%% Example:
%% policy_compliance_status() :: #{
%% <<"EvaluationResults">> => list(evaluation_result()()),
%% <<"IssueInfoMap">> => map(),
%% <<"LastUpdated">> => non_neg_integer(),
%% <<"MemberAccount">> => string(),
%% <<"PolicyId">> => string(),
%% <<"PolicyName">> => string(),
%% <<"PolicyOwner">> => string()
%% }
-type policy_compliance_status() :: #{binary() => any()}.
%% Example:
%% put_notification_channel_request() :: #{
%% <<"SnsRoleName">> := string(),
%% <<"SnsTopicArn">> := string()
%% }
-type put_notification_channel_request() :: #{binary() => any()}.
%% Example:
%% get_protection_status_request() :: #{
%% <<"EndTime">> => non_neg_integer(),
%% <<"MaxResults">> => integer(),
%% <<"MemberAccountId">> => string(),
%% <<"NextToken">> => string(),
%% <<"PolicyId">> := string(),
%% <<"StartTime">> => non_neg_integer()
%% }
-type get_protection_status_request() :: #{binary() => any()}.
%% Example:
%% f_m_s_policy_update_firewall_creation_config_action() :: #{
%% <<"Description">> => string(),
%% <<"FirewallCreationConfig">> => string()
%% }
-type f_m_s_policy_update_firewall_creation_config_action() :: #{binary() => any()}.
%% Example:
%% get_policy_response() :: #{
%% <<"Policy">> => policy(),
%% <<"PolicyArn">> => string()
%% }
-type get_policy_response() :: #{binary() => any()}.
%% Example:
%% aws_ec2_instance_violation() :: #{
%% <<"AwsEc2NetworkInterfaceViolations">> => list(aws_ec2_network_interface_violation()()),
%% <<"ViolationTarget">> => string()
%% }
-type aws_ec2_instance_violation() :: #{binary() => any()}.
%% Example:
%% ec2_copy_route_table_action() :: #{
%% <<"Description">> => string(),
%% <<"RouteTableId">> => action_target(),
%% <<"VpcId">> => action_target()
%% }
-type ec2_copy_route_table_action() :: #{binary() => any()}.
%% Example:
%% network_firewall_missing_firewall_violation() :: #{
%% <<"AvailabilityZone">> => string(),
%% <<"TargetViolationReason">> => string(),
%% <<"VPC">> => string(),
%% <<"ViolationTarget">> => string()
%% }
-type network_firewall_missing_firewall_violation() :: #{binary() => any()}.
%% Example:
%% put_admin_account_request() :: #{
%% <<"AdminAccount">> := string(),
%% <<"AdminScope">> => admin_scope()
%% }
-type put_admin_account_request() :: #{binary() => any()}.
%% Example:
%% get_resource_set_response() :: #{
%% <<"ResourceSet">> => resource_set(),
%% <<"ResourceSetArn">> => string()
%% }
-type get_resource_set_response() :: #{binary() => any()}.
%% Example:
%% list_resource_sets_response() :: #{
%% <<"NextToken">> => string(),
%% <<"ResourceSets">> => list(resource_set_summary()())
%% }
-type list_resource_sets_response() :: #{binary() => any()}.
%% Example:
%% policy_option() :: #{
%% <<"NetworkFirewallPolicy">> => network_firewall_policy(),
%% <<"ThirdPartyFirewallPolicy">> => third_party_firewall_policy()
%% }
-type policy_option() :: #{binary() => any()}.
%% Example:
%% get_admin_scope_request() :: #{
%% <<"AdminAccount">> := string()
%% }
-type get_admin_scope_request() :: #{binary() => any()}.
%% Example:
%% delete_policy_request() :: #{
%% <<"DeleteAllPolicyResources">> => boolean(),
%% <<"PolicyId">> := string()
%% }
-type delete_policy_request() :: #{binary() => any()}.
%% Example:
%% resource_tag() :: #{
%% <<"Key">> => string(),
%% <<"Value">> => string()
%% }
-type resource_tag() :: #{binary() => any()}.
%% Example:
%% invalid_type_exception() :: #{
%% <<"Message">> => string()
%% }
-type invalid_type_exception() :: #{binary() => any()}.
%% Example:
%% discovered_resource() :: #{
%% <<"AccountId">> => string(),
%% <<"Name">> => string(),
%% <<"Type">> => string(),
%% <<"URI">> => string()
%% }
-type discovered_resource() :: #{binary() => any()}.
%% Example:
%% policy() :: #{
%% <<"DeleteUnusedFMManagedResources">> => boolean(),
%% <<"ExcludeMap">> => map(),
%% <<"ExcludeResourceTags">> => boolean(),
%% <<"IncludeMap">> => map(),
%% <<"PolicyDescription">> => string(),
%% <<"PolicyId">> => string(),
%% <<"PolicyName">> => string(),
%% <<"PolicyStatus">> => list(any()),
%% <<"PolicyUpdateToken">> => string(),
%% <<"RemediationEnabled">> => boolean(),
%% <<"ResourceSetIds">> => list(string()()),
%% <<"ResourceTags">> => list(resource_tag()()),
%% <<"ResourceType">> => string(),
%% <<"ResourceTypeList">> => list(string()()),
%% <<"SecurityServicePolicyData">> => security_service_policy_data()
%% }
-type policy() :: #{binary() => any()}.
%% Example:
%% aws_vpc_security_group_violation() :: #{
%% <<"PartialMatches">> => list(partial_match()()),
%% <<"PossibleSecurityGroupRemediationActions">> => list(security_group_remediation_action()()),
%% <<"ViolationTarget">> => string(),
%% <<"ViolationTargetDescription">> => string()
%% }
-type aws_vpc_security_group_violation() :: #{binary() => any()}.
%% Example:
%% list_third_party_firewall_firewall_policies_response() :: #{
%% <<"NextToken">> => string(),
%% <<"ThirdPartyFirewallFirewallPolicies">> => list(third_party_firewall_firewall_policy()())
%% }
-type list_third_party_firewall_firewall_policies_response() :: #{binary() => any()}.
%% Example:
%% put_resource_set_response() :: #{
%% <<"ResourceSet">> => resource_set(),
%% <<"ResourceSetArn">> => string()
%% }
-type put_resource_set_response() :: #{binary() => any()}.
%% Example:
%% resource_set() :: #{
%% <<"Description">> => string(),
%% <<"Id">> => string(),
%% <<"LastUpdateTime">> => non_neg_integer(),
%% <<"Name">> => string(),
%% <<"ResourceSetStatus">> => list(any()),
%% <<"ResourceTypeList">> => list(string()()),
%% <<"UpdateToken">> => string()
%% }
-type resource_set() :: #{binary() => any()}.
%% Example:
%% ec2_delete_route_action() :: #{
%% <<"Description">> => string(),
%% <<"DestinationCidrBlock">> => string(),
%% <<"DestinationIpv6CidrBlock">> => string(),
%% <<"DestinationPrefixListId">> => string(),
%% <<"RouteTableId">> => action_target()
%% }
-type ec2_delete_route_action() :: #{binary() => any()}.
%% Example:
%% protocols_list_data() :: #{
%% <<"CreateTime">> => non_neg_integer(),
%% <<"LastUpdateTime">> => non_neg_integer(),
%% <<"ListId">> => string(),
%% <<"ListName">> => string(),
%% <<"ListUpdateToken">> => string(),
%% <<"PreviousProtocolsList">> => map(),
%% <<"ProtocolsList">> => list(string()())
%% }
-type protocols_list_data() :: #{binary() => any()}.
%% Example:
%% network_firewall_black_hole_route_detected_violation() :: #{
%% <<"RouteTableId">> => string(),
%% <<"ViolatingRoutes">> => list(route()()),
%% <<"ViolationTarget">> => string(),
%% <<"VpcId">> => string()
%% }
-type network_firewall_black_hole_route_detected_violation() :: #{binary() => any()}.
%% Example:
%% tag_resource_response() :: #{
%% }
-type tag_resource_response() :: #{binary() => any()}.
%% Example:
%% resource_set_summary() :: #{
%% <<"Description">> => string(),
%% <<"Id">> => string(),
%% <<"LastUpdateTime">> => non_neg_integer(),
%% <<"Name">> => string(),
%% <<"ResourceSetStatus">> => list(any())
%% }
-type resource_set_summary() :: #{binary() => any()}.
%% Example:
%% get_apps_list_request() :: #{
%% <<"DefaultList">> => boolean(),
%% <<"ListId">> := string()
%% }
-type get_apps_list_request() :: #{binary() => any()}.
%% Example:
%% ec2_replace_route_action() :: #{
%% <<"Description">> => string(),
%% <<"DestinationCidrBlock">> => string(),
%% <<"DestinationIpv6CidrBlock">> => string(),
%% <<"DestinationPrefixListId">> => string(),
%% <<"GatewayId">> => action_target(),
%% <<"RouteTableId">> => action_target()
%% }
-type ec2_replace_route_action() :: #{binary() => any()}.
%% Example:
%% list_tags_for_resource_request() :: #{
%% <<"ResourceArn">> := string()
%% }
-type list_tags_for_resource_request() :: #{binary() => any()}.
%% Example:
%% expected_route() :: #{
%% <<"AllowedTargets">> => list(string()()),
%% <<"ContributingSubnets">> => list(string()()),
%% <<"IpV4Cidr">> => string(),
%% <<"IpV6Cidr">> => string(),
%% <<"PrefixListId">> => string(),
%% <<"RouteTableId">> => string()
%% }
-type expected_route() :: #{binary() => any()}.
%% Example:
%% failed_item() :: #{
%% <<"Reason">> => list(any()),
%% <<"URI">> => string()
%% }
-type failed_item() :: #{binary() => any()}.
%% Example:
%% firewall_subnet_missing_vpcendpoint_violation() :: #{
%% <<"FirewallSubnetId">> => string(),
%% <<"SubnetAvailabilityZone">> => string(),
%% <<"SubnetAvailabilityZoneId">> => string(),
%% <<"VpcId">> => string()
%% }
-type firewall_subnet_missing_vpcendpoint_violation() :: #{binary() => any()}.
%% Example:
%% policy_compliance_detail() :: #{
%% <<"EvaluationLimitExceeded">> => boolean(),
%% <<"ExpiredAt">> => non_neg_integer(),
%% <<"IssueInfoMap">> => map(),
%% <<"MemberAccount">> => string(),
%% <<"PolicyId">> => string(),
%% <<"PolicyOwner">> => string(),
%% <<"Violators">> => list(compliance_violator()())
%% }
-type policy_compliance_detail() :: #{binary() => any()}.
%% Example:
%% get_third_party_firewall_association_status_response() :: #{
%% <<"MarketplaceOnboardingStatus">> => list(any()),
%% <<"ThirdPartyFirewallStatus">> => list(any())
%% }
-type get_third_party_firewall_association_status_response() :: #{binary() => any()}.
%% Example:
%% admin_account_summary() :: #{
%% <<"AdminAccount">> => string(),
%% <<"DefaultAdmin">> => boolean(),
%% <<"Status">> => list(any())
%% }
-type admin_account_summary() :: #{binary() => any()}.
%% Example:
%% delete_apps_list_request() :: #{
%% <<"ListId">> := string()
%% }
-type delete_apps_list_request() :: #{binary() => any()}.
%% Example:
%% policy_summary() :: #{
%% <<"DeleteUnusedFMManagedResources">> => boolean(),
%% <<"PolicyArn">> => string(),
%% <<"PolicyId">> => string(),
%% <<"PolicyName">> => string(),
%% <<"PolicyStatus">> => list(any()),
%% <<"RemediationEnabled">> => boolean(),
%% <<"ResourceType">> => string(),
%% <<"SecurityServiceType">> => list(any())
%% }
-type policy_summary() :: #{binary() => any()}.
%% Example:
%% aws_ec2_network_interface_violation() :: #{
%% <<"ViolatingSecurityGroups">> => list(string()()),
%% <<"ViolationTarget">> => string()
%% }
-type aws_ec2_network_interface_violation() :: #{binary() => any()}.
%% Example:
%% disassociate_third_party_firewall_response() :: #{
%% <<"ThirdPartyFirewallStatus">> => list(any())
%% }
-type disassociate_third_party_firewall_response() :: #{binary() => any()}.
%% Example:
%% batch_associate_resource_response() :: #{
%% <<"FailedItems">> => list(failed_item()()),
%% <<"ResourceSetIdentifier">> => string()
%% }
-type batch_associate_resource_response() :: #{binary() => any()}.
%% Example:
%% limit_exceeded_exception() :: #{
%% <<"Message">> => string()
%% }
-type limit_exceeded_exception() :: #{binary() => any()}.
%% Example:
%% get_admin_account_request() :: #{
%% }
-type get_admin_account_request() :: #{binary() => any()}.
%% Example:
%% account_scope() :: #{
%% <<"Accounts">> => list(string()()),
%% <<"AllAccountsEnabled">> => boolean(),
%% <<"ExcludeSpecifiedAccounts">> => boolean()
%% }
-type account_scope() :: #{binary() => any()}.
%% Example:
%% disassociate_third_party_firewall_request() :: #{
%% <<"ThirdPartyFirewall">> := list(any())
%% }
-type disassociate_third_party_firewall_request() :: #{binary() => any()}.
%% Example:
%% delete_protocols_list_request() :: #{
%% <<"ListId">> := string()
%% }
-type delete_protocols_list_request() :: #{binary() => any()}.
%% Example:
%% evaluation_result() :: #{
%% <<"ComplianceStatus">> => list(any()),
%% <<"EvaluationLimitExceeded">> => boolean(),
%% <<"ViolatorCount">> => float()
%% }
-type evaluation_result() :: #{binary() => any()}.
%% Example:
%% put_policy_request() :: #{
%% <<"Policy">> := policy(),
%% <<"TagList">> => list(tag()())
%% }
-type put_policy_request() :: #{binary() => any()}.
%% Example:
%% security_service_policy_data() :: #{
%% <<"ManagedServiceData">> => string(),
%% <<"PolicyOption">> => policy_option(),
%% <<"Type">> => list(any())
%% }
-type security_service_policy_data() :: #{binary() => any()}.
%% Example:
%% put_resource_set_request() :: #{
%% <<"ResourceSet">> := resource_set(),
%% <<"TagList">> => list(tag()())
%% }
-type put_resource_set_request() :: #{binary() => any()}.
%% Example:
%% put_protocols_list_response() :: #{
%% <<"ProtocolsList">> => protocols_list_data(),
%% <<"ProtocolsListArn">> => string()
%% }
-type put_protocols_list_response() :: #{binary() => any()}.
%% Example:
%% get_admin_scope_response() :: #{
%% <<"AdminScope">> => admin_scope(),
%% <<"Status">> => list(any())
%% }
-type get_admin_scope_response() :: #{binary() => any()}.
%% Example:
%% network_firewall_missing_expected_r_t_violation() :: #{
%% <<"AvailabilityZone">> => string(),
%% <<"CurrentRouteTable">> => string(),
%% <<"ExpectedRouteTable">> => string(),
%% <<"VPC">> => string(),
%% <<"ViolationTarget">> => string()
%% }
-type network_firewall_missing_expected_r_t_violation() :: #{binary() => any()}.
%% Example:
%% get_protocols_list_response() :: #{
%% <<"ProtocolsList">> => protocols_list_data(),
%% <<"ProtocolsListArn">> => string()
%% }
-type get_protocols_list_response() :: #{binary() => any()}.
%% Example:
%% list_admin_accounts_for_organization_response() :: #{
%% <<"AdminAccounts">> => list(admin_account_summary()()),
%% <<"NextToken">> => string()
%% }
-type list_admin_accounts_for_organization_response() :: #{binary() => any()}.
%% Example:
%% internal_error_exception() :: #{
%% <<"Message">> => string()
%% }
-type internal_error_exception() :: #{binary() => any()}.
%% Example:
%% third_party_firewall_missing_firewall_violation() :: #{
%% <<"AvailabilityZone">> => string(),
%% <<"TargetViolationReason">> => string(),
%% <<"VPC">> => string(),
%% <<"ViolationTarget">> => string()
%% }
-type third_party_firewall_missing_firewall_violation() :: #{binary() => any()}.
%% Example:
%% network_firewall_missing_expected_routes_violation() :: #{
%% <<"ExpectedRoutes">> => list(expected_route()()),
%% <<"ViolationTarget">> => string(),
%% <<"VpcId">> => string()
%% }
-type network_firewall_missing_expected_routes_violation() :: #{binary() => any()}.
%% Example:
%% policy_type_scope() :: #{
%% <<"AllPolicyTypesEnabled">> => boolean(),
%% <<"PolicyTypes">> => list(list(any())())
%% }
-type policy_type_scope() :: #{binary() => any()}.
%% Example:
%% get_third_party_firewall_association_status_request() :: #{
%% <<"ThirdPartyFirewall">> := list(any())
%% }
-type get_third_party_firewall_association_status_request() :: #{binary() => any()}.
%% Example:
%% third_party_firewall_missing_subnet_violation() :: #{
%% <<"AvailabilityZone">> => string(),
%% <<"TargetViolationReason">> => string(),
%% <<"VPC">> => string(),
%% <<"ViolationTarget">> => string()
%% }
-type third_party_firewall_missing_subnet_violation() :: #{binary() => any()}.
%% Example:
%% delete_notification_channel_request() :: #{
%% }
-type delete_notification_channel_request() :: #{binary() => any()}.
%% Example:
%% list_compliance_status_response() :: #{
%% <<"NextToken">> => string(),
%% <<"PolicyComplianceStatusList">> => list(policy_compliance_status()())
%% }
-type list_compliance_status_response() :: #{binary() => any()}.
%% Example:
%% put_apps_list_response() :: #{
%% <<"AppsList">> => apps_list_data(),
%% <<"AppsListArn">> => string()
%% }
-type put_apps_list_response() :: #{binary() => any()}.
%% Example:
%% resource() :: #{
%% <<"AccountId">> => string(),
%% <<"URI">> => string()
%% }
-type resource() :: #{binary() => any()}.
-type associate_admin_account_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type associate_third_party_firewall_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type batch_associate_resource_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type batch_disassociate_resource_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type delete_apps_list_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type delete_notification_channel_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type delete_policy_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type delete_protocols_list_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type delete_resource_set_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type disassociate_admin_account_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type disassociate_third_party_firewall_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_admin_account_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_admin_scope_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_apps_list_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_compliance_detail_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_notification_channel_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_policy_errors() ::
internal_error_exception() |
invalid_type_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_protection_status_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception().
-type get_protocols_list_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_resource_set_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_third_party_firewall_association_status_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type get_violation_details_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception().
-type list_admin_accounts_for_organization_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type list_admins_managing_account_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception().
-type list_apps_lists_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type list_compliance_status_errors() ::
internal_error_exception() |
resource_not_found_exception().
-type list_discovered_resources_errors() ::
internal_error_exception() |
invalid_input_exception() |
invalid_operation_exception().
-type list_member_accounts_errors() ::
internal_error_exception() |
resource_not_found_exception().
-type list_policies_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type list_protocols_lists_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type list_resource_set_resources_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type list_resource_sets_errors() ::
internal_error_exception() |
invalid_input_exception() |
invalid_operation_exception().
-type list_tags_for_resource_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type list_third_party_firewall_firewall_policies_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type put_admin_account_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_input_exception() |
invalid_operation_exception().
-type put_apps_list_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type put_notification_channel_errors() ::
internal_error_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type put_policy_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_type_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type put_protocols_list_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type put_resource_set_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_input_exception() |
invalid_operation_exception().
-type tag_resource_errors() ::
internal_error_exception() |
limit_exceeded_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
-type untag_resource_errors() ::
internal_error_exception() |
invalid_input_exception() |
resource_not_found_exception() |
invalid_operation_exception().
%%====================================================================
%% API
%%====================================================================
%% @doc Sets a Firewall Manager default administrator account.
%%
%% The Firewall Manager default administrator account can manage third-party
%% firewalls and has full administrative scope that allows administration of
%% all policy types, accounts, organizational units, and Regions. This
%% account must be a member account of the organization in Organizations
%% whose resources you want to protect.
%%
%% For information about working with Firewall Manager administrator
%% accounts, see Managing Firewall Manager administrators:
%% https://docs.aws.amazon.com/organizations/latest/userguide/fms-administrators.html
%% in the Firewall Manager Developer Guide.
-spec associate_admin_account(aws_client:aws_client(), associate_admin_account_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, associate_admin_account_errors(), tuple()}.
associate_admin_account(Client, Input)
when is_map(Client), is_map(Input) ->
associate_admin_account(Client, Input, []).
-spec associate_admin_account(aws_client:aws_client(), associate_admin_account_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, associate_admin_account_errors(), tuple()}.
associate_admin_account(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"AssociateAdminAccount">>, Input, Options).
%% @doc Sets the Firewall Manager policy administrator as a tenant
%% administrator of a third-party firewall service.
%%
%% A tenant is an instance of the third-party firewall service that's
%% associated with your Amazon Web Services customer account.
-spec associate_third_party_firewall(aws_client:aws_client(), associate_third_party_firewall_request()) ->
{ok, associate_third_party_firewall_response(), tuple()} |
{error, any()} |
{error, associate_third_party_firewall_errors(), tuple()}.
associate_third_party_firewall(Client, Input)
when is_map(Client), is_map(Input) ->
associate_third_party_firewall(Client, Input, []).
-spec associate_third_party_firewall(aws_client:aws_client(), associate_third_party_firewall_request(), proplists:proplist()) ->
{ok, associate_third_party_firewall_response(), tuple()} |
{error, any()} |
{error, associate_third_party_firewall_errors(), tuple()}.
associate_third_party_firewall(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"AssociateThirdPartyFirewall">>, Input, Options).
%% @doc Associate resources to a Firewall Manager resource set.
-spec batch_associate_resource(aws_client:aws_client(), batch_associate_resource_request()) ->
{ok, batch_associate_resource_response(), tuple()} |
{error, any()} |
{error, batch_associate_resource_errors(), tuple()}.
batch_associate_resource(Client, Input)
when is_map(Client), is_map(Input) ->
batch_associate_resource(Client, Input, []).
-spec batch_associate_resource(aws_client:aws_client(), batch_associate_resource_request(), proplists:proplist()) ->
{ok, batch_associate_resource_response(), tuple()} |
{error, any()} |
{error, batch_associate_resource_errors(), tuple()}.
batch_associate_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"BatchAssociateResource">>, Input, Options).
%% @doc Disassociates resources from a Firewall Manager resource set.
-spec batch_disassociate_resource(aws_client:aws_client(), batch_disassociate_resource_request()) ->
{ok, batch_disassociate_resource_response(), tuple()} |
{error, any()} |
{error, batch_disassociate_resource_errors(), tuple()}.
batch_disassociate_resource(Client, Input)
when is_map(Client), is_map(Input) ->
batch_disassociate_resource(Client, Input, []).
-spec batch_disassociate_resource(aws_client:aws_client(), batch_disassociate_resource_request(), proplists:proplist()) ->
{ok, batch_disassociate_resource_response(), tuple()} |
{error, any()} |
{error, batch_disassociate_resource_errors(), tuple()}.
batch_disassociate_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"BatchDisassociateResource">>, Input, Options).
%% @doc Permanently deletes an Firewall Manager applications list.
-spec delete_apps_list(aws_client:aws_client(), delete_apps_list_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_apps_list_errors(), tuple()}.
delete_apps_list(Client, Input)
when is_map(Client), is_map(Input) ->
delete_apps_list(Client, Input, []).
-spec delete_apps_list(aws_client:aws_client(), delete_apps_list_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_apps_list_errors(), tuple()}.
delete_apps_list(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteAppsList">>, Input, Options).
%% @doc Deletes an Firewall Manager association with the IAM role and the
%% Amazon Simple
%% Notification Service (SNS) topic that is used to record Firewall Manager
%% SNS logs.
-spec delete_notification_channel(aws_client:aws_client(), delete_notification_channel_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_notification_channel_errors(), tuple()}.
delete_notification_channel(Client, Input)
when is_map(Client), is_map(Input) ->
delete_notification_channel(Client, Input, []).
-spec delete_notification_channel(aws_client:aws_client(), delete_notification_channel_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_notification_channel_errors(), tuple()}.
delete_notification_channel(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteNotificationChannel">>, Input, Options).
%% @doc Permanently deletes an Firewall Manager policy.
-spec delete_policy(aws_client:aws_client(), delete_policy_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_policy_errors(), tuple()}.
delete_policy(Client, Input)
when is_map(Client), is_map(Input) ->
delete_policy(Client, Input, []).
-spec delete_policy(aws_client:aws_client(), delete_policy_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_policy_errors(), tuple()}.
delete_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeletePolicy">>, Input, Options).
%% @doc Permanently deletes an Firewall Manager protocols list.
-spec delete_protocols_list(aws_client:aws_client(), delete_protocols_list_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_protocols_list_errors(), tuple()}.
delete_protocols_list(Client, Input)
when is_map(Client), is_map(Input) ->
delete_protocols_list(Client, Input, []).
-spec delete_protocols_list(aws_client:aws_client(), delete_protocols_list_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_protocols_list_errors(), tuple()}.
delete_protocols_list(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteProtocolsList">>, Input, Options).
%% @doc Deletes the specified `ResourceSet'.
-spec delete_resource_set(aws_client:aws_client(), delete_resource_set_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_resource_set_errors(), tuple()}.
delete_resource_set(Client, Input)
when is_map(Client), is_map(Input) ->
delete_resource_set(Client, Input, []).
-spec delete_resource_set(aws_client:aws_client(), delete_resource_set_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_resource_set_errors(), tuple()}.
delete_resource_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteResourceSet">>, Input, Options).
%% @doc Disassociates an Firewall Manager administrator account.
%%
%% To set a different account as an Firewall Manager administrator, submit a
%% `PutAdminAccount' request. To set an account as a default
%% administrator account, you must submit an `AssociateAdminAccount'
%% request.
%%
%% Disassociation of the default administrator account follows the first in,
%% last out principle. If you are the default administrator, all Firewall
%% Manager administrators within the organization must first disassociate
%% their accounts before you can disassociate your account.
-spec disassociate_admin_account(aws_client:aws_client(), disassociate_admin_account_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, disassociate_admin_account_errors(), tuple()}.
disassociate_admin_account(Client, Input)
when is_map(Client), is_map(Input) ->
disassociate_admin_account(Client, Input, []).
-spec disassociate_admin_account(aws_client:aws_client(), disassociate_admin_account_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, disassociate_admin_account_errors(), tuple()}.
disassociate_admin_account(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DisassociateAdminAccount">>, Input, Options).
%% @doc Disassociates a Firewall Manager policy administrator from a
%% third-party firewall tenant.
%%
%% When you call `DisassociateThirdPartyFirewall', the third-party
%% firewall vendor deletes all of the firewalls that are associated with the
%% account.
-spec disassociate_third_party_firewall(aws_client:aws_client(), disassociate_third_party_firewall_request()) ->
{ok, disassociate_third_party_firewall_response(), tuple()} |
{error, any()} |
{error, disassociate_third_party_firewall_errors(), tuple()}.
disassociate_third_party_firewall(Client, Input)
when is_map(Client), is_map(Input) ->
disassociate_third_party_firewall(Client, Input, []).
-spec disassociate_third_party_firewall(aws_client:aws_client(), disassociate_third_party_firewall_request(), proplists:proplist()) ->
{ok, disassociate_third_party_firewall_response(), tuple()} |
{error, any()} |
{error, disassociate_third_party_firewall_errors(), tuple()}.
disassociate_third_party_firewall(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DisassociateThirdPartyFirewall">>, Input, Options).
%% @doc Returns the Organizations account that is associated with Firewall
%% Manager
%% as the Firewall Manager default administrator.
-spec get_admin_account(aws_client:aws_client(), get_admin_account_request()) ->
{ok, get_admin_account_response(), tuple()} |
{error, any()} |
{error, get_admin_account_errors(), tuple()}.
get_admin_account(Client, Input)
when is_map(Client), is_map(Input) ->
get_admin_account(Client, Input, []).
-spec get_admin_account(aws_client:aws_client(), get_admin_account_request(), proplists:proplist()) ->
{ok, get_admin_account_response(), tuple()} |
{error, any()} |
{error, get_admin_account_errors(), tuple()}.
get_admin_account(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetAdminAccount">>, Input, Options).
%% @doc Returns information about the specified account's administrative
%% scope.
%%
%% The admistrative scope defines the resources that an Firewall Manager
%% administrator can manage.
-spec get_admin_scope(aws_client:aws_client(), get_admin_scope_request()) ->
{ok, get_admin_scope_response(), tuple()} |
{error, any()} |
{error, get_admin_scope_errors(), tuple()}.
get_admin_scope(Client, Input)
when is_map(Client), is_map(Input) ->
get_admin_scope(Client, Input, []).
-spec get_admin_scope(aws_client:aws_client(), get_admin_scope_request(), proplists:proplist()) ->
{ok, get_admin_scope_response(), tuple()} |
{error, any()} |
{error, get_admin_scope_errors(), tuple()}.
get_admin_scope(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetAdminScope">>, Input, Options).
%% @doc Returns information about the specified Firewall Manager applications
%% list.
-spec get_apps_list(aws_client:aws_client(), get_apps_list_request()) ->
{ok, get_apps_list_response(), tuple()} |
{error, any()} |
{error, get_apps_list_errors(), tuple()}.
get_apps_list(Client, Input)
when is_map(Client), is_map(Input) ->
get_apps_list(Client, Input, []).
-spec get_apps_list(aws_client:aws_client(), get_apps_list_request(), proplists:proplist()) ->
{ok, get_apps_list_response(), tuple()} |
{error, any()} |
{error, get_apps_list_errors(), tuple()}.
get_apps_list(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetAppsList">>, Input, Options).
%% @doc Returns detailed compliance information about the specified member
%% account.
%%
%% Details
%% include resources that are in and out of compliance with the specified
%% policy.
%%
%% Resources are
%% considered noncompliant for WAF and Shield Advanced policies if the
%% specified policy has
%% not been applied to them.
%%
%% Resources are considered noncompliant for security group policies if
%% they are in scope of the policy, they violate one or more of the policy
%% rules, and remediation
%% is disabled or not possible.
%%
%% Resources are considered noncompliant for Network Firewall policies
%% if a firewall is missing in the VPC, if the firewall endpoint isn't
%% set up in an expected Availability Zone and subnet,
%% if a subnet created by the Firewall Manager doesn't have the expected
%% route table,
%% and for modifications to a firewall policy that violate the Firewall
%% Manager policy's rules.
%%
%% Resources are considered noncompliant for DNS Firewall policies
%% if a DNS Firewall rule group is missing from the rule group associations
%% for the VPC.
-spec get_compliance_detail(aws_client:aws_client(), get_compliance_detail_request()) ->
{ok, get_compliance_detail_response(), tuple()} |
{error, any()} |
{error, get_compliance_detail_errors(), tuple()}.
get_compliance_detail(Client, Input)
when is_map(Client), is_map(Input) ->
get_compliance_detail(Client, Input, []).
-spec get_compliance_detail(aws_client:aws_client(), get_compliance_detail_request(), proplists:proplist()) ->
{ok, get_compliance_detail_response(), tuple()} |
{error, any()} |
{error, get_compliance_detail_errors(), tuple()}.
get_compliance_detail(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetComplianceDetail">>, Input, Options).
%% @doc Information
%% about the Amazon Simple Notification Service (SNS) topic that is used to
%% record Firewall Manager SNS logs.
-spec get_notification_channel(aws_client:aws_client(), get_notification_channel_request()) ->
{ok, get_notification_channel_response(), tuple()} |
{error, any()} |
{error, get_notification_channel_errors(), tuple()}.
get_notification_channel(Client, Input)
when is_map(Client), is_map(Input) ->
get_notification_channel(Client, Input, []).
-spec get_notification_channel(aws_client:aws_client(), get_notification_channel_request(), proplists:proplist()) ->
{ok, get_notification_channel_response(), tuple()} |
{error, any()} |
{error, get_notification_channel_errors(), tuple()}.
get_notification_channel(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetNotificationChannel">>, Input, Options).
%% @doc Returns information about the specified Firewall Manager policy.
-spec get_policy(aws_client:aws_client(), get_policy_request()) ->
{ok, get_policy_response(), tuple()} |
{error, any()} |
{error, get_policy_errors(), tuple()}.
get_policy(Client, Input)
when is_map(Client), is_map(Input) ->
get_policy(Client, Input, []).
-spec get_policy(aws_client:aws_client(), get_policy_request(), proplists:proplist()) ->
{ok, get_policy_response(), tuple()} |
{error, any()} |
{error, get_policy_errors(), tuple()}.
get_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetPolicy">>, Input, Options).
%% @doc If you created a Shield Advanced policy, returns policy-level attack
%% summary information
%% in the event of a potential DDoS attack.
%%
%% Other policy types are currently unsupported.
-spec get_protection_status(aws_client:aws_client(), get_protection_status_request()) ->
{ok, get_protection_status_response(), tuple()} |
{error, any()} |
{error, get_protection_status_errors(), tuple()}.
get_protection_status(Client, Input)
when is_map(Client), is_map(Input) ->
get_protection_status(Client, Input, []).
-spec get_protection_status(aws_client:aws_client(), get_protection_status_request(), proplists:proplist()) ->
{ok, get_protection_status_response(), tuple()} |
{error, any()} |
{error, get_protection_status_errors(), tuple()}.
get_protection_status(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetProtectionStatus">>, Input, Options).
%% @doc Returns information about the specified Firewall Manager protocols
%% list.
-spec get_protocols_list(aws_client:aws_client(), get_protocols_list_request()) ->
{ok, get_protocols_list_response(), tuple()} |
{error, any()} |
{error, get_protocols_list_errors(), tuple()}.
get_protocols_list(Client, Input)
when is_map(Client), is_map(Input) ->
get_protocols_list(Client, Input, []).
-spec get_protocols_list(aws_client:aws_client(), get_protocols_list_request(), proplists:proplist()) ->
{ok, get_protocols_list_response(), tuple()} |
{error, any()} |
{error, get_protocols_list_errors(), tuple()}.
get_protocols_list(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetProtocolsList">>, Input, Options).
%% @doc Gets information about a specific resource set.
-spec get_resource_set(aws_client:aws_client(), get_resource_set_request()) ->
{ok, get_resource_set_response(), tuple()} |
{error, any()} |
{error, get_resource_set_errors(), tuple()}.
get_resource_set(Client, Input)
when is_map(Client), is_map(Input) ->
get_resource_set(Client, Input, []).
-spec get_resource_set(aws_client:aws_client(), get_resource_set_request(), proplists:proplist()) ->
{ok, get_resource_set_response(), tuple()} |
{error, any()} |
{error, get_resource_set_errors(), tuple()}.
get_resource_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetResourceSet">>, Input, Options).
%% @doc The onboarding status of a Firewall Manager admin account to
%% third-party firewall vendor tenant.
-spec get_third_party_firewall_association_status(aws_client:aws_client(), get_third_party_firewall_association_status_request()) ->
{ok, get_third_party_firewall_association_status_response(), tuple()} |
{error, any()} |
{error, get_third_party_firewall_association_status_errors(), tuple()}.
get_third_party_firewall_association_status(Client, Input)
when is_map(Client), is_map(Input) ->
get_third_party_firewall_association_status(Client, Input, []).
-spec get_third_party_firewall_association_status(aws_client:aws_client(), get_third_party_firewall_association_status_request(), proplists:proplist()) ->
{ok, get_third_party_firewall_association_status_response(), tuple()} |
{error, any()} |
{error, get_third_party_firewall_association_status_errors(), tuple()}.
get_third_party_firewall_association_status(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetThirdPartyFirewallAssociationStatus">>, Input, Options).
%% @doc Retrieves violations for a resource based on the specified Firewall
%% Manager policy and Amazon Web Services account.
-spec get_violation_details(aws_client:aws_client(), get_violation_details_request()) ->
{ok, get_violation_details_response(), tuple()} |
{error, any()} |
{error, get_violation_details_errors(), tuple()}.
get_violation_details(Client, Input)
when is_map(Client), is_map(Input) ->
get_violation_details(Client, Input, []).
-spec get_violation_details(aws_client:aws_client(), get_violation_details_request(), proplists:proplist()) ->
{ok, get_violation_details_response(), tuple()} |
{error, any()} |
{error, get_violation_details_errors(), tuple()}.
get_violation_details(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetViolationDetails">>, Input, Options).
%% @doc Returns a `AdminAccounts' object that lists the Firewall Manager
%% administrators within the organization that are onboarded to Firewall
%% Manager by `AssociateAdminAccount'.
%%
%% This operation can be called only from the organization's management
%% account.
-spec list_admin_accounts_for_organization(aws_client:aws_client(), list_admin_accounts_for_organization_request()) ->
{ok, list_admin_accounts_for_organization_response(), tuple()} |
{error, any()} |
{error, list_admin_accounts_for_organization_errors(), tuple()}.
list_admin_accounts_for_organization(Client, Input)
when is_map(Client), is_map(Input) ->
list_admin_accounts_for_organization(Client, Input, []).
-spec list_admin_accounts_for_organization(aws_client:aws_client(), list_admin_accounts_for_organization_request(), proplists:proplist()) ->
{ok, list_admin_accounts_for_organization_response(), tuple()} |
{error, any()} |
{error, list_admin_accounts_for_organization_errors(), tuple()}.
list_admin_accounts_for_organization(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListAdminAccountsForOrganization">>, Input, Options).
%% @doc Lists the accounts that are managing the specified Organizations
%% member account.
%%
%% This is useful for any member account so that they can view the accounts
%% who are managing their account. This operation only returns the managing
%% administrators that have the requested account within their
%% `AdminScope'.
-spec list_admins_managing_account(aws_client:aws_client(), list_admins_managing_account_request()) ->
{ok, list_admins_managing_account_response(), tuple()} |
{error, any()} |
{error, list_admins_managing_account_errors(), tuple()}.
list_admins_managing_account(Client, Input)
when is_map(Client), is_map(Input) ->
list_admins_managing_account(Client, Input, []).
-spec list_admins_managing_account(aws_client:aws_client(), list_admins_managing_account_request(), proplists:proplist()) ->
{ok, list_admins_managing_account_response(), tuple()} |
{error, any()} |
{error, list_admins_managing_account_errors(), tuple()}.
list_admins_managing_account(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListAdminsManagingAccount">>, Input, Options).
%% @doc Returns an array of `AppsListDataSummary' objects.
-spec list_apps_lists(aws_client:aws_client(), list_apps_lists_request()) ->
{ok, list_apps_lists_response(), tuple()} |
{error, any()} |
{error, list_apps_lists_errors(), tuple()}.
list_apps_lists(Client, Input)
when is_map(Client), is_map(Input) ->
list_apps_lists(Client, Input, []).
-spec list_apps_lists(aws_client:aws_client(), list_apps_lists_request(), proplists:proplist()) ->
{ok, list_apps_lists_response(), tuple()} |
{error, any()} |
{error, list_apps_lists_errors(), tuple()}.
list_apps_lists(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListAppsLists">>, Input, Options).
%% @doc Returns an array of `PolicyComplianceStatus' objects.
%%
%% Use
%% `PolicyComplianceStatus' to get a summary of which member accounts are
%% protected
%% by the specified policy.
-spec list_compliance_status(aws_client:aws_client(), list_compliance_status_request()) ->
{ok, list_compliance_status_response(), tuple()} |
{error, any()} |
{error, list_compliance_status_errors(), tuple()}.
list_compliance_status(Client, Input)
when is_map(Client), is_map(Input) ->
list_compliance_status(Client, Input, []).
-spec list_compliance_status(aws_client:aws_client(), list_compliance_status_request(), proplists:proplist()) ->
{ok, list_compliance_status_response(), tuple()} |
{error, any()} |
{error, list_compliance_status_errors(), tuple()}.
list_compliance_status(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListComplianceStatus">>, Input, Options).
%% @doc Returns an array of resources in the organization's accounts that
%% are available to be associated with a resource set.
-spec list_discovered_resources(aws_client:aws_client(), list_discovered_resources_request()) ->
{ok, list_discovered_resources_response(), tuple()} |
{error, any()} |
{error, list_discovered_resources_errors(), tuple()}.
list_discovered_resources(Client, Input)
when is_map(Client), is_map(Input) ->
list_discovered_resources(Client, Input, []).
-spec list_discovered_resources(aws_client:aws_client(), list_discovered_resources_request(), proplists:proplist()) ->
{ok, list_discovered_resources_response(), tuple()} |
{error, any()} |
{error, list_discovered_resources_errors(), tuple()}.
list_discovered_resources(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListDiscoveredResources">>, Input, Options).
%% @doc Returns a `MemberAccounts' object that lists the member accounts
%% in the
%% administrator's Amazon Web Services organization.
%%
%% Either an Firewall Manager administrator or the organization's
%% management account can make this request.
-spec list_member_accounts(aws_client:aws_client(), list_member_accounts_request()) ->
{ok, list_member_accounts_response(), tuple()} |
{error, any()} |
{error, list_member_accounts_errors(), tuple()}.
list_member_accounts(Client, Input)
when is_map(Client), is_map(Input) ->
list_member_accounts(Client, Input, []).
-spec list_member_accounts(aws_client:aws_client(), list_member_accounts_request(), proplists:proplist()) ->
{ok, list_member_accounts_response(), tuple()} |
{error, any()} |
{error, list_member_accounts_errors(), tuple()}.
list_member_accounts(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListMemberAccounts">>, Input, Options).
%% @doc Returns an array of `PolicySummary' objects.
-spec list_policies(aws_client:aws_client(), list_policies_request()) ->
{ok, list_policies_response(), tuple()} |
{error, any()} |
{error, list_policies_errors(), tuple()}.
list_policies(Client, Input)
when is_map(Client), is_map(Input) ->
list_policies(Client, Input, []).
-spec list_policies(aws_client:aws_client(), list_policies_request(), proplists:proplist()) ->
{ok, list_policies_response(), tuple()} |
{error, any()} |
{error, list_policies_errors(), tuple()}.
list_policies(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListPolicies">>, Input, Options).
%% @doc Returns an array of `ProtocolsListDataSummary' objects.
-spec list_protocols_lists(aws_client:aws_client(), list_protocols_lists_request()) ->
{ok, list_protocols_lists_response(), tuple()} |
{error, any()} |
{error, list_protocols_lists_errors(), tuple()}.
list_protocols_lists(Client, Input)
when is_map(Client), is_map(Input) ->
list_protocols_lists(Client, Input, []).
-spec list_protocols_lists(aws_client:aws_client(), list_protocols_lists_request(), proplists:proplist()) ->
{ok, list_protocols_lists_response(), tuple()} |
{error, any()} |
{error, list_protocols_lists_errors(), tuple()}.
list_protocols_lists(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListProtocolsLists">>, Input, Options).
%% @doc Returns an array of resources that are currently associated to a
%% resource set.
-spec list_resource_set_resources(aws_client:aws_client(), list_resource_set_resources_request()) ->
{ok, list_resource_set_resources_response(), tuple()} |
{error, any()} |
{error, list_resource_set_resources_errors(), tuple()}.
list_resource_set_resources(Client, Input)
when is_map(Client), is_map(Input) ->
list_resource_set_resources(Client, Input, []).
-spec list_resource_set_resources(aws_client:aws_client(), list_resource_set_resources_request(), proplists:proplist()) ->
{ok, list_resource_set_resources_response(), tuple()} |
{error, any()} |
{error, list_resource_set_resources_errors(), tuple()}.
list_resource_set_resources(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListResourceSetResources">>, Input, Options).
%% @doc Returns an array of `ResourceSetSummary' objects.
-spec list_resource_sets(aws_client:aws_client(), list_resource_sets_request()) ->
{ok, list_resource_sets_response(), tuple()} |
{error, any()} |
{error, list_resource_sets_errors(), tuple()}.
list_resource_sets(Client, Input)
when is_map(Client), is_map(Input) ->
list_resource_sets(Client, Input, []).
-spec list_resource_sets(aws_client:aws_client(), list_resource_sets_request(), proplists:proplist()) ->
{ok, list_resource_sets_response(), tuple()} |
{error, any()} |
{error, list_resource_sets_errors(), tuple()}.
list_resource_sets(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListResourceSets">>, Input, Options).
%% @doc Retrieves the list of tags for the specified Amazon Web Services
%% resource.
-spec list_tags_for_resource(aws_client:aws_client(), list_tags_for_resource_request()) ->
{ok, list_tags_for_resource_response(), tuple()} |
{error, any()} |
{error, list_tags_for_resource_errors(), tuple()}.
list_tags_for_resource(Client, Input)
when is_map(Client), is_map(Input) ->
list_tags_for_resource(Client, Input, []).
-spec list_tags_for_resource(aws_client:aws_client(), list_tags_for_resource_request(), proplists:proplist()) ->
{ok, list_tags_for_resource_response(), tuple()} |
{error, any()} |
{error, list_tags_for_resource_errors(), tuple()}.
list_tags_for_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListTagsForResource">>, Input, Options).
%% @doc Retrieves a list of all of the third-party firewall policies that are
%% associated with the third-party firewall administrator's account.
-spec list_third_party_firewall_firewall_policies(aws_client:aws_client(), list_third_party_firewall_firewall_policies_request()) ->
{ok, list_third_party_firewall_firewall_policies_response(), tuple()} |
{error, any()} |
{error, list_third_party_firewall_firewall_policies_errors(), tuple()}.
list_third_party_firewall_firewall_policies(Client, Input)
when is_map(Client), is_map(Input) ->
list_third_party_firewall_firewall_policies(Client, Input, []).
-spec list_third_party_firewall_firewall_policies(aws_client:aws_client(), list_third_party_firewall_firewall_policies_request(), proplists:proplist()) ->
{ok, list_third_party_firewall_firewall_policies_response(), tuple()} |
{error, any()} |
{error, list_third_party_firewall_firewall_policies_errors(), tuple()}.
list_third_party_firewall_firewall_policies(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListThirdPartyFirewallFirewallPolicies">>, Input, Options).
%% @doc Creates or updates an Firewall Manager administrator account.
%%
%% The account must be a member of the organization that was onboarded to
%% Firewall Manager by `AssociateAdminAccount'. Only the
%% organization's management account can create an Firewall Manager
%% administrator account. When you create an Firewall Manager administrator
%% account, the service checks to see if the account is already a delegated
%% administrator within Organizations. If the account isn't a delegated
%% administrator, Firewall Manager calls Organizations to delegate the
%% account within Organizations. For more information about administrator
%% accounts within Organizations, see
%% Managing the Amazon Web Services Accounts in Your Organization:
%% https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts.html.
-spec put_admin_account(aws_client:aws_client(), put_admin_account_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, put_admin_account_errors(), tuple()}.
put_admin_account(Client, Input)
when is_map(Client), is_map(Input) ->
put_admin_account(Client, Input, []).
-spec put_admin_account(aws_client:aws_client(), put_admin_account_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, put_admin_account_errors(), tuple()}.
put_admin_account(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutAdminAccount">>, Input, Options).
%% @doc Creates an Firewall Manager applications list.
-spec put_apps_list(aws_client:aws_client(), put_apps_list_request()) ->
{ok, put_apps_list_response(), tuple()} |
{error, any()} |
{error, put_apps_list_errors(), tuple()}.
put_apps_list(Client, Input)
when is_map(Client), is_map(Input) ->
put_apps_list(Client, Input, []).
-spec put_apps_list(aws_client:aws_client(), put_apps_list_request(), proplists:proplist()) ->
{ok, put_apps_list_response(), tuple()} |
{error, any()} |
{error, put_apps_list_errors(), tuple()}.
put_apps_list(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutAppsList">>, Input, Options).
%% @doc Designates the IAM role and Amazon Simple Notification Service (SNS)
%% topic that
%% Firewall Manager uses to record SNS logs.
%%
%% To perform this action outside of the console, you must first configure
%% the SNS topic's access policy to allow the `SnsRoleName' to
%% publish SNS logs. If the `SnsRoleName' provided is a role other than
%% the `AWSServiceRoleForFMS' service-linked role, this role must have a
%% trust relationship configured to allow the Firewall Manager service
%% principal `fms.amazonaws.com' to assume this role. For information
%% about configuring an SNS access policy, see
%% Service roles for Firewall Manager:
%% https://docs.aws.amazon.com/waf/latest/developerguide/fms-security_iam_service-with-iam.html#fms-security_iam_service-with-iam-roles-service
%% in the Firewall Manager Developer Guide.
-spec put_notification_channel(aws_client:aws_client(), put_notification_channel_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, put_notification_channel_errors(), tuple()}.
put_notification_channel(Client, Input)
when is_map(Client), is_map(Input) ->
put_notification_channel(Client, Input, []).
-spec put_notification_channel(aws_client:aws_client(), put_notification_channel_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, put_notification_channel_errors(), tuple()}.
put_notification_channel(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutNotificationChannel">>, Input, Options).
%% @doc Creates an Firewall Manager policy.
%%
%% A Firewall Manager policy is specific to the individual policy type. If
%% you want to enforce multiple
%% policy types across accounts, you can create multiple policies. You can
%% create more than one
%% policy for each type.
%%
%% If you add a new account to an organization that you created with
%% Organizations, Firewall Manager
%% automatically applies the policy to the resources in that account that are
%% within scope of
%% the policy.
%%
%% Firewall Manager provides the following types of policies:
%%
%% Shield Advanced policy - This policy applies Shield Advanced
%% protection to specified accounts and resources.
%%
%% Security Groups policy - This type of policy gives you
%% control over security groups that are in use throughout your organization
%% in
%% Organizations and lets you enforce a baseline set of rules across your
%% organization.
%%
%% Network Firewall policy - This policy applies
%% Network Firewall protection to your organization's VPCs.
%%
%% DNS Firewall policy - This policy applies
%% Amazon Route 53 Resolver DNS Firewall protections to your
%% organization's VPCs.
%%
%% Third-party firewall policy - This policy applies third-party firewall
%% protections. Third-party firewalls are available by subscription through
%% the Amazon Web Services Marketplace console at Amazon Web Services
%% Marketplace: https://aws.amazon.com/marketplace.
%%
%% Palo Alto Networks Cloud NGFW policy - This policy applies Palo Alto
%% Networks Cloud Next Generation Firewall (NGFW) protections and Palo Alto
%% Networks Cloud NGFW rulestacks to your organization's VPCs.
%%
%% Fortigate CNF policy - This policy applies
%% Fortigate Cloud Native Firewall (CNF) protections. Fortigate CNF is a
%% cloud-centered solution that blocks Zero-Day threats and secures cloud
%% infrastructures with industry-leading advanced threat prevention, smart
%% web application firewalls (WAF), and API protection.
-spec put_policy(aws_client:aws_client(), put_policy_request()) ->
{ok, put_policy_response(), tuple()} |
{error, any()} |
{error, put_policy_errors(), tuple()}.
put_policy(Client, Input)
when is_map(Client), is_map(Input) ->
put_policy(Client, Input, []).
-spec put_policy(aws_client:aws_client(), put_policy_request(), proplists:proplist()) ->
{ok, put_policy_response(), tuple()} |
{error, any()} |
{error, put_policy_errors(), tuple()}.
put_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutPolicy">>, Input, Options).
%% @doc Creates an Firewall Manager protocols list.
-spec put_protocols_list(aws_client:aws_client(), put_protocols_list_request()) ->
{ok, put_protocols_list_response(), tuple()} |
{error, any()} |
{error, put_protocols_list_errors(), tuple()}.
put_protocols_list(Client, Input)
when is_map(Client), is_map(Input) ->
put_protocols_list(Client, Input, []).
-spec put_protocols_list(aws_client:aws_client(), put_protocols_list_request(), proplists:proplist()) ->
{ok, put_protocols_list_response(), tuple()} |
{error, any()} |
{error, put_protocols_list_errors(), tuple()}.
put_protocols_list(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutProtocolsList">>, Input, Options).
%% @doc Creates the resource set.
%%
%% An Firewall Manager resource set defines the resources to import into an
%% Firewall Manager policy from another Amazon Web Services service.
-spec put_resource_set(aws_client:aws_client(), put_resource_set_request()) ->
{ok, put_resource_set_response(), tuple()} |
{error, any()} |
{error, put_resource_set_errors(), tuple()}.
put_resource_set(Client, Input)
when is_map(Client), is_map(Input) ->
put_resource_set(Client, Input, []).
-spec put_resource_set(aws_client:aws_client(), put_resource_set_request(), proplists:proplist()) ->
{ok, put_resource_set_response(), tuple()} |
{error, any()} |
{error, put_resource_set_errors(), tuple()}.
put_resource_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutResourceSet">>, Input, Options).
%% @doc Adds one or more tags to an Amazon Web Services resource.
-spec tag_resource(aws_client:aws_client(), tag_resource_request()) ->
{ok, tag_resource_response(), tuple()} |
{error, any()} |
{error, tag_resource_errors(), tuple()}.
tag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
tag_resource(Client, Input, []).
-spec tag_resource(aws_client:aws_client(), tag_resource_request(), proplists:proplist()) ->
{ok, tag_resource_response(), tuple()} |
{error, any()} |
{error, tag_resource_errors(), tuple()}.
tag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"TagResource">>, Input, Options).
%% @doc Removes one or more tags from an Amazon Web Services resource.
-spec untag_resource(aws_client:aws_client(), untag_resource_request()) ->
{ok, untag_resource_response(), tuple()} |
{error, any()} |
{error, untag_resource_errors(), tuple()}.
untag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
untag_resource(Client, Input, []).
-spec untag_resource(aws_client:aws_client(), untag_resource_request(), proplists:proplist()) ->
{ok, untag_resource_response(), tuple()} |
{error, any()} |
{error, untag_resource_errors(), tuple()}.
untag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UntagResource">>, Input, Options).
%%====================================================================
%% Internal functions
%%====================================================================
-spec request(aws_client:aws_client(), binary(), map(), list()) ->
{ok, Result, {integer(), list(), hackney:client()}} |
{error, Error, {integer(), list(), hackney:client()}} |
{error, term()} when
Result :: map() | undefined,
Error :: map().
request(Client, Action, Input, Options) ->
RequestFun = fun() -> do_request(Client, Action, Input, Options) end,
aws_request:request(RequestFun, Options).
do_request(Client, Action, Input0, Options) ->
Client1 = Client#{service => <<"fms">>},
Host = build_host(<<"fms">>, Client1),
URL = build_url(Host, Client1),
Headers = [
{<<"Host">>, Host},
{<<"Content-Type">>, <<"application/x-amz-json-1.1">>},
{<<"X-Amz-Target">>, <<"AWSFMS_20180101.", Action/binary>>}
],
Input = Input0,
Payload = jsx:encode(Input),
SignedHeaders = aws_request:sign_request(Client1, <<"POST">>, URL, Headers, Payload),
Response = hackney:request(post, URL, SignedHeaders, Payload, Options),
handle_response(Response).
handle_response({ok, 200, ResponseHeaders, Client}) ->
case hackney:body(Client) of
{ok, <<>>} ->
{ok, undefined, {200, ResponseHeaders, Client}};
{ok, Body} ->
Result = jsx:decode(Body),
{ok, Result, {200, ResponseHeaders, Client}}
end;
handle_response({ok, StatusCode, ResponseHeaders, Client}) ->
{ok, Body} = hackney:body(Client),
Error = jsx:decode(Body),
{error, Error, {StatusCode, ResponseHeaders, Client}};
handle_response({error, Reason}) ->
{error, Reason}.
build_host(_EndpointPrefix, #{region := <<"local">>, endpoint := Endpoint}) ->
Endpoint;
build_host(_EndpointPrefix, #{region := <<"local">>}) ->
<<"localhost">>;
build_host(EndpointPrefix, #{region := Region, endpoint := Endpoint}) ->
aws_util:binary_join([EndpointPrefix, Region, Endpoint], <<".">>).
build_url(Host, Client) ->
Proto = aws_client:proto(Client),
Port = aws_client:port(Client),
aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).