import * as cdk from "aws-cdk-lib"; import * as constructs from "constructs"; /** * Authorizes an AWS IAM role against a Cloud Provider Access role registration so Atlas can assume it. Use MongoDB::Atlas::CloudProviderAccessSetup to register the role first, then use this resource to authorize it. Deleting this resource removes the whole Cloud Provider Access role registration, not only the authorization. * * @schema CfnCloudProviderAccessAuthorizationProps */ export interface CfnCloudProviderAccessAuthorizationProps { /** * The profile is defined in AWS Secret manager. See [Secret Manager Profile setup](../../../examples/profile-secret.yaml). * * @schema CfnCloudProviderAccessAuthorizationProps#Profile */ readonly profile?: string; /** * Unique 24-hexadecimal digit string that identifies your project. * * @schema CfnCloudProviderAccessAuthorizationProps#ProjectId */ readonly projectId: string; /** * Unique 24-hexadecimal digit string that identifies the Cloud Provider Access role registration to authorize. This is the RoleId returned by MongoDB::Atlas::CloudProviderAccessSetup. * * @schema CfnCloudProviderAccessAuthorizationProps#RoleId */ readonly roleId: string; /** * Amazon Resource Name (ARN) that identifies the AWS IAM role that MongoDB Cloud assumes when it accesses resources in your AWS account. Changing this value re-authorizes the same Cloud Provider Access role in place. * * @schema CfnCloudProviderAccessAuthorizationProps#IamAssumedRoleArn */ readonly iamAssumedRoleArn: string; /** * Atlas features that use the role. The role cannot be deleted while a feature still uses it. * * @schema CfnCloudProviderAccessAuthorizationProps#FeatureUsages */ readonly featureUsages?: FeatureUsage[]; } /** * Converts an object of type 'CfnCloudProviderAccessAuthorizationProps' to JSON representation. */ export declare function toJson_CfnCloudProviderAccessAuthorizationProps(obj: CfnCloudProviderAccessAuthorizationProps | undefined): Record | undefined; /** * One Atlas feature that uses the Cloud Provider Access role. A role that a feature still uses cannot be deleted. * * @schema FeatureUsage */ export interface FeatureUsage { /** * Human-readable label that describes the Atlas feature that uses the role, for example ENCRYPTION_AT_REST. * * @schema FeatureUsage#FeatureType */ readonly featureType?: string; /** * @schema FeatureUsage#FeatureId */ readonly featureId?: FeatureId; } /** * Converts an object of type 'FeatureUsage' to JSON representation. */ export declare function toJson_FeatureUsage(obj: FeatureUsage | undefined): Record | undefined; /** * Identifying characteristics of the feature that uses the role, when Atlas returns them, for example the S3 bucket name for a push-based log export. Not set for features that Atlas does not identify, for example ENCRYPTION_AT_REST. * * @schema FeatureId */ export interface FeatureId { /** * Unique 24-hexadecimal digit string that identifies the project. * * @schema FeatureId#ProjectId */ readonly projectId?: string; /** * Name of the AWS S3 bucket that the push-based log export writes to. * * @schema FeatureId#BucketName */ readonly bucketName?: string; } /** * Converts an object of type 'FeatureId' to JSON representation. */ export declare function toJson_FeatureId(obj: FeatureId | undefined): Record | undefined; /** * A CloudFormation `MongoDB::Atlas::CloudProviderAccessAuthorization` * * @cloudformationResource MongoDB::Atlas::CloudProviderAccessAuthorization * @stability external */ export declare class CfnCloudProviderAccessAuthorization extends cdk.CfnResource { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::CloudProviderAccessAuthorization"; /** * Resource props. */ readonly props: CfnCloudProviderAccessAuthorizationProps; /** * Attribute `MongoDB::Atlas::CloudProviderAccessAuthorization.AuthorizedDate` */ readonly attrAuthorizedDate: string; /** * Create a new `MongoDB::Atlas::CloudProviderAccessAuthorization`. * * @param scope - scope in which this resource is defined * @param id - scoped id of the resource * @param props - resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnCloudProviderAccessAuthorizationProps); }