// Accounts
MERGE (accDev:AwsAccount {accountId: '018777506747'})
ON CREATE SET accDev.name = 'dev';
MERGE (accQa:AwsAccount {accountId: '018778761706'})
ON CREATE SET accQa.name = 'qa';
MERGE (accPrd:AwsAccount {accountId: '018778855179'})
ON CREATE SET accPrd.name = 'prd';
// Regions
MERGE (cn1:AwsRegion {name: 'cn-north-1'});
MERGE (cw1:AwsRegion {name: 'cn-northwest-1'});
// Region to Account relationships
MERGE (cn1)-[:IN_ACCOUNT]->(accDev); // cn-north-1 in dev account
MERGE (cw1)-[:IN_ACCOUNT]->(accDev); // cn-northwest-1 in dev account
MERGE (cn1)-[:IN_ACCOUNT]->(accQa); // cn-north-1 in qa account
MERGE (cw1)-[:IN_ACCOUNT]->(accQa); // cn-northwest-1 in qa account
MERGE (cn1)-[:IN_ACCOUNT]->(accPrd); // cn-north-1 in prd account
MERGE (cw1)-[:IN_ACCOUNT]->(accPrd); // cn-northwest-1 in prd account
// VPCs in Beijing (cn-north-1)
MERGE (vpcA:Vpc {vpcId: 'vpc-a', name: 'vpc-a', cidr: '10.120.0.0/16'})
ON CREATE SET vpcA.accountId = '018777506747';
MERGE (vpcA)-[:IN_REGION]->(cn1);
MERGE (vpcB:Vpc {vpcId: 'vpc-b', name: 'vpc-b', cidr: '10.200.0.0/16'})
ON CREATE SET vpcB.accountId = '018777506747';
MERGE (vpcB)-[:IN_REGION]->(cn1);
MERGE (vpcC:Vpc {vpcId: 'vpc-c', name: 'vpc-c', cidr: '10.201.0.0/16'})
ON CREATE SET vpcC.accountId = '018777506747';
MERGE (vpcC)-[:IN_REGION]->(cn1);
// VPC in Ningxia (cn-northwest-1)
MERGE (vpcD:Vpc {vpcId: 'vpc-d', name: 'vpc-d', cidr: '10.121.0.0/16'})
ON CREATE SET vpcD.accountId = '018777506747';
MERGE (vpcC)-[:IN_REGION]->(cw1);
// VPCs in Beijing (cn-north-1)
MERGE (vpcA:Vpc {vpcId: 'vpc-a', name: 'vpc-a', cidr: '10.120.0.0/16'})
ON CREATE SET vpcA.accountId = '018778761706';
MERGE (vpcA)-[:IN_REGION]->(cn1);
MERGE (vpcB:Vpc {vpcId: 'vpc-b', name: 'vpc-b', cidr: '10.200.0.0/16'})
ON CREATE SET vpcB.accountId = '018778761706';
MERGE (vpcB)-[:IN_REGION]->(cn1);
MERGE (vpcC:Vpc {vpcId: 'vpc-c', name: 'vpc-c', cidr: '10.201.0.0/16'})
ON CREATE SET vpcC.accountId = '018778761706';
MERGE (vpcC)-[:IN_REGION]->(cn1);
// VPC in Ningxia (cn-northwest-1)
MERGE (vpcD:Vpc {vpcId: 'vpc-d', name: 'vpc-d', cidr: '10.121.0.0/16'})
ON CREATE SET vpcD.accountId = '018778761706';
MERGE (vpcC)-[:IN_REGION]->(cw1);
// VPCs in Beijing (cn-north-1)
MERGE (vpcA:Vpc {vpcId: 'vpc-a', name: 'vpc-a', cidr: '10.120.0.0/16'})
ON CREATE SET vpcA.accountId = '018778855179';
MERGE (vpcA)-[:IN_REGION]->(cn1);
MERGE (vpcB:Vpc {vpcId: 'vpc-b', name: 'vpc-b', cidr: '10.200.0.0/16'})
ON CREATE SET vpcB.accountId = '018778855179';
MERGE (vpcB)-[:IN_REGION]->(cn1);
MERGE (vpcC:Vpc {vpcId: 'vpc-c', name: 'vpc-c', cidr: '10.201.0.0/16'})
ON CREATE SET vpcC.accountId = '018778855179';
MERGE (vpcC)-[:IN_REGION]->(cn1);
// VPC in Ningxia (cn-northwest-1)
MERGE (vpcD:Vpc {vpcId: 'vpc-d', name: 'vpc-d', cidr: '10.121.0.0/16'})
ON CREATE SET vpcD.accountId = '018778855179';
MERGE (vpcC)-[:IN_REGION]->(cw1);
// 创建AZ节点
MERGE (az1a:Az {name: 'cn-north-1a'});
MERGE (az1b:Az {name: 'cn-north-1b'});
MERGE (az2a:Az {name: 'cn-northwest-1a'});
MERGE (az2b:Az {name: 'cn-northwest-1b'});
MERGE (az2c:Az {name: 'cn-northwest-1c'});
// 创建AZ到VPC-A的关系
MERGE (vpcA)-[:HAS_AZ]->(az1a);
MERGE (vpcA)-[:HAS_AZ]->(az1b);
// 创建AZ到VPC-B的关系
MERGE (vpcB)-[:HAS_AZ]->(az1a);
MERGE (vpcB)-[:HAS_AZ]->(az1b);
// 创建AZ到VPC-C的关系
MERGE (vpcC)-[:HAS_AZ]->(az1a);
MERGE (vpcC)-[:HAS_AZ]->(az1b);
// 创建AZ到VPC-D的关系
MERGE (vpcD)-[:HAS_AZ]->(az2a);
MERGE (vpcD)-[:HAS_AZ]->(az2b);
MERGE (vpcD)-[:HAS_AZ]->(az2c);
// 创建子网(1a AZ)
MERGE (sub1a1:Subnet {subnetId: 'pub-1', cidr: '10.120.12.0/24', type: 'public', az: 'cn-north-1a'})
ON CREATE SET sub1a1.accountId = '018778855179';
MERGE (sub1a2:Subnet {subnetId: 'pri-1', cidr: '10.120.1.0/24', type: 'private', purpose: 'bastion', az: 'cn-north-1a'})
MERGE (accDev:AwsAccount {accountId: '018777506747'})
ON CREATE SET accDev.name = 'dev';
MERGE (accQa:AwsAccount {accountId: '018778761706'})
ON CREATE SET accQa.name = 'qa';
MERGE (accPrd:AwsAccount {accountId: '018778855179'})
ON CREATE SET accPrd.name = 'prd';
// Regions
MERGE (cn1:AwsRegion {name: 'cn-north-1'});
MERGE (cw1:AwsRegion {name: 'cn-northwest-1'});
// Region to Account relationships
MERGE (cn1)-[:IN_ACCOUNT]->(accDev); // cn-north-1 in dev account
MERGE (cw1)-[:IN_ACCOUNT]->(accDev); // cn-northwest-1 in dev account
MERGE (cn1)-[:IN_ACCOUNT]->(accQa); // cn-north-1 in qa account
MERGE (cw1)-[:IN_ACCOUNT]->(accQa); // cn-northwest-1 in qa account
MERGE (cn1)-[:IN_ACCOUNT]->(accPrd); // cn-north-1 in prd account
MERGE (cw1)-[:IN_ACCOUNT]->(accPrd); // cn-northwest-1 in prd account
// VPCs in Beijing (cn-north-1)
MERGE (vpcA:Vpc {vpcId: 'vpc-a', name: 'vpc-a', cidr: '10.120.0.0/16'})
ON CREATE SET vpcA.accountId = '018777506747';
MERGE (vpcA)-[:IN_REGION]->(cn1);
MERGE (vpcB:Vpc {vpcId: 'vpc-b', name: 'vpc-b', cidr: '10.200.0.0/16'})
ON CREATE SET vpcB.accountId = '018777506747';
MERGE (vpcB)-[:IN_REGION]->(cn1);
MERGE (vpcC:Vpc {vpcId: 'vpc-c', name: 'vpc-c', cidr: '10.201.0.0/16'})
ON CREATE SET vpcC.accountId = '018777506747';
MERGE (vpcC)-[:IN_REGION]->(cn1);
// VPC in Ningxia (cn-northwest-1)
MERGE (vpcD:Vpc {vpcId: 'vpc-d', name: 'vpc-d', cidr: '10.121.0.0/16'})
ON CREATE SET vpcD.accountId = '018777506747';
MERGE (vpcC)-[:IN_REGION]->(cw1);
// VPCs in Beijing (cn-north-1)
MERGE (vpcA:Vpc {vpcId: 'vpc-a', name: 'vpc-a', cidr: '10.120.0.0/16'})
ON CREATE SET vpcA.accountId = '018778761706';
MERGE (vpcA)-[:IN_REGION]->(cn1);
MERGE (vpcB:Vpc {vpcId: 'vpc-b', name: 'vpc-b', cidr: '10.200.0.0/16'})
ON CREATE SET vpcB.accountId = '018778761706';
MERGE (vpcB)-[:IN_REGION]->(cn1);
MERGE (vpcC:Vpc {vpcId: 'vpc-c', name: 'vpc-c', cidr: '10.201.0.0/16'})
ON CREATE SET vpcC.accountId = '018778761706';
MERGE (vpcC)-[:IN_REGION]->(cn1);
// VPC in Ningxia (cn-northwest-1)
MERGE (vpcD:Vpc {vpcId: 'vpc-d', name: 'vpc-d', cidr: '10.121.0.0/16'})
ON CREATE SET vpcD.accountId = '018778761706';
MERGE (vpcC)-[:IN_REGION]->(cw1);
// VPCs in Beijing (cn-north-1)
MERGE (vpcA:Vpc {vpcId: 'vpc-a', name: 'vpc-a', cidr: '10.120.0.0/16'})
ON CREATE SET vpcA.accountId = '018778855179';
MERGE (vpcA)-[:IN_REGION]->(cn1);
MERGE (vpcB:Vpc {vpcId: 'vpc-b', name: 'vpc-b', cidr: '10.200.0.0/16'})
ON CREATE SET vpcB.accountId = '018778855179';
MERGE (vpcB)-[:IN_REGION]->(cn1);
MERGE (vpcC:Vpc {vpcId: 'vpc-c', name: 'vpc-c', cidr: '10.201.0.0/16'})
ON CREATE SET vpcC.accountId = '018778855179';
MERGE (vpcC)-[:IN_REGION]->(cn1);
// VPC in Ningxia (cn-northwest-1)
MERGE (vpcD:Vpc {vpcId: 'vpc-d', name: 'vpc-d', cidr: '10.121.0.0/16'})
ON CREATE SET vpcD.accountId = '018778855179';
MERGE (vpcC)-[:IN_REGION]->(cw1);
// 创建AZ节点
MERGE (az1a:Az {name: 'cn-north-1a'});
MERGE (az1b:Az {name: 'cn-north-1b'});
MERGE (az2a:Az {name: 'cn-northwest-1a'});
MERGE (az2b:Az {name: 'cn-northwest-1b'});
MERGE (az2c:Az {name: 'cn-northwest-1c'});
// 创建AZ到VPC-A的关系
MERGE (vpcA)-[:HAS_AZ]->(az1a);
MERGE (vpcA)-[:HAS_AZ]->(az1b);
// 创建AZ到VPC-B的关系
MERGE (vpcB)-[:HAS_AZ]->(az1a);
MERGE (vpcB)-[:HAS_AZ]->(az1b);
// 创建AZ到VPC-C的关系
MERGE (vpcC)-[:HAS_AZ]->(az1a);
MERGE (vpcC)-[:HAS_AZ]->(az1b);
// 创建AZ到VPC-D的关系
MERGE (vpcD)-[:HAS_AZ]->(az2a);
MERGE (vpcD)-[:HAS_AZ]->(az2b);
MERGE (vpcD)-[:HAS_AZ]->(az2c);
// 创建子网(1a AZ)
MERGE (sub1a1:Subnet {subnetId: 'pub-1', cidr: '10.120.12.0/24', type: 'public', az: 'cn-north-1a'})
ON CREATE SET sub1a1.accountId = '018778855179';
MERGE (sub1a2:Subnet {subnetId: 'pri-1', cidr: '10.120.1.0/24', type: 'private', purpose: 'bastion', az: 'cn-north-1a'})