// CreateUnderlay creates a new child Underlay under the Me
482526
func (o *Me) CreateUnderlay(child *Underlay) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
88250
func (o *Enterprise) CreateBGPProfile(child *BGPProfile) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
1029882
func (o *PSNATPool) CreatePSPATMap(child *PSPATMap) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
151339
func (o *Me) CreateEnterprise(child *Enterprise) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
1083078
func (o *Domain) CreateZone(child *Zone) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
1372869
func (o *GatewaySecurity) CreateGlobalMetadata(child *GlobalMetadata) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
162173
func (o *L2DomainTemplate) CreateIngressAdvFwdTemplate(child *IngressAdvFwdTemplate) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
36619
func CalculateOverlaySegment(underlayCIDR string, fan FanConfigEntry) (*net.IPNet, error) {
	_, underlayNet, err := net.ParseCIDR(underlayCIDR)
	if err != nil {
		return nil, errors.Trace(err)
	}
	subnetSize, _ := underlayNet.Mask.Size()
	underlaySize, _ := fan.Underlay.Mask.Size()
	if underlaySize <= subnetSize && fan.Underlay.Contains(underlayNet.IP) {
		overlaySize, _ := fan.Overlay.Mask.Size()
		newOverlaySize := overlaySize + (subnetSize - underlaySize)
		fanSize := uint(underlaySize - overlaySize)
		newFanIP := underlayNet.IP.To4()
		if newFanIP == nil {
			return nil, errors.New("fan address is not an IPv4 address.")
		}
		for i := 0; i < 4; i++ {
			newFanIP[i] &^= fan.Underlay.Mask[i]
		}
		numIp := binary.BigEndian.Uint32(newFanIP)
		numIp <<= fanSize
		binary.BigEndian.PutUint32(newFanIP, numIp)
		for i := 0; i < 4; i++ {
			newFanIP[i] += fan.Overlay.IP[i]
		}
		return &net.IPNet{IP: newFanIP, Mask: net.CIDRMask(newOverlaySize, 32)}, nil
	} else {
		return nil, nil
	}
}
1162325
func (o *IKEGateway) CreateIKESubnet(child *IKESubnet) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
790174
func (o *VPort) CreateBGPNeighbor(child *BGPNeighbor) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
933633
func (o *L2Domain) CreateIngressACLTemplate(child *IngressACLTemplate) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
251293
func (o *DomainTemplate) CreateZoneTemplate(child *ZoneTemplate) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
464115
func (o *Subnet) CreateProxyARPFilter(child *ProxyARPFilter) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
1271460
func (o *Container) CreateContainerInterface(child *ContainerInterface) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
336010
func (o *Me) CreateEnterpriseProfile(child *EnterpriseProfile) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
145445
func (o *RedundancyGroup) CreateEnterprisePermission(child *EnterprisePermission) *bambou.Error {

	return bambou.CurrentSession().CreateChild(o, child)
}
1194918
func (g *MetagameServer) CreatePlayerCheat(ctx context.Context, args *CreatePlayerCheatArgs) (*CreatePlayerCheatResponse, error) {
	logger := pitaya.GetDefaultLoggerFromCtx(ctx) // The default logger contains a requestId, the route being executed and the sessionId
	logger.Info("CreatePlayerChest called")
	// Do nothing. This is just an example of how pipelines can be helpful
	return &CreatePlayerCheatResponse{
		Msg: "ok",
	}, nil
}