def create_ospf_profile():
    """
    An OSPF Profile contains administrative distance and redistribution settings. An
    OSPF Profile is applied at the engine level. 
    When creating an OSPF Profile, you must reference a OSPFDomainSetting. 

    An OSPFDomainSetting holds the settings of the area border router (ABR) type, 
    throttle timer settings, and the max metric router link-state advertisement 
    (LSA) settings.
    """
    OSPFDomainSetting.create(name='custom',
                             abr_type='cisco')

    ospf_domain = OSPFDomainSetting('custom')  # obtain resource

    ospf_profile = OSPFProfile.create(name='myospfprofile',
                                      domain_settings_ref=ospf_domain.href)
    print(ospf_profile)