UNPKG

32.5 kBTypeScriptView Raw
1import {Request} from '../lib/request';
2import {Response} from '../lib/response';
3import {AWSError} from '../lib/error';
4import {Service} from '../lib/service';
5import {ServiceConfigurationOptions} from '../lib/service';
6import {ConfigBase as Config} from '../lib/config';
7interface Blob {}
8declare class FMS extends Service {
9 /**
10 * Constructs a service object. This object has one method for each API operation.
11 */
12 constructor(options?: FMS.Types.ClientConfiguration)
13 config: Config & FMS.Types.ClientConfiguration;
14 /**
15 * Sets the AWS Firewall Manager administrator account. AWS Firewall Manager must be associated with the master account your AWS organization or associated with a member account that has the appropriate permissions. If the account ID that you submit is not an AWS Organizations master account, AWS Firewall Manager will set the appropriate permissions for the given member account. The account that you associate with AWS Firewall Manager is called the AWS Firewall Manager administrator account.
16 */
17 associateAdminAccount(params: FMS.Types.AssociateAdminAccountRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
18 /**
19 * Sets the AWS Firewall Manager administrator account. AWS Firewall Manager must be associated with the master account your AWS organization or associated with a member account that has the appropriate permissions. If the account ID that you submit is not an AWS Organizations master account, AWS Firewall Manager will set the appropriate permissions for the given member account. The account that you associate with AWS Firewall Manager is called the AWS Firewall Manager administrator account.
20 */
21 associateAdminAccount(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
22 /**
23 * Deletes an AWS Firewall Manager association with the IAM role and the Amazon Simple Notification Service (SNS) topic that is used to record AWS Firewall Manager SNS logs.
24 */
25 deleteNotificationChannel(params: FMS.Types.DeleteNotificationChannelRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
26 /**
27 * Deletes an AWS Firewall Manager association with the IAM role and the Amazon Simple Notification Service (SNS) topic that is used to record AWS Firewall Manager SNS logs.
28 */
29 deleteNotificationChannel(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
30 /**
31 * Permanently deletes an AWS Firewall Manager policy.
32 */
33 deletePolicy(params: FMS.Types.DeletePolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
34 /**
35 * Permanently deletes an AWS Firewall Manager policy.
36 */
37 deletePolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
38 /**
39 * Disassociates the account that has been set as the AWS Firewall Manager administrator account. To set a different account as the administrator account, you must submit an AssociateAdminAccount request .
40 */
41 disassociateAdminAccount(params: FMS.Types.DisassociateAdminAccountRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
42 /**
43 * Disassociates the account that has been set as the AWS Firewall Manager administrator account. To set a different account as the administrator account, you must submit an AssociateAdminAccount request .
44 */
45 disassociateAdminAccount(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
46 /**
47 * Returns the AWS Organizations master account that is associated with AWS Firewall Manager as the AWS Firewall Manager administrator.
48 */
49 getAdminAccount(params: FMS.Types.GetAdminAccountRequest, callback?: (err: AWSError, data: FMS.Types.GetAdminAccountResponse) => void): Request<FMS.Types.GetAdminAccountResponse, AWSError>;
50 /**
51 * Returns the AWS Organizations master account that is associated with AWS Firewall Manager as the AWS Firewall Manager administrator.
52 */
53 getAdminAccount(callback?: (err: AWSError, data: FMS.Types.GetAdminAccountResponse) => void): Request<FMS.Types.GetAdminAccountResponse, AWSError>;
54 /**
55 * 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 non-compliant if the specified policy has not been applied to them.
56 */
57 getComplianceDetail(params: FMS.Types.GetComplianceDetailRequest, callback?: (err: AWSError, data: FMS.Types.GetComplianceDetailResponse) => void): Request<FMS.Types.GetComplianceDetailResponse, AWSError>;
58 /**
59 * 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 non-compliant if the specified policy has not been applied to them.
60 */
61 getComplianceDetail(callback?: (err: AWSError, data: FMS.Types.GetComplianceDetailResponse) => void): Request<FMS.Types.GetComplianceDetailResponse, AWSError>;
62 /**
63 * Returns information about the Amazon Simple Notification Service (SNS) topic that is used to record AWS Firewall Manager SNS logs.
64 */
65 getNotificationChannel(params: FMS.Types.GetNotificationChannelRequest, callback?: (err: AWSError, data: FMS.Types.GetNotificationChannelResponse) => void): Request<FMS.Types.GetNotificationChannelResponse, AWSError>;
66 /**
67 * Returns information about the Amazon Simple Notification Service (SNS) topic that is used to record AWS Firewall Manager SNS logs.
68 */
69 getNotificationChannel(callback?: (err: AWSError, data: FMS.Types.GetNotificationChannelResponse) => void): Request<FMS.Types.GetNotificationChannelResponse, AWSError>;
70 /**
71 * Returns information about the specified AWS Firewall Manager policy.
72 */
73 getPolicy(params: FMS.Types.GetPolicyRequest, callback?: (err: AWSError, data: FMS.Types.GetPolicyResponse) => void): Request<FMS.Types.GetPolicyResponse, AWSError>;
74 /**
75 * Returns information about the specified AWS Firewall Manager policy.
76 */
77 getPolicy(callback?: (err: AWSError, data: FMS.Types.GetPolicyResponse) => void): Request<FMS.Types.GetPolicyResponse, AWSError>;
78 /**
79 * If you created a Shield Advanced policy, returns policy-level attack summary information in the event of a potential DDoS attack.
80 */
81 getProtectionStatus(params: FMS.Types.GetProtectionStatusRequest, callback?: (err: AWSError, data: FMS.Types.GetProtectionStatusResponse) => void): Request<FMS.Types.GetProtectionStatusResponse, AWSError>;
82 /**
83 * If you created a Shield Advanced policy, returns policy-level attack summary information in the event of a potential DDoS attack.
84 */
85 getProtectionStatus(callback?: (err: AWSError, data: FMS.Types.GetProtectionStatusResponse) => void): Request<FMS.Types.GetProtectionStatusResponse, AWSError>;
86 /**
87 * Returns an array of PolicyComplianceStatus objects in the response. Use PolicyComplianceStatus to get a summary of which member accounts are protected by the specified policy.
88 */
89 listComplianceStatus(params: FMS.Types.ListComplianceStatusRequest, callback?: (err: AWSError, data: FMS.Types.ListComplianceStatusResponse) => void): Request<FMS.Types.ListComplianceStatusResponse, AWSError>;
90 /**
91 * Returns an array of PolicyComplianceStatus objects in the response. Use PolicyComplianceStatus to get a summary of which member accounts are protected by the specified policy.
92 */
93 listComplianceStatus(callback?: (err: AWSError, data: FMS.Types.ListComplianceStatusResponse) => void): Request<FMS.Types.ListComplianceStatusResponse, AWSError>;
94 /**
95 * Returns a MemberAccounts object that lists the member accounts in the administrator's AWS organization. The ListMemberAccounts must be submitted by the account that is set as the AWS Firewall Manager administrator.
96 */
97 listMemberAccounts(params: FMS.Types.ListMemberAccountsRequest, callback?: (err: AWSError, data: FMS.Types.ListMemberAccountsResponse) => void): Request<FMS.Types.ListMemberAccountsResponse, AWSError>;
98 /**
99 * Returns a MemberAccounts object that lists the member accounts in the administrator's AWS organization. The ListMemberAccounts must be submitted by the account that is set as the AWS Firewall Manager administrator.
100 */
101 listMemberAccounts(callback?: (err: AWSError, data: FMS.Types.ListMemberAccountsResponse) => void): Request<FMS.Types.ListMemberAccountsResponse, AWSError>;
102 /**
103 * Returns an array of PolicySummary objects in the response.
104 */
105 listPolicies(params: FMS.Types.ListPoliciesRequest, callback?: (err: AWSError, data: FMS.Types.ListPoliciesResponse) => void): Request<FMS.Types.ListPoliciesResponse, AWSError>;
106 /**
107 * Returns an array of PolicySummary objects in the response.
108 */
109 listPolicies(callback?: (err: AWSError, data: FMS.Types.ListPoliciesResponse) => void): Request<FMS.Types.ListPoliciesResponse, AWSError>;
110 /**
111 * Designates the IAM role and Amazon Simple Notification Service (SNS) topic that AWS Firewall Manager uses to record SNS logs.
112 */
113 putNotificationChannel(params: FMS.Types.PutNotificationChannelRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
114 /**
115 * Designates the IAM role and Amazon Simple Notification Service (SNS) topic that AWS Firewall Manager uses to record SNS logs.
116 */
117 putNotificationChannel(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
118 /**
119 * Creates an AWS Firewall Manager policy. Firewall Manager provides two types of policies: A Shield Advanced policy, which applies Shield Advanced protection to specified accounts and resources, or a WAF policy, which contains a rule group and defines which resources are to be protected by that rule group. A policy is specific to either WAF or Shield Advanced. If you want to enforce both WAF rules and Shield Advanced protection across accounts, you can create multiple policies. You can create one or more policies for WAF rules, and one or more policies for Shield Advanced. You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more information on subscribing to Shield Advanced, see CreateSubscription.
120 */
121 putPolicy(params: FMS.Types.PutPolicyRequest, callback?: (err: AWSError, data: FMS.Types.PutPolicyResponse) => void): Request<FMS.Types.PutPolicyResponse, AWSError>;
122 /**
123 * Creates an AWS Firewall Manager policy. Firewall Manager provides two types of policies: A Shield Advanced policy, which applies Shield Advanced protection to specified accounts and resources, or a WAF policy, which contains a rule group and defines which resources are to be protected by that rule group. A policy is specific to either WAF or Shield Advanced. If you want to enforce both WAF rules and Shield Advanced protection across accounts, you can create multiple policies. You can create one or more policies for WAF rules, and one or more policies for Shield Advanced. You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more information on subscribing to Shield Advanced, see CreateSubscription.
124 */
125 putPolicy(callback?: (err: AWSError, data: FMS.Types.PutPolicyResponse) => void): Request<FMS.Types.PutPolicyResponse, AWSError>;
126}
127declare namespace FMS {
128 export type AWSAccountId = string;
129 export type AccountRoleStatus = "READY"|"CREATING"|"PENDING_DELETION"|"DELETING"|"DELETED"|string;
130 export interface AssociateAdminAccountRequest {
131 /**
132 * The AWS account ID to associate with AWS Firewall Manager as the AWS Firewall Manager administrator account. This can be an AWS Organizations master account or a member account. For more information about AWS Organizations and master accounts, see Managing the AWS Accounts in Your Organization.
133 */
134 AdminAccount: AWSAccountId;
135 }
136 export type Boolean = boolean;
137 export interface ComplianceViolator {
138 /**
139 * The resource ID.
140 */
141 ResourceId?: ResourceId;
142 /**
143 * The reason that the resource is not protected by the policy.
144 */
145 ViolationReason?: ViolationReason;
146 /**
147 * The resource type. This is in the format shown in AWS Resource Types Reference. For example: AWS::ElasticLoadBalancingV2::LoadBalancer or AWS::CloudFront::Distribution.
148 */
149 ResourceType?: ResourceType;
150 }
151 export type ComplianceViolators = ComplianceViolator[];
152 export type CustomerPolicyScopeId = string;
153 export type CustomerPolicyScopeIdList = CustomerPolicyScopeId[];
154 export type CustomerPolicyScopeIdType = "ACCOUNT"|string;
155 export type CustomerPolicyScopeMap = {[key: string]: CustomerPolicyScopeIdList};
156 export interface DeleteNotificationChannelRequest {
157 }
158 export interface DeletePolicyRequest {
159 /**
160 * The ID of the policy that you want to delete. PolicyId is returned by PutPolicy and by ListPolicies.
161 */
162 PolicyId: PolicyId;
163 /**
164 * If True, the request will also perform a clean-up process that will: Delete rule groups created by AWS Firewall Manager Remove web ACLs from in-scope resources Delete web ACLs that contain no rules or rule groups After the cleanup, in-scope resources will no longer be protected by web ACLs in this policy. Protection of out-of-scope resources will remain unchanged. Scope is determined by tags and accounts associated with the policy. When creating the policy, if you specified that only resources in specific accounts or with specific tags be protected by the policy, those resources are in-scope. All others are out of scope. If you did not specify tags or accounts, all resources are in-scope.
165 */
166 DeleteAllPolicyResources?: Boolean;
167 }
168 export type DependentServiceName = "AWSCONFIG"|"AWSWAF"|"AWSSHIELD_ADVANCED"|string;
169 export type DetailedInfo = string;
170 export interface DisassociateAdminAccountRequest {
171 }
172 export interface EvaluationResult {
173 /**
174 * Describes an AWS account's compliance with the AWS Firewall Manager policy.
175 */
176 ComplianceStatus?: PolicyComplianceStatusType;
177 /**
178 * Number of resources that are non-compliant with the specified policy. A resource is considered non-compliant if it is not associated with the specified policy.
179 */
180 ViolatorCount?: ResourceCount;
181 /**
182 * Indicates that over 100 resources are non-compliant with the AWS Firewall Manager policy.
183 */
184 EvaluationLimitExceeded?: Boolean;
185 }
186 export type EvaluationResults = EvaluationResult[];
187 export interface GetAdminAccountRequest {
188 }
189 export interface GetAdminAccountResponse {
190 /**
191 * The AWS account that is set as the AWS Firewall Manager administrator.
192 */
193 AdminAccount?: AWSAccountId;
194 /**
195 * The status of the AWS account that you set as the AWS Firewall Manager administrator.
196 */
197 RoleStatus?: AccountRoleStatus;
198 }
199 export interface GetComplianceDetailRequest {
200 /**
201 * The ID of the policy that you want to get the details for. PolicyId is returned by PutPolicy and by ListPolicies.
202 */
203 PolicyId: PolicyId;
204 /**
205 * The AWS account that owns the resources that you want to get the details for.
206 */
207 MemberAccount: AWSAccountId;
208 }
209 export interface GetComplianceDetailResponse {
210 /**
211 * Information about the resources and the policy that you specified in the GetComplianceDetail request.
212 */
213 PolicyComplianceDetail?: PolicyComplianceDetail;
214 }
215 export interface GetNotificationChannelRequest {
216 }
217 export interface GetNotificationChannelResponse {
218 /**
219 * The SNS topic that records AWS Firewall Manager activity.
220 */
221 SnsTopicArn?: ResourceArn;
222 /**
223 * The IAM role that is used by AWS Firewall Manager to record activity to SNS.
224 */
225 SnsRoleName?: ResourceArn;
226 }
227 export interface GetPolicyRequest {
228 /**
229 * The ID of the AWS Firewall Manager policy that you want the details for.
230 */
231 PolicyId: PolicyId;
232 }
233 export interface GetPolicyResponse {
234 /**
235 * Information about the specified AWS Firewall Manager policy.
236 */
237 Policy?: Policy;
238 /**
239 * The Amazon Resource Name (ARN) of the specified policy.
240 */
241 PolicyArn?: ResourceArn;
242 }
243 export interface GetProtectionStatusRequest {
244 /**
245 * The ID of the policy for which you want to get the attack information.
246 */
247 PolicyId: PolicyId;
248 /**
249 * The AWS account that is in scope of the policy that you want to get the details for.
250 */
251 MemberAccountId?: AWSAccountId;
252 /**
253 * The start of the time period to query for the attacks. This is a timestamp type. The sample request above indicates a number type because the default used by AWS Firewall Manager is Unix time in seconds. However, any valid timestamp format is allowed.
254 */
255 StartTime?: TimeStamp;
256 /**
257 * The end of the time period to query for the attacks. This is a timestamp type. The sample request above indicates a number type because the default used by AWS Firewall Manager is Unix time in seconds. However, any valid timestamp format is allowed.
258 */
259 EndTime?: TimeStamp;
260 /**
261 * If you specify a value for MaxResults and you have more objects than the number that you specify for MaxResults, AWS Firewall Manager returns a NextToken value in the response that allows you to list another group of objects. For the second and subsequent GetProtectionStatus requests, specify the value of NextToken from the previous response to get information about another batch of objects.
262 */
263 NextToken?: PaginationToken;
264 /**
265 * Specifies the number of objects that you want AWS Firewall Manager to return for this request. If you have more objects than the number that you specify for MaxResults, the response includes a NextToken value that you can use to get another batch of objects.
266 */
267 MaxResults?: PaginationMaxResults;
268 }
269 export interface GetProtectionStatusResponse {
270 /**
271 * The ID of the AWS Firewall administrator account for this policy.
272 */
273 AdminAccountId?: AWSAccountId;
274 /**
275 * The service type that is protected by the policy. Currently, this is always SHIELD_ADVANCED.
276 */
277 ServiceType?: SecurityServiceType;
278 /**
279 * Details about the attack, including the following: Attack type Account ID ARN of the resource attacked Start time of the attack End time of the attack (ongoing attacks will not have an end time) The details are in JSON format. An example is shown in the Examples section below.
280 */
281 Data?: ProtectionData;
282 /**
283 * If you have more objects than the number that you specified for MaxResults in the request, the response includes a NextToken value. To list more objects, submit another GetProtectionStatus request, and specify the NextToken value from the response in the NextToken value in the next request. AWS SDKs provide auto-pagination that identify NextToken in a response and make subsequent request calls automatically on your behalf. However, this feature is not supported by GetProtectionStatus. You must submit subsequent requests with NextToken using your own processes.
284 */
285 NextToken?: PaginationToken;
286 }
287 export type IssueInfoMap = {[key: string]: DetailedInfo};
288 export interface ListComplianceStatusRequest {
289 /**
290 * The ID of the AWS Firewall Manager policy that you want the details for.
291 */
292 PolicyId: PolicyId;
293 /**
294 * If you specify a value for MaxResults and you have more PolicyComplianceStatus objects than the number that you specify for MaxResults, AWS Firewall Manager returns a NextToken value in the response that allows you to list another group of PolicyComplianceStatus objects. For the second and subsequent ListComplianceStatus requests, specify the value of NextToken from the previous response to get information about another batch of PolicyComplianceStatus objects.
295 */
296 NextToken?: PaginationToken;
297 /**
298 * Specifies the number of PolicyComplianceStatus objects that you want AWS Firewall Manager to return for this request. If you have more PolicyComplianceStatus objects than the number that you specify for MaxResults, the response includes a NextToken value that you can use to get another batch of PolicyComplianceStatus objects.
299 */
300 MaxResults?: PaginationMaxResults;
301 }
302 export interface ListComplianceStatusResponse {
303 /**
304 * An array of PolicyComplianceStatus objects.
305 */
306 PolicyComplianceStatusList?: PolicyComplianceStatusList;
307 /**
308 * If you have more PolicyComplianceStatus objects than the number that you specified for MaxResults in the request, the response includes a NextToken value. To list more PolicyComplianceStatus objects, submit another ListComplianceStatus request, and specify the NextToken value from the response in the NextToken value in the next request.
309 */
310 NextToken?: PaginationToken;
311 }
312 export interface ListMemberAccountsRequest {
313 /**
314 * If you specify a value for MaxResults and you have more account IDs than the number that you specify for MaxResults, AWS Firewall Manager returns a NextToken value in the response that allows you to list another group of IDs. For the second and subsequent ListMemberAccountsRequest requests, specify the value of NextToken from the previous response to get information about another batch of member account IDs.
315 */
316 NextToken?: PaginationToken;
317 /**
318 * Specifies the number of member account IDs that you want AWS Firewall Manager to return for this request. If you have more IDs than the number that you specify for MaxResults, the response includes a NextToken value that you can use to get another batch of member account IDs.
319 */
320 MaxResults?: PaginationMaxResults;
321 }
322 export interface ListMemberAccountsResponse {
323 /**
324 * An array of account IDs.
325 */
326 MemberAccounts?: MemberAccounts;
327 /**
328 * If you have more member account IDs than the number that you specified for MaxResults in the request, the response includes a NextToken value. To list more IDs, submit another ListMemberAccounts request, and specify the NextToken value from the response in the NextToken value in the next request.
329 */
330 NextToken?: PaginationToken;
331 }
332 export interface ListPoliciesRequest {
333 /**
334 * If you specify a value for MaxResults and you have more PolicySummary objects than the number that you specify for MaxResults, AWS Firewall Manager returns a NextToken value in the response that allows you to list another group of PolicySummary objects. For the second and subsequent ListPolicies requests, specify the value of NextToken from the previous response to get information about another batch of PolicySummary objects.
335 */
336 NextToken?: PaginationToken;
337 /**
338 * Specifies the number of PolicySummary objects that you want AWS Firewall Manager to return for this request. If you have more PolicySummary objects than the number that you specify for MaxResults, the response includes a NextToken value that you can use to get another batch of PolicySummary objects.
339 */
340 MaxResults?: PaginationMaxResults;
341 }
342 export interface ListPoliciesResponse {
343 /**
344 * An array of PolicySummary objects.
345 */
346 PolicyList?: PolicySummaryList;
347 /**
348 * If you have more PolicySummary objects than the number that you specified for MaxResults in the request, the response includes a NextToken value. To list more PolicySummary objects, submit another ListPolicies request, and specify the NextToken value from the response in the NextToken value in the next request.
349 */
350 NextToken?: PaginationToken;
351 }
352 export type ManagedServiceData = string;
353 export type MemberAccounts = AWSAccountId[];
354 export type PaginationMaxResults = number;
355 export type PaginationToken = string;
356 export interface Policy {
357 /**
358 * The ID of the AWS Firewall Manager policy.
359 */
360 PolicyId?: PolicyId;
361 /**
362 * The friendly name of the AWS Firewall Manager policy.
363 */
364 PolicyName: ResourceName;
365 /**
366 * A unique identifier for each update to the policy. When issuing a PutPolicy request, the PolicyUpdateToken in the request must match the PolicyUpdateToken of the current policy version. To get the PolicyUpdateToken of the current policy version, use a GetPolicy request.
367 */
368 PolicyUpdateToken?: PolicyUpdateToken;
369 /**
370 * Details about the security service that is being used to protect the resources.
371 */
372 SecurityServicePolicyData: SecurityServicePolicyData;
373 /**
374 * The type of resource to protect with the policy. This is in the format shown in AWS Resource Types Reference. For example: AWS::ElasticLoadBalancingV2::LoadBalancer or AWS::CloudFront::Distribution.
375 */
376 ResourceType: ResourceType;
377 /**
378 * An array of ResourceType.
379 */
380 ResourceTypeList?: ResourceTypeList;
381 /**
382 * An array of ResourceTag objects.
383 */
384 ResourceTags?: ResourceTags;
385 /**
386 * If set to True, resources with the tags that are specified in the ResourceTag array are not protected by the policy. If set to False, and the ResourceTag array is not null, only resources with the specified tags are associated with the policy.
387 */
388 ExcludeResourceTags: Boolean;
389 /**
390 * Indicates if the policy should be automatically applied to new resources.
391 */
392 RemediationEnabled: Boolean;
393 /**
394 * Specifies the AWS account IDs to include in the policy. If IncludeMap is null, all accounts in the organization in AWS Organizations are included in the policy. If IncludeMap is not null, only values listed in IncludeMap are included in the policy. The key to the map is ACCOUNT. For example, a valid IncludeMap would be {“ACCOUNT” : [“accountID1”, “accountID2”]}.
395 */
396 IncludeMap?: CustomerPolicyScopeMap;
397 /**
398 * Specifies the AWS account IDs to exclude from the policy. The IncludeMap values are evaluated first, with all the appropriate account IDs added to the policy. Then the accounts listed in ExcludeMap are removed, resulting in the final list of accounts to add to the policy. The key to the map is ACCOUNT. For example, a valid ExcludeMap would be {“ACCOUNT” : [“accountID1”, “accountID2”]}.
399 */
400 ExcludeMap?: CustomerPolicyScopeMap;
401 }
402 export interface PolicyComplianceDetail {
403 /**
404 * The AWS account that created the AWS Firewall Manager policy.
405 */
406 PolicyOwner?: AWSAccountId;
407 /**
408 * The ID of the AWS Firewall Manager policy.
409 */
410 PolicyId?: PolicyId;
411 /**
412 * The AWS account ID.
413 */
414 MemberAccount?: AWSAccountId;
415 /**
416 * An array of resources that are not protected by the policy.
417 */
418 Violators?: ComplianceViolators;
419 /**
420 * Indicates if over 100 resources are non-compliant with the AWS Firewall Manager policy.
421 */
422 EvaluationLimitExceeded?: Boolean;
423 /**
424 * A time stamp that indicates when the returned information should be considered out-of-date.
425 */
426 ExpiredAt?: TimeStamp;
427 /**
428 * Details about problems with dependent services, such as AWS WAF or AWS Config, that are causing a resource to be non-compliant. The details include the name of the dependent service and the error message received that indicates the problem with the service.
429 */
430 IssueInfoMap?: IssueInfoMap;
431 }
432 export interface PolicyComplianceStatus {
433 /**
434 * The AWS account that created the AWS Firewall Manager policy.
435 */
436 PolicyOwner?: AWSAccountId;
437 /**
438 * The ID of the AWS Firewall Manager policy.
439 */
440 PolicyId?: PolicyId;
441 /**
442 * The friendly name of the AWS Firewall Manager policy.
443 */
444 PolicyName?: ResourceName;
445 /**
446 * The member account ID.
447 */
448 MemberAccount?: AWSAccountId;
449 /**
450 * An array of EvaluationResult objects.
451 */
452 EvaluationResults?: EvaluationResults;
453 /**
454 * Time stamp of the last update to the EvaluationResult objects.
455 */
456 LastUpdated?: TimeStamp;
457 /**
458 * Details about problems with dependent services, such as AWS WAF or AWS Config, that are causing a resource to be non-compliant. The details include the name of the dependent service and the error message received that indicates the problem with the service.
459 */
460 IssueInfoMap?: IssueInfoMap;
461 }
462 export type PolicyComplianceStatusList = PolicyComplianceStatus[];
463 export type PolicyComplianceStatusType = "COMPLIANT"|"NON_COMPLIANT"|string;
464 export type PolicyId = string;
465 export interface PolicySummary {
466 /**
467 * The Amazon Resource Name (ARN) of the specified policy.
468 */
469 PolicyArn?: ResourceArn;
470 /**
471 * The ID of the specified policy.
472 */
473 PolicyId?: PolicyId;
474 /**
475 * The friendly name of the specified policy.
476 */
477 PolicyName?: ResourceName;
478 /**
479 * The type of resource to protect with the policy. This is in the format shown in AWS Resource Types Reference. For example: AWS::ElasticLoadBalancingV2::LoadBalancer or AWS::CloudFront::Distribution.
480 */
481 ResourceType?: ResourceType;
482 /**
483 * The service that the policy is using to protect the resources. This specifies the type of policy that is created, either a WAF policy or Shield Advanced policy.
484 */
485 SecurityServiceType?: SecurityServiceType;
486 /**
487 * Indicates if the policy should be automatically applied to new resources.
488 */
489 RemediationEnabled?: Boolean;
490 }
491 export type PolicySummaryList = PolicySummary[];
492 export type PolicyUpdateToken = string;
493 export type ProtectionData = string;
494 export interface PutNotificationChannelRequest {
495 /**
496 * The Amazon Resource Name (ARN) of the SNS topic that collects notifications from AWS Firewall Manager.
497 */
498 SnsTopicArn: ResourceArn;
499 /**
500 * The Amazon Resource Name (ARN) of the IAM role that allows Amazon SNS to record AWS Firewall Manager activity.
501 */
502 SnsRoleName: ResourceArn;
503 }
504 export interface PutPolicyRequest {
505 /**
506 * The details of the AWS Firewall Manager policy to be created.
507 */
508 Policy: Policy;
509 }
510 export interface PutPolicyResponse {
511 /**
512 * The details of the AWS Firewall Manager policy that was created.
513 */
514 Policy?: Policy;
515 /**
516 * The Amazon Resource Name (ARN) of the policy that was created.
517 */
518 PolicyArn?: ResourceArn;
519 }
520 export type ResourceArn = string;
521 export type ResourceCount = number;
522 export type ResourceId = string;
523 export type ResourceName = string;
524 export interface ResourceTag {
525 /**
526 * The resource tag key.
527 */
528 Key: TagKey;
529 /**
530 * The resource tag value.
531 */
532 Value?: TagValue;
533 }
534 export type ResourceTags = ResourceTag[];
535 export type ResourceType = string;
536 export type ResourceTypeList = ResourceType[];
537 export interface SecurityServicePolicyData {
538 /**
539 * The service that the policy is using to protect the resources. This specifies the type of policy that is created, either a WAF policy or Shield Advanced policy.
540 */
541 Type: SecurityServiceType;
542 /**
543 * Details about the service. This contains WAF data in JSON format, as shown in the following example: ManagedServiceData": "{\"type\": \"WAF\", \"ruleGroups\": [{\"id\": \"12345678-1bcd-9012-efga-0987654321ab\", \"overrideAction\" : {\"type\": \"COUNT\"}}], \"defaultAction\": {\"type\": \"BLOCK\"}} If this is a Shield Advanced policy, this string will be empty.
544 */
545 ManagedServiceData?: ManagedServiceData;
546 }
547 export type SecurityServiceType = "WAF"|"SHIELD_ADVANCED"|string;
548 export type TagKey = string;
549 export type TagValue = string;
550 export type TimeStamp = Date;
551 export type ViolationReason = "WEB_ACL_MISSING_RULE_GROUP"|"RESOURCE_MISSING_WEB_ACL"|"RESOURCE_INCORRECT_WEB_ACL"|"RESOURCE_MISSING_SHIELD_PROTECTION"|string;
552 /**
553 * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
554 */
555 export type apiVersion = "2018-01-01"|"latest"|string;
556 export interface ClientApiVersions {
557 /**
558 * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
559 */
560 apiVersion?: apiVersion;
561 }
562 export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions;
563 /**
564 * Contains interfaces for use with the FMS client.
565 */
566 export import Types = FMS;
567}
568export = FMS;