public async Task <SubnetInfo> GetSubnetAsync(ResourceProvider provider, string subnetId) { var subnet = await subnetService.FindAsync(provider, subnetId);; if (subnet == null) { var awsSubnet = await ec2Client.DescribeSubnetAsync(subnetId) ?? throw ResourceError.NotFound(Aws, ResourceTypes.Subnet, subnetId); var location = Locations.Get(Aws, awsSubnet.AvailabilityZone); var network = await networkService.GetAsync(Aws, awsSubnet.VpcId);; var createRequest = new RegisterSubnetRequest( addressBlocks: new[] { awsSubnet.CidrBlock }, networkId: network.Id, resource: ManagedResource.Subnet(location, awsSubnet.SubnetId) ); // TODO: Include the ipv6 address blocks // Register the subnet with the platform subnet = await subnetService.RegisterAsync(createRequest);; } return(subnet); }
public async Task <SubnetInfo> 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.Subnet(provider, name))); }