B K`T@sBddlmZmZddlmZmZmZmZmZGdddej Z dS))coreaws_ec2) CfnDBClusterCfnDBSubnetGroup CfnDBInstanceCfnDBParameterGroupCfnDBClusterParameterGroupcs(eZdZejeddfdd ZZS)KnowledgeAnalyzerVPCStackN)scopeidreturnc stj||f|tj||ddd|_tj|jd|d|jj dtj j dtj ||d|jd d |_ ttd d |jj}t||d d|d}t||ddddddd}tj |d|jd|_t||d|j|jjg|dd|jigdd}|jjtjtjd|dd|ji|dd|jit||d dd!d"d#id} t ||d$d%d&} | d'd|ji| d(d| jidS))Nz 10.42.0.0/22)max_azscidrNamez-vpcZ S3Endpoint)servicez -lambda-sgT)vpcallow_all_outboundcSs|jS)N) subnet_id)xr^/home/ec2-user/environment/knoma_healthlake/knowledge_analyzer/knowledge_analyzer_vpc_stack.py(z4KnowledgeAnalyzerVPCStack.__init__..z-NeptuneDBSubnetGroupz,vpc subnets for neptune cluster for KA stack)Zdb_subnet_group_description subnet_idsz-NeptuneDBClusterParameterGroupZneptune1z$Cluster parameter group for KA stack)Zneptune_enable_audit_logZneptune_lab_mode)family description parameters SecurityGroup)rz-NeptuneDBClusterroleArnF)db_subnet_group_nameZvpc_security_group_idsZdb_cluster_identifierZassociated_rolesZiam_auth_enabled)peer connectionz&Properties.DBClusterParameterGroupNameZRefzProperties.DBSubnetGroupNamez-NeptuneDBParameterGroupzDB parameter group for KA stackZneptune_query_timeouti@ z-NeptuneDBInstancez db.r5.large)Zdb_instance_classzProperties.DBClusterIdentifierzProperties.DBParameterGroupName)!super__init__rVpcrrTagsofaddadd_gateway_endpointGatewayVpcEndpointAwsServiceS3r lambda_sglistmapprivate_subnetsrrZsg_neprr!security_group_idrole_arnadd_ingress_rulePeerany_ipv4Port all_traffic add_override logical_idrr) selfr r imServkwargs subnetIdsZ subnet_grpZdbcpgZ dbClusterZdbpgZ neptuneDb) __class__rrr% sP            z"KnowledgeAnalyzerVPCStack.__init__)__name__ __module__ __qualname__r Constructstrr% __classcell__rr)r>rr sr N) aws_cdkrrZaws_cdk.aws_neptunerrrrrStackr rrrrs