# File lib/fog/aws/requests/compute/create_subnet.rb, line 43
        def create_subnet(vpcId, cidrBlock, options = {})
          av_zone = options['AvailabilityZone'].nil? ? 'us-east-1c' : options['AvailabilityZone']
          Excon::Response.new.tap do |response|
            if cidrBlock && vpcId
              vpc = self.data[:vpcs].find{ |v| v['vpcId'] == vpcId }
              if vpc.nil?
                raise Fog::Compute::AWS::NotFound.new("The vpc ID '#{vpcId}' does not exist")
              end
              if ! ::IPAddress.parse(vpc['cidrBlock']).include?(::IPAddress.parse(cidrBlock))
                raise Fog::Compute::AWS::Error.new("Range => The CIDR '#{cidrBlock}' is invalid.")
              end
              self.data[:subnets].select{ |s| s['vpcId'] == vpcId }.each do |subnet|
                if ::IPAddress.parse(subnet['cidrBlock']).include?(::IPAddress.parse(cidrBlock))
                  raise Fog::Compute::AWS::Error.new("Conflict => The CIDR '#{cidrBlock}' conflicts with another subnet")
                end
              end

              response.status = 200
              data = {
                'subnetId'                 => Fog::AWS::Mock.subnet_id,
                'state'                    => 'pending',
                'vpcId'                    => vpcId,
                'cidrBlock'                => cidrBlock,
                'availableIpAddressCount'  => "255",
                'availabilityZone'         => av_zone,
                'tagSet'                   => {}
              }

              # Add this subnet to the default network ACL
              accid = Fog::AWS::Mock.network_acl_association_id
              default_nacl = self.data[:network_acls].values.find { |nacl| nacl['vpcId'] == vpcId && nacl['default'] }
              default_nacl['associationSet'] << {
                'networkAclAssociationId' => accid,
                'networkAclId'            => default_nacl['networkAclId'],
                'subnetId'                => data['subnetId'],
              }

              self.data[:subnets].push(data)
              response.body = {
                'requestId'    => Fog::AWS::Mock.request_id,
                'subnet'       => data,
              }
            else
              response.status = 400
              response.body = {
                'Code' => 'InvalidParameterValue'
              }
              if cidrBlock.empty?
                response.body['Message'] = "Invalid value '' for cidrBlock. Must be specified."
              end
              if vpcId.empty?
                response.body['Message'] = "Invalid value '' for vpcId. Must be specified."
              end
            end
          end
        end