11 #ifndef GI_GBP_L3EXTERNALNETWORK_HPP
12 #define GI_GBP_L3EXTERNALNETWORK_HPP
14 #include <boost/optional.hpp>
15 #include "opflex/modb/URIBuilder.h"
16 #include "opflex/modb/mo-internal/MO.h"
20 #include "modelgbp/gbp/L3ExternalNetworkToProvContractRSrc.hpp"
24 #include "modelgbp/gbp/L3ExternalNetworkToConsContractRSrc.hpp"
28 #include "modelgbp/gbp/L3ExternalNetworkToNatEPGroupRSrc.hpp"
32 #include "modelgbp/gbp/ExternalSubnet.hpp"
38 :
public opflex::modb::mointernal::MO
45 static const opflex::modb::class_id_t
CLASS_ID = 125;
53 return getObjectInstance().isSet(4096001ul, opflex::modb::PropertyInfo::STRING);
60 boost::optional<const std::string&>
getName()
63 return getObjectInstance().getString(4096001ul);
72 const std::string&
getName(
const std::string& defaultValue)
74 return getName().get_value_or(defaultValue);
87 getTLMutator().modify(getClassId(), getURI())->setString(4096001ul, newValue);
99 getTLMutator().modify(getClassId(), getURI())->unset(4096001ul, opflex::modb::PropertyInfo::STRING, opflex::modb::PropertyInfo::SCALAR);
114 static boost::optional<boost::shared_ptr<modelgbp::gbp::L3ExternalNetwork> >
resolve(
115 opflex::ofcore::OFFramework& framework,
116 const opflex::modb::URI& uri)
118 return opflex::modb::mointernal::MO::resolve<modelgbp::gbp::L3ExternalNetwork>(framework,
CLASS_ID, uri);
132 static boost::optional<boost::shared_ptr<modelgbp::gbp::L3ExternalNetwork> >
resolve(
133 const opflex::modb::URI& uri)
135 return opflex::modb::mointernal::MO::resolve<modelgbp::gbp::L3ExternalNetwork>(opflex::ofcore::OFFramework::defaultInstance(),
CLASS_ID, uri);
160 static boost::optional<boost::shared_ptr<modelgbp::gbp::L3ExternalNetwork> >
resolve(
161 opflex::ofcore::OFFramework& framework,
162 const std::string& policySpaceName,
163 const std::string& gbpRoutingDomainName,
164 const std::string& gbpL3ExternalDomainName,
165 const std::string& gbpL3ExternalNetworkName)
167 return resolve(framework,opflex::modb::URIBuilder().addElement(
"PolicyUniverse").addElement(
"PolicySpace").addElement(policySpaceName).addElement(
"GbpRoutingDomain").addElement(gbpRoutingDomainName).addElement(
"GbpL3ExternalDomain").addElement(gbpL3ExternalDomainName).addElement(
"GbpL3ExternalNetwork").addElement(gbpL3ExternalNetworkName).build());
191 static boost::optional<boost::shared_ptr<modelgbp::gbp::L3ExternalNetwork> >
resolve(
192 const std::string& policySpaceName,
193 const std::string& gbpRoutingDomainName,
194 const std::string& gbpL3ExternalDomainName,
195 const std::string& gbpL3ExternalNetworkName)
197 return resolve(opflex::ofcore::OFFramework::defaultInstance(),policySpaceName,gbpRoutingDomainName,gbpL3ExternalDomainName,gbpL3ExternalNetworkName);
214 const std::string& gbpL3ExternalNetworkToProvContractRSrcTargetName)
216 opflex::modb::class_id_t gbpL3ExternalNetworkToProvContractRSrcTargetClass = 102;
217 return modelgbp::gbp::L3ExternalNetworkToProvContractRSrc::resolve(getFramework(), opflex::modb::URIBuilder(getURI()).addElement(
"GbpL3ExternalNetworkToProvContractRSrc").addElement(gbpL3ExternalNetworkToProvContractRSrcTargetClass).addElement(gbpL3ExternalNetworkToProvContractRSrcTargetName).build());
235 const std::string& gbpL3ExternalNetworkToProvContractRSrcTargetName)
237 opflex::modb::class_id_t gbpL3ExternalNetworkToProvContractRSrcTargetClass = 102;
238 boost::shared_ptr<modelgbp::gbp::L3ExternalNetworkToProvContractRSrc> result = addChild<modelgbp::gbp::L3ExternalNetworkToProvContractRSrc>(
239 CLASS_ID, getURI(), 2151579774ul, 126,
240 opflex::modb::URIBuilder(getURI()).addElement(
"GbpL3ExternalNetworkToProvContractRSrc").addElement(gbpL3ExternalNetworkToProvContractRSrcTargetClass).addElement(gbpL3ExternalNetworkToProvContractRSrcTargetName).build()
242 result->setTargetContract(opflex::modb::URI(gbpL3ExternalNetworkToProvContractRSrcTargetName));
262 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::L3ExternalNetworkToProvContractRSrc>(
263 getFramework(),
CLASS_ID, getURI(), 2151579774ul, 126, out);
280 const std::string& gbpL3ExternalNetworkToConsContractRSrcTargetName)
282 opflex::modb::class_id_t gbpL3ExternalNetworkToConsContractRSrcTargetClass = 102;
283 return modelgbp::gbp::L3ExternalNetworkToConsContractRSrc::resolve(getFramework(), opflex::modb::URIBuilder(getURI()).addElement(
"GbpL3ExternalNetworkToConsContractRSrc").addElement(gbpL3ExternalNetworkToConsContractRSrcTargetClass).addElement(gbpL3ExternalNetworkToConsContractRSrcTargetName).build());
301 const std::string& gbpL3ExternalNetworkToConsContractRSrcTargetName)
303 opflex::modb::class_id_t gbpL3ExternalNetworkToConsContractRSrcTargetClass = 102;
304 boost::shared_ptr<modelgbp::gbp::L3ExternalNetworkToConsContractRSrc> result = addChild<modelgbp::gbp::L3ExternalNetworkToConsContractRSrc>(
305 CLASS_ID, getURI(), 2151579777ul, 129,
306 opflex::modb::URIBuilder(getURI()).addElement(
"GbpL3ExternalNetworkToConsContractRSrc").addElement(gbpL3ExternalNetworkToConsContractRSrcTargetClass).addElement(gbpL3ExternalNetworkToConsContractRSrcTargetName).build()
308 result->setTargetContract(opflex::modb::URI(gbpL3ExternalNetworkToConsContractRSrcTargetName));
328 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::L3ExternalNetworkToConsContractRSrc>(
329 getFramework(),
CLASS_ID, getURI(), 2151579777ul, 129, out);
360 boost::shared_ptr<modelgbp::gbp::L3ExternalNetworkToNatEPGroupRSrc> result = addChild<modelgbp::gbp::L3ExternalNetworkToNatEPGroupRSrc>(
361 CLASS_ID, getURI(), 2151579780ul, 132,
362 opflex::modb::URIBuilder(getURI()).addElement(
"GbpL3ExternalNetworkToNatEPGroupRSrc").build()
379 const std::string& gbpExternalSubnetName)
397 const std::string& gbpExternalSubnetName)
399 boost::shared_ptr<modelgbp::gbp::ExternalSubnet> result = addChild<modelgbp::gbp::ExternalSubnet>(
400 CLASS_ID, getURI(), 2151579783ul, 135,
401 opflex::modb::URIBuilder(getURI()).addElement(
"GbpExternalSubnet").addElement(gbpExternalSubnetName).build()
403 result->setName(gbpExternalSubnetName);
423 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::ExternalSubnet>(
424 getFramework(),
CLASS_ID, getURI(), 2151579783ul, 135, out);
437 getTLMutator().remove(
CLASS_ID, getURI());
450 static void remove(opflex::ofcore::OFFramework& framework,
451 const opflex::modb::URI& uri)
453 MO::remove(framework,
CLASS_ID, uri);
466 static void remove(
const opflex::modb::URI& uri)
468 remove(opflex::ofcore::OFFramework::defaultInstance(), uri);
492 opflex::ofcore::OFFramework& framework,
493 const std::string& policySpaceName,
494 const std::string& gbpRoutingDomainName,
495 const std::string& gbpL3ExternalDomainName,
496 const std::string& gbpL3ExternalNetworkName)
498 MO::remove(framework,
CLASS_ID, opflex::modb::URIBuilder().addElement(
"PolicyUniverse").addElement(
"PolicySpace").addElement(policySpaceName).addElement(
"GbpRoutingDomain").addElement(gbpRoutingDomainName).addElement(
"GbpL3ExternalDomain").addElement(gbpL3ExternalDomainName).addElement(
"GbpL3ExternalNetwork").addElement(gbpL3ExternalNetworkName).build());
522 const std::string& policySpaceName,
523 const std::string& gbpRoutingDomainName,
524 const std::string& gbpL3ExternalDomainName,
525 const std::string& gbpL3ExternalNetworkName)
527 remove(opflex::ofcore::OFFramework::defaultInstance(),policySpaceName,gbpRoutingDomainName,gbpL3ExternalDomainName,gbpL3ExternalNetworkName);
542 opflex::ofcore::OFFramework& framework,
543 opflex::modb::ObjectListener* listener)
545 opflex::modb::mointernal
546 ::MO::registerListener(framework, listener,
CLASS_ID);
561 opflex::modb::ObjectListener* listener)
573 opflex::ofcore::OFFramework& framework,
574 opflex::modb::ObjectListener* listener)
576 opflex::modb::mointernal
577 ::MO::unregisterListener(framework, listener,
CLASS_ID);
587 opflex::modb::ObjectListener* listener)
597 opflex::ofcore::OFFramework& framework,
598 const opflex::modb::URI& uri,
599 const boost::shared_ptr<const opflex::modb::mointernal::ObjectInstance>& oi)
600 : MO(framework,
CLASS_ID, uri, oi) { }
605 #endif // GI_GBP_L3EXTERNALNETWORK_HPP
boost::optional< boost::shared_ptr< modelgbp::gbp::ExternalSubnet > > resolveGbpExternalSubnet(const std::string &gbpExternalSubnetName)
Retrieve the child object with the specified naming properties.
Definition: L3ExternalNetwork.hpp:378
static boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetwork > > resolve(opflex::ofcore::OFFramework &framework, const std::string &policySpaceName, const std::string &gbpRoutingDomainName, const std::string &gbpL3ExternalDomainName, const std::string &gbpL3ExternalNetworkName)
Retrieve an instance of L3ExternalNetwork from the managed object store by constructing its URI from ...
Definition: L3ExternalNetwork.hpp:160
static boost::optional< boost::shared_ptr< modelgbp::gbp::ExternalSubnet > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of ExternalSubnet from the managed object store.
Definition: ExternalSubnet.hpp:210
static void unregisterListener(opflex::ofcore::OFFramework &framework, opflex::modb::ObjectListener *listener)
Unregister a listener from updates to this class.
Definition: L3ExternalNetwork.hpp:572
const std::string & getName(const std::string &defaultValue)
Get the value of name if set, otherwise the value of default passed in.
Definition: L3ExternalNetwork.hpp:72
L3ExternalNetwork(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri, const boost::shared_ptr< const opflex::modb::mointernal::ObjectInstance > &oi)
Construct an instance of L3ExternalNetwork.
Definition: L3ExternalNetwork.hpp:596
static void unregisterListener(opflex::modb::ObjectListener *listener)
Unregister a listener from updates to this class from the default framework instance.
Definition: L3ExternalNetwork.hpp:586
static boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetwork > > resolve(const std::string &policySpaceName, const std::string &gbpRoutingDomainName, const std::string &gbpL3ExternalDomainName, const std::string &gbpL3ExternalNetworkName)
Retrieve an instance of L3ExternalNetwork from the default managed object store by constructing its U...
Definition: L3ExternalNetwork.hpp:191
void resolveGbpL3ExternalNetworkToConsContractRSrc(std::vector< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToConsContractRSrc > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::L3ExternalNetworkToConsCont...
Definition: L3ExternalNetwork.hpp:326
static boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToNatEPGroupRSrc > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of L3ExternalNetworkToNatEPGroupRSrc from the managed object store...
Definition: L3ExternalNetworkToNatEPGroupRSrc.hpp:257
static void registerListener(opflex::ofcore::OFFramework &framework, opflex::modb::ObjectListener *listener)
Register a listener that will get called for changes related to this class.
Definition: L3ExternalNetwork.hpp:541
Definition: L3ExternalNetwork.hpp:37
modelgbp::gbp::L3ExternalNetwork & setName(const std::string &newValue)
Set name to the specified value in the currently-active mutator.
Definition: L3ExternalNetwork.hpp:85
boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToConsContractRSrc > > resolveGbpL3ExternalNetworkToConsContractRSrc(const std::string &gbpL3ExternalNetworkToConsContractRSrcTargetName)
Retrieve the child object with the specified naming properties.
Definition: L3ExternalNetwork.hpp:279
boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToProvContractRSrc > addGbpL3ExternalNetworkToProvContractRSrc(const std::string &gbpL3ExternalNetworkToProvContractRSrcTargetName)
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: L3ExternalNetwork.hpp:234
void resolveGbpL3ExternalNetworkToProvContractRSrc(std::vector< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToProvContractRSrc > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::L3ExternalNetworkToProvCont...
Definition: L3ExternalNetwork.hpp:260
void resolveGbpExternalSubnet(std::vector< boost::shared_ptr< modelgbp::gbp::ExternalSubnet > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::ExternalSubnet.
Definition: L3ExternalNetwork.hpp:421
boost::optional< const std::string & > getName()
Get the value of name if it has been set.
Definition: L3ExternalNetwork.hpp:60
boost::shared_ptr< modelgbp::gbp::ExternalSubnet > addGbpExternalSubnet(const std::string &gbpExternalSubnetName)
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: L3ExternalNetwork.hpp:396
boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToConsContractRSrc > addGbpL3ExternalNetworkToConsContractRSrc(const std::string &gbpL3ExternalNetworkToConsContractRSrcTargetName)
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: L3ExternalNetwork.hpp:300
static boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToConsContractRSrc > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of L3ExternalNetworkToConsContractRSrc from the managed object store...
Definition: L3ExternalNetworkToConsContractRSrc.hpp:257
static const opflex::modb::class_id_t CLASS_ID
The unique class ID for L3ExternalNetwork.
Definition: L3ExternalNetwork.hpp:45
boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToNatEPGroupRSrc > > resolveGbpL3ExternalNetworkToNatEPGroupRSrc()
Retrieve the child object with the specified naming properties.
Definition: L3ExternalNetwork.hpp:341
boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToProvContractRSrc > > resolveGbpL3ExternalNetworkToProvContractRSrc(const std::string &gbpL3ExternalNetworkToProvContractRSrcTargetName)
Retrieve the child object with the specified naming properties.
Definition: L3ExternalNetwork.hpp:213
boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToNatEPGroupRSrc > addGbpL3ExternalNetworkToNatEPGroupRSrc()
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: L3ExternalNetwork.hpp:357
static void registerListener(opflex::modb::ObjectListener *listener)
Register a listener that will get called for changes related to this class with the default framework...
Definition: L3ExternalNetwork.hpp:560
bool isNameSet()
Check whether name has been set.
Definition: L3ExternalNetwork.hpp:51
static boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetwork > > resolve(const opflex::modb::URI &uri)
Retrieve an instance of L3ExternalNetwork from the managed object store using the default framework i...
Definition: L3ExternalNetwork.hpp:132
modelgbp::gbp::L3ExternalNetwork & unsetName()
Unset name in the currently-active mutator.
Definition: L3ExternalNetwork.hpp:97
static boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkToProvContractRSrc > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of L3ExternalNetworkToProvContractRSrc from the managed object store...
Definition: L3ExternalNetworkToProvContractRSrc.hpp:257
static boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetwork > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of L3ExternalNetwork from the managed object store.
Definition: L3ExternalNetwork.hpp:114