private async Task <NetworkInfo> GetAsync(string vpcId) { var network = await networkService.FindAsync(Aws, vpcId);; if (network == null) { var vpc = await ec2Client.DescribeVpcAsync(vpcId) ?? throw ResourceError.NotFound(Aws, ResourceTypes.Network, vpcId); var region = Locations.Get(Aws, ec2Client.Region.Name); var registerRequest = new RegisterNetworkRequest( addressBlocks: new[] { vpc.CidrBlock }, resource: ManagedResource.Network(region, vpc.VpcId), ownerId: 1 ); // TODO: Sync the subnets & security groups // TODO: Support ipv6 address blocks // Register the network with the platform network = await networkService.RegisterAsync(registerRequest);; } return(network); }
// 1 | aws:vpc1 public async Task <NetworkInfo> GetAsync(string name) { if (long.TryParse(name, out var id)) { return(await GetAsync(id)); } var(provider, resourceId) = ResourceName.Parse(name); return(await FindAsync(provider, resourceId) ?? throw ResourceError.NotFound(ManagedResource.Network(provider, name))); }