import { AccessCheckPolicyType, AccessCheckResourceType, AccessPreviewStatus, AccessPreviewStatusReasonCode, AclPermission, AnalyzerStatus, CheckAccessNotGrantedResult, CheckNoNewAccessResult, CheckNoPublicAccessResult, FindingChangeType, FindingSourceType, FindingStatus, FindingStatusUpdate, FindingType, InternalAccessType, JobErrorCode, JobStatus, KmsGrantOperation, Locale, OrderBy, PolicyType, PrincipalType, ReasonCode, RecommendationType, RecommendedRemediationAction, ResourceControlPolicyRestriction, ResourceType, ServiceControlPolicyRestriction, Status, Type, ValidatePolicyFindingType, ValidatePolicyResourceType, } from "./enums"; export interface Access { actions?: string[] | undefined; resources?: string[] | undefined; } export interface Criterion { eq?: string[] | undefined; neq?: string[] | undefined; contains?: string[] | undefined; exists?: boolean | undefined; } export interface CreateArchiveRuleRequest { analyzerName: string | undefined; ruleName: string | undefined; filter: Record | undefined; clientToken?: string | undefined; } export interface ValidationExceptionField { name: string | undefined; message: string | undefined; } export interface DeleteArchiveRuleRequest { analyzerName: string | undefined; ruleName: string | undefined; clientToken?: string | undefined; } export interface GetArchiveRuleRequest { analyzerName: string | undefined; ruleName: string | undefined; } export interface ArchiveRuleSummary { ruleName: string | undefined; filter: Record | undefined; createdAt: Date | undefined; updatedAt: Date | undefined; } export interface GetArchiveRuleResponse { archiveRule: ArchiveRuleSummary | undefined; } export interface ListArchiveRulesRequest { analyzerName: string | undefined; nextToken?: string | undefined; maxResults?: number | undefined; } export interface ListArchiveRulesResponse { archiveRules: ArchiveRuleSummary[] | undefined; nextToken?: string | undefined; } export interface UpdateArchiveRuleRequest { analyzerName: string | undefined; ruleName: string | undefined; filter: Record | undefined; clientToken?: string | undefined; } export interface InlineArchiveRule { ruleName: string | undefined; filter: Record | undefined; } export interface InternalAccessAnalysisRuleCriteria { accountIds?: string[] | undefined; resourceTypes?: ResourceType[] | undefined; resourceArns?: string[] | undefined; } export interface InternalAccessAnalysisRule { inclusions?: InternalAccessAnalysisRuleCriteria[] | undefined; } export interface InternalAccessConfiguration { analysisRule?: InternalAccessAnalysisRule | undefined; } export interface AnalysisRuleCriteria { accountIds?: string[] | undefined; resourceTags?: Record[] | undefined; } export interface AnalysisRule { exclusions?: AnalysisRuleCriteria[] | undefined; } export interface UnusedAccessConfiguration { unusedAccessAge?: number | undefined; analysisRule?: AnalysisRule | undefined; } export type AnalyzerConfiguration = | AnalyzerConfiguration.InternalAccessMember | AnalyzerConfiguration.UnusedAccessMember | AnalyzerConfiguration.$UnknownMember; export declare namespace AnalyzerConfiguration { interface UnusedAccessMember { unusedAccess: UnusedAccessConfiguration; internalAccess?: never; $unknown?: never; } interface InternalAccessMember { unusedAccess?: never; internalAccess: InternalAccessConfiguration; $unknown?: never; } interface $UnknownMember { unusedAccess?: never; internalAccess?: never; $unknown: [string, any]; } interface Visitor { unusedAccess: (value: UnusedAccessConfiguration) => T; internalAccess: (value: InternalAccessConfiguration) => T; _: (name: string, value: any) => T; } } export interface CreateAnalyzerRequest { analyzerName: string | undefined; type: Type | undefined; archiveRules?: InlineArchiveRule[] | undefined; tags?: Record | undefined; clientToken?: string | undefined; configuration?: AnalyzerConfiguration | undefined; } export interface CreateAnalyzerResponse { arn?: string | undefined; } export interface DeleteAnalyzerRequest { analyzerName: string | undefined; clientToken?: string | undefined; } export interface DeleteServiceLinkedAnalyzerRequest { analyzerName: string | undefined; clientToken?: string | undefined; } export interface GetAnalyzerRequest { analyzerName: string | undefined; } export interface StatusReason { code: ReasonCode | undefined; } export interface AnalyzerSummary { arn: string | undefined; name: string | undefined; type: Type | undefined; createdAt: Date | undefined; lastResourceAnalyzed?: string | undefined; lastResourceAnalyzedAt?: Date | undefined; tags?: Record | undefined; status: AnalyzerStatus | undefined; statusReason?: StatusReason | undefined; configuration?: AnalyzerConfiguration | undefined; managedBy?: string | undefined; } export interface GetAnalyzerResponse { analyzer: AnalyzerSummary | undefined; } export interface ListAnalyzersRequest { nextToken?: string | undefined; maxResults?: number | undefined; type?: Type | undefined; } export interface ListAnalyzersResponse { analyzers: AnalyzerSummary[] | undefined; nextToken?: string | undefined; } export interface UpdateAnalyzerRequest { analyzerName: string | undefined; configuration?: AnalyzerConfiguration | undefined; } export interface UpdateAnalyzerResponse { configuration?: AnalyzerConfiguration | undefined; } export interface ApplyArchiveRuleRequest { analyzerArn: string | undefined; ruleName: string | undefined; clientToken?: string | undefined; } export interface CancelPolicyGenerationRequest { jobId: string | undefined; } export interface CancelPolicyGenerationResponse {} export interface CheckAccessNotGrantedRequest { policyDocument: string | undefined; access: Access[] | undefined; policyType: AccessCheckPolicyType | undefined; } export interface ReasonSummary { description?: string | undefined; statementIndex?: number | undefined; statementId?: string | undefined; } export interface CheckAccessNotGrantedResponse { result?: CheckAccessNotGrantedResult | undefined; message?: string | undefined; reasons?: ReasonSummary[] | undefined; } export interface CheckNoNewAccessRequest { newPolicyDocument: string | undefined; existingPolicyDocument: string | undefined; policyType: AccessCheckPolicyType | undefined; } export interface CheckNoNewAccessResponse { result?: CheckNoNewAccessResult | undefined; message?: string | undefined; reasons?: ReasonSummary[] | undefined; } export interface CheckNoPublicAccessRequest { policyDocument: string | undefined; resourceType: AccessCheckResourceType | undefined; } export interface CheckNoPublicAccessResponse { result?: CheckNoPublicAccessResult | undefined; message?: string | undefined; reasons?: ReasonSummary[] | undefined; } export interface DynamodbStreamConfiguration { streamPolicy?: string | undefined; } export interface DynamodbTableConfiguration { tablePolicy?: string | undefined; } export interface EbsSnapshotConfiguration { userIds?: string[] | undefined; groups?: string[] | undefined; kmsKeyId?: string | undefined; } export interface EcrRepositoryConfiguration { repositoryPolicy?: string | undefined; } export interface EfsFileSystemConfiguration { fileSystemPolicy?: string | undefined; } export interface IamRoleConfiguration { trustPolicy?: string | undefined; } export interface KmsGrantConstraints { encryptionContextEquals?: Record | undefined; encryptionContextSubset?: Record | undefined; } export interface KmsGrantConfiguration { operations: KmsGrantOperation[] | undefined; granteePrincipal: string | undefined; retiringPrincipal?: string | undefined; constraints?: KmsGrantConstraints | undefined; issuingAccount: string | undefined; } export interface KmsKeyConfiguration { keyPolicies?: Record | undefined; grants?: KmsGrantConfiguration[] | undefined; } export type RdsDbClusterSnapshotAttributeValue = | RdsDbClusterSnapshotAttributeValue.AccountIdsMember | RdsDbClusterSnapshotAttributeValue.$UnknownMember; export declare namespace RdsDbClusterSnapshotAttributeValue { interface AccountIdsMember { accountIds: string[]; $unknown?: never; } interface $UnknownMember { accountIds?: never; $unknown: [string, any]; } interface Visitor { accountIds: (value: string[]) => T; _: (name: string, value: any) => T; } } export interface RdsDbClusterSnapshotConfiguration { attributes?: Record | undefined; kmsKeyId?: string | undefined; } export type RdsDbSnapshotAttributeValue = | RdsDbSnapshotAttributeValue.AccountIdsMember | RdsDbSnapshotAttributeValue.$UnknownMember; export declare namespace RdsDbSnapshotAttributeValue { interface AccountIdsMember { accountIds: string[]; $unknown?: never; } interface $UnknownMember { accountIds?: never; $unknown: [string, any]; } interface Visitor { accountIds: (value: string[]) => T; _: (name: string, value: any) => T; } } export interface RdsDbSnapshotConfiguration { attributes?: Record | undefined; kmsKeyId?: string | undefined; } export interface InternetConfiguration {} export interface VpcConfiguration { vpcId: string | undefined; } export type NetworkOriginConfiguration = | NetworkOriginConfiguration.InternetConfigurationMember | NetworkOriginConfiguration.VpcConfigurationMember | NetworkOriginConfiguration.$UnknownMember; export declare namespace NetworkOriginConfiguration { interface VpcConfigurationMember { vpcConfiguration: VpcConfiguration; internetConfiguration?: never; $unknown?: never; } interface InternetConfigurationMember { vpcConfiguration?: never; internetConfiguration: InternetConfiguration; $unknown?: never; } interface $UnknownMember { vpcConfiguration?: never; internetConfiguration?: never; $unknown: [string, any]; } interface Visitor { vpcConfiguration: (value: VpcConfiguration) => T; internetConfiguration: (value: InternetConfiguration) => T; _: (name: string, value: any) => T; } } export interface S3PublicAccessBlockConfiguration { ignorePublicAcls: boolean | undefined; restrictPublicBuckets: boolean | undefined; } export interface S3AccessPointConfiguration { accessPointPolicy?: string | undefined; publicAccessBlock?: S3PublicAccessBlockConfiguration | undefined; networkOrigin?: NetworkOriginConfiguration | undefined; } export type AclGrantee = | AclGrantee.IdMember | AclGrantee.UriMember | AclGrantee.$UnknownMember; export declare namespace AclGrantee { interface IdMember { id: string; uri?: never; $unknown?: never; } interface UriMember { id?: never; uri: string; $unknown?: never; } interface $UnknownMember { id?: never; uri?: never; $unknown: [string, any]; } interface Visitor { id: (value: string) => T; uri: (value: string) => T; _: (name: string, value: any) => T; } } export interface S3BucketAclGrantConfiguration { permission: AclPermission | undefined; grantee: AclGrantee | undefined; } export interface S3BucketConfiguration { bucketPolicy?: string | undefined; bucketAclGrants?: S3BucketAclGrantConfiguration[] | undefined; bucketPublicAccessBlock?: S3PublicAccessBlockConfiguration | undefined; accessPoints?: Record | undefined; } export interface S3ExpressDirectoryAccessPointConfiguration { accessPointPolicy?: string | undefined; networkOrigin?: NetworkOriginConfiguration | undefined; } export interface S3ExpressDirectoryBucketConfiguration { bucketPolicy?: string | undefined; accessPoints?: | Record | undefined; } export interface SecretsManagerSecretConfiguration { kmsKeyId?: string | undefined; secretPolicy?: string | undefined; } export interface SnsTopicConfiguration { topicPolicy?: string | undefined; } export interface SqsQueueConfiguration { queuePolicy?: string | undefined; } export type Configuration = | Configuration.DynamodbStreamMember | Configuration.DynamodbTableMember | Configuration.EbsSnapshotMember | Configuration.EcrRepositoryMember | Configuration.EfsFileSystemMember | Configuration.IamRoleMember | Configuration.KmsKeyMember | Configuration.RdsDbClusterSnapshotMember | Configuration.RdsDbSnapshotMember | Configuration.S3BucketMember | Configuration.S3ExpressDirectoryBucketMember | Configuration.SecretsManagerSecretMember | Configuration.SnsTopicMember | Configuration.SqsQueueMember | Configuration.$UnknownMember; export declare namespace Configuration { interface EbsSnapshotMember { ebsSnapshot: EbsSnapshotConfiguration; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface EcrRepositoryMember { ebsSnapshot?: never; ecrRepository: EcrRepositoryConfiguration; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface IamRoleMember { ebsSnapshot?: never; ecrRepository?: never; iamRole: IamRoleConfiguration; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface EfsFileSystemMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem: EfsFileSystemConfiguration; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface KmsKeyMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey: KmsKeyConfiguration; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface RdsDbClusterSnapshotMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot: RdsDbClusterSnapshotConfiguration; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface RdsDbSnapshotMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot: RdsDbSnapshotConfiguration; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface SecretsManagerSecretMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret: SecretsManagerSecretConfiguration; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface S3BucketMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket: S3BucketConfiguration; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface SnsTopicMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic: SnsTopicConfiguration; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface SqsQueueMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue: SqsQueueConfiguration; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface S3ExpressDirectoryBucketMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket: S3ExpressDirectoryBucketConfiguration; dynamodbStream?: never; dynamodbTable?: never; $unknown?: never; } interface DynamodbStreamMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream: DynamodbStreamConfiguration; dynamodbTable?: never; $unknown?: never; } interface DynamodbTableMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable: DynamodbTableConfiguration; $unknown?: never; } interface $UnknownMember { ebsSnapshot?: never; ecrRepository?: never; iamRole?: never; efsFileSystem?: never; kmsKey?: never; rdsDbClusterSnapshot?: never; rdsDbSnapshot?: never; secretsManagerSecret?: never; s3Bucket?: never; snsTopic?: never; sqsQueue?: never; s3ExpressDirectoryBucket?: never; dynamodbStream?: never; dynamodbTable?: never; $unknown: [string, any]; } interface Visitor { ebsSnapshot: (value: EbsSnapshotConfiguration) => T; ecrRepository: (value: EcrRepositoryConfiguration) => T; iamRole: (value: IamRoleConfiguration) => T; efsFileSystem: (value: EfsFileSystemConfiguration) => T; kmsKey: (value: KmsKeyConfiguration) => T; rdsDbClusterSnapshot: (value: RdsDbClusterSnapshotConfiguration) => T; rdsDbSnapshot: (value: RdsDbSnapshotConfiguration) => T; secretsManagerSecret: (value: SecretsManagerSecretConfiguration) => T; s3Bucket: (value: S3BucketConfiguration) => T; snsTopic: (value: SnsTopicConfiguration) => T; sqsQueue: (value: SqsQueueConfiguration) => T; s3ExpressDirectoryBucket: ( value: S3ExpressDirectoryBucketConfiguration ) => T; dynamodbStream: (value: DynamodbStreamConfiguration) => T; dynamodbTable: (value: DynamodbTableConfiguration) => T; _: (name: string, value: any) => T; } } export interface CreateAccessPreviewRequest { analyzerArn: string | undefined; configurations: Record | undefined; clientToken?: string | undefined; } export interface CreateAccessPreviewResponse { id: string | undefined; } export interface CreateServiceLinkedAnalyzerRequest { type: Type | undefined; archiveRules?: InlineArchiveRule[] | undefined; clientToken?: string | undefined; configuration?: AnalyzerConfiguration | undefined; } export interface CreateServiceLinkedAnalyzerResponse { arn?: string | undefined; } export interface GenerateFindingRecommendationRequest { analyzerArn: string | undefined; id: string | undefined; } export interface GetAccessPreviewRequest { accessPreviewId: string | undefined; analyzerArn: string | undefined; } export interface AccessPreviewStatusReason { code: AccessPreviewStatusReasonCode | undefined; } export interface AccessPreview { id: string | undefined; analyzerArn: string | undefined; configurations: Record | undefined; createdAt: Date | undefined; status: AccessPreviewStatus | undefined; statusReason?: AccessPreviewStatusReason | undefined; } export interface GetAccessPreviewResponse { accessPreview: AccessPreview | undefined; } export interface GetAnalyzedResourceRequest { analyzerArn: string | undefined; resourceArn: string | undefined; } export interface AnalyzedResource { resourceArn: string | undefined; resourceType: ResourceType | undefined; createdAt: Date | undefined; analyzedAt: Date | undefined; updatedAt: Date | undefined; isPublic: boolean | undefined; actions?: string[] | undefined; sharedVia?: string[] | undefined; status?: FindingStatus | undefined; resourceOwnerAccount: string | undefined; error?: string | undefined; } export interface GetAnalyzedResourceResponse { resource?: AnalyzedResource | undefined; } export interface GetFindingRequest { analyzerArn: string | undefined; id: string | undefined; } export interface FindingSourceDetail { accessPointArn?: string | undefined; accessPointAccount?: string | undefined; } export interface FindingSource { type: FindingSourceType | undefined; detail?: FindingSourceDetail | undefined; } export interface Finding { id: string | undefined; principal?: Record | undefined; action?: string[] | undefined; resource?: string | undefined; isPublic?: boolean | undefined; resourceType: ResourceType | undefined; condition: Record | undefined; createdAt: Date | undefined; analyzedAt: Date | undefined; updatedAt: Date | undefined; status: FindingStatus | undefined; resourceOwnerAccount: string | undefined; error?: string | undefined; sources?: FindingSource[] | undefined; resourceControlPolicyRestriction?: | ResourceControlPolicyRestriction | undefined; } export interface GetFindingResponse { finding?: Finding | undefined; } export interface GetFindingRecommendationRequest { analyzerArn: string | undefined; id: string | undefined; maxResults?: number | undefined; nextToken?: string | undefined; } export interface RecommendationError { code: string | undefined; message: string | undefined; } export interface UnusedPermissionsRecommendedStep { policyUpdatedAt?: Date | undefined; recommendedAction: RecommendedRemediationAction | undefined; recommendedPolicy?: string | undefined; existingPolicyId?: string | undefined; } export type RecommendedStep = | RecommendedStep.UnusedPermissionsRecommendedStepMember | RecommendedStep.$UnknownMember; export declare namespace RecommendedStep { interface UnusedPermissionsRecommendedStepMember { unusedPermissionsRecommendedStep: UnusedPermissionsRecommendedStep; $unknown?: never; } interface $UnknownMember { unusedPermissionsRecommendedStep?: never; $unknown: [string, any]; } interface Visitor { unusedPermissionsRecommendedStep: ( value: UnusedPermissionsRecommendedStep ) => T; _: (name: string, value: any) => T; } } export interface GetFindingRecommendationResponse { startedAt: Date | undefined; completedAt?: Date | undefined; nextToken?: string | undefined; error?: RecommendationError | undefined; resourceArn: string | undefined; recommendedSteps?: RecommendedStep[] | undefined; recommendationType: RecommendationType | undefined; status: Status | undefined; } export interface GetFindingsStatisticsRequest { analyzerArn: string | undefined; } export interface ResourceTypeDetails { totalActivePublic?: number | undefined; totalActiveCrossAccount?: number | undefined; totalActiveErrors?: number | undefined; } export interface ExternalAccessFindingsStatistics { resourceTypeStatistics?: | Partial> | undefined; totalActiveFindings?: number | undefined; totalArchivedFindings?: number | undefined; totalResolvedFindings?: number | undefined; } export interface InternalAccessResourceTypeDetails { totalActiveFindings?: number | undefined; totalResolvedFindings?: number | undefined; totalArchivedFindings?: number | undefined; } export interface InternalAccessFindingsStatistics { resourceTypeStatistics?: | Partial> | undefined; totalActiveFindings?: number | undefined; totalArchivedFindings?: number | undefined; totalResolvedFindings?: number | undefined; } export interface FindingAggregationAccountDetails { account?: string | undefined; numberOfActiveFindings?: number | undefined; details?: Record | undefined; } export interface UnusedAccessTypeStatistics { unusedAccessType?: string | undefined; total?: number | undefined; } export interface UnusedAccessFindingsStatistics { unusedAccessTypeStatistics?: UnusedAccessTypeStatistics[] | undefined; topAccounts?: FindingAggregationAccountDetails[] | undefined; totalActiveFindings?: number | undefined; totalArchivedFindings?: number | undefined; totalResolvedFindings?: number | undefined; } export type FindingsStatistics = | FindingsStatistics.ExternalAccessFindingsStatisticsMember | FindingsStatistics.InternalAccessFindingsStatisticsMember | FindingsStatistics.UnusedAccessFindingsStatisticsMember | FindingsStatistics.$UnknownMember; export declare namespace FindingsStatistics { interface ExternalAccessFindingsStatisticsMember { externalAccessFindingsStatistics: ExternalAccessFindingsStatistics; internalAccessFindingsStatistics?: never; unusedAccessFindingsStatistics?: never; $unknown?: never; } interface InternalAccessFindingsStatisticsMember { externalAccessFindingsStatistics?: never; internalAccessFindingsStatistics: InternalAccessFindingsStatistics; unusedAccessFindingsStatistics?: never; $unknown?: never; } interface UnusedAccessFindingsStatisticsMember { externalAccessFindingsStatistics?: never; internalAccessFindingsStatistics?: never; unusedAccessFindingsStatistics: UnusedAccessFindingsStatistics; $unknown?: never; } interface $UnknownMember { externalAccessFindingsStatistics?: never; internalAccessFindingsStatistics?: never; unusedAccessFindingsStatistics?: never; $unknown: [string, any]; } interface Visitor { externalAccessFindingsStatistics: ( value: ExternalAccessFindingsStatistics ) => T; internalAccessFindingsStatistics: ( value: InternalAccessFindingsStatistics ) => T; unusedAccessFindingsStatistics: ( value: UnusedAccessFindingsStatistics ) => T; _: (name: string, value: any) => T; } } export interface GetFindingsStatisticsResponse { findingsStatistics?: FindingsStatistics[] | undefined; lastUpdatedAt?: Date | undefined; } export interface GetFindingV2Request { analyzerArn: string | undefined; id: string | undefined; maxResults?: number | undefined; nextToken?: string | undefined; } export interface ExternalAccessDetails { action?: string[] | undefined; condition: Record | undefined; isPublic?: boolean | undefined; principal?: Record | undefined; sources?: FindingSource[] | undefined; resourceControlPolicyRestriction?: | ResourceControlPolicyRestriction | undefined; } export interface InternalAccessDetails { action?: string[] | undefined; condition?: Record | undefined; principal?: Record | undefined; principalOwnerAccount?: string | undefined; accessType?: InternalAccessType | undefined; principalType?: PrincipalType | undefined; sources?: FindingSource[] | undefined; resourceControlPolicyRestriction?: | ResourceControlPolicyRestriction | undefined; serviceControlPolicyRestriction?: ServiceControlPolicyRestriction | undefined; } export interface UnusedIamRoleDetails { lastAccessed?: Date | undefined; } export interface UnusedIamUserAccessKeyDetails { accessKeyId: string | undefined; lastAccessed?: Date | undefined; } export interface UnusedIamUserPasswordDetails { lastAccessed?: Date | undefined; } export interface UnusedAction { action: string | undefined; lastAccessed?: Date | undefined; } export interface UnusedPermissionDetails { actions?: UnusedAction[] | undefined; serviceNamespace: string | undefined; lastAccessed?: Date | undefined; } export type FindingDetails = | FindingDetails.ExternalAccessDetailsMember | FindingDetails.InternalAccessDetailsMember | FindingDetails.UnusedIamRoleDetailsMember | FindingDetails.UnusedIamUserAccessKeyDetailsMember | FindingDetails.UnusedIamUserPasswordDetailsMember | FindingDetails.UnusedPermissionDetailsMember | FindingDetails.$UnknownMember; export declare namespace FindingDetails { interface InternalAccessDetailsMember { internalAccessDetails: InternalAccessDetails; externalAccessDetails?: never; unusedPermissionDetails?: never; unusedIamUserAccessKeyDetails?: never; unusedIamRoleDetails?: never; unusedIamUserPasswordDetails?: never; $unknown?: never; } interface ExternalAccessDetailsMember { internalAccessDetails?: never; externalAccessDetails: ExternalAccessDetails; unusedPermissionDetails?: never; unusedIamUserAccessKeyDetails?: never; unusedIamRoleDetails?: never; unusedIamUserPasswordDetails?: never; $unknown?: never; } interface UnusedPermissionDetailsMember { internalAccessDetails?: never; externalAccessDetails?: never; unusedPermissionDetails: UnusedPermissionDetails; unusedIamUserAccessKeyDetails?: never; unusedIamRoleDetails?: never; unusedIamUserPasswordDetails?: never; $unknown?: never; } interface UnusedIamUserAccessKeyDetailsMember { internalAccessDetails?: never; externalAccessDetails?: never; unusedPermissionDetails?: never; unusedIamUserAccessKeyDetails: UnusedIamUserAccessKeyDetails; unusedIamRoleDetails?: never; unusedIamUserPasswordDetails?: never; $unknown?: never; } interface UnusedIamRoleDetailsMember { internalAccessDetails?: never; externalAccessDetails?: never; unusedPermissionDetails?: never; unusedIamUserAccessKeyDetails?: never; unusedIamRoleDetails: UnusedIamRoleDetails; unusedIamUserPasswordDetails?: never; $unknown?: never; } interface UnusedIamUserPasswordDetailsMember { internalAccessDetails?: never; externalAccessDetails?: never; unusedPermissionDetails?: never; unusedIamUserAccessKeyDetails?: never; unusedIamRoleDetails?: never; unusedIamUserPasswordDetails: UnusedIamUserPasswordDetails; $unknown?: never; } interface $UnknownMember { internalAccessDetails?: never; externalAccessDetails?: never; unusedPermissionDetails?: never; unusedIamUserAccessKeyDetails?: never; unusedIamRoleDetails?: never; unusedIamUserPasswordDetails?: never; $unknown: [string, any]; } interface Visitor { internalAccessDetails: (value: InternalAccessDetails) => T; externalAccessDetails: (value: ExternalAccessDetails) => T; unusedPermissionDetails: (value: UnusedPermissionDetails) => T; unusedIamUserAccessKeyDetails: (value: UnusedIamUserAccessKeyDetails) => T; unusedIamRoleDetails: (value: UnusedIamRoleDetails) => T; unusedIamUserPasswordDetails: (value: UnusedIamUserPasswordDetails) => T; _: (name: string, value: any) => T; } } export interface GetFindingV2Response { analyzedAt: Date | undefined; createdAt: Date | undefined; error?: string | undefined; id: string | undefined; nextToken?: string | undefined; resource?: string | undefined; resourceType: ResourceType | undefined; resourceOwnerAccount: string | undefined; status: FindingStatus | undefined; updatedAt: Date | undefined; findingDetails: FindingDetails[] | undefined; findingType?: FindingType | undefined; } export interface GetGeneratedPolicyRequest { jobId: string | undefined; includeResourcePlaceholders?: boolean | undefined; includeServiceLevelTemplate?: boolean | undefined; } export interface GeneratedPolicy { policy: string | undefined; } export interface TrailProperties { cloudTrailArn: string | undefined; regions?: string[] | undefined; allRegions?: boolean | undefined; } export interface CloudTrailProperties { trailProperties: TrailProperties[] | undefined; startTime: Date | undefined; endTime: Date | undefined; } export interface GeneratedPolicyProperties { isComplete?: boolean | undefined; principalArn: string | undefined; cloudTrailProperties?: CloudTrailProperties | undefined; } export interface GeneratedPolicyResult { properties: GeneratedPolicyProperties | undefined; generatedPolicies?: GeneratedPolicy[] | undefined; } export interface JobError { code: JobErrorCode | undefined; message: string | undefined; } export interface JobDetails { jobId: string | undefined; status: JobStatus | undefined; startedOn: Date | undefined; completedOn?: Date | undefined; jobError?: JobError | undefined; } export interface GetGeneratedPolicyResponse { jobDetails: JobDetails | undefined; generatedPolicyResult: GeneratedPolicyResult | undefined; } export interface ListAccessPreviewFindingsRequest { accessPreviewId: string | undefined; analyzerArn: string | undefined; filter?: Record | undefined; nextToken?: string | undefined; maxResults?: number | undefined; } export interface AccessPreviewFinding { id: string | undefined; existingFindingId?: string | undefined; existingFindingStatus?: FindingStatus | undefined; principal?: Record | undefined; action?: string[] | undefined; condition?: Record | undefined; resource?: string | undefined; isPublic?: boolean | undefined; resourceType: ResourceType | undefined; createdAt: Date | undefined; changeType: FindingChangeType | undefined; status: FindingStatus | undefined; resourceOwnerAccount: string | undefined; error?: string | undefined; sources?: FindingSource[] | undefined; resourceControlPolicyRestriction?: | ResourceControlPolicyRestriction | undefined; } export interface ListAccessPreviewFindingsResponse { findings: AccessPreviewFinding[] | undefined; nextToken?: string | undefined; } export interface ListAccessPreviewsRequest { analyzerArn: string | undefined; nextToken?: string | undefined; maxResults?: number | undefined; } export interface AccessPreviewSummary { id: string | undefined; analyzerArn: string | undefined; createdAt: Date | undefined; status: AccessPreviewStatus | undefined; statusReason?: AccessPreviewStatusReason | undefined; } export interface ListAccessPreviewsResponse { accessPreviews: AccessPreviewSummary[] | undefined; nextToken?: string | undefined; } export interface ListAnalyzedResourcesRequest { analyzerArn: string | undefined; resourceType?: ResourceType | undefined; nextToken?: string | undefined; maxResults?: number | undefined; } export interface AnalyzedResourceSummary { resourceArn: string | undefined; resourceOwnerAccount: string | undefined; resourceType: ResourceType | undefined; } export interface ListAnalyzedResourcesResponse { analyzedResources: AnalyzedResourceSummary[] | undefined; nextToken?: string | undefined; } export interface SortCriteria { attributeName?: string | undefined; orderBy?: OrderBy | undefined; } export interface ListFindingsRequest { analyzerArn: string | undefined; filter?: Record | undefined; sort?: SortCriteria | undefined; nextToken?: string | undefined; maxResults?: number | undefined; } export interface FindingSummary { id: string | undefined; principal?: Record | undefined; action?: string[] | undefined; resource?: string | undefined; isPublic?: boolean | undefined; resourceType: ResourceType | undefined; condition: Record | undefined; createdAt: Date | undefined; analyzedAt: Date | undefined; updatedAt: Date | undefined; status: FindingStatus | undefined; resourceOwnerAccount: string | undefined; error?: string | undefined; sources?: FindingSource[] | undefined; resourceControlPolicyRestriction?: | ResourceControlPolicyRestriction | undefined; } export interface ListFindingsResponse { findings: FindingSummary[] | undefined; nextToken?: string | undefined; } export interface ListFindingsV2Request { analyzerArn: string | undefined; filter?: Record | undefined; maxResults?: number | undefined; nextToken?: string | undefined; sort?: SortCriteria | undefined; } export interface FindingSummaryV2 { analyzedAt: Date | undefined; createdAt: Date | undefined; error?: string | undefined; id: string | undefined; resource?: string | undefined; resourceType: ResourceType | undefined; resourceOwnerAccount: string | undefined; status: FindingStatus | undefined; updatedAt: Date | undefined; findingType?: FindingType | undefined; } export interface ListFindingsV2Response { findings: FindingSummaryV2[] | undefined; nextToken?: string | undefined; } export interface ListPolicyGenerationsRequest { principalArn?: string | undefined; maxResults?: number | undefined; nextToken?: string | undefined; } export interface PolicyGeneration { jobId: string | undefined; principalArn: string | undefined; status: JobStatus | undefined; startedOn: Date | undefined; completedOn?: Date | undefined; } export interface ListPolicyGenerationsResponse { policyGenerations: PolicyGeneration[] | undefined; nextToken?: string | undefined; } export interface ListTagsForResourceRequest { resourceArn: string | undefined; } export interface ListTagsForResourceResponse { tags?: Record | undefined; } export interface Trail { cloudTrailArn: string | undefined; regions?: string[] | undefined; allRegions?: boolean | undefined; } export interface CloudTrailDetails { trails: Trail[] | undefined; accessRole: string | undefined; startTime: Date | undefined; endTime?: Date | undefined; } export interface PolicyGenerationDetails { principalArn: string | undefined; } export interface StartPolicyGenerationRequest { policyGenerationDetails: PolicyGenerationDetails | undefined; cloudTrailDetails?: CloudTrailDetails | undefined; clientToken?: string | undefined; } export interface StartPolicyGenerationResponse { jobId: string | undefined; } export interface StartResourceScanRequest { analyzerArn: string | undefined; resourceArn: string | undefined; resourceOwnerAccount?: string | undefined; } export interface TagResourceRequest { resourceArn: string | undefined; tags: Record | undefined; } export interface TagResourceResponse {} export interface UntagResourceRequest { resourceArn: string | undefined; tagKeys: string[] | undefined; } export interface UntagResourceResponse {} export interface UpdateFindingsRequest { analyzerArn: string | undefined; status: FindingStatusUpdate | undefined; ids?: string[] | undefined; resourceArn?: string | undefined; clientToken?: string | undefined; } export interface ValidatePolicyRequest { locale?: Locale | undefined; maxResults?: number | undefined; nextToken?: string | undefined; policyDocument: string | undefined; policyType: PolicyType | undefined; validatePolicyResourceType?: ValidatePolicyResourceType | undefined; } export interface Substring { start: number | undefined; length: number | undefined; } export type PathElement = | PathElement.IndexMember | PathElement.KeyMember | PathElement.SubstringMember | PathElement.ValueMember | PathElement.$UnknownMember; export declare namespace PathElement { interface IndexMember { index: number; key?: never; substring?: never; value?: never; $unknown?: never; } interface KeyMember { index?: never; key: string; substring?: never; value?: never; $unknown?: never; } interface SubstringMember { index?: never; key?: never; substring: Substring; value?: never; $unknown?: never; } interface ValueMember { index?: never; key?: never; substring?: never; value: string; $unknown?: never; } interface $UnknownMember { index?: never; key?: never; substring?: never; value?: never; $unknown: [string, any]; } interface Visitor { index: (value: number) => T; key: (value: string) => T; substring: (value: Substring) => T; value: (value: string) => T; _: (name: string, value: any) => T; } } export interface Position { line: number | undefined; column: number | undefined; offset: number | undefined; } export interface Span { start: Position | undefined; end: Position | undefined; } export interface Location { path: PathElement[] | undefined; span: Span | undefined; } export interface ValidatePolicyFinding { findingDetails: string | undefined; findingType: ValidatePolicyFindingType | undefined; issueCode: string | undefined; learnMoreLink: string | undefined; locations: Location[] | undefined; } export interface ValidatePolicyResponse { findings: ValidatePolicyFinding[] | undefined; nextToken?: string | undefined; }