@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Firewall Management Service
@version 2018-01-01
@auth AWS SigV4
@endpoints 42
@hint download_for_search
@toc root(42)

@endpoint POST /
@required {AdminAccount: str}

@endpoint POST /
@required {ThirdPartyFirewall: str}
@returns(200) {ThirdPartyFirewallStatus: str?}

@endpoint POST /
@required {ResourceSetIdentifier: str, Items: [str]}
@returns(200) {ResourceSetIdentifier: str, FailedItems: [FailedItem]}

@endpoint POST /
@required {ResourceSetIdentifier: str, Items: [str]}
@returns(200) {ResourceSetIdentifier: str, FailedItems: [FailedItem]}

@endpoint POST /
@required {ListId: str}

@endpoint POST /

@endpoint POST /
@required {PolicyId: str}
@optional {DeleteAllPolicyResources: bool}

@endpoint POST /
@required {ListId: str}

@endpoint POST /
@required {Identifier: str}

@endpoint POST /

@endpoint POST /
@required {ThirdPartyFirewall: str}
@returns(200) {ThirdPartyFirewallStatus: str?}

@endpoint POST /
@returns(200) {AdminAccount: str?, RoleStatus: str?}

@endpoint POST /
@required {AdminAccount: str}
@returns(200) {AdminScope: AdminScope?{AccountScope: AccountScope?{Accounts: [str]?, AllAccountsEnabled: bool?, ExcludeSpecifiedAccounts: bool?}, OrganizationalUnitScope: OrganizationalUnitScope?{OrganizationalUnits: [str]?, AllOrganizationalUnitsEnabled: bool?, ExcludeSpecifiedOrganizationalUnits: bool?}, RegionScope: RegionScope?{Regions: [str]?, AllRegionsEnabled: bool?}, PolicyTypeScope: PolicyTypeScope?{PolicyTypes: [str]?, AllPolicyTypesEnabled: bool?}}, Status: str?}

@endpoint POST /
@required {ListId: str}
@optional {DefaultList: bool}
@returns(200) {AppsList: AppsListData?{ListId: str?, ListName: str, ListUpdateToken: str?, CreateTime: str(timestamp)?, LastUpdateTime: str(timestamp)?, AppsList: [App], PreviousAppsList: map<str,[App]>?}, AppsListArn: str?}

@endpoint POST /
@required {PolicyId: str, MemberAccount: str}
@returns(200) {PolicyComplianceDetail: PolicyComplianceDetail?{PolicyOwner: str?, PolicyId: str?, MemberAccount: str?, Violators: [ComplianceViolator]?, EvaluationLimitExceeded: bool?, ExpiredAt: str(timestamp)?, IssueInfoMap: map<str,str>?}}

@endpoint POST /
@returns(200) {SnsTopicArn: str?, SnsRoleName: str?}

@endpoint POST /
@required {PolicyId: str}
@returns(200) {Policy: Policy?{PolicyId: str?, PolicyName: str, PolicyUpdateToken: str?, SecurityServicePolicyData: SecurityServicePolicyData{Type: str, ManagedServiceData: str?, PolicyOption: PolicyOption?{NetworkFirewallPolicy: NetworkFirewallPolicy?, ThirdPartyFirewallPolicy: ThirdPartyFirewallPolicy?, NetworkAclCommonPolicy: NetworkAclCommonPolicy?}}, ResourceType: str, ResourceTypeList: [str]?, ResourceTags: [ResourceTag]?, ExcludeResourceTags: bool, RemediationEnabled: bool, DeleteUnusedFMManagedResources: bool?, IncludeMap: map<str,[str]>?, ExcludeMap: map<str,[str]>?, ResourceSetIds: [str]?, PolicyDescription: str?, PolicyStatus: str?}, PolicyArn: str?}

@endpoint POST /
@required {PolicyId: str}
@optional {MemberAccountId: str, StartTime: str(timestamp), EndTime: str(timestamp), NextToken: str, MaxResults: int}
@returns(200) {AdminAccountId: str?, ServiceType: str?, Data: str?, NextToken: str?}

@endpoint POST /
@required {ListId: str}
@optional {DefaultList: bool}
@returns(200) {ProtocolsList: ProtocolsListData?{ListId: str?, ListName: str, ListUpdateToken: str?, CreateTime: str(timestamp)?, LastUpdateTime: str(timestamp)?, ProtocolsList: [str], PreviousProtocolsList: map<str,[str]>?}, ProtocolsListArn: str?}

@endpoint POST /
@required {Identifier: str}
@returns(200) {ResourceSet: ResourceSet{Id: str?, Name: str, Description: str?, UpdateToken: str?, ResourceTypeList: [str], LastUpdateTime: str(timestamp)?, ResourceSetStatus: str?}, ResourceSetArn: str}

@endpoint POST /
@required {ThirdPartyFirewall: str}
@returns(200) {ThirdPartyFirewallStatus: str?, MarketplaceOnboardingStatus: str?}

@endpoint POST /
@required {PolicyId: str, MemberAccount: str, ResourceId: str, ResourceType: str}
@returns(200) {ViolationDetail: ViolationDetail?{PolicyId: str, MemberAccount: str, ResourceId: str, ResourceType: str, ResourceViolations: [ResourceViolation], ResourceTags: [Tag]?, ResourceDescription: str?}}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {AdminAccounts: [AdminAccountSummary]?, NextToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {AdminAccounts: [str]?, NextToken: str?}

@endpoint POST /
@required {MaxResults: int}
@optional {DefaultLists: bool, NextToken: str}
@returns(200) {AppsLists: [AppsListDataSummary]?, NextToken: str?}

@endpoint POST /
@required {PolicyId: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {PolicyComplianceStatusList: [PolicyComplianceStatus]?, NextToken: str?}

@endpoint POST /
@required {MemberAccountIds: [str], ResourceType: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Items: [DiscoveredResource]?, NextToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {MemberAccounts: [str]?, NextToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {PolicyList: [PolicySummary]?, NextToken: str?}

@endpoint POST /
@required {MaxResults: int}
@optional {DefaultLists: bool, NextToken: str}
@returns(200) {ProtocolsLists: [ProtocolsListDataSummary]?, NextToken: str?}

@endpoint POST /
@required {Identifier: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Items: [Resource], NextToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {ResourceSets: [ResourceSetSummary]?, NextToken: str?}

@endpoint POST /
@required {ResourceArn: str}
@returns(200) {TagList: [Tag]?}

@endpoint POST /
@required {ThirdPartyFirewall: str, MaxResults: int}
@optional {NextToken: str}
@returns(200) {ThirdPartyFirewallFirewallPolicies: [ThirdPartyFirewallFirewallPolicy]?, NextToken: str?}

@endpoint POST /
@required {AdminAccount: str}
@optional {AdminScope: AdminScope}

@endpoint POST /
@required {AppsList: AppsListData}
@optional {TagList: [Tag]}
@returns(200) {AppsList: AppsListData?{ListId: str?, ListName: str, ListUpdateToken: str?, CreateTime: str(timestamp)?, LastUpdateTime: str(timestamp)?, AppsList: [App], PreviousAppsList: map<str,[App]>?}, AppsListArn: str?}

@endpoint POST /
@required {SnsTopicArn: str, SnsRoleName: str}

@endpoint POST /
@required {Policy: Policy}
@optional {TagList: [Tag]}
@returns(200) {Policy: Policy?{PolicyId: str?, PolicyName: str, PolicyUpdateToken: str?, SecurityServicePolicyData: SecurityServicePolicyData{Type: str, ManagedServiceData: str?, PolicyOption: PolicyOption?{NetworkFirewallPolicy: NetworkFirewallPolicy?, ThirdPartyFirewallPolicy: ThirdPartyFirewallPolicy?, NetworkAclCommonPolicy: NetworkAclCommonPolicy?}}, ResourceType: str, ResourceTypeList: [str]?, ResourceTags: [ResourceTag]?, ExcludeResourceTags: bool, RemediationEnabled: bool, DeleteUnusedFMManagedResources: bool?, IncludeMap: map<str,[str]>?, ExcludeMap: map<str,[str]>?, ResourceSetIds: [str]?, PolicyDescription: str?, PolicyStatus: str?}, PolicyArn: str?}

@endpoint POST /
@required {ProtocolsList: ProtocolsListData}
@optional {TagList: [Tag]}
@returns(200) {ProtocolsList: ProtocolsListData?{ListId: str?, ListName: str, ListUpdateToken: str?, CreateTime: str(timestamp)?, LastUpdateTime: str(timestamp)?, ProtocolsList: [str], PreviousProtocolsList: map<str,[str]>?}, ProtocolsListArn: str?}

@endpoint POST /
@required {ResourceSet: ResourceSet}
@optional {TagList: [Tag]}
@returns(200) {ResourceSet: ResourceSet{Id: str?, Name: str, Description: str?, UpdateToken: str?, ResourceTypeList: [str], LastUpdateTime: str(timestamp)?, ResourceSetStatus: str?}, ResourceSetArn: str}

@endpoint POST /
@required {ResourceArn: str, TagList: [Tag]}

@endpoint POST /
@required {ResourceArn: str, TagKeys: [str]}

@end
