lib/cf/subnet.js
function(name, zoneLetter, cf, vpc, routeTable) {
  var self = this;

  self.isPublic         = false;

  base.Base.call(this, cf, 'EC2::Subnet', name);
  self.addProperty('VpcId', vpc.ref());

  self.zone = self.addProperty('AvailabilityZone', vpc.az(zoneLetter));

  self.cidrBlock = function(cidr) {
    self.cidr = vpc.mkSubnetCidrBlock(cidr);
    return self.addProperty('CidrBlock', self.cidr);
  };

  self.mapPublicIpOnLaunch = function(value) {
    if (arguments.length === 0) { value = true; }
    return self.addProperty('MapPublicIpOnLaunch', !!value);
  };

  var assocName = name+'RouteTableAssociation';
  cf.data.Resources[assocName] = subnet.makeSubnetRouteTableAssociation(assocName, cf, self, routeTable);

  //self.output(name+"CidrBlock", self.getAtt("CidrBlock"), "Subnet "+name+"CIDR block");   /* Do not know why CidrBlock is not available */
}
function(name, zoneLetter, cf, vpc, routeTable) {
  var self = this;

  self.isPublic         = false;

  base.Base.call(this, cf, 'EC2::Subnet', name);
  self.addProperty('VpcId', vpc.ref());

  self.zone = self.addProperty('AvailabilityZone', vpc.az(zoneLetter));

  self.cidrBlock = function(cidr) {
    self.cidr = vpc.mkSubnetCidrBlock(cidr);
    return self.addProperty('CidrBlock', self.cidr);
  };

  self.mapPublicIpOnLaunch = function(value) {
    if (arguments.length === 0) { value = true; }
    return self.addProperty('MapPublicIpOnLaunch', !!value);
  };

  var assocName = name+'RouteTableAssociation';
  cf.data.Resources[assocName] = subnet.makeSubnetRouteTableAssociation(assocName, cf, self, routeTable);

  //self.output(name+"CidrBlock", self.getAtt("CidrBlock"), "Subnet "+name+"CIDR block");   /* Do not know why CidrBlock is not available */
}
function ( name , zoneLetter , cf , vpc , routeTable ) { var self = this ; self . isPublic = false ; base . Base . call ( this , cf , 'EC2::Subnet' , name ) ; self . addProperty ( 'VpcId' , vpc . ref ( ) ) ; self . zone = self . addProperty ( 'AvailabilityZone' , vpc . az ( zoneLetter ) ) ; self . cidrBlock = function ( cidr ) { self . cidr = vpc . mkSubnetCidrBlock ( cidr ) ; return self . addProperty ( 'CidrBlock' , self . cidr ) ; } ; self . mapPublicIpOnLaunch = function ( value ) { if ( arguments . length === 0 ) { value = true ; } return self . addProperty ( 'MapPublicIpOnLaunch' , ! ! value ) ; } ; var assocName = name + 'RouteTableAssociation' ; cf . data . Resources [ assocName ] = subnet . makeSubnetRouteTableAssociation ( assocName , cf , self , routeTable ) ; //self.output(name+"CidrBlock", self.getAtt("CidrBlock"), "Subnet "+name+"CIDR block");   /* Do not know why CidrBlock is not available */ }
Base for subnet class.
Base for subnet class .