@aws-sdk/client-accessanalyzer 3.454.0 → 3.458.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +84 -37
  2. package/dist-cjs/AccessAnalyzer.js +8 -0
  3. package/dist-cjs/commands/CheckAccessNotGrantedCommand.js +52 -0
  4. package/dist-cjs/commands/CheckNoNewAccessCommand.js +52 -0
  5. package/dist-cjs/commands/GetFindingV2Command.js +51 -0
  6. package/dist-cjs/commands/ListFindingsV2Command.js +51 -0
  7. package/dist-cjs/commands/index.js +4 -0
  8. package/dist-cjs/models/models_0.js +83 -1
  9. package/dist-cjs/pagination/GetFindingV2Paginator.js +29 -0
  10. package/dist-cjs/pagination/ListFindingsV2Paginator.js +29 -0
  11. package/dist-cjs/pagination/index.js +2 -0
  12. package/dist-cjs/protocols/Aws_restJson1.js +426 -2
  13. package/dist-es/AccessAnalyzer.js +8 -0
  14. package/dist-es/commands/CheckAccessNotGrantedCommand.js +48 -0
  15. package/dist-es/commands/CheckNoNewAccessCommand.js +48 -0
  16. package/dist-es/commands/GetFindingV2Command.js +47 -0
  17. package/dist-es/commands/ListFindingsV2Command.js +47 -0
  18. package/dist-es/commands/index.js +4 -0
  19. package/dist-es/models/models_0.js +78 -0
  20. package/dist-es/pagination/GetFindingV2Paginator.js +25 -0
  21. package/dist-es/pagination/ListFindingsV2Paginator.js +25 -0
  22. package/dist-es/pagination/index.js +2 -0
  23. package/dist-es/protocols/Aws_restJson1.js +417 -1
  24. package/dist-types/AccessAnalyzer.d.ts +52 -9
  25. package/dist-types/AccessAnalyzerClient.d.ts +30 -11
  26. package/dist-types/commands/CheckAccessNotGrantedCommand.d.ts +107 -0
  27. package/dist-types/commands/CheckNoNewAccessCommand.d.ts +106 -0
  28. package/dist-types/commands/CreateAnalyzerCommand.d.ts +5 -0
  29. package/dist-types/commands/GetAnalyzerCommand.d.ts +5 -0
  30. package/dist-types/commands/GetFindingV2Command.d.ts +146 -0
  31. package/dist-types/commands/ListAnalyzersCommand.d.ts +5 -0
  32. package/dist-types/commands/ListFindingsV2Command.d.ts +123 -0
  33. package/dist-types/commands/index.d.ts +4 -0
  34. package/dist-types/index.d.ts +24 -9
  35. package/dist-types/models/models_0.d.ts +705 -11
  36. package/dist-types/pagination/GetFindingV2Paginator.d.ts +7 -0
  37. package/dist-types/pagination/ListFindingsV2Paginator.d.ts +7 -0
  38. package/dist-types/pagination/index.d.ts +2 -0
  39. package/dist-types/protocols/Aws_restJson1.d.ts +36 -0
  40. package/dist-types/ts3.4/AccessAnalyzer.d.ts +68 -0
  41. package/dist-types/ts3.4/AccessAnalyzerClient.d.ts +24 -0
  42. package/dist-types/ts3.4/commands/CheckAccessNotGrantedCommand.d.ts +42 -0
  43. package/dist-types/ts3.4/commands/CheckNoNewAccessCommand.d.ts +38 -0
  44. package/dist-types/ts3.4/commands/GetFindingV2Command.d.ts +35 -0
  45. package/dist-types/ts3.4/commands/ListFindingsV2Command.d.ts +38 -0
  46. package/dist-types/ts3.4/commands/index.d.ts +4 -0
  47. package/dist-types/ts3.4/models/models_0.d.ts +238 -1
  48. package/dist-types/ts3.4/pagination/GetFindingV2Paginator.d.ts +11 -0
  49. package/dist-types/ts3.4/pagination/ListFindingsV2Paginator.d.ts +11 -0
  50. package/dist-types/ts3.4/pagination/index.d.ts +2 -0
  51. package/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +48 -0
  52. package/package.json +3 -3
@@ -1,5 +1,17 @@
1
1
  import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client";
2
2
  import { AccessAnalyzerServiceException as __BaseException } from "./AccessAnalyzerServiceException";
3
+ /**
4
+ * @public
5
+ * <p>Contains information about actions that define permissions to check against a
6
+ * policy.</p>
7
+ */
8
+ export interface Access {
9
+ /**
10
+ * @public
11
+ * <p>A list of actions for the access permissions.</p>
12
+ */
13
+ actions: string[] | undefined;
14
+ }
3
15
  /**
4
16
  * @public
5
17
  * <p>You do not have sufficient access to perform this action.</p>
@@ -37,8 +49,8 @@ export declare class ConflictException extends __BaseException {
37
49
  /**
38
50
  * @public
39
51
  * <p>The criteria to use in the filter that defines the archive rule. For more information on
40
- * available filter keys, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html">IAM Access Analyzer
41
- * filter keys</a>.</p>
52
+ * available filter keys, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html">IAM Access Analyzer filter
53
+ * keys</a>.</p>
42
54
  */
43
55
  export interface Criterion {
44
56
  /**
@@ -379,8 +391,55 @@ export interface InlineArchiveRule {
379
391
  }
380
392
  /**
381
393
  * @public
394
+ * <p>Contains information about an unused access analyzer.</p>
382
395
  */
383
- export type Type = "ACCOUNT" | "ORGANIZATION";
396
+ export interface UnusedAccessConfiguration {
397
+ /**
398
+ * @public
399
+ * <p>The specified access age in days for which to generate findings for unused access. For
400
+ * example, if you specify 90 days, the analyzer will generate findings for IAM entities
401
+ * within the accounts of the selected organization for any access that hasn't been used in 90
402
+ * or more days since the analyzer's last scan. You can choose a value between 1 and 180
403
+ * days.</p>
404
+ */
405
+ unusedAccessAge?: number;
406
+ }
407
+ /**
408
+ * @public
409
+ * <p>Contains information about the configuration of an unused access analyzer for an Amazon Web Services
410
+ * organization or account.</p>
411
+ */
412
+ export type AnalyzerConfiguration = AnalyzerConfiguration.UnusedAccessMember | AnalyzerConfiguration.$UnknownMember;
413
+ /**
414
+ * @public
415
+ */
416
+ export declare namespace AnalyzerConfiguration {
417
+ /**
418
+ * @public
419
+ * <p>Specifies the configuration of an unused access analyzer for an Amazon Web Services organization or
420
+ * account. External access analyzers do not support any configuration.</p>
421
+ */
422
+ interface UnusedAccessMember {
423
+ unusedAccess: UnusedAccessConfiguration;
424
+ $unknown?: never;
425
+ }
426
+ /**
427
+ * @public
428
+ */
429
+ interface $UnknownMember {
430
+ unusedAccess?: never;
431
+ $unknown: [string, any];
432
+ }
433
+ interface Visitor<T> {
434
+ unusedAccess: (value: UnusedAccessConfiguration) => T;
435
+ _: (name: string, value: any) => T;
436
+ }
437
+ const visit: <T>(value: AnalyzerConfiguration, visitor: Visitor<T>) => T;
438
+ }
439
+ /**
440
+ * @public
441
+ */
442
+ export type Type = "ACCOUNT" | "ACCOUNT_UNUSED_ACCESS" | "ORGANIZATION" | "ORGANIZATION_UNUSED_ACCESS";
384
443
  /**
385
444
  * @public
386
445
  * <p>Creates an analyzer.</p>
@@ -393,9 +452,10 @@ export interface CreateAnalyzerRequest {
393
452
  analyzerName: string | undefined;
394
453
  /**
395
454
  * @public
396
- * <p>The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are supported.
397
- * You can create only one analyzer per account per Region. You can create up to 5 analyzers
398
- * per organization per Region.</p>
455
+ * <p>The type of analyzer to create. Only <code>ACCOUNT</code>, <code>ORGANIZATION</code>,
456
+ * <code>ACCOUNT_UNUSED_ACCESS</code>, and <code>ORGANIZTAION_UNUSED_ACCESS</code>
457
+ * analyzers are supported. You can create only one analyzer per account per Region. You can
458
+ * create up to 5 analyzers per organization per Region.</p>
399
459
  */
400
460
  type: Type | undefined;
401
461
  /**
@@ -406,7 +466,7 @@ export interface CreateAnalyzerRequest {
406
466
  archiveRules?: InlineArchiveRule[];
407
467
  /**
408
468
  * @public
409
- * <p>The tags to apply to the analyzer.</p>
469
+ * <p>An array of key-value pairs to apply to the analyzer.</p>
410
470
  */
411
471
  tags?: Record<string, string>;
412
472
  /**
@@ -414,6 +474,13 @@ export interface CreateAnalyzerRequest {
414
474
  * <p>A client token.</p>
415
475
  */
416
476
  clientToken?: string;
477
+ /**
478
+ * @public
479
+ * <p>Specifies the configuration of the analyzer. If the analyzer is an unused access
480
+ * analyzer, the specified scope of unused access is used for the configuration. If the
481
+ * analyzer is an external access analyzer, this field is not used.</p>
482
+ */
483
+ configuration?: AnalyzerConfiguration;
417
484
  }
418
485
  /**
419
486
  * @public
@@ -535,6 +602,11 @@ export interface AnalyzerSummary {
535
602
  * organization.</p>
536
603
  */
537
604
  statusReason?: StatusReason;
605
+ /**
606
+ * @public
607
+ * <p>Specifies whether the analyzer is an external access or unused access analyzer.</p>
608
+ */
609
+ configuration?: AnalyzerConfiguration;
538
610
  }
539
611
  /**
540
612
  * @public
@@ -624,6 +696,185 @@ export interface CancelPolicyGenerationRequest {
624
696
  */
625
697
  export interface CancelPolicyGenerationResponse {
626
698
  }
699
+ /**
700
+ * @public
701
+ * @enum
702
+ */
703
+ export declare const AccessCheckPolicyType: {
704
+ readonly IDENTITY_POLICY: "IDENTITY_POLICY";
705
+ readonly RESOURCE_POLICY: "RESOURCE_POLICY";
706
+ };
707
+ /**
708
+ * @public
709
+ */
710
+ export type AccessCheckPolicyType = (typeof AccessCheckPolicyType)[keyof typeof AccessCheckPolicyType];
711
+ /**
712
+ * @public
713
+ */
714
+ export interface CheckAccessNotGrantedRequest {
715
+ /**
716
+ * @public
717
+ * <p>The JSON policy document to use as the content for the policy.</p>
718
+ */
719
+ policyDocument: string | undefined;
720
+ /**
721
+ * @public
722
+ * <p>An access object containing the permissions that shouldn't be granted by the specified
723
+ * policy.</p>
724
+ */
725
+ access: Access[] | undefined;
726
+ /**
727
+ * @public
728
+ * <p>The type of policy. Identity policies grant permissions to IAM principals. Identity
729
+ * policies include managed and inline policies for IAM roles, users, and groups.</p>
730
+ * <p>Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust
731
+ * policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic
732
+ * input such as identity policy or resource policy or a specific input such as managed policy
733
+ * or Amazon S3 bucket policy.</p>
734
+ */
735
+ policyType: AccessCheckPolicyType | undefined;
736
+ }
737
+ /**
738
+ * @public
739
+ * <p>Contains information about the reasoning why a check for access passed or failed.</p>
740
+ */
741
+ export interface ReasonSummary {
742
+ /**
743
+ * @public
744
+ * <p>A description of the reasoning of a result of checking for access.</p>
745
+ */
746
+ description?: string;
747
+ /**
748
+ * @public
749
+ * <p>The index number of the reason statement.</p>
750
+ */
751
+ statementIndex?: number;
752
+ /**
753
+ * @public
754
+ * <p>The identifier for the reason statement.</p>
755
+ */
756
+ statementId?: string;
757
+ }
758
+ /**
759
+ * @public
760
+ * @enum
761
+ */
762
+ export declare const CheckAccessNotGrantedResult: {
763
+ readonly FAIL: "FAIL";
764
+ readonly PASS: "PASS";
765
+ };
766
+ /**
767
+ * @public
768
+ */
769
+ export type CheckAccessNotGrantedResult = (typeof CheckAccessNotGrantedResult)[keyof typeof CheckAccessNotGrantedResult];
770
+ /**
771
+ * @public
772
+ */
773
+ export interface CheckAccessNotGrantedResponse {
774
+ /**
775
+ * @public
776
+ * <p>The result of the check for whether the access is allowed. If the result is
777
+ * <code>PASS</code>, the specified policy doesn't allow any of the specified permissions
778
+ * in the access object. If the result is <code>FAIL</code>, the specified policy might allow
779
+ * some or all of the permissions in the access object.</p>
780
+ */
781
+ result?: CheckAccessNotGrantedResult;
782
+ /**
783
+ * @public
784
+ * <p>The message indicating whether the specified access is allowed.</p>
785
+ */
786
+ message?: string;
787
+ /**
788
+ * @public
789
+ * <p>A description of the reasoning of the result.</p>
790
+ */
791
+ reasons?: ReasonSummary[];
792
+ }
793
+ /**
794
+ * @public
795
+ * <p>The specified parameter is invalid.</p>
796
+ */
797
+ export declare class InvalidParameterException extends __BaseException {
798
+ readonly name: "InvalidParameterException";
799
+ readonly $fault: "client";
800
+ /**
801
+ * @internal
802
+ */
803
+ constructor(opts: __ExceptionOptionType<InvalidParameterException, __BaseException>);
804
+ }
805
+ /**
806
+ * @public
807
+ * <p>The specified entity could not be processed.</p>
808
+ */
809
+ export declare class UnprocessableEntityException extends __BaseException {
810
+ readonly name: "UnprocessableEntityException";
811
+ readonly $fault: "client";
812
+ $retryable: {};
813
+ /**
814
+ * @internal
815
+ */
816
+ constructor(opts: __ExceptionOptionType<UnprocessableEntityException, __BaseException>);
817
+ }
818
+ /**
819
+ * @public
820
+ */
821
+ export interface CheckNoNewAccessRequest {
822
+ /**
823
+ * @public
824
+ * <p>The JSON policy document to use as the content for the updated policy.</p>
825
+ */
826
+ newPolicyDocument: string | undefined;
827
+ /**
828
+ * @public
829
+ * <p>The JSON policy document to use as the content for the existing policy.</p>
830
+ */
831
+ existingPolicyDocument: string | undefined;
832
+ /**
833
+ * @public
834
+ * <p>The type of policy to compare. Identity policies grant permissions to IAM principals.
835
+ * Identity policies include managed and inline policies for IAM roles, users, and
836
+ * groups.</p>
837
+ * <p>Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust
838
+ * policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic
839
+ * input such as identity policy or resource policy or a specific input such as managed policy
840
+ * or Amazon S3 bucket policy.</p>
841
+ */
842
+ policyType: AccessCheckPolicyType | undefined;
843
+ }
844
+ /**
845
+ * @public
846
+ * @enum
847
+ */
848
+ export declare const CheckNoNewAccessResult: {
849
+ readonly FAIL: "FAIL";
850
+ readonly PASS: "PASS";
851
+ };
852
+ /**
853
+ * @public
854
+ */
855
+ export type CheckNoNewAccessResult = (typeof CheckNoNewAccessResult)[keyof typeof CheckNoNewAccessResult];
856
+ /**
857
+ * @public
858
+ */
859
+ export interface CheckNoNewAccessResponse {
860
+ /**
861
+ * @public
862
+ * <p>The result of the check for new access. If the result is <code>PASS</code>, no new
863
+ * access is allowed by the updated policy. If the result is <code>FAIL</code>, the updated
864
+ * policy might allow new access.</p>
865
+ */
866
+ result?: CheckNoNewAccessResult;
867
+ /**
868
+ * @public
869
+ * <p>The message indicating whether the updated policy allows new access.</p>
870
+ */
871
+ message?: string;
872
+ /**
873
+ * @public
874
+ * <p>A description of the reasoning of the result.</p>
875
+ */
876
+ reasons?: ReasonSummary[];
877
+ }
627
878
  /**
628
879
  * @public
629
880
  * <p>The proposed access control configuration for an Amazon EBS volume snapshot. You can propose
@@ -1935,7 +2186,7 @@ export interface Finding {
1935
2186
  id: string | undefined;
1936
2187
  /**
1937
2188
  * @public
1938
- * <p>The external principal that access to a resource within the zone of trust.</p>
2189
+ * <p>The external principal that has access to a resource within the zone of trust.</p>
1939
2190
  */
1940
2191
  principal?: Record<string, string>;
1941
2192
  /**
@@ -2013,6 +2264,336 @@ export interface GetFindingResponse {
2013
2264
  */
2014
2265
  finding?: Finding;
2015
2266
  }
2267
+ /**
2268
+ * @public
2269
+ */
2270
+ export interface GetFindingV2Request {
2271
+ /**
2272
+ * @public
2273
+ * <p>The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of
2274
+ * the analyzer</a> that generated the finding.</p>
2275
+ */
2276
+ analyzerArn: string | undefined;
2277
+ /**
2278
+ * @public
2279
+ * <p>The ID of the finding to retrieve.</p>
2280
+ */
2281
+ id: string | undefined;
2282
+ /**
2283
+ * @public
2284
+ * <p>The maximum number of results to return in the response.</p>
2285
+ */
2286
+ maxResults?: number;
2287
+ /**
2288
+ * @public
2289
+ * <p>A token used for pagination of results returned.</p>
2290
+ */
2291
+ nextToken?: string;
2292
+ }
2293
+ /**
2294
+ * @public
2295
+ * <p>Contains information about an external access finding.</p>
2296
+ */
2297
+ export interface ExternalAccessDetails {
2298
+ /**
2299
+ * @public
2300
+ * <p>The action in the analyzed policy statement that an external principal has permission to
2301
+ * use.</p>
2302
+ */
2303
+ action?: string[];
2304
+ /**
2305
+ * @public
2306
+ * <p>The condition in the analyzed policy statement that resulted in an external access
2307
+ * finding.</p>
2308
+ */
2309
+ condition: Record<string, string> | undefined;
2310
+ /**
2311
+ * @public
2312
+ * <p>Specifies whether the external access finding is public.</p>
2313
+ */
2314
+ isPublic?: boolean;
2315
+ /**
2316
+ * @public
2317
+ * <p>The external principal that has access to a resource within the zone of trust.</p>
2318
+ */
2319
+ principal?: Record<string, string>;
2320
+ /**
2321
+ * @public
2322
+ * <p>The sources of the external access finding. This indicates how the access that generated
2323
+ * the finding is granted. It is populated for Amazon S3 bucket findings.</p>
2324
+ */
2325
+ sources?: FindingSource[];
2326
+ }
2327
+ /**
2328
+ * @public
2329
+ * <p>Contains information about an unused access finding for an IAM role. IAM Access Analyzer
2330
+ * charges for unused access analysis based on the number of IAM roles and users analyzed
2331
+ * per month. For more details on pricing, see <a href="https://aws.amazon.com/iam/access-analyzer/pricing">IAM Access Analyzer
2332
+ * pricing</a>.</p>
2333
+ */
2334
+ export interface UnusedIamRoleDetails {
2335
+ /**
2336
+ * @public
2337
+ * <p>The time at which the role was last accessed.</p>
2338
+ */
2339
+ lastAccessed?: Date;
2340
+ }
2341
+ /**
2342
+ * @public
2343
+ * <p>Contains information about an unused access finding for an IAM user access key.
2344
+ * IAM Access Analyzer charges for unused access analysis based on the number of IAM roles and
2345
+ * users analyzed per month. For more details on pricing, see <a href="https://aws.amazon.com/iam/access-analyzer/pricing">IAM Access Analyzer
2346
+ * pricing</a>.</p>
2347
+ */
2348
+ export interface UnusedIamUserAccessKeyDetails {
2349
+ /**
2350
+ * @public
2351
+ * <p>The ID of the access key for which the unused access finding was generated.</p>
2352
+ */
2353
+ accessKeyId: string | undefined;
2354
+ /**
2355
+ * @public
2356
+ * <p>The time at which the access key was last accessed.</p>
2357
+ */
2358
+ lastAccessed?: Date;
2359
+ }
2360
+ /**
2361
+ * @public
2362
+ * <p>Contains information about an unused access finding for an IAM user password.
2363
+ * IAM Access Analyzer charges for unused access analysis based on the number of IAM roles and
2364
+ * users analyzed per month. For more details on pricing, see <a href="https://aws.amazon.com/iam/access-analyzer/pricing">IAM Access Analyzer
2365
+ * pricing</a>.</p>
2366
+ */
2367
+ export interface UnusedIamUserPasswordDetails {
2368
+ /**
2369
+ * @public
2370
+ * <p>The time at which the password was last accessed.</p>
2371
+ */
2372
+ lastAccessed?: Date;
2373
+ }
2374
+ /**
2375
+ * @public
2376
+ * <p>Contains information about an unused access finding for an action. IAM Access Analyzer charges
2377
+ * for unused access analysis based on the number of IAM roles and users analyzed per month.
2378
+ * For more details on pricing, see <a href="https://aws.amazon.com/iam/access-analyzer/pricing">IAM Access Analyzer
2379
+ * pricing</a>.</p>
2380
+ */
2381
+ export interface UnusedAction {
2382
+ /**
2383
+ * @public
2384
+ * <p>The action for which the unused access finding was generated.</p>
2385
+ */
2386
+ action: string | undefined;
2387
+ /**
2388
+ * @public
2389
+ * <p>The time at which the action was last accessed.</p>
2390
+ */
2391
+ lastAccessed?: Date;
2392
+ }
2393
+ /**
2394
+ * @public
2395
+ * <p>Contains information about an unused access finding for a permission. IAM Access Analyzer
2396
+ * charges for unused access analysis based on the number of IAM roles and users analyzed
2397
+ * per month. For more details on pricing, see <a href="https://aws.amazon.com/iam/access-analyzer/pricing">IAM Access Analyzer
2398
+ * pricing</a>.</p>
2399
+ */
2400
+ export interface UnusedPermissionDetails {
2401
+ /**
2402
+ * @public
2403
+ * <p>A list of unused actions for which the unused access finding was generated.</p>
2404
+ */
2405
+ actions?: UnusedAction[];
2406
+ /**
2407
+ * @public
2408
+ * <p>The namespace of the Amazon Web Services service that contains the unused actions.</p>
2409
+ */
2410
+ serviceNamespace: string | undefined;
2411
+ /**
2412
+ * @public
2413
+ * <p>The time at which the permission last accessed.</p>
2414
+ */
2415
+ lastAccessed?: Date;
2416
+ }
2417
+ /**
2418
+ * @public
2419
+ * <p>Contains information about an external access or unused access finding. Only one
2420
+ * parameter can be used in a <code>FindingDetails</code> object.</p>
2421
+ */
2422
+ export type FindingDetails = FindingDetails.ExternalAccessDetailsMember | FindingDetails.UnusedIamRoleDetailsMember | FindingDetails.UnusedIamUserAccessKeyDetailsMember | FindingDetails.UnusedIamUserPasswordDetailsMember | FindingDetails.UnusedPermissionDetailsMember | FindingDetails.$UnknownMember;
2423
+ /**
2424
+ * @public
2425
+ */
2426
+ export declare namespace FindingDetails {
2427
+ /**
2428
+ * @public
2429
+ * <p>The details for an external access analyzer finding.</p>
2430
+ */
2431
+ interface ExternalAccessDetailsMember {
2432
+ externalAccessDetails: ExternalAccessDetails;
2433
+ unusedPermissionDetails?: never;
2434
+ unusedIamUserAccessKeyDetails?: never;
2435
+ unusedIamRoleDetails?: never;
2436
+ unusedIamUserPasswordDetails?: never;
2437
+ $unknown?: never;
2438
+ }
2439
+ /**
2440
+ * @public
2441
+ * <p>The details for an unused access analyzer finding with an unused permission finding
2442
+ * type.</p>
2443
+ */
2444
+ interface UnusedPermissionDetailsMember {
2445
+ externalAccessDetails?: never;
2446
+ unusedPermissionDetails: UnusedPermissionDetails;
2447
+ unusedIamUserAccessKeyDetails?: never;
2448
+ unusedIamRoleDetails?: never;
2449
+ unusedIamUserPasswordDetails?: never;
2450
+ $unknown?: never;
2451
+ }
2452
+ /**
2453
+ * @public
2454
+ * <p>The details for an unused access analyzer finding with an unused IAM user access key
2455
+ * finding type.</p>
2456
+ */
2457
+ interface UnusedIamUserAccessKeyDetailsMember {
2458
+ externalAccessDetails?: never;
2459
+ unusedPermissionDetails?: never;
2460
+ unusedIamUserAccessKeyDetails: UnusedIamUserAccessKeyDetails;
2461
+ unusedIamRoleDetails?: never;
2462
+ unusedIamUserPasswordDetails?: never;
2463
+ $unknown?: never;
2464
+ }
2465
+ /**
2466
+ * @public
2467
+ * <p>The details for an unused access analyzer finding with an unused IAM role finding
2468
+ * type.</p>
2469
+ */
2470
+ interface UnusedIamRoleDetailsMember {
2471
+ externalAccessDetails?: never;
2472
+ unusedPermissionDetails?: never;
2473
+ unusedIamUserAccessKeyDetails?: never;
2474
+ unusedIamRoleDetails: UnusedIamRoleDetails;
2475
+ unusedIamUserPasswordDetails?: never;
2476
+ $unknown?: never;
2477
+ }
2478
+ /**
2479
+ * @public
2480
+ * <p>The details for an unused access analyzer finding with an unused IAM user password
2481
+ * finding type.</p>
2482
+ */
2483
+ interface UnusedIamUserPasswordDetailsMember {
2484
+ externalAccessDetails?: never;
2485
+ unusedPermissionDetails?: never;
2486
+ unusedIamUserAccessKeyDetails?: never;
2487
+ unusedIamRoleDetails?: never;
2488
+ unusedIamUserPasswordDetails: UnusedIamUserPasswordDetails;
2489
+ $unknown?: never;
2490
+ }
2491
+ /**
2492
+ * @public
2493
+ */
2494
+ interface $UnknownMember {
2495
+ externalAccessDetails?: never;
2496
+ unusedPermissionDetails?: never;
2497
+ unusedIamUserAccessKeyDetails?: never;
2498
+ unusedIamRoleDetails?: never;
2499
+ unusedIamUserPasswordDetails?: never;
2500
+ $unknown: [string, any];
2501
+ }
2502
+ interface Visitor<T> {
2503
+ externalAccessDetails: (value: ExternalAccessDetails) => T;
2504
+ unusedPermissionDetails: (value: UnusedPermissionDetails) => T;
2505
+ unusedIamUserAccessKeyDetails: (value: UnusedIamUserAccessKeyDetails) => T;
2506
+ unusedIamRoleDetails: (value: UnusedIamRoleDetails) => T;
2507
+ unusedIamUserPasswordDetails: (value: UnusedIamUserPasswordDetails) => T;
2508
+ _: (name: string, value: any) => T;
2509
+ }
2510
+ const visit: <T>(value: FindingDetails, visitor: Visitor<T>) => T;
2511
+ }
2512
+ /**
2513
+ * @public
2514
+ * @enum
2515
+ */
2516
+ export declare const FindingType: {
2517
+ readonly EXTERNAL_ACCESS: "ExternalAccess";
2518
+ readonly UNUSED_IAM_ROLE: "UnusedIAMRole";
2519
+ readonly UNUSED_IAM_USER_ACCESS_KEY: "UnusedIAMUserAccessKey";
2520
+ readonly UNUSED_IAM_USER_PASSWORD: "UnusedIAMUserPassword";
2521
+ readonly UNUSED_PERMISSION: "UnusedPermission";
2522
+ };
2523
+ /**
2524
+ * @public
2525
+ */
2526
+ export type FindingType = (typeof FindingType)[keyof typeof FindingType];
2527
+ /**
2528
+ * @public
2529
+ */
2530
+ export interface GetFindingV2Response {
2531
+ /**
2532
+ * @public
2533
+ * <p>The time at which the resource-based policy or IAM entity that generated the finding
2534
+ * was analyzed.</p>
2535
+ */
2536
+ analyzedAt: Date | undefined;
2537
+ /**
2538
+ * @public
2539
+ * <p>The time at which the finding was created.</p>
2540
+ */
2541
+ createdAt: Date | undefined;
2542
+ /**
2543
+ * @public
2544
+ * <p>An error.</p>
2545
+ */
2546
+ error?: string;
2547
+ /**
2548
+ * @public
2549
+ * <p>The ID of the finding to retrieve.</p>
2550
+ */
2551
+ id: string | undefined;
2552
+ /**
2553
+ * @public
2554
+ * <p>A token used for pagination of results returned.</p>
2555
+ */
2556
+ nextToken?: string;
2557
+ /**
2558
+ * @public
2559
+ * <p>The resource that generated the finding.</p>
2560
+ */
2561
+ resource?: string;
2562
+ /**
2563
+ * @public
2564
+ * <p>The type of the resource identified in the finding.</p>
2565
+ */
2566
+ resourceType: ResourceType | undefined;
2567
+ /**
2568
+ * @public
2569
+ * <p>Tye Amazon Web Services account ID that owns the resource.</p>
2570
+ */
2571
+ resourceOwnerAccount: string | undefined;
2572
+ /**
2573
+ * @public
2574
+ * <p>The status of the finding.</p>
2575
+ */
2576
+ status: FindingStatus | undefined;
2577
+ /**
2578
+ * @public
2579
+ * <p>The time at which the finding was updated.</p>
2580
+ */
2581
+ updatedAt: Date | undefined;
2582
+ /**
2583
+ * @public
2584
+ * <p>A localized message that explains the finding and provides guidance on how to address
2585
+ * it.</p>
2586
+ */
2587
+ findingDetails: FindingDetails[] | undefined;
2588
+ /**
2589
+ * @public
2590
+ * <p>The type of the finding. For external access analyzers, the type is
2591
+ * <code>ExternalAccess</code>. For unused access analyzers, the type can be
2592
+ * <code>UnusedIAMRole</code>, <code>UnusedIAMUserAccessKey</code>,
2593
+ * <code>UnusedIAMUserPassword</code>, or <code>UnusedPermission</code>.</p>
2594
+ */
2595
+ findingType?: FindingType;
2596
+ }
2016
2597
  /**
2017
2598
  * @public
2018
2599
  */
@@ -2711,6 +3292,110 @@ export interface ListFindingsResponse {
2711
3292
  */
2712
3293
  nextToken?: string;
2713
3294
  }
3295
+ /**
3296
+ * @public
3297
+ */
3298
+ export interface ListFindingsV2Request {
3299
+ /**
3300
+ * @public
3301
+ * <p>The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of
3302
+ * the analyzer</a> to retrieve findings from.</p>
3303
+ */
3304
+ analyzerArn: string | undefined;
3305
+ /**
3306
+ * @public
3307
+ * <p>A filter to match for the findings to return.</p>
3308
+ */
3309
+ filter?: Record<string, Criterion>;
3310
+ /**
3311
+ * @public
3312
+ * <p>The maximum number of results to return in the response.</p>
3313
+ */
3314
+ maxResults?: number;
3315
+ /**
3316
+ * @public
3317
+ * <p>A token used for pagination of results returned.</p>
3318
+ */
3319
+ nextToken?: string;
3320
+ /**
3321
+ * @public
3322
+ * <p>The criteria used to sort.</p>
3323
+ */
3324
+ sort?: SortCriteria;
3325
+ }
3326
+ /**
3327
+ * @public
3328
+ * <p>Contains information about a finding.</p>
3329
+ */
3330
+ export interface FindingSummaryV2 {
3331
+ /**
3332
+ * @public
3333
+ * <p>The time at which the resource-based policy or IAM entity that generated the finding
3334
+ * was analyzed.</p>
3335
+ */
3336
+ analyzedAt: Date | undefined;
3337
+ /**
3338
+ * @public
3339
+ * <p>The time at which the finding was created.</p>
3340
+ */
3341
+ createdAt: Date | undefined;
3342
+ /**
3343
+ * @public
3344
+ * <p>The error that resulted in an Error finding.</p>
3345
+ */
3346
+ error?: string;
3347
+ /**
3348
+ * @public
3349
+ * <p>The ID of the finding.</p>
3350
+ */
3351
+ id: string | undefined;
3352
+ /**
3353
+ * @public
3354
+ * <p>The resource that the external principal has access to.</p>
3355
+ */
3356
+ resource?: string;
3357
+ /**
3358
+ * @public
3359
+ * <p>The type of the resource that the external principal has access to.</p>
3360
+ */
3361
+ resourceType: ResourceType | undefined;
3362
+ /**
3363
+ * @public
3364
+ * <p>The Amazon Web Services account ID that owns the resource.</p>
3365
+ */
3366
+ resourceOwnerAccount: string | undefined;
3367
+ /**
3368
+ * @public
3369
+ * <p>The status of the finding.</p>
3370
+ */
3371
+ status: FindingStatus | undefined;
3372
+ /**
3373
+ * @public
3374
+ * <p>The time at which the finding was most recently updated.</p>
3375
+ */
3376
+ updatedAt: Date | undefined;
3377
+ /**
3378
+ * @public
3379
+ * <p>The type of the external access or unused access finding.</p>
3380
+ */
3381
+ findingType?: FindingType;
3382
+ }
3383
+ /**
3384
+ * @public
3385
+ */
3386
+ export interface ListFindingsV2Response {
3387
+ /**
3388
+ * @public
3389
+ * <p>A list of findings retrieved from the analyzer that match the filter criteria specified,
3390
+ * if any.</p>
3391
+ */
3392
+ findings: FindingSummaryV2[] | undefined;
3393
+ /**
3394
+ * @public
3395
+ * <p>A token used for pagination of results returned.</p>
3396
+ */
3397
+ nextToken?: string;
3398
+ }
2714
3399
  /**
2715
3400
  * @public
2716
3401
  */
@@ -3093,13 +3778,14 @@ export interface ValidatePolicyRequest {
3093
3778
  /**
3094
3779
  * @public
3095
3780
  * <p>The type of policy to validate. Identity policies grant permissions to IAM principals.
3096
- * Identity policies include managed and inline policies for IAM roles, users, and groups.
3097
- * They also include service-control policies (SCPs) that are attached to an Amazon Web Services
3098
- * organization, organizational unit (OU), or an account.</p>
3781
+ * Identity policies include managed and inline policies for IAM roles, users, and
3782
+ * groups.</p>
3099
3783
  * <p>Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust
3100
3784
  * policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic
3101
3785
  * input such as identity policy or resource policy or a specific input such as managed policy
3102
3786
  * or Amazon S3 bucket policy. </p>
3787
+ * <p>Service control policies (SCPs) are a type of organization policy attached to an Amazon Web Services
3788
+ * organization, organizational unit (OU), or an account.</p>
3103
3789
  */
3104
3790
  policyType: PolicyType | undefined;
3105
3791
  /**
@@ -3329,3 +4015,11 @@ export interface ValidatePolicyResponse {
3329
4015
  */
3330
4016
  nextToken?: string;
3331
4017
  }
4018
+ /**
4019
+ * @internal
4020
+ */
4021
+ export declare const CheckAccessNotGrantedRequestFilterSensitiveLog: (obj: CheckAccessNotGrantedRequest) => any;
4022
+ /**
4023
+ * @internal
4024
+ */
4025
+ export declare const CheckNoNewAccessRequestFilterSensitiveLog: (obj: CheckNoNewAccessRequest) => any;