Soto icon

Soto

FMS

Service object for interacting with AWS FMS service.

public struct FMS: AWSService

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.

Some API actions require explicit resource permissions. For information, see the developer guide topic Firewall Manager required permissions for API actions.

Inheritance

AWSService

Initializers

init(client:region:partition:endpoint:timeout:byteBufferAllocator:options:)

Initialize the FMS client

public init(client: AWSClient, region: SotoCore.Region? = nil, partition: AWSPartition = .aws, endpoint: String? = nil, timeout: TimeAmount? = nil, byteBufferAllocator: ByteBufferAllocator = ByteBufferAllocator(), options: AWSServiceConfig.Options = [])

Parameters

  • client: AWSClient used to process requests
  • region: Region of server you want to communicate with. This will override the partition parameter.
  • partition: AWS partition where service resides, standard (.aws), china (.awscn), government (.awsusgov).
  • endpoint: Custom endpoint URL to use instead of standard AWS servers
  • timeout: Timeout value for HTTP requests

init(from:patch:)

Initializer required by AWSService.with(middlewares:​timeout:​byteBufferAllocator:​options). You are not able to use this initializer directly as there are no public initializers for AWSServiceConfig.Patch. Please use AWSService.with(middlewares:​timeout:​byteBufferAllocator:​options) instead.

public init(from: FMS, patch: AWSServiceConfig.Patch)

Properties

client

Client used for communication with AWS

let client: AWSClient

config

Service configuration

let config: AWSServiceConfig

Methods

associateAdminAccount(_:logger:on:)

@discardableResult public func associateAdminAccount(_ input: AssociateAdminAccountRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<Void>

Sets the Firewall Manager administrator account. The account must be a member of the organization in Organizations whose resources you want to protect. Firewall Manager sets the permissions that allow the account to administer your Firewall Manager policies.

The account that you associate with Firewall Manager is called the Firewall Manager administrator account.

deleteAppsList(_:logger:on:)

@discardableResult public func deleteAppsList(_ input: DeleteAppsListRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<Void>

Permanently deletes an Firewall Manager applications list.

deleteNotificationChannel(_:logger:on:)

@discardableResult public func deleteNotificationChannel(_ input: DeleteNotificationChannelRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<Void>

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.

deletePolicy(_:logger:on:)

@discardableResult public func deletePolicy(_ input: DeletePolicyRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<Void>

Permanently deletes an Firewall Manager policy.

deleteProtocolsList(_:logger:on:)

@discardableResult public func deleteProtocolsList(_ input: DeleteProtocolsListRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<Void>

Permanently deletes an Firewall Manager protocols list.

disassociateAdminAccount(_:logger:on:)

@discardableResult public func disassociateAdminAccount(_ input: DisassociateAdminAccountRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<Void>

Disassociates the account that has been set as the Firewall Manager administrator account. To set a different account as the administrator account, you must submit an AssociateAdminAccount request.

getAdminAccount(_:logger:on:)

public func getAdminAccount(_ input: GetAdminAccountRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetAdminAccountResponse>

Returns the Organizations account that is associated with Firewall Manager as the Firewall Manager administrator.

getAppsList(_:logger:on:)

public func getAppsList(_ input: GetAppsListRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetAppsListResponse>

Returns information about the specified Firewall Manager applications list.

getComplianceDetail(_:logger:on:)

public func getComplianceDetail(_ input: GetComplianceDetailRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetComplianceDetailResponse>

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.

getNotificationChannel(_:logger:on:)

public func getNotificationChannel(_ input: GetNotificationChannelRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetNotificationChannelResponse>

Information about the Amazon Simple Notification Service (SNS) topic that is used to record Firewall Manager SNS logs.

getPolicy(_:logger:on:)

public func getPolicy(_ input: GetPolicyRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetPolicyResponse>

Returns information about the specified Firewall Manager policy.

getProtectionStatus(_:logger:on:)

public func getProtectionStatus(_ input: GetProtectionStatusRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetProtectionStatusResponse>

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.

getProtocolsList(_:logger:on:)

public func getProtocolsList(_ input: GetProtocolsListRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetProtocolsListResponse>

Returns information about the specified Firewall Manager protocols list.

getViolationDetails(_:logger:on:)

public func getViolationDetails(_ input: GetViolationDetailsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetViolationDetailsResponse>

Retrieves violations for a resource based on the specified Firewall Manager policy and Amazon Web Services account.

listAppsLists(_:logger:on:)

public func listAppsLists(_ input: ListAppsListsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListAppsListsResponse>

Returns an array of AppsListDataSummary objects.

listComplianceStatus(_:logger:on:)

public func listComplianceStatus(_ input: ListComplianceStatusRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListComplianceStatusResponse>

Returns an array of PolicyComplianceStatus objects. Use PolicyComplianceStatus to get a summary of which member accounts are protected by the specified policy.

listMemberAccounts(_:logger:on:)

public func listMemberAccounts(_ input: ListMemberAccountsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListMemberAccountsResponse>

Returns a MemberAccounts object that lists the member accounts in the administrator's Amazon Web Services organization.

The ListMemberAccounts must be submitted by the account that is set as the Firewall Manager administrator.

listPolicies(_:logger:on:)

public func listPolicies(_ input: ListPoliciesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListPoliciesResponse>

Returns an array of PolicySummary objects.

listProtocolsLists(_:logger:on:)

public func listProtocolsLists(_ input: ListProtocolsListsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListProtocolsListsResponse>

Returns an array of ProtocolsListDataSummary objects.

listTagsForResource(_:logger:on:)

public func listTagsForResource(_ input: ListTagsForResourceRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListTagsForResourceResponse>

Retrieves the list of tags for the specified Amazon Web Services resource.

putAppsList(_:logger:on:)

public func putAppsList(_ input: PutAppsListRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<PutAppsListResponse>

Creates an Firewall Manager applications list.

putNotificationChannel(_:logger:on:)

@discardableResult public func putNotificationChannel(_ input: PutNotificationChannelRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<Void>

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 configure the SNS topic to allow the Firewall Manager role AWSServiceRoleForFMS to publish SNS logs. For more information, see Firewall Manager required permissions for API actions in the Firewall Manager Developer Guide.

putPolicy(_:logger:on:)

public func putPolicy(_ input: PutPolicyRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<PutPolicyResponse>

Creates an Firewall Manager policy.

Firewall Manager provides the following types of policies:

  • An WAF policy (type WAFV2), which defines rule groups to run first in the corresponding WAF web ACL and rule groups to run last in the web ACL.

  • An WAF Classic policy (type WAF), which defines a rule group.

  • A Shield Advanced policy, which applies Shield Advanced protection to specified accounts and resources.

  • A security group policy, which manages VPC security groups across your Amazon Web Services organization.

  • An Network Firewall policy, which provides firewall rules to filter network traffic in specified Amazon VPCs.

  • A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall rules to filter DNS queries for specified VPCs.

Each policy is specific to one of the types. If you want to enforce more than one policy type across accounts, create multiple policies. You can create multiple policies for each type.

You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more information about subscribing to Shield Advanced, see CreateSubscription.

putProtocolsList(_:logger:on:)

public func putProtocolsList(_ input: PutProtocolsListRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<PutProtocolsListResponse>

Creates an Firewall Manager protocols list.

tagResource(_:logger:on:)

public func tagResource(_ input: TagResourceRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<TagResourceResponse>

Adds one or more tags to an Amazon Web Services resource.

untagResource(_:logger:on:)

public func untagResource(_ input: UntagResourceRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<UntagResourceResponse>

Removes one or more tags from an Amazon Web Services resource.

listAppsListsPaginator(_:logger:on:)

compiler(>=5.5) && canImport(_Concurrency)
public func listAppsListsPaginator(_ input: ListAppsListsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> AWSClient.PaginatorSequence<ListAppsListsRequest, ListAppsListsResponse>

Returns an array of AppsListDataSummary objects.

Return PaginatorSequence for operation.

Parameters

- input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process on

listComplianceStatusPaginator(_:logger:on:)

compiler(>=5.5) && canImport(_Concurrency)
public func listComplianceStatusPaginator(_ input: ListComplianceStatusRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> AWSClient.PaginatorSequence<ListComplianceStatusRequest, ListComplianceStatusResponse>

Returns an array of PolicyComplianceStatus objects. Use PolicyComplianceStatus to get a summary of which member accounts are protected by the specified policy.

Return PaginatorSequence for operation.

Parameters

- input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process on

listMemberAccountsPaginator(_:logger:on:)

compiler(>=5.5) && canImport(_Concurrency)
public func listMemberAccountsPaginator(_ input: ListMemberAccountsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> AWSClient.PaginatorSequence<ListMemberAccountsRequest, ListMemberAccountsResponse>

Returns a MemberAccounts object that lists the member accounts in the administrator's Amazon Web Services organization.

The ListMemberAccounts must be submitted by the account that is set as the Firewall Manager administrator.

Return PaginatorSequence for operation.

Parameters

- input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process on

listPoliciesPaginator(_:logger:on:)

compiler(>=5.5) && canImport(_Concurrency)
public func listPoliciesPaginator(_ input: ListPoliciesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> AWSClient.PaginatorSequence<ListPoliciesRequest, ListPoliciesResponse>

Returns an array of PolicySummary objects.

Return PaginatorSequence for operation.

Parameters

- input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process on

listProtocolsListsPaginator(_:logger:on:)

compiler(>=5.5) && canImport(_Concurrency)
public func listProtocolsListsPaginator(_ input: ListProtocolsListsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> AWSClient.PaginatorSequence<ListProtocolsListsRequest, ListProtocolsListsResponse>

Returns an array of ProtocolsListDataSummary objects.

Return PaginatorSequence for operation.

Parameters

- input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process on

listAppsListsPaginator(_:_:logger:on:onPage:)

public func listAppsListsPaginator<Result>(_ input: ListAppsListsRequest, _ initialValue: Result, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (Result, ListAppsListsResponse, EventLoop) -> EventLoopFuture<(Bool, Result)>) -> EventLoopFuture<Result>

Returns an array of AppsListDataSummary objects.

Provide paginated results to closure onPage for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result.

Parameters:

  • input: Input for request
  • initialValue: The value to use as the initial accumulating value. initialValue is passed to onPage the first time it is called.
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.

listAppsListsPaginator(_:logger:on:onPage:)

Provide paginated results to closure onPage.

public func listAppsListsPaginator(_ input: ListAppsListsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (ListAppsListsResponse, EventLoop) -> EventLoopFuture<Bool>) -> EventLoopFuture<Void>

Parameters

  • input: Input for request
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.

listComplianceStatusPaginator(_:_:logger:on:onPage:)

public func listComplianceStatusPaginator<Result>(_ input: ListComplianceStatusRequest, _ initialValue: Result, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (Result, ListComplianceStatusResponse, EventLoop) -> EventLoopFuture<(Bool, Result)>) -> EventLoopFuture<Result>

Returns an array of PolicyComplianceStatus objects. Use PolicyComplianceStatus to get a summary of which member accounts are protected by the specified policy.

Provide paginated results to closure onPage for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result.

Parameters:

  • input: Input for request
  • initialValue: The value to use as the initial accumulating value. initialValue is passed to onPage the first time it is called.
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.

listComplianceStatusPaginator(_:logger:on:onPage:)

Provide paginated results to closure onPage.

public func listComplianceStatusPaginator(_ input: ListComplianceStatusRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (ListComplianceStatusResponse, EventLoop) -> EventLoopFuture<Bool>) -> EventLoopFuture<Void>

Parameters

  • input: Input for request
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.

listMemberAccountsPaginator(_:_:logger:on:onPage:)

public func listMemberAccountsPaginator<Result>(_ input: ListMemberAccountsRequest, _ initialValue: Result, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (Result, ListMemberAccountsResponse, EventLoop) -> EventLoopFuture<(Bool, Result)>) -> EventLoopFuture<Result>

Returns a MemberAccounts object that lists the member accounts in the administrator's Amazon Web Services organization.

The ListMemberAccounts must be submitted by the account that is set as the Firewall Manager administrator.

Provide paginated results to closure onPage for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result.

Parameters:

  • input: Input for request
  • initialValue: The value to use as the initial accumulating value. initialValue is passed to onPage the first time it is called.
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.

listMemberAccountsPaginator(_:logger:on:onPage:)

Provide paginated results to closure onPage.

public func listMemberAccountsPaginator(_ input: ListMemberAccountsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (ListMemberAccountsResponse, EventLoop) -> EventLoopFuture<Bool>) -> EventLoopFuture<Void>

Parameters

  • input: Input for request
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.

listPoliciesPaginator(_:_:logger:on:onPage:)

public func listPoliciesPaginator<Result>(_ input: ListPoliciesRequest, _ initialValue: Result, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (Result, ListPoliciesResponse, EventLoop) -> EventLoopFuture<(Bool, Result)>) -> EventLoopFuture<Result>

Returns an array of PolicySummary objects.

Provide paginated results to closure onPage for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result.

Parameters:

  • input: Input for request
  • initialValue: The value to use as the initial accumulating value. initialValue is passed to onPage the first time it is called.
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.

listPoliciesPaginator(_:logger:on:onPage:)

Provide paginated results to closure onPage.

public func listPoliciesPaginator(_ input: ListPoliciesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (ListPoliciesResponse, EventLoop) -> EventLoopFuture<Bool>) -> EventLoopFuture<Void>

Parameters

  • input: Input for request
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.

listProtocolsListsPaginator(_:_:logger:on:onPage:)

public func listProtocolsListsPaginator<Result>(_ input: ListProtocolsListsRequest, _ initialValue: Result, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (Result, ListProtocolsListsResponse, EventLoop) -> EventLoopFuture<(Bool, Result)>) -> EventLoopFuture<Result>

Returns an array of ProtocolsListDataSummary objects.

Provide paginated results to closure onPage for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result.

Parameters:

  • input: Input for request
  • initialValue: The value to use as the initial accumulating value. initialValue is passed to onPage the first time it is called.
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.

listProtocolsListsPaginator(_:logger:on:onPage:)

Provide paginated results to closure onPage.

public func listProtocolsListsPaginator(_ input: ListProtocolsListsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil, onPage: @escaping (ListProtocolsListsResponse, EventLoop) -> EventLoopFuture<Bool>) -> EventLoopFuture<Void>

Parameters

  • input: Input for request
  • logger: Logger used for logging output
  • eventLoop: EventLoop to run this process on
  • onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.