Packages
aws
1.0.13
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.14.1
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
AWS clients for Elixir
Current section
Files
Jump to
Current section
Files
lib/aws/generated/fms.ex
# WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
# See https://github.com/aws-beam/aws-codegen for more details.
defmodule AWS.FMS do
@moduledoc """
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).
"""
alias AWS.Client
alias AWS.Request
@typedoc """
## Example:
get_admin_scope_request() :: %{
required("AdminAccount") => String.t() | atom()
}
"""
@type get_admin_scope_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
policy() :: %{
"DeleteUnusedFMManagedResources" => boolean(),
"ExcludeMap" => map(),
"ExcludeResourceTags" => boolean(),
"IncludeMap" => map(),
"PolicyDescription" => String.t() | atom(),
"PolicyId" => String.t() | atom(),
"PolicyName" => String.t() | atom(),
"PolicyStatus" => list(any()),
"PolicyUpdateToken" => String.t() | atom(),
"RemediationEnabled" => boolean(),
"ResourceSetIds" => list(String.t() | atom()),
"ResourceTagLogicalOperator" => list(any()),
"ResourceTags" => list(resource_tag()),
"ResourceType" => String.t() | atom(),
"ResourceTypeList" => list(String.t() | atom()),
"SecurityServicePolicyData" => security_service_policy_data()
}
"""
@type policy() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
invalid_operation_exception() :: %{
"Message" => String.t() | atom()
}
"""
@type invalid_operation_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
ec2_replace_route_table_association_action() :: %{
"AssociationId" => action_target(),
"Description" => String.t() | atom(),
"RouteTableId" => action_target()
}
"""
@type ec2_replace_route_table_association_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_third_party_firewall_firewall_policies_response() :: %{
"NextToken" => String.t() | atom(),
"ThirdPartyFirewallFirewallPolicies" => list(third_party_firewall_firewall_policy())
}
"""
@type list_third_party_firewall_firewall_policies_response() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
list_member_accounts_response() :: %{
"MemberAccounts" => list(String.t() | atom()),
"NextToken" => String.t() | atom()
}
"""
@type list_member_accounts_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_policies_request() :: %{
optional("MaxResults") => integer(),
optional("NextToken") => String.t() | atom()
}
"""
@type list_policies_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_protocols_list_request() :: %{
optional("DefaultList") => boolean(),
required("ListId") => String.t() | atom()
}
"""
@type get_protocols_list_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_apps_lists_response() :: %{
"AppsLists" => list(apps_list_data_summary()),
"NextToken" => String.t() | atom()
}
"""
@type list_apps_lists_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
policy_type_scope() :: %{
"AllPolicyTypesEnabled" => boolean(),
"PolicyTypes" => list(list(any())())
}
"""
@type policy_type_scope() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
ec2_replace_route_action() :: %{
"Description" => String.t() | atom(),
"DestinationCidrBlock" => String.t() | atom(),
"DestinationIpv6CidrBlock" => String.t() | atom(),
"DestinationPrefixListId" => String.t() | atom(),
"GatewayId" => action_target(),
"RouteTableId" => action_target()
}
"""
@type ec2_replace_route_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
invalid_network_acl_entries_violation() :: %{
"CurrentAssociatedNetworkAcl" => String.t() | atom(),
"EntryViolations" => list(entry_violation()),
"Subnet" => String.t() | atom(),
"SubnetAvailabilityZone" => String.t() | atom(),
"Vpc" => String.t() | atom()
}
"""
@type invalid_network_acl_entries_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_admin_account_response() :: %{
"AdminAccount" => String.t() | atom(),
"RoleStatus" => list(any())
}
"""
@type get_admin_account_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_apps_list_request() :: %{
optional("DefaultList") => boolean(),
required("ListId") => String.t() | atom()
}
"""
@type get_apps_list_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
route() :: %{
"Destination" => String.t() | atom(),
"DestinationType" => list(any()),
"Target" => String.t() | atom(),
"TargetType" => list(any())
}
"""
@type route() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
route_has_out_of_scope_endpoint_violation() :: %{
"CurrentFirewallSubnetRouteTable" => String.t() | atom(),
"CurrentInternetGatewayRouteTable" => String.t() | atom(),
"FirewallSubnetId" => String.t() | atom(),
"FirewallSubnetRoutes" => list(route()),
"InternetGatewayId" => String.t() | atom(),
"InternetGatewayRoutes" => list(route()),
"RouteTableId" => String.t() | atom(),
"SubnetAvailabilityZone" => String.t() | atom(),
"SubnetAvailabilityZoneId" => String.t() | atom(),
"SubnetId" => String.t() | atom(),
"ViolatingRoutes" => list(route()),
"VpcId" => String.t() | atom()
}
"""
@type route_has_out_of_scope_endpoint_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
third_party_firewall_missing_subnet_violation() :: %{
"AvailabilityZone" => String.t() | atom(),
"TargetViolationReason" => String.t() | atom(),
"VPC" => String.t() | atom(),
"ViolationTarget" => String.t() | atom()
}
"""
@type third_party_firewall_missing_subnet_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_resource_set_response() :: %{
"ResourceSet" => resource_set(),
"ResourceSetArn" => String.t() | atom()
}
"""
@type get_resource_set_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
associate_third_party_firewall_response() :: %{
"ThirdPartyFirewallStatus" => list(any())
}
"""
@type associate_third_party_firewall_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_resource_set_resources_response() :: %{
"Items" => list(resource()),
"NextToken" => String.t() | atom()
}
"""
@type list_resource_set_resources_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## 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(),
"InvalidNetworkAclEntriesViolation" => invalid_network_acl_entries_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(),
"WebACLHasIncompatibleConfigurationViolation" => web_acl_has_incompatible_configuration_violation(),
"WebACLHasOutOfScopeResourcesViolation" => web_acl_has_out_of_scope_resources_violation()
}
"""
@type resource_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_policy_response() :: %{
"Policy" => policy(),
"PolicyArn" => String.t() | atom()
}
"""
@type put_policy_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_acl_entry_set() :: %{
"FirstEntries" => list(network_acl_entry()),
"ForceRemediateForFirstEntries" => boolean(),
"ForceRemediateForLastEntries" => boolean(),
"LastEntries" => list(network_acl_entry())
}
"""
@type network_acl_entry_set() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_resource_set_request() :: %{
required("Identifier") => String.t() | atom()
}
"""
@type get_resource_set_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag() :: %{
"Key" => String.t() | atom(),
"Value" => String.t() | atom()
}
"""
@type tag() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_policy_request() :: %{
optional("TagList") => list(tag()),
required("Policy") => policy()
}
"""
@type put_policy_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
web_acl_has_out_of_scope_resources_violation() :: %{
"OutOfScopeResourceList" => list(String.t() | atom()),
"WebACLArn" => String.t() | atom()
}
"""
@type web_acl_has_out_of_scope_resources_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
stateless_rule_group() :: %{
"Priority" => integer(),
"ResourceId" => String.t() | atom(),
"RuleGroupName" => String.t() | atom()
}
"""
@type stateless_rule_group() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
limit_exceeded_exception() :: %{
"Message" => String.t() | atom()
}
"""
@type limit_exceeded_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_discovered_resources_response() :: %{
"Items" => list(discovered_resource()),
"NextToken" => String.t() | atom()
}
"""
@type list_discovered_resources_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_policy_response() :: %{
"Policy" => policy(),
"PolicyArn" => String.t() | atom()
}
"""
@type get_policy_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
remediation_action_with_order() :: %{
"Order" => integer(),
"RemediationAction" => remediation_action()
}
"""
@type remediation_action_with_order() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_protection_status_request() :: %{
optional("EndTime") => non_neg_integer(),
optional("MaxResults") => integer(),
optional("MemberAccountId") => String.t() | atom(),
optional("NextToken") => String.t() | atom(),
optional("StartTime") => non_neg_integer(),
required("PolicyId") => String.t() | atom()
}
"""
@type get_protection_status_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
aws_vpc_security_group_violation() :: %{
"PartialMatches" => list(partial_match()),
"PossibleSecurityGroupRemediationActions" => list(security_group_remediation_action()),
"ViolationTarget" => String.t() | atom(),
"ViolationTargetDescription" => String.t() | atom()
}
"""
@type aws_vpc_security_group_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
policy_compliance_status() :: %{
"EvaluationResults" => list(evaluation_result()),
"IssueInfoMap" => map(),
"LastUpdated" => non_neg_integer(),
"MemberAccount" => String.t() | atom(),
"PolicyId" => String.t() | atom(),
"PolicyName" => String.t() | atom(),
"PolicyOwner" => String.t() | atom()
}
"""
@type policy_compliance_status() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_protocols_list_request() :: %{
required("ListId") => String.t() | atom()
}
"""
@type delete_protocols_list_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_compliance_detail_response() :: %{
"PolicyComplianceDetail" => policy_compliance_detail()
}
"""
@type get_compliance_detail_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_black_hole_route_detected_violation() :: %{
"RouteTableId" => String.t() | atom(),
"ViolatingRoutes" => list(route()),
"ViolationTarget" => String.t() | atom(),
"VpcId" => String.t() | atom()
}
"""
@type network_firewall_black_hole_route_detected_violation() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
ec2_delete_route_action() :: %{
"Description" => String.t() | atom(),
"DestinationCidrBlock" => String.t() | atom(),
"DestinationIpv6CidrBlock" => String.t() | atom(),
"DestinationPrefixListId" => String.t() | atom(),
"RouteTableId" => action_target()
}
"""
@type ec2_delete_route_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
third_party_firewall_policy() :: %{
"FirewallDeploymentModel" => list(any())
}
"""
@type third_party_firewall_policy() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
apps_list_data_summary() :: %{
"AppsList" => list(app()),
"ListArn" => String.t() | atom(),
"ListId" => String.t() | atom(),
"ListName" => String.t() | atom()
}
"""
@type apps_list_data_summary() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_network_acl_entries_action() :: %{
"Description" => String.t() | atom(),
"FMSCanRemediate" => boolean(),
"NetworkAclEntriesToBeCreated" => list(entry_description()),
"NetworkAclId" => action_target()
}
"""
@type create_network_acl_entries_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_acl_port_range() :: %{
"From" => integer(),
"To" => integer()
}
"""
@type network_acl_port_range() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_discovered_resources_request() :: %{
optional("MaxResults") => integer(),
optional("NextToken") => String.t() | atom(),
required("MemberAccountIds") => list(String.t() | atom()),
required("ResourceType") => String.t() | atom()
}
"""
@type list_discovered_resources_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
associate_admin_account_request() :: %{
required("AdminAccount") => String.t() | atom()
}
"""
@type associate_admin_account_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
dns_rule_group_priority_conflict_violation() :: %{
"ConflictingPolicyId" => String.t() | atom(),
"ConflictingPriority" => integer(),
"UnavailablePriorities" => list(integer()),
"ViolationTarget" => String.t() | atom(),
"ViolationTargetDescription" => String.t() | atom()
}
"""
@type dns_rule_group_priority_conflict_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
admin_scope() :: %{
"AccountScope" => account_scope(),
"OrganizationalUnitScope" => organizational_unit_scope(),
"PolicyTypeScope" => policy_type_scope(),
"RegionScope" => region_scope()
}
"""
@type admin_scope() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
third_party_firewall_firewall_policy() :: %{
"FirewallPolicyId" => String.t() | atom(),
"FirewallPolicyName" => String.t() | atom()
}
"""
@type third_party_firewall_firewall_policy() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
expected_route() :: %{
"AllowedTargets" => list(String.t() | atom()),
"ContributingSubnets" => list(String.t() | atom()),
"IpV4Cidr" => String.t() | atom(),
"IpV6Cidr" => String.t() | atom(),
"PrefixListId" => String.t() | atom(),
"RouteTableId" => String.t() | atom()
}
"""
@type expected_route() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_compliance_detail_request() :: %{
required("MemberAccount") => String.t() | atom(),
required("PolicyId") => String.t() | atom()
}
"""
@type get_compliance_detail_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
security_group_remediation_action() :: %{
"Description" => String.t() | atom(),
"IsDefaultAction" => boolean(),
"RemediationActionType" => list(any()),
"RemediationResult" => security_group_rule_description()
}
"""
@type security_group_remediation_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_apps_list_request() :: %{
optional("TagList") => list(tag()),
required("AppsList") => apps_list_data()
}
"""
@type put_apps_list_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
protocols_list_data_summary() :: %{
"ListArn" => String.t() | atom(),
"ListId" => String.t() | atom(),
"ListName" => String.t() | atom(),
"ProtocolsList" => list(String.t() | atom())
}
"""
@type protocols_list_data_summary() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_third_party_firewall_association_status_request() :: %{
required("ThirdPartyFirewall") => list(any())
}
"""
@type get_third_party_firewall_association_status_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_apps_lists_request() :: %{
optional("DefaultLists") => boolean(),
optional("NextToken") => String.t() | atom(),
required("MaxResults") => integer()
}
"""
@type list_apps_lists_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_policy_modified_violation() :: %{
"CurrentPolicyDescription" => network_firewall_policy_description(),
"ExpectedPolicyDescription" => network_firewall_policy_description(),
"ViolationTarget" => String.t() | atom()
}
"""
@type network_firewall_policy_modified_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
stateful_rule_group() :: %{
"Override" => network_firewall_stateful_rule_group_override(),
"Priority" => integer(),
"ResourceId" => String.t() | atom(),
"RuleGroupName" => String.t() | atom()
}
"""
@type stateful_rule_group() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_notification_channel_response() :: %{
"SnsRoleName" => String.t() | atom(),
"SnsTopicArn" => String.t() | atom()
}
"""
@type get_notification_channel_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_missing_expected_routes_violation() :: %{
"ExpectedRoutes" => list(expected_route()),
"ViolationTarget" => String.t() | atom(),
"VpcId" => String.t() | atom()
}
"""
@type network_firewall_missing_expected_routes_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
region_scope() :: %{
"AllRegionsEnabled" => boolean(),
"Regions" => list(String.t() | atom())
}
"""
@type region_scope() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_protocols_list_request() :: %{
optional("TagList") => list(tag()),
required("ProtocolsList") => protocols_list_data()
}
"""
@type put_protocols_list_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
entry_violation() :: %{
"ActualEvaluationOrder" => String.t() | atom(),
"EntriesWithConflicts" => list(entry_description()),
"EntryAtExpectedEvaluationOrder" => entry_description(),
"EntryViolationReasons" => list(list(any())()),
"ExpectedEntry" => entry_description(),
"ExpectedEvaluationOrder" => String.t() | atom()
}
"""
@type entry_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_admin_accounts_for_organization_request() :: %{
optional("MaxResults") => integer(),
optional("NextToken") => String.t() | atom()
}
"""
@type list_admin_accounts_for_organization_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_acl_icmp_type_code() :: %{
"Code" => integer(),
"Type" => integer()
}
"""
@type network_acl_icmp_type_code() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_policy_request() :: %{
required("PolicyId") => String.t() | atom()
}
"""
@type get_policy_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_third_party_firewall_firewall_policies_request() :: %{
optional("NextToken") => String.t() | atom(),
required("MaxResults") => integer(),
required("ThirdPartyFirewall") => list(any())
}
"""
@type list_third_party_firewall_firewall_policies_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
resource_not_found_exception() :: %{
"Message" => String.t() | atom()
}
"""
@type resource_not_found_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_invalid_route_configuration_violation() :: %{
"ActualFirewallEndpoint" => String.t() | atom(),
"ActualFirewallSubnetId" => String.t() | atom(),
"ActualFirewallSubnetRoutes" => list(route()),
"ActualInternetGatewayRoutes" => list(route()),
"AffectedSubnets" => list(String.t() | atom()),
"CurrentFirewallSubnetRouteTable" => String.t() | atom(),
"CurrentInternetGatewayRouteTable" => String.t() | atom(),
"ExpectedFirewallEndpoint" => String.t() | atom(),
"ExpectedFirewallSubnetId" => String.t() | atom(),
"ExpectedFirewallSubnetRoutes" => list(expected_route()),
"ExpectedInternetGatewayRoutes" => list(expected_route()),
"InternetGatewayId" => String.t() | atom(),
"IsRouteTableUsedInDifferentAZ" => boolean(),
"RouteTableId" => String.t() | atom(),
"ViolatingRoute" => route(),
"VpcId" => String.t() | atom()
}
"""
@type network_firewall_invalid_route_configuration_violation() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
violation_detail() :: %{
"MemberAccount" => String.t() | atom(),
"PolicyId" => String.t() | atom(),
"ResourceDescription" => String.t() | atom(),
"ResourceId" => String.t() | atom(),
"ResourceTags" => list(tag()),
"ResourceType" => String.t() | atom(),
"ResourceViolations" => list(resource_violation())
}
"""
@type violation_detail() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
remediation_action() :: %{
"CreateNetworkAclAction" => create_network_acl_action(),
"CreateNetworkAclEntriesAction" => create_network_acl_entries_action(),
"DeleteNetworkAclEntriesAction" => delete_network_acl_entries_action(),
"Description" => String.t() | atom(),
"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(),
"ReplaceNetworkAclAssociationAction" => replace_network_acl_association_action()
}
"""
@type remediation_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_compliance_status_request() :: %{
optional("MaxResults") => integer(),
optional("NextToken") => String.t() | atom(),
required("PolicyId") => String.t() | atom()
}
"""
@type list_compliance_status_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag_resource_request() :: %{
required("ResourceArn") => String.t() | atom(),
required("TagList") => list(tag())
}
"""
@type tag_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_unexpected_firewall_routes_violation() :: %{
"FirewallEndpoint" => String.t() | atom(),
"FirewallSubnetId" => String.t() | atom(),
"RouteTableId" => String.t() | atom(),
"ViolatingRoutes" => list(route()),
"VpcId" => String.t() | atom()
}
"""
@type network_firewall_unexpected_firewall_routes_violation() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
delete_network_acl_entries_action() :: %{
"Description" => String.t() | atom(),
"FMSCanRemediate" => boolean(),
"NetworkAclEntriesToBeDeleted" => list(entry_description()),
"NetworkAclId" => action_target()
}
"""
@type delete_network_acl_entries_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_disassociate_resource_response() :: %{
"FailedItems" => list(failed_item()),
"ResourceSetIdentifier" => String.t() | atom()
}
"""
@type batch_disassociate_resource_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
discovered_resource() :: %{
"AccountId" => String.t() | atom(),
"Name" => String.t() | atom(),
"Type" => String.t() | atom(),
"URI" => String.t() | atom()
}
"""
@type discovered_resource() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
web_acl_has_incompatible_configuration_violation() :: %{
"Description" => String.t() | atom(),
"WebACLArn" => String.t() | atom()
}
"""
@type web_acl_has_incompatible_configuration_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
resource_tag() :: %{
"Key" => String.t() | atom(),
"Value" => String.t() | atom()
}
"""
@type resource_tag() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_policy_request() :: %{
optional("DeleteAllPolicyResources") => boolean(),
required("PolicyId") => String.t() | atom()
}
"""
@type delete_policy_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
aws_ec2_network_interface_violation() :: %{
"ViolatingSecurityGroups" => list(String.t() | atom()),
"ViolationTarget" => String.t() | atom()
}
"""
@type aws_ec2_network_interface_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
partial_match() :: %{
"Reference" => String.t() | atom(),
"TargetViolationReasons" => list(String.t() | atom())
}
"""
@type partial_match() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag_resource_response() :: %{}
"""
@type tag_resource_response() :: %{}
@typedoc """
## Example:
delete_notification_channel_request() :: %{}
"""
@type delete_notification_channel_request() :: %{}
@typedoc """
## Example:
network_firewall_missing_firewall_violation() :: %{
"AvailabilityZone" => String.t() | atom(),
"TargetViolationReason" => String.t() | atom(),
"VPC" => String.t() | atom(),
"ViolationTarget" => String.t() | atom()
}
"""
@type network_firewall_missing_firewall_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
disassociate_admin_account_request() :: %{}
"""
@type disassociate_admin_account_request() :: %{}
@typedoc """
## Example:
get_admin_account_request() :: %{}
"""
@type get_admin_account_request() :: %{}
@typedoc """
## Example:
policy_option() :: %{
"NetworkAclCommonPolicy" => network_acl_common_policy(),
"NetworkFirewallPolicy" => network_firewall_policy(),
"ThirdPartyFirewallPolicy" => third_party_firewall_policy()
}
"""
@type policy_option() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
app() :: %{
"AppName" => String.t() | atom(),
"Port" => float(),
"Protocol" => String.t() | atom()
}
"""
@type app() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
entry_description() :: %{
"EntryDetail" => network_acl_entry(),
"EntryRuleNumber" => integer(),
"EntryType" => list(any())
}
"""
@type entry_description() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_third_party_firewall_association_status_response() :: %{
"MarketplaceOnboardingStatus" => list(any()),
"ThirdPartyFirewallStatus" => list(any())
}
"""
@type get_third_party_firewall_association_status_response() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
possible_remediation_actions() :: %{
"Actions" => list(possible_remediation_action()),
"Description" => String.t() | atom()
}
"""
@type possible_remediation_actions() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
untag_resource_response() :: %{}
"""
@type untag_resource_response() :: %{}
@typedoc """
## Example:
create_network_acl_action() :: %{
"Description" => String.t() | atom(),
"FMSCanRemediate" => boolean(),
"Vpc" => action_target()
}
"""
@type create_network_acl_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
possible_remediation_action() :: %{
"Description" => String.t() | atom(),
"IsDefaultAction" => boolean(),
"OrderedRemediationActions" => list(remediation_action_with_order())
}
"""
@type possible_remediation_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_notification_channel_request() :: %{}
"""
@type get_notification_channel_request() :: %{}
@typedoc """
## Example:
ec2_create_route_action() :: %{
"Description" => String.t() | atom(),
"DestinationCidrBlock" => String.t() | atom(),
"DestinationIpv6CidrBlock" => String.t() | atom(),
"DestinationPrefixListId" => String.t() | atom(),
"GatewayId" => action_target(),
"RouteTableId" => action_target(),
"VpcEndpointId" => action_target()
}
"""
@type ec2_create_route_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_stateful_rule_group_override() :: %{
"Action" => list(any())
}
"""
@type network_firewall_stateful_rule_group_override() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
third_party_firewall_missing_expected_route_table_violation() :: %{
"AvailabilityZone" => String.t() | atom(),
"CurrentRouteTable" => String.t() | atom(),
"ExpectedRouteTable" => String.t() | atom(),
"VPC" => String.t() | atom(),
"ViolationTarget" => String.t() | atom()
}
"""
@type third_party_firewall_missing_expected_route_table_violation() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
untag_resource_request() :: %{
required("ResourceArn") => String.t() | atom(),
required("TagKeys") => list(String.t() | atom())
}
"""
@type untag_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
associate_third_party_firewall_request() :: %{
required("ThirdPartyFirewall") => list(any())
}
"""
@type associate_third_party_firewall_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_internet_traffic_not_inspected_violation() :: %{
"ActualFirewallSubnetRoutes" => list(route()),
"ActualInternetGatewayRoutes" => list(route()),
"CurrentFirewallSubnetRouteTable" => String.t() | atom(),
"CurrentInternetGatewayRouteTable" => String.t() | atom(),
"ExpectedFirewallEndpoint" => String.t() | atom(),
"ExpectedFirewallSubnetRoutes" => list(expected_route()),
"ExpectedInternetGatewayRoutes" => list(expected_route()),
"FirewallSubnetId" => String.t() | atom(),
"InternetGatewayId" => String.t() | atom(),
"IsRouteTableUsedInDifferentAZ" => boolean(),
"RouteTableId" => String.t() | atom(),
"SubnetAvailabilityZone" => String.t() | atom(),
"SubnetId" => String.t() | atom(),
"ViolatingRoutes" => list(route()),
"VpcId" => String.t() | atom()
}
"""
@type network_firewall_internet_traffic_not_inspected_violation() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
list_resource_sets_request() :: %{
optional("MaxResults") => integer(),
optional("NextToken") => String.t() | atom()
}
"""
@type list_resource_sets_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
evaluation_result() :: %{
"ComplianceStatus" => list(any()),
"EvaluationLimitExceeded" => boolean(),
"ViolatorCount" => float()
}
"""
@type evaluation_result() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_associate_resource_response() :: %{
"FailedItems" => list(failed_item()),
"ResourceSetIdentifier" => String.t() | atom()
}
"""
@type batch_associate_resource_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_admins_managing_account_response() :: %{
"AdminAccounts" => list(String.t() | atom()),
"NextToken" => String.t() | atom()
}
"""
@type list_admins_managing_account_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
ec2_associate_route_table_action() :: %{
"Description" => String.t() | atom(),
"GatewayId" => action_target(),
"RouteTableId" => action_target(),
"SubnetId" => action_target()
}
"""
@type ec2_associate_route_table_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_resource_set_request() :: %{
optional("TagList") => list(tag()),
required("ResourceSet") => resource_set()
}
"""
@type put_resource_set_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
ec2_create_route_table_action() :: %{
"Description" => String.t() | atom(),
"VpcId" => action_target()
}
"""
@type ec2_create_route_table_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_admin_account_request() :: %{
optional("AdminScope") => admin_scope(),
required("AdminAccount") => String.t() | atom()
}
"""
@type put_admin_account_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_admins_managing_account_request() :: %{
optional("MaxResults") => integer(),
optional("NextToken") => String.t() | atom()
}
"""
@type list_admins_managing_account_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_apps_list_response() :: %{
"AppsList" => apps_list_data(),
"AppsListArn" => String.t() | atom()
}
"""
@type get_apps_list_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
invalid_type_exception() :: %{
"Message" => String.t() | atom()
}
"""
@type invalid_type_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
action_target() :: %{
"Description" => String.t() | atom(),
"ResourceId" => String.t() | atom()
}
"""
@type action_target() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_policy() :: %{
"FirewallDeploymentModel" => list(any())
}
"""
@type network_firewall_policy() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
protocols_list_data() :: %{
"CreateTime" => non_neg_integer(),
"LastUpdateTime" => non_neg_integer(),
"ListId" => String.t() | atom(),
"ListName" => String.t() | atom(),
"ListUpdateToken" => String.t() | atom(),
"PreviousProtocolsList" => map(),
"ProtocolsList" => list(String.t() | atom())
}
"""
@type protocols_list_data() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
aws_ec2_instance_violation() :: %{
"AwsEc2NetworkInterfaceViolations" => list(aws_ec2_network_interface_violation()),
"ViolationTarget" => String.t() | atom()
}
"""
@type aws_ec2_instance_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_apps_list_response() :: %{
"AppsList" => apps_list_data(),
"AppsListArn" => String.t() | atom()
}
"""
@type put_apps_list_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
organizational_unit_scope() :: %{
"AllOrganizationalUnitsEnabled" => boolean(),
"ExcludeSpecifiedOrganizationalUnits" => boolean(),
"OrganizationalUnits" => list(String.t() | atom())
}
"""
@type organizational_unit_scope() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_tags_for_resource_response() :: %{
"TagList" => list(tag())
}
"""
@type list_tags_for_resource_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
apps_list_data() :: %{
"AppsList" => list(app()),
"CreateTime" => non_neg_integer(),
"LastUpdateTime" => non_neg_integer(),
"ListId" => String.t() | atom(),
"ListName" => String.t() | atom(),
"ListUpdateToken" => String.t() | atom(),
"PreviousAppsList" => map()
}
"""
@type apps_list_data() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
admin_account_summary() :: %{
"AdminAccount" => String.t() | atom(),
"DefaultAdmin" => boolean(),
"Status" => list(any())
}
"""
@type admin_account_summary() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
resource_set() :: %{
"Description" => String.t() | atom(),
"Id" => String.t() | atom(),
"LastUpdateTime" => non_neg_integer(),
"Name" => String.t() | atom(),
"ResourceSetStatus" => list(any()),
"ResourceTypeList" => list(String.t() | atom()),
"UpdateToken" => String.t() | atom()
}
"""
@type resource_set() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_unexpected_gateway_routes_violation() :: %{
"GatewayId" => String.t() | atom(),
"RouteTableId" => String.t() | atom(),
"ViolatingRoutes" => list(route()),
"VpcId" => String.t() | atom()
}
"""
@type network_firewall_unexpected_gateway_routes_violation() :: %{
(String.t() | atom()) => any()
}
@typedoc """
## Example:
security_group_rule_description() :: %{
"FromPort" => float(),
"IPV4Range" => String.t() | atom(),
"IPV6Range" => String.t() | atom(),
"PrefixListId" => String.t() | atom(),
"Protocol" => String.t() | atom(),
"ToPort" => float()
}
"""
@type security_group_rule_description() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
invalid_input_exception() :: %{
"Message" => String.t() | atom()
}
"""
@type invalid_input_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_protocols_lists_response() :: %{
"NextToken" => String.t() | atom(),
"ProtocolsLists" => list(protocols_list_data_summary())
}
"""
@type list_protocols_lists_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_protocols_list_response() :: %{
"ProtocolsList" => protocols_list_data(),
"ProtocolsListArn" => String.t() | atom()
}
"""
@type get_protocols_list_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_compliance_status_response() :: %{
"NextToken" => String.t() | atom(),
"PolicyComplianceStatusList" => list(policy_compliance_status())
}
"""
@type list_compliance_status_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_acl_entry() :: %{
"CidrBlock" => String.t() | atom(),
"Egress" => boolean(),
"IcmpTypeCode" => network_acl_icmp_type_code(),
"Ipv6CidrBlock" => String.t() | atom(),
"PortRange" => network_acl_port_range(),
"Protocol" => String.t() | atom(),
"RuleAction" => list(any())
}
"""
@type network_acl_entry() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
firewall_subnet_missing_vpcendpoint_violation() :: %{
"FirewallSubnetId" => String.t() | atom(),
"SubnetAvailabilityZone" => String.t() | atom(),
"SubnetAvailabilityZoneId" => String.t() | atom(),
"VpcId" => String.t() | atom()
}
"""
@type firewall_subnet_missing_vpcendpoint_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_member_accounts_request() :: %{
optional("MaxResults") => integer(),
optional("NextToken") => String.t() | atom()
}
"""
@type list_member_accounts_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
third_party_firewall_missing_firewall_violation() :: %{
"AvailabilityZone" => String.t() | atom(),
"TargetViolationReason" => String.t() | atom(),
"VPC" => String.t() | atom(),
"ViolationTarget" => String.t() | atom()
}
"""
@type third_party_firewall_missing_firewall_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_apps_list_request() :: %{
required("ListId") => String.t() | atom()
}
"""
@type delete_apps_list_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_protection_status_response() :: %{
"AdminAccountId" => String.t() | atom(),
"Data" => String.t() | atom(),
"NextToken" => String.t() | atom(),
"ServiceType" => list(any())
}
"""
@type get_protection_status_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
stateful_engine_options() :: %{
"RuleOrder" => list(any()),
"StreamExceptionPolicy" => list(any())
}
"""
@type stateful_engine_options() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
replace_network_acl_association_action() :: %{
"AssociationId" => action_target(),
"Description" => String.t() | atom(),
"FMSCanRemediate" => boolean(),
"NetworkAclId" => action_target()
}
"""
@type replace_network_acl_association_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_resource_sets_response() :: %{
"NextToken" => String.t() | atom(),
"ResourceSets" => list(resource_set_summary())
}
"""
@type list_resource_sets_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_resource_set_response() :: %{
"ResourceSet" => resource_set(),
"ResourceSetArn" => String.t() | atom()
}
"""
@type put_resource_set_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
ec2_copy_route_table_action() :: %{
"Description" => String.t() | atom(),
"RouteTableId" => action_target(),
"VpcId" => action_target()
}
"""
@type ec2_copy_route_table_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_disassociate_resource_request() :: %{
required("Items") => list(String.t() | atom()),
required("ResourceSetIdentifier") => String.t() | atom()
}
"""
@type batch_disassociate_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_resource_set_request() :: %{
required("Identifier") => String.t() | atom()
}
"""
@type delete_resource_set_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_violation_details_response() :: %{
"ViolationDetail" => violation_detail()
}
"""
@type get_violation_details_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
internal_error_exception() :: %{
"Message" => String.t() | atom()
}
"""
@type internal_error_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
policy_compliance_detail() :: %{
"EvaluationLimitExceeded" => boolean(),
"ExpiredAt" => non_neg_integer(),
"IssueInfoMap" => map(),
"MemberAccount" => String.t() | atom(),
"PolicyId" => String.t() | atom(),
"PolicyOwner" => String.t() | atom(),
"Violators" => list(compliance_violator())
}
"""
@type policy_compliance_detail() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
resource_set_summary() :: %{
"Description" => String.t() | atom(),
"Id" => String.t() | atom(),
"LastUpdateTime" => non_neg_integer(),
"Name" => String.t() | atom(),
"ResourceSetStatus" => list(any())
}
"""
@type resource_set_summary() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
firewall_subnet_is_out_of_scope_violation() :: %{
"FirewallSubnetId" => String.t() | atom(),
"SubnetAvailabilityZone" => String.t() | atom(),
"SubnetAvailabilityZoneId" => String.t() | atom(),
"VpcEndpointId" => String.t() | atom(),
"VpcId" => String.t() | atom()
}
"""
@type firewall_subnet_is_out_of_scope_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_notification_channel_request() :: %{
required("SnsRoleName") => String.t() | atom(),
required("SnsTopicArn") => String.t() | atom()
}
"""
@type put_notification_channel_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_acl_common_policy() :: %{
"NetworkAclEntrySet" => network_acl_entry_set()
}
"""
@type network_acl_common_policy() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
put_protocols_list_response() :: %{
"ProtocolsList" => protocols_list_data(),
"ProtocolsListArn" => String.t() | atom()
}
"""
@type put_protocols_list_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_missing_subnet_violation() :: %{
"AvailabilityZone" => String.t() | atom(),
"TargetViolationReason" => String.t() | atom(),
"VPC" => String.t() | atom(),
"ViolationTarget" => String.t() | atom()
}
"""
@type network_firewall_missing_subnet_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
dns_duplicate_rule_group_violation() :: %{
"ViolationTarget" => String.t() | atom(),
"ViolationTargetDescription" => String.t() | atom()
}
"""
@type dns_duplicate_rule_group_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_admin_accounts_for_organization_response() :: %{
"AdminAccounts" => list(admin_account_summary()),
"NextToken" => String.t() | atom()
}
"""
@type list_admin_accounts_for_organization_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
dns_rule_group_limit_exceeded_violation() :: %{
"NumberOfRuleGroupsAlreadyAssociated" => integer(),
"ViolationTarget" => String.t() | atom(),
"ViolationTargetDescription" => String.t() | atom()
}
"""
@type dns_rule_group_limit_exceeded_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
f_m_s_policy_update_firewall_creation_config_action() :: %{
"Description" => String.t() | atom(),
"FirewallCreationConfig" => String.t() | atom()
}
"""
@type f_m_s_policy_update_firewall_creation_config_action() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
disassociate_third_party_firewall_response() :: %{
"ThirdPartyFirewallStatus" => list(any())
}
"""
@type disassociate_third_party_firewall_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
resource() :: %{
"AccountId" => String.t() | atom(),
"URI" => String.t() | atom()
}
"""
@type resource() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
compliance_violator() :: %{
"Metadata" => map(),
"ResourceId" => String.t() | atom(),
"ResourceType" => String.t() | atom(),
"ViolationReason" => list(any())
}
"""
@type compliance_violator() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_violation_details_request() :: %{
required("MemberAccount") => String.t() | atom(),
required("PolicyId") => String.t() | atom(),
required("ResourceId") => String.t() | atom(),
required("ResourceType") => String.t() | atom()
}
"""
@type get_violation_details_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_policies_response() :: %{
"NextToken" => String.t() | atom(),
"PolicyList" => list(policy_summary())
}
"""
@type list_policies_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_resource_set_resources_request() :: %{
optional("MaxResults") => integer(),
optional("NextToken") => String.t() | atom(),
required("Identifier") => String.t() | atom()
}
"""
@type list_resource_set_resources_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
failed_item() :: %{
"Reason" => list(any()),
"URI" => String.t() | atom()
}
"""
@type failed_item() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
account_scope() :: %{
"Accounts" => list(String.t() | atom()),
"AllAccountsEnabled" => boolean(),
"ExcludeSpecifiedAccounts" => boolean()
}
"""
@type account_scope() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
disassociate_third_party_firewall_request() :: %{
required("ThirdPartyFirewall") => list(any())
}
"""
@type disassociate_third_party_firewall_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
policy_summary() :: %{
"DeleteUnusedFMManagedResources" => boolean(),
"PolicyArn" => String.t() | atom(),
"PolicyId" => String.t() | atom(),
"PolicyName" => String.t() | atom(),
"PolicyStatus" => list(any()),
"RemediationEnabled" => boolean(),
"ResourceType" => String.t() | atom(),
"SecurityServiceType" => list(any())
}
"""
@type policy_summary() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_admin_scope_response() :: %{
"AdminScope" => admin_scope(),
"Status" => list(any())
}
"""
@type get_admin_scope_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_policy_description() :: %{
"StatefulDefaultActions" => list(String.t() | atom()),
"StatefulEngineOptions" => stateful_engine_options(),
"StatefulRuleGroups" => list(stateful_rule_group()),
"StatelessCustomActions" => list(String.t() | atom()),
"StatelessDefaultActions" => list(String.t() | atom()),
"StatelessFragmentDefaultActions" => list(String.t() | atom()),
"StatelessRuleGroups" => list(stateless_rule_group())
}
"""
@type network_firewall_policy_description() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
security_service_policy_data() :: %{
"ManagedServiceData" => String.t() | atom(),
"PolicyOption" => policy_option(),
"Type" => list(any())
}
"""
@type security_service_policy_data() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_tags_for_resource_request() :: %{
required("ResourceArn") => String.t() | atom()
}
"""
@type list_tags_for_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
network_firewall_missing_expected_r_t_violation() :: %{
"AvailabilityZone" => String.t() | atom(),
"CurrentRouteTable" => String.t() | atom(),
"ExpectedRouteTable" => String.t() | atom(),
"VPC" => String.t() | atom(),
"ViolationTarget" => String.t() | atom()
}
"""
@type network_firewall_missing_expected_r_t_violation() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_protocols_lists_request() :: %{
optional("DefaultLists") => boolean(),
optional("NextToken") => String.t() | atom(),
required("MaxResults") => integer()
}
"""
@type list_protocols_lists_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
batch_associate_resource_request() :: %{
required("Items") => list(String.t() | atom()),
required("ResourceSetIdentifier") => String.t() | atom()
}
"""
@type batch_associate_resource_request() :: %{(String.t() | atom()) => any()}
@type associate_admin_account_errors() ::
internal_error_exception()
| invalid_input_exception()
| resource_not_found_exception()
| limit_exceeded_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()
| invalid_input_exception()
| resource_not_found_exception()
| limit_exceeded_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()
| invalid_input_exception()
| resource_not_found_exception()
| limit_exceeded_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()
| invalid_input_exception()
| resource_not_found_exception()
| limit_exceeded_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()
| resource_not_found_exception()
| limit_exceeded_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()
| resource_not_found_exception()
| limit_exceeded_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()
| resource_not_found_exception()
| limit_exceeded_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()
| invalid_input_exception()
| limit_exceeded_exception()
| invalid_operation_exception()
@type put_apps_list_errors() ::
internal_error_exception()
| invalid_input_exception()
| resource_not_found_exception()
| limit_exceeded_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()
| invalid_input_exception()
| invalid_type_exception()
| resource_not_found_exception()
| limit_exceeded_exception()
| invalid_operation_exception()
@type put_protocols_list_errors() ::
internal_error_exception()
| invalid_input_exception()
| resource_not_found_exception()
| limit_exceeded_exception()
| invalid_operation_exception()
@type put_resource_set_errors() ::
internal_error_exception()
| invalid_input_exception()
| limit_exceeded_exception()
| invalid_operation_exception()
@type tag_resource_errors() ::
internal_error_exception()
| invalid_input_exception()
| resource_not_found_exception()
| limit_exceeded_exception()
| invalid_operation_exception()
@type untag_resource_errors() ::
internal_error_exception()
| invalid_input_exception()
| resource_not_found_exception()
| invalid_operation_exception()
def metadata do
%{
api_version: "2018-01-01",
content_type: "application/x-amz-json-1.1",
credential_scope: nil,
endpoint_prefix: "fms",
global?: false,
hostname: nil,
protocol: "json",
service_id: "FMS",
signature_version: "v4",
signing_name: "fms",
target_prefix: "AWSFMS_20180101"
}
end
@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(map(), associate_admin_account_request(), list()) ::
{:ok, nil, any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, associate_admin_account_errors()}
def associate_admin_account(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "AssociateAdminAccount", input, options)
end
@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(map(), associate_third_party_firewall_request(), list()) ::
{:ok, associate_third_party_firewall_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, associate_third_party_firewall_errors()}
def associate_third_party_firewall(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "AssociateThirdPartyFirewall", input, options)
end
@doc """
Associate resources to a Firewall Manager resource set.
"""
@spec batch_associate_resource(map(), batch_associate_resource_request(), list()) ::
{:ok, batch_associate_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, batch_associate_resource_errors()}
def batch_associate_resource(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "BatchAssociateResource", input, options)
end
@doc """
Disassociates resources from a Firewall Manager resource set.
"""
@spec batch_disassociate_resource(map(), batch_disassociate_resource_request(), list()) ::
{:ok, batch_disassociate_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, batch_disassociate_resource_errors()}
def batch_disassociate_resource(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "BatchDisassociateResource", input, options)
end
@doc """
Permanently deletes an Firewall Manager applications list.
"""
@spec delete_apps_list(map(), delete_apps_list_request(), list()) ::
{:ok, nil, any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_apps_list_errors()}
def delete_apps_list(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "DeleteAppsList", input, options)
end
@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(map(), delete_notification_channel_request(), list()) ::
{:ok, nil, any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_notification_channel_errors()}
def delete_notification_channel(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "DeleteNotificationChannel", input, options)
end
@doc """
Permanently deletes an Firewall Manager policy.
"""
@spec delete_policy(map(), delete_policy_request(), list()) ::
{:ok, nil, any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_policy_errors()}
def delete_policy(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "DeletePolicy", input, options)
end
@doc """
Permanently deletes an Firewall Manager protocols list.
"""
@spec delete_protocols_list(map(), delete_protocols_list_request(), list()) ::
{:ok, nil, any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_protocols_list_errors()}
def delete_protocols_list(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "DeleteProtocolsList", input, options)
end
@doc """
Deletes the specified `ResourceSet`.
"""
@spec delete_resource_set(map(), delete_resource_set_request(), list()) ::
{:ok, nil, any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_resource_set_errors()}
def delete_resource_set(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "DeleteResourceSet", input, options)
end
@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(map(), disassociate_admin_account_request(), list()) ::
{:ok, nil, any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, disassociate_admin_account_errors()}
def disassociate_admin_account(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "DisassociateAdminAccount", input, options)
end
@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(
map(),
disassociate_third_party_firewall_request(),
list()
) ::
{:ok, disassociate_third_party_firewall_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, disassociate_third_party_firewall_errors()}
def disassociate_third_party_firewall(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "DisassociateThirdPartyFirewall", input, options)
end
@doc """
Returns the Organizations account that is associated with Firewall Manager
as the Firewall Manager default administrator.
"""
@spec get_admin_account(map(), get_admin_account_request(), list()) ::
{:ok, get_admin_account_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_admin_account_errors()}
def get_admin_account(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetAdminAccount", input, options)
end
@doc """
Returns information about the specified account's administrative scope.
The administrative scope defines the resources that an Firewall Manager
administrator can manage.
"""
@spec get_admin_scope(map(), get_admin_scope_request(), list()) ::
{:ok, get_admin_scope_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_admin_scope_errors()}
def get_admin_scope(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetAdminScope", input, options)
end
@doc """
Returns information about the specified Firewall Manager applications list.
"""
@spec get_apps_list(map(), get_apps_list_request(), list()) ::
{:ok, get_apps_list_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_apps_list_errors()}
def get_apps_list(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetAppsList", input, options)
end
@doc """
Returns detailed compliance information about the specified member account.
Details
include resources that are in and out of compliance with the specified policy.
The reasons for resources being considered compliant depend on the Firewall
Manager policy type.
"""
@spec get_compliance_detail(map(), get_compliance_detail_request(), list()) ::
{:ok, get_compliance_detail_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_compliance_detail_errors()}
def get_compliance_detail(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetComplianceDetail", input, options)
end
@doc """
Information
about the Amazon Simple Notification Service (SNS) topic that is used to
record Firewall Manager SNS logs.
"""
@spec get_notification_channel(map(), get_notification_channel_request(), list()) ::
{:ok, get_notification_channel_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_notification_channel_errors()}
def get_notification_channel(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetNotificationChannel", input, options)
end
@doc """
Returns information about the specified Firewall Manager policy.
"""
@spec get_policy(map(), get_policy_request(), list()) ::
{:ok, get_policy_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_policy_errors()}
def get_policy(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetPolicy", input, options)
end
@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(map(), get_protection_status_request(), list()) ::
{:ok, get_protection_status_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_protection_status_errors()}
def get_protection_status(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetProtectionStatus", input, options)
end
@doc """
Returns information about the specified Firewall Manager protocols list.
"""
@spec get_protocols_list(map(), get_protocols_list_request(), list()) ::
{:ok, get_protocols_list_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_protocols_list_errors()}
def get_protocols_list(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetProtocolsList", input, options)
end
@doc """
Gets information about a specific resource set.
"""
@spec get_resource_set(map(), get_resource_set_request(), list()) ::
{:ok, get_resource_set_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_resource_set_errors()}
def get_resource_set(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetResourceSet", input, options)
end
@doc """
The onboarding status of a Firewall Manager admin account to third-party
firewall vendor tenant.
"""
@spec get_third_party_firewall_association_status(
map(),
get_third_party_firewall_association_status_request(),
list()
) ::
{:ok, get_third_party_firewall_association_status_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_third_party_firewall_association_status_errors()}
def get_third_party_firewall_association_status(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetThirdPartyFirewallAssociationStatus", input, options)
end
@doc """
Retrieves violations for a resource based on the specified Firewall Manager
policy and Amazon Web Services account.
"""
@spec get_violation_details(map(), get_violation_details_request(), list()) ::
{:ok, get_violation_details_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_violation_details_errors()}
def get_violation_details(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetViolationDetails", input, options)
end
@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(
map(),
list_admin_accounts_for_organization_request(),
list()
) ::
{:ok, list_admin_accounts_for_organization_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_admin_accounts_for_organization_errors()}
def list_admin_accounts_for_organization(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListAdminAccountsForOrganization", input, options)
end
@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(map(), list_admins_managing_account_request(), list()) ::
{:ok, list_admins_managing_account_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_admins_managing_account_errors()}
def list_admins_managing_account(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListAdminsManagingAccount", input, options)
end
@doc """
Returns an array of `AppsListDataSummary` objects.
"""
@spec list_apps_lists(map(), list_apps_lists_request(), list()) ::
{:ok, list_apps_lists_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_apps_lists_errors()}
def list_apps_lists(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListAppsLists", input, options)
end
@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(map(), list_compliance_status_request(), list()) ::
{:ok, list_compliance_status_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_compliance_status_errors()}
def list_compliance_status(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListComplianceStatus", input, options)
end
@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(map(), list_discovered_resources_request(), list()) ::
{:ok, list_discovered_resources_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_discovered_resources_errors()}
def list_discovered_resources(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListDiscoveredResources", input, options)
end
@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(map(), list_member_accounts_request(), list()) ::
{:ok, list_member_accounts_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_member_accounts_errors()}
def list_member_accounts(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListMemberAccounts", input, options)
end
@doc """
Returns an array of `PolicySummary` objects.
"""
@spec list_policies(map(), list_policies_request(), list()) ::
{:ok, list_policies_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_policies_errors()}
def list_policies(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListPolicies", input, options)
end
@doc """
Returns an array of `ProtocolsListDataSummary` objects.
"""
@spec list_protocols_lists(map(), list_protocols_lists_request(), list()) ::
{:ok, list_protocols_lists_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_protocols_lists_errors()}
def list_protocols_lists(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListProtocolsLists", input, options)
end
@doc """
Returns an array of resources that are currently associated to a resource set.
"""
@spec list_resource_set_resources(map(), list_resource_set_resources_request(), list()) ::
{:ok, list_resource_set_resources_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_resource_set_resources_errors()}
def list_resource_set_resources(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListResourceSetResources", input, options)
end
@doc """
Returns an array of `ResourceSetSummary` objects.
"""
@spec list_resource_sets(map(), list_resource_sets_request(), list()) ::
{:ok, list_resource_sets_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_resource_sets_errors()}
def list_resource_sets(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListResourceSets", input, options)
end
@doc """
Retrieves the list of tags for the specified Amazon Web Services resource.
"""
@spec list_tags_for_resource(map(), list_tags_for_resource_request(), 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, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListTagsForResource", input, options)
end
@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(
map(),
list_third_party_firewall_firewall_policies_request(),
list()
) ::
{:ok, list_third_party_firewall_firewall_policies_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_third_party_firewall_firewall_policies_errors()}
def list_third_party_firewall_firewall_policies(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListThirdPartyFirewallFirewallPolicies", input, options)
end
@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(map(), put_admin_account_request(), list()) ::
{:ok, nil, any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_admin_account_errors()}
def put_admin_account(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "PutAdminAccount", input, options)
end
@doc """
Creates an Firewall Manager applications list.
"""
@spec put_apps_list(map(), put_apps_list_request(), list()) ::
{:ok, put_apps_list_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_apps_list_errors()}
def put_apps_list(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "PutAppsList", input, options)
end
@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(map(), put_notification_channel_request(), list()) ::
{:ok, nil, any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_notification_channel_errors()}
def put_notification_channel(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "PutNotificationChannel", input, options)
end
@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:
*
**WAF policy** - This policy applies WAF web ACL
protections to specified accounts and resources.
*
**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 ACL policy** - This type of policy gives you
control over the network ACLs that are in use throughout your organization in
Organizations and lets you enforce a baseline set of first and last network ACL
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](http://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(map(), put_policy_request(), list()) ::
{:ok, put_policy_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_policy_errors()}
def put_policy(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "PutPolicy", input, options)
end
@doc """
Creates an Firewall Manager protocols list.
"""
@spec put_protocols_list(map(), put_protocols_list_request(), list()) ::
{:ok, put_protocols_list_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_protocols_list_errors()}
def put_protocols_list(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "PutProtocolsList", input, options)
end
@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(map(), put_resource_set_request(), list()) ::
{:ok, put_resource_set_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, put_resource_set_errors()}
def put_resource_set(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "PutResourceSet", input, options)
end
@doc """
Adds one or more tags to an Amazon Web Services resource.
"""
@spec tag_resource(map(), tag_resource_request(), list()) ::
{:ok, tag_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, tag_resource_errors()}
def tag_resource(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "TagResource", input, options)
end
@doc """
Removes one or more tags from an Amazon Web Services resource.
"""
@spec untag_resource(map(), untag_resource_request(), list()) ::
{:ok, untag_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, untag_resource_errors()}
def untag_resource(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "UntagResource", input, options)
end
end